////////////////////////////////////////////////////////////////////////////////
// 공통 자바스크립트
////////////////////////////////////////////////////////////////////////////////

// 폼 입력값 유효성체크
function f_valid_chk(a_array) {
	//	항목체크함수
    if (a_array[4].indexOf("r") != -1) if (!f_req_chk   (a_array)) return false; // #01 필수항목 체크하는 함수
    if (a_array[4].indexOf("n") != -1) if (!f_number_chk(a_array)) return false; // #02 정수체크
    if (a_array[4].indexOf("l") != -1) if (!f_len_chk_l  (a_array)) return false; // #03 바이트단위 길이체크(미만)
    if (a_array[4].indexOf("h") != -1) if (!f_len_chk_h   (a_array)) return false; // #03 바이트단위 길이체크(초과)

	// URL & Email
	if (a_array[4].indexOf("u") != -1) if (!f_url_chk   (a_array)) return false; // #04 URL체크
    if (a_array[4].indexOf("e") != -1) if (!f_email_chk (a_array)) return false; // #05 이메일체크

    return true;
}

///////////////////////////////////////////////
//// 공통함수 /////////////////////////////////
///////////////////////////////////////////////

// 공백이 하나라도 있으면 true
function f_gongbaeg_chk(a_data) {
    if (a_data.indexOf(' ') == -1) return false;
    return true;
}

// 모두가 공백이거나 길이가 0이면 true
function f_empty_chk(a_data) {
    for (var i = 0; i < a_data.length; i++ ) {
        if (a_data.substring(i, i + 1) != " ")
            return false;
    }
    return true;
}

// 모두가 양수거나 길이가 0이면 true
function f_jeongsu_chk(a_num) {
	numstr = "0123456789."; /* +- 넣어주기 */
	for (var i = 0; i < a_num.length; i++){
		if (numstr.indexOf(a_num.charAt(i)) == -1)
		    return false;
	}
	return true;
}

///////////////////////////////////////////////

///////////////////////////////////////////////
//// 항목체크함수 /////////////////////////////
///////////////////////////////////////////////

// #01 필수항목 체크하는 함수
function f_req_chk(a_array) {
    if (f_empty_chk(a_array[0].value)) {
        alert("'" + a_array[1] + "'를(을) 입력해주세요");
        a_array[0].focus();
        return false;      // 없으면 다음조건 계속체크해나감.
    }
    return true;
}

// #02 정수체크
function f_number_chk(a_array) {
    if (!f_jeongsu_chk(a_array[0].value)) {
        alert("'" + a_array[1] + "'를(을) 숫자로 입력하세요.");
        a_array[0].focus();
        a_array[0].select();
        return false;      // 없으면 다음조건 계속체크해나감.
    }
    return true;
}

// #03 바이트단위 길이체크
function f_len_chk_l(a_array) {
    if (f_lenb(a_array[0].value) < a_array[2]) {
       alert("'" + a_array[1] + "' 항목이 허용 길이 미만입니다.\n영문 " + a_array[2] + "자, 한글 " + a_array[2] / 2 + "자 이상 입력해주십시요.");
        a_array[0].focus();
        a_array[0].select();
        return false;      // 없으면 다음조건 계속체크해나감.
    }
    return true;
}

// #03_1 바이트단위 길이체크
function f_len_chk_h(a_array) {
    if (f_lenb(a_array[0].value) > a_array[3]) {
        alert("'" + a_array[1] + "' 항목이 허용 길이를 초과했습니다.\n영문 " + a_array[3] + "자, 한글 " + a_array[3] / 2 + "자 이내로 입력해주십시요.");
        a_array[0].focus();
        a_array[0].select();
        return false;      // 없으면 다음조건 계속체크해나감.
    }
    return true;
}

// #03_2 바이트단위길이
function f_lenb(a_str) {
    var j = a_str.length;
    var l = j;
    for (var i = 0; i < l; i++) if (a_str.charCodeAt(i) > 255) j++;
    return j;
}

///////////////////////////////////////////////

///////////////////////////////////////////////
//// URL & Email 함수 /////////////////////////
///////////////////////////////////////////////

// #04 URL체크
function f_url_chk(a_array) {
    if (!f_valid_url(a_array[0].value)) {
        alert("홈페이지 주소는 'http://도메인'의 형태를 취해야 합니다.");
        a_array[0].focus();
        return false;       // 없으면 다음조건으로
    }
    return true;
}


// #04_1 URL 체크
function f_valid_url(a_url) {
    if (f_empty_chk(a_url)) return true;
    var re;
    re = /^http:\/\/(\S+)\.(\S+)/ig;
    if (!re.exec(a_url)) return false;
    return true;
}

// #05 이메일체크
function f_email_chk(a_array) {
    if (!f_valid_email(a_array[0].value)) {
        alert("이메일을 다시 입력해주세요.");
        a_array[0].focus();
        return false;      // 없으면 다음조건도 체크
    }
    return true;
}

// #05_1 이메일체크
function f_valid_email(a_email) {
    if (f_empty_chk(a_email)) return true;
    if (a_email.search(/(\S+)@(\S+)\.(\S+)/) == -1) return false;
    return true;
}

///////////////////////////////////////////////


// 주민번호 체크
function f_jumin_chk(a_obj) {
    var str_f_num = a_obj.value.substring(1, 6);
    var str_l_num = a_obj.value.substring(7, 7);

    var i3 = 0;
    for (var i = 0; i < str_f_num.length; i++) {
        var ch1 = str_f_num.substring(i, i + 1);
        if (ch1 < '0' || ch1 > '9') { i3 = i3 + 1; }
    }

    if ((str_f_num == '') || (i3 != 0)) {
        alert('주민등록번호가 잘못입력되었습니다.....');
        a_obj.focus();
        return false;
    }

    var i4 = 0;
    for (var i = 0; i < str_l_num.length; i++) {
        var ch1 = str_l_num.substring(i, i + 1);
        if (ch1 < '0' || ch1 > '9') { i4 = i4 + 1; }
    }
    if ((str_l_num == '') || ( i4 != 0 )) {
        alert('주민등록번호가 잘못입력되었습니다.....');
        a_obj.focus();
        return false;
    }

    if (str_l_num.substring(0, 1) > 2) {
        alert('주민등록번호가 잘못입력되었습니다.....');
        a_obj.focus();
        return false;
    }

    if ((str_f_num.length > 7) || (str_l_num.length > 8)) {
        alert('주민등록번호가 잘못입력되었습니다.....');
        a_obj.focus();
        return false;
    }

    var f1 = str_f_num.substring(0, 1);
    var f2 = str_f_num.substring(1, 2);
    var f3 = str_f_num.substring(2, 3);
    var f4 = str_f_num.substring(3, 4);
    var f5 = str_f_num.substring(4, 5);
    var f6 = str_f_num.substring(5, 6);
    var hap = f1 * 2 + f2 * 3 + f3 * 4 + f4 * 5 + f5 * 6 + f6 * 7;

    var l1 = str_l_num.substring(0, 1);
    var l2 = str_l_num.substring(1, 2);
    var l3 = str_l_num.substring(2, 3);
    var l4 = str_l_num.substring(3, 4);
    var l5 = str_l_num.substring(4, 5);
    var l6 = str_l_num.substring(5, 6);
    var l7 = str_l_num.substring(6, 7);
    hap = hap + l1 * 8 + l2 * 9 + l3 * 2 + l4 * 3 + l5 * 4 + l6 * 5;
    var rem = hap % 11;
    rem = (11 - rem) % 10;
    if (rem != l7) {
        alert('주민등록번호가 잘못입력되었습니다.....');
        a_obj.focus();
        return false;
    }
    return true;
}

//사업자등록번호 체크 214-83-00596

function f_biz_chk(a_obj){ 

	var str_biz = a_obj.replace(/\-/gi, "");

	if (str_biz.length != 10) { 
		return false; 
	} 

	var calStr1 = "13713713", biVal = 0,tmpCal; 
	var calLast = str_biz.substring(9,10); 

	for (i=0; i < 8; i++) { 
		biVal = biVal + (parseFloat(str_biz.substring(i,i+1)) * parseFloat(calStr1.substring(i,i+1))) % 10; 
	} 
	tmpCal = parseFloat(str_biz.substring(8,9)) * 5 + "0"; 
	chkVal = parseFloat(tmpCal.substring(0,1)) + parseFloat(tmpCal.substring(1,2)); 
	chkDigit = (10 - (biVal + chkVal) % 10) % 10; 

	if (calLast != chkDigit) { 
//		alert("사업자등록번호가 잘못 입력되었습니다."); 
		return false; 
	}else{
		return true;
	}
}



// 입력한 숫자가 한라릿수 1~9 일경우 0을 붙여준다 ex) 01~09, object
function f_lpad(varno, len, padding_char) {
	if (varno.value.length > 0 && varno.value.length < len) {
	    for (var i = 1; i < len; i++) {
	        varno.value = padding_char + varno.value;
	    }
	}
}

function isYYYYMMDD(y, m, d) {
        switch (m) {
        case 2:        // 2월의 경우
                if (d > 29) return false;
                if (d == 29) {
                        // 2월 29의 경우 당해가 윤년인지를 확인
                        if ((y % 4 != 0) || (y % 100 == 0) && (y % 400 != 0))
                                return false;
                }
                break;
        case 4:        // 작은 달의 경우
        case 6:
        case 9:
        case 11:
                if (d == 31) return false;
        }
        // 큰 달의 경우
        return true;
}
function isNumeric(s) {
        for (i=0; i<s.length; i++) {
                c = s.substr(i, 1);
                if (c < "0" || c > "9") return false;
        }
        return true;
}

function isSSN(s1, s2) {
        n = 2;
        sum = 0;
        for (i=0; i<s1.length; i++)
                sum += parseInt(s1.substr(i, 1)) * n++;
        for (i=0; i<s2.length-1; i++) {
                sum += parseInt(s2.substr(i, 1)) * n++;
                if (n == 10) n = 2;
        }
        c = 11 - sum % 11;
        if (c == 11) c = 1;
        if (c == 10) c = 0;
        if (c != parseInt(s2.substr(6, 1))) return false;
        else return true;
}

//////////////////////////////////////////////////////
// 한글만 입력
function hangul(){ 
	if((event.keyCode < 12592) || (event.keyCode > 12687)) 
	event.returnValue = false 
} 

// 영어만
function isEng(str) { 
	for(var i=0;i<str.length;i++){                 
		achar = str.charCodeAt(i);                  
        if( achar > 255 ){ 
			return false; 
		} 
    } 
	return true; 
} 


//자동콤마
 function numberOnly()
 {
  if ( 
   (
    (event.keyCode==190) || (event.keyCode>=96 && event.keyCode<=105) || (event.keyCode==110)
    || (event.keyCode>47 && event.keyCode<58) || event.keyCode==8 || event.keyCode==16 
    || event.keyCode==116 || event.keyCode==18 || event.keyCode==9 
    || (event.keyCode>=37 && event.keyCode<=40) || event.keyCode==46
   ) == false
   )
  {
   event.returnValue=false;
  }
 }

 var tmpNC="";
 function numberComma(obj)
 {
  if(tmpNC==obj.value) return;
  tmpNC=obj.value;
  obj.value=numberComma2(tmpNC);
 }
 function numberComma2(s)
 {
  s=s.replace(/\D/g,"");
  l=s.length-3;
  while(l>0) {
   s=s.substr(0,l)+","+s.substr(l);
   l-=3;
  }
  return s;
 }

function ItisPopup(opt){
	var scroll		= "scrollbars";
	var toolbar		= ",toolbar=no";
	var locate		= ",location=no,directories=no";
	var status		= ",status=no";
	var menubar		= ",menubar=no";
	var resize		= ",resizable=no";
	var PopSize		= ",width=500,height=400";
	var PopName		= "itisMem";
	var popItem		= scroll + toolbar + locate + status + menubar + resize + PopSize;
	var href		= "";
	switch(opt) {
		case "3" :
			href = "http://www.itis.or.kr/member/join.asp?signupfrom=EUREKA";
			break; 
		case "4" :
			href = "http://www.itis.or.kr/member/find.asp";
			break;
		case "5" :
			href = "http://www.itis.or.kr/member/myInfo.asp";
			break;
		default : 
	}
	window.open(href, PopName, popItem); 
}
