/**********************************************************************************************
  ÇÁ·Î±×·¥ : Common JavaScript
  ÀÛ¾÷ÀÚ : 2005.09.06 choko ÃÖÃÊÀÛ¼º

  1.f_idCheck(id)		: ¾ÆÀÌµð Çü½ÄÃ¼Å©
  2.f_pwdCheck(pwd)		: ºñ¹Ð¹øÈ£ Çü½ÄÃ¼Å© (2010.08.18 bbanga ÃÖ¼Ò±æÀÌ 4ÀÚ¸®->6ÀÚ¸®·Î º¯°æ)
***********************************************************************************************/


/*
 * BIZ »óÁ¡ID,¿î¿µÀÚID Çü½ÄÃ¼Å©
 * IDÇü½Ä
 * 1) ÀÚ¸´¼ö : 4 ~ 15 Byte
 * 2) Æ¯¼ö¹®ÀÚ : ¼Ò¹®ÀÚ¸¸ °¡´É, '_'´Â ÇÑ¹ø¸¸ »ç¿ë°¡´É, ¸Ç ¾Õ°ú µÚ¿¡´Â »ç¿ëºÒ°¡, ±âÅ¸ Æ¯¼ö¹®ÀÚ »ç¿ë±ÝÁö
 */
function f_idCheck(id){

	if( id.match("^([0-9a-z]+(_)?[0-9a-z]+)$")
		&& id.length >=4 && id.length <= 15 ){
		return true;
	}

	return false;
}

function f_idCheckPrefix(id){
    if( id.match("^([A-Z]{2}_)[0-9a-z]+$") ){
        return true;
    }
    return false;
}

/**
 * Biz ºñ¹Ð¹øÈ£ Çü½ÄÃ¼Å© (2010.08.18 bbanga ÃÖ¼Ò±æÀÌ 4ÀÚ¸®->6ÀÚ¸®·Î º¯°æ)
 * ºñ¹Ð¹øÈ£ Çü½Ä
 * 1) ÀÚ¸´¼ö : 6 ~ 15 Byte
 * 2) Æ¯¼ö¹®ÀÚ : »ç¿ëºÒ°¡
 * 3) ¾ÆÀÌµð¿Í ºñ¹Ð¹øÈ£´Â Æ²·Á¾ß ÇÑ´Ù.
 * 4) ¼ýÀÚ³ª ¹®ÀÚ°¡ 4¹øÀÌ»ó ¿¬¼Ó ¶Ç´Â ¹Ýº¹µÇ¾î¼­´Â ¾ÈµÈ´Ù.
 */
function f_pwdCheck(id,pwd){

	// 1) 6-15ÀÚ¸®ÀÇ ¼ýÀÚ¶Ç´Â ¿µ¹®ÀÚ·Î¸¸ ÀÌ·ç¾îÁø ¹®ÀÚ¿­ÀÌ ¾Æ´ÑÁö check
	if( !pwd.match("^([0-9a-zA-Z]{6,15})$") ){
		return false;
	// 2) ºñ¹Ð¹øÈ£°¡ ID¿Í °°Àº ¹®ÀÚ¿­ÀÎÁö check
	} else if( pwd == id ){
		return false;
	// 3) ¼ýÀÚ³ª ¹®ÀÚ°¡ 4¹øÀÌ»ó ¿¬¼Ó ¶Ç´Â ¹Ýº¹ µÇ¾ú´ÂÁö check
	} else if( f_continueCountCheck(pwd,4) || f_repeatCountCheck(pwd,4) ){
		return false;
	}

	return true;
}

/**
 * ¹Ýº¹µÈ ¼ýÀÚ ¶Ç´Â ¹®ÀÚ¿­ check.
 * ÀÎ¼ö·Î ¹ÞÀº repeatLimit¸¸Å­ ¹Ýº¹µÇ¸é true¹ÝÈ¯
 */
function f_continueCountCheck(pwd,continueLimit){

	var bContinue = false;

	var beforeValue = pwd.charCodeAt(0);
	var continueCount = 1;

	for(var i=1 ; i < pwd.length ; i++){
		if( pwd.charCodeAt(i) == beforeValue + 1 ){
			continueCount++;
			if( continueCount >= continueLimit ){
				bContinue = true;
				break;
			}
		} else {
			continueCount = 1;
		}
		beforeValue = pwd.charCodeAt(i);
	}

	return bContinue;
}

/**
 * ¹Ýº¹µÈ ¼ýÀÚ ¶Ç´Â ¹®ÀÚ¿­ check.
 * ÀÎ¼ö·Î ¹ÞÀº repeatLimit¸¸Å­ ¹Ýº¹µÇ¸é true¹ÝÈ¯
 */
function f_repeatCountCheck(pwd,repeatLimit){

	var bRepeat = false;

	var beforeValue = pwd.charCodeAt[0];
	var repeatCount = 1;

	for(var i=0 ; i < pwd.length ; i++){
		if( pwd.charCodeAt(i) == beforeValue ){
			repeatCount++;
			if( repeatCount >= repeatLimit ){
				bRepeat = true;
				break;
			}
		} else {
			repeatCount = 1;
		}
		beforeValue = pwd.charCodeAt(i);
	}

	return bRepeat;
}

