function is_number(val) {
   var digit = 0;
   var i = 0;
   var dig;
    
   for (i=0; i<val.length; i++) {
	  dig = val.substring(i, i+1);
	  if (dig < '0' || dig > '9') {
	  	digit = digit + 1;
	  }
   }
   if (digit != 0) return false;
   return true;
}

function CheckRID(first, last) {
	ERRORMSG = "[ÁÖ¹Îµî·Ï¹øÈ£]°¡ Àß¸ø µÇ¾ú½À´Ï´Ù.";
	if (first.length != 6) return false; //¾ÕÀÚ¸® 6ÀÚ¸®
	if (last.length != 7) return false; //µÞÀÚ¸® 7ÀÚ¸®
	    
	if (first == '' || !is_number(first)) return false; // ÁÖ¹Î¹øÈ£°¡ ºñ¾ú°Å³ª, ¼ýÀÚ ÀÌ¿ÜÀÇ °ªÀ» °®À½
	if (last == '' || !is_number(last)) return false;

	if (first.substring(2,3) > 1 || first.substring(4,5) > 3) return false;
	if (last.substring(0,1) > 4 || last.substring(0,1) == 0) return false;

	full_str = first + last;
	var i = 0;
	var cnt = 1;
	var check_digit = 0;
	for (i=0; i<full_str.length-1; i++) {
		if (cnt >=9 ) {
			cnt = 1;
		}
		cnt += 1;
		check_digit += eval(full_str.substring(i, i+1)) * cnt;
	}
   check_digit = check_digit%11;
   check_digit = 11 - check_digit;
   check_digit = check_digit%10;
   
   if (check_digit != full_str.substring(12,13)) return false;
   return true;
}

function StringSize (s) {
	var i;
	var len = 0;
	for ( i=0 ; i<s.length; i++) {
		if ( s.charCodeAt(i) > 255 ) {
			len += 2;
		} else {
			len ++;
		}
	}
	return len;
}

function DisableLeap (radioSolar, checkLeap) {
	if (radioSolar.checked) {
		checkLeap.checked = false;
		checkLeap.disabled = true;
	} else {
		checkLeap.disabled = false;
	}
}

function DisableMarry (radioMarry, checkMyy, checkMmm, checkMdd) {
	if (radioMarry.checked) {
		checkMyy.disabled = false;
		checkMmm.disabled = false;
		checkMdd.disabled = false;
	} else {
		checkMyy.disabled = true;
		checkMmm.disabled = true;
		checkMdd.disabled =true;
	}
}

function autoSkip(from, target, length) {
    len = from.value.length;

    if ( len == length ) {
        target.focus();
        return;
    }
}

function getHowOld(pid1, pid2,  nStartYear) {
	var yy = parseInt(pid1.substring(0,2), 10);
	var s =parseInt(pid2.substring(0,1));
	
	if (s == 3 || s == 4 ) {
		yy += 2000;
	} else {
		yy += 1900;
	}
	return nStartYear - yy;
}

function SetBirth (nStartYear) {
	var f = document.f;

	if (!CheckType(f.user_pid1.value, NUM)) {
		alert ("[ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕºÎºÐ]¿¡ Àß¸øµÈ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.");
		f.user_pid1.focus();
		return false;
	}

	var yy = parseInt(f.user_pid1.value.substring(0,2), 10);
	var mm = parseInt(f.user_pid1.value.substring(2,4), 10);
	var dd = parseInt(f.user_pid1.value.substring(4,6), 10);

	var s = f.user_pid2.value.substring(0,1);
	
	if (s == 3 || s == 4 ) {
		yy += 2000;
	} else {
		yy += 1900;
	}

	f.user_byy.value = yy;
	f.user_bmm.value = mm;
	f.user_bdd.value = dd;

	
	return true;
}
function CheckTypeLen(s,spc,len) {
	if (!CheckType(s,spc)) {
		return false;
	} else if (s.length != len){
		return false;
	} else {
		return true;
	}
}


function CheckLenKr (s, name, nMin, nMax, bIsConsonant) {
	var nStrSize = StringSize(s);
	var cPostN, cPostL;
	
	if (bIsConsonant) {
		cPostL = "À»";
		cPostN = "Àº";
	} else {
		cPostL = "¸¦";
		cPostN = "´Â";
	}
	
	if (nStrSize == 0 && nMin > 0) {
		ERRORMSG = name + cPostL + "  ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.";
		return false;
	}
	if (nMin == 0 && nStrSize > nMax) {
		ERRORMSG = name + cPostN + " ÇÑ±Û " + Math.floor(nMax/2) +
			"ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.\n\nÇöÀç ÀÔ·ÂµÈ ±æÀÌ : " +
			nStrSize/2 + "ÀÚ";
		return false;
	}
	if (nStrSize < nMin || nStrSize > nMax) {
		ERRORMSG = name + cPostN + " ÇÑ±Û " + Math.ceil(nMin/2) +
			"ÀÚ ÀÌ»ó, " + Math.floor(nMax/2) +
			"ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.\n\nÇöÀç ÀÔ·ÂµÈ ±æÀÌ : " +
			nStrSize/2 + "ÀÚ";
		return false;
	}
	
	return true;
}

function CheckLenEng (s, name, nMin, nMax, bIsConsonant) {
	var nStrSize = StringSize(s);
	var cPostN, cPostL;
	
	if (bIsConsonant) {
		cPostL = "À»";
		cPostN = "Àº";
	} else {
		cPostL = "¸¦";
		cPostN = "´Â";
	}
	
	if (nStrSize == 0 && nMin > 0) {
		ERRORMSG = name + cPostL + "  ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.";
		return false;
	}
	if (nMin == 0 && nStrSize > nMax) {
		ERRORMSG = name + cPostN + " " + nMax +
			"ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.\n\nÇöÀç ÀÔ·ÂµÈ ±æÀÌ : " +
			nStrSize + "ÀÚ";
		return false;
	}
	if (nStrSize < nMin || nStrSize > nMax) {
		ERRORMSG = name + cPostN + " " + nMin +
			"ÀÚ ÀÌ»ó, " + nMax +
			"ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.\n\nÇöÀç ÀÔ·ÂµÈ ±æÀÌ : " +
			nStrSize + "ÀÚ";
		return false;
	}
	
	return true;
}

function CheckPassword (sPass, sRepass) {
	if (!CheckType(sPass, PASSWORD)) {
		ERRORMSG = "[ºñ¹Ð¹øÈ£]´Â ¿µ¹®, ¼ýÀÚ, Æ¯¼ö¹®ÀÚ(! @ . # , $ % ^ * & _ -)À¸·Î\n\n4±ÛÀÚ ÀÌ»óÀ¸·Î ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù."
		return false;
	}

	if ( !CheckLenEng(sPass, "[ºñ¹Ð¹øÈ£]", 4, 22, 0) ) {
		return false;
	}

	if (sPass != sRepass) {
		ERRORMSG = "[ºñ¹Ð¹øÈ£]°¡ [ºñ¹Ð¹øÈ£ È®ÀÎ]°ú ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.";
		return false;
	}
	
	return true;
}

function CheckEmail (sEmail) {
	if (!CheckType(sEmail, EMAIL)) {
		ERRORMSG = "¿¡ Àß¸øµÈ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.";
		return false;
	}

	if ( !CheckLenEng (sEmail, "", 0, 64, 0) ) {
		return false;
	}
	
	var a = sEmail.indexOf('@');
	if ( a <=0 || a == sEmail.length -1 ) {
		ERRORMSG = "´Â aaa@bbb.ccc.ddd µîÀÇ ÇüÅÂ·Î ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.";
		return false;
	}

	return true;
}

function CheckBAN (s,ban) {
	var i;
	for(i=0; i<s.length; i++) {
		if (ban.indexOf( s.substring(i, i+1)) >= 0) {
			return false;
		}
	}

	return true;
}



function CheckAddr (pc1, pc2, addr1, addr2, addr4, sName) {

	if (!CheckType(pc1, NUM)) {
		ERRORMSG = sName + "ÀÇ ¿ìÆí¹øÈ£¿¡ Àß¸øµÈ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.";
		return 1;
	}
	if (!CheckType(pc2, NUM)) {
		ERRORMSG = sName + "ÀÇ ¿ìÆí¹øÈ£¿¡ Àß¸øµÈ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.";
		return 1;
	}
	if(!CheckLenEng (pc1, sName+'ÀÇ ¿ìÆí¹øÈ£' , 3, 4, 0)) {
		return 1;
	}
	if(!CheckLenEng (pc2, sName+'ÀÇ ¿ìÆí¹øÈ£' , 3, 4, 0)) {
		return 1;
	}

	if (addr1 == "" || addr2 == "" ) {
		ERRORMSG = "[ÁÖ¼Ò ÀÔ·Â] ¹öÆ°À» ¼±ÅÃÇÏ¿© ÀÔ·ÂÇÑ ÈÄ [³ª¸ÓÁö ÁÖ¼Ò]¸¦ ÀÔ·ÂÇØ ÁÖ½Ê½Ã¿À.";
		return 1;
	}
	
	// ¼öµ¿ ÁÖ¼ÒÀÔ·Â ºÎºÐ(¹øÁö)
	if (!CheckBAN(addr4, "\"<>")) {
		ERRORMSG = sName + "ÀÇ ³ª¸ÓÁö ÁÖ¼Ò¿¡ Àß¸øµÈ ¹®ÀÚ  <  >  È¤Àº  \"  °¡ ÀÖ½À´Ï´Ù.";
		return 1;
	}
	
	if ( !CheckLenKr(addr4, sName + "ÀÇ ³ª¸ÓÁö ÁÖ¼Ò" , 1, 128, 0) ) {
		return 1;
	}
	
	return 0;
}

function CheckPhone (num1, num2, num3, sName) {
	// check type
	if (!CheckType(num1, NUM)) {
		ERRORMSG = sName + "¿¡ Àß¸øµÈ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.";
		return 1;
	}
	if (!CheckType(num2, NUM)) {
		ERRORMSG = sName + "¿¡ Àß¸øµÈ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.";
		return 2;
	}
	if (!CheckType(num3, NUM)) {
		ERRORMSG = sName + "¿¡ Àß¸øµÈ ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.";
		return 3;
	}

	// length check
	if ( !CheckLenEng(num1, sName, 1, 4, 0) ) {
		return 1;
	}
	if ( !CheckLenEng(num2, sName, 1, 4, 0) ) {
		return 2;
	}
	if ( !CheckLenEng(num3, sName, 1, 4, 0) ) {
		return 3;
	}

	return 0;
}

function CheckIDFormat (sUserID, form_name) {
	if (!CheckType(sUserID, SALPHA+NUM)) {
		ERRORMSG =  form_name+ "´Â ¿µ¹® ¼Ò¹®ÀÚ¿Í ¼ýÀÚ·Î,\n\nÃ¹ ±ÛÀÚ´Â ²À ¿µ¹® ¼Ò¹®ÀÚ·Î ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.";
		return false;
	} else if ( NUM.indexOf(sUserID.charAt(0)) >= 0) {
		ERRORMSG =  form_name+ "ÀÇ Ã¹ ±ÛÀÚ´Â ²À ¿µ¹® ¼Ò¹®ÀÚ·Î ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.";
		return false;
	} else if (sUserID.substring(0,5)=="admin" || sUserID.substring(0,5)=="guest") {
		ERRORMSG =  form_name+ "´Â adminÀÌ³ª guest·Î ½ÃÀÛÇÒ ¼ö ¾ø½À´Ï´Ù.";
		return false;
	} else if ( !CheckLenEng(sUserID,  form_name , 4, 16, 0) ) {
		return false;
	} else {
		return true;
	}
}










