/*******************************************************************************
   1. ÆÄ    ÀÏ    ¸í : function.js
   2. ¾÷¹« ½Ã½ºÅÛ ¸í : °øÅë
   3. ¿ø  µµ  ¿ì  ¸í : ½Ã½ºÅÛ °øÅë ÇÔ¼ö
   4. ¼³          ¸í : ½Ã½ºÅÛ °øÅë ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼öÀÌ´Ù.
   5. ÀÛ    ¼º    ÀÚ : °­¼º¿í(2009/02/18)
--------------------------------------------------------------------------------
   6. ÀÌ          ·Â :
      °­¼º¿í(2009/02/18) - ÃÖÃÊ ÀÛ¼º
*******************************************************************************/

/**
 * ÀÔ·Â°ªÀÌ "" ÀÎÁö¸¦ °Ë»çÇÑ´Ù.
 *
 * @param str   ¹®ÀÚ¿­
 * @return
 */
function isEmpty(str)
{
	str = trim(str);

	if(strlen(str) == 0) {
        return true;
	}

	return false;
}

/**
 * ÀÔ·Â°ªÀÇ Å©±â¸¦ °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @param min	ÃÖ¼Ò ÀÚ¸®¼ö
 * @param max	ÃÖ´ë ÀÚ¸®¼ö
 * @return
 */
function ValidSize(str, min, max)
{
	if(!(strlen(str) >= min && strlen(str) <= max))
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ¼ýÀÚÀÎÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function Number(str)
{

	for(var i=0; i < str.length ; i++)
	{
		var code = str.charCodeAt(i);

		if ((code < 48) || (code > 57))
		{
			return false;
		}
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ÇÑ±ÛÀÎÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function Korean(str)
{
	for(var i=0; i < str.length ; i++)
	{
		var code = str.charCodeAt(i);

		if (!(code > 255))
		{
			return false;
		}
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ¿µ¹®ÀÎÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function Alphabet(str)
{
	for(var i=0; i < str.length ; i++)
	{
		var code = str.charCodeAt(i);

		if (!((code >= 65) || (code <= 122)))
		{
			return false;
		}
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ¿µ¹® ¶Ç´Â ¼ýÀÚÀÎÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function AlphaNumeric(str)
{
	for(var i=0; i < str.length ; i++)
	{
		var code = str.charCodeAt(i);

		if(!((code >= 65) && (code <= 122)) && !((code >= 48) && (code <= 57)))
		{
			return false;
		}
	}

	return true;
}

/**
 * µÎ °´Ã¼ÀÇ °ªÀÌ µ¿ÀÏÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str1	¹®ÀÚ¿­1
 * @param str2	¹®ÀÚ¿­2
 * @return
 */
function Same(str1, str2)
{
	if(str1 != str2)
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ¾ÆÀÌµð¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 * - ¾ÆÀÌµðÇü½Ä : ¿µ¹®, ¼ýÀÚ, _ ¸¦ »ç¿ëÇÏ¿© 5ÀÚÀÌ»ó 10ÀÚÀÌÇÏ
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function Id(str)
{
	if(!ValidSize(str, 5, 10))
	{
		return false;
	}

	if(!AlphaNumeric(str))
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ E-Mail¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function Mail(str)
{
	var i = str.indexOf("@");
	if(i < 0)
	{
		return false;
	}

	i = str.indexOf(".");
	if(i < 0)
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ÁÖ¹Î¹øÈ£¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str1	¹®ÀÚ¿­1
 * @param str1	¹®ÀÚ¿­2
 * @return
 */
function Jumin(str1, str2)
{
	if(!ValidSize(str1, 6, 6, msg + " ¾ÕÀÚ¸®"))
	{
		return false;
	}

	if(!ValidSize(str2, 7, 7, msg + " µÞÀÚ¸®"))
	{
		return false;
	}

	var hap = 0;
	for(var i = 0; i < 6; i++)
	{
		var temp = str1.charAt(i) * (i+2);
		hap += temp;
	}

	var n1 = str2.charAt(0);
	var n2 = str2.charAt(1);
	var n3 = str2.charAt(2);
	var n4 = str2.charAt(3);
	var n5 = str2.charAt(4);
	var n6 = str2.charAt(5);
	var n7 = str2.charAt(6);

	hap += n1*8+n2*9+n3*2+n4*3+n5*4+n6*5;
	hap %= 11;
	hap = 11 - hap;
	hap %= 10;

	if(hap != n7)
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ÀüÈ­¹øÈ£¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str1	¹®ÀÚ¿­1
 * @param str2	¹®ÀÚ¿­2
 * @param str3	¹®ÀÚ¿­3
 * @return
 */
function Phone(str1, str2, str3)
{
	if(!Number(str1) || !ValidSize(str1, 2, 3))
	{
		return false;
	}

	var ddd = ["02", "051", "053", "032", "062", "042", "052", "031", "033", "041", "043", "054", "055", "061", "063", "064"];

	var flag = false;
  	for(var i=0;i<ddd.length;i++)
	{
		if(ddd[i] == str1)
		{
			flag = true;
		}

	}

	if(!flag)
	{
		return false;
	}

	if(!Number(str2) || !ValidSize(str2, 3, 4))
	{
		return false;
	}

	if(!Number(str3) || !ValidSize(str3, 4, 4))
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ÀüÈ­¹øÈ£¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str1	¹®ÀÚ¿­1
 * @param str2	¹®ÀÚ¿­2
 * @param str3	¹®ÀÚ¿­3
 * @return
 */
function Cellular(str1, str2, str3)
{
	if(!Number(str1) || !ValidSize(str1, 3, 3))
	{
		return false;
	}

	var ddd =["010", "011","016","017","018","019"];

	var flag = false;
  	for(var i = 0; i < ddd.length;i++) {
		if(ddd[i] == str1)
		{
			flag = true;
		}
	}

	if(!flag)
	{
		return false;
	}

	if(!Number(str2) || !ValidSize(str2, 3, 4))
	{
		return false;
	}

	if(!Number(str3) || !ValidSize(str3, 4, 4))
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ¿¬µµ¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function ValidYear(str)
{
	var year = parseInt(trim(str), 10);

	if(!Number(str) || !ValidSize(str, 4, 4) || !(year >= 0))
	{
		return false;
	}

	return true;

}

/**
 * °´Ã¼ÀÇ °ªÀÌ ¿ù¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function ValidMonth(str)
{
	var month = parseInt(trim(str), 10);


	if(!Number(str) || parseInt(month) > 12 || parseInt(month) < 1)
	{
		return false;
	}

	return true;

}

/**
 * °´Ã¼ÀÇ °ªÀÌ ÀÏ¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù. (»èÁ¦´ë»ó)
 *
 * @param str1	¹®ÀÚ¿­1
 * @param str2	¹®ÀÚ¿­2
 * @param str3	¹®ÀÚ¿­3
 * @return
 */
function ValidDay(str1, str2, str3)
{
	return ValidDate(str1, str2, str3)
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ½Ã¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function ValidHour(str)
{
	var hour = parseInt(trim(str), 10);


	if(!Number(str) || parseInt(hour) > 23 || parseInt(hour) < 0)
	{
		return false;
	}

	return true;

}

/**
 * °´Ã¼ÀÇ °ªÀÌ ºÐ¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function ValidMinute(str)
{
	var minute = parseInt(trim(str), 10);


	if(!Number(str) || parseInt(minute) > 59 || parseInt(minute) < 0)
	{
		return false;
	}

	return true;

}

/**
 * °´Ã¼ÀÇ °ªÀÌ ÃÊ¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function ValidSecond(str)
{
	var second = parseInt(trim(str), 10);


	if(!Number(str) || parseInt(second) > 59 || parseInt(second) < 0)
	{
		return false;
	}

	return true;

}

/**
 * °´Ã¼ÀÇ °ªÀÌ ÀÏ¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str1	¹®ÀÚ¿­1
 * @param str2	¹®ÀÚ¿­2
 * @param str3	¹®ÀÚ¿­3
 * @return
 */
function ValidDate(str1, str2, str3)
{

	var year = parseInt(trim(str1), 10);
	var month = parseInt(trim(str2), 10) - 1;
	var day = parseInt(trim(str3), 10);


	if(!ValidYear(str1))
	{
		return false;
	}

	if(!ValidMonth(str2))
	{
		return false;
	}

	var endDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
	{
		endDay[1] = 29;
	}

	if(!Number(str3) || !(day >= 1 && day <= endDay[month]))
	{
		return false;
	}

	return true;
}

/**
 * °´Ã¼ÀÇ °ªÀÌ ¿¬¿ù¿¡ ÀûÇÕÇÑÁö °Ë»çÇÑ´Ù.
 *
 * @param str1	¹®ÀÚ¿­1
 * @param str2	¹®ÀÚ¿­2
 * @return
 */
function ValidYearMonth(str1, str2)
{
	var year = parseInt(trim(str1), 10);
	var month = parseInt(trim(str2), 10);


	if(!ValidYear(str1) || !ValidMonth(str2))
	{
		return false;
	}

	return true;
}




