/***********************************************************************
  String
 ***********************************************************************/

// 文字列がメールアドレスかどうかを判定
String.prototype.isMailAddress = function ()
{
	var laValue = this.split("@");

	// 不正な文字がないかチェック
	if (this == "" || this.match(/[^0-9a-zA-Z\@\.\-\_\%]/))
		return false;

	// @が1つだけかチェック
	if (laValue.length != 2)
		return false;

	// アカウントとドメインが空でないかチェック
	if (laValue[0] == "" || laValue[1] == "")
		return false;

	var laDomain = laValue[1].split(".");

	// ドメインにドットがあるかチェック
//	if (laDomain.length < 2)
	if (laValue[1].search(/\./) < 0)
		return false;

	// ドメインの各セグメントが空でないかチェック
	for (var i = 0; i < laDomain.length; i++)
		if (laDomain[i] == "")
			return false;

	// TLDに不正な文字がないかチェック
	var lsTLD = laDomain.pop();
	if (lsTLD.match(/[^a-zA-Z]/))
		return false;

	return true;
}


/***********************************************************************
  Number
 ***********************************************************************/

Number.prototype.format = function (lnDigit)
{
	var lsNumber = this.toString();
	if (lsNumber.length < lnDigit)
		while (lsNumber.length < lnDigit)
			lsNumber = "0" + lsNumber;
	else if (lnDigit > 0 && lsNumber.length > lnDigit)
		lsNumber = lsNumber.substring(lsNumber.length - lnDigit, lsNumber.length);
	else if (lnDigit < 0)
	{
		var lnLength = 0;
		if (lsNumber.indexOf(".") >= 0)
			lnLength = lsNumber.substring(lsNumber.indexOf(".") + 1, lsNumber.length).length;
		else
			lsNumber += ".";
		for (var i = 0; i > lnDigit + lnLength; i--)
			lsNumber += "0";
	}
	return lsNumber;
}

Number.prototype.round = function (lnDigit)
{
	var ln = this;
	if (lnDigit > 0)
		for (var i = 0; i < lnDigit; i++)
			ln /= 10;
	else
		for (var i = 0; i > lnDigit; i--)
			ln *= 10;
	ln = Math.round(ln) * Math.pow(10, lnDigit);
	if (String(ln).indexOf(".") >= 0)
		ln = Number(String(ln).substring(0, String(ln).indexOf(".") + Math.abs(lnDigit) + 1));
	return ln;
}
