// ----------------------------------------------------------------------------
//  文字列チェック関数
//
//  true    全て有効文字(A〜Z,a〜z,-, 0〜9)
//  false   A〜Z,a〜z,-,0〜9以外の文字が含まれている
// ----------------------------------------------------------------------------
function validateString(checkStr)
{
	var checkOK   = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-";
	var allValid  = true;
	var decPoints = 0;
	var allNum    = "";

	for (var i = 0; i < checkStr.length; i++)
	{
		var ch = checkStr.charAt(i);
		for (var j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;

		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}

		allNum += ch;
	}

	return allValid;	
}

function validateAddress(checkStr)
{
	var checkOK   = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-.";
	var allValid  = true;
	var decPoints = 0;
	var allNum    = "";

	for (var i = 0; i < checkStr.length; i++)
	{
		var ch = checkStr.charAt(i);
		for (var j = 0; j < checkOK.length; j++)
			if (ch == checkOK.charAt(j))
				break;

		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}

		allNum += ch;
	}
	
	return allValid;
}

function validateStringEx(checkStr)
{
	var checkOK   = ";0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-\\^-!#$%&'()=~|@[]+*:?<>`/_:.";
	var allValid  = true;
	var decPoints = 0;
	var allNum    = "";
	
	for (var i = 0; i < checkStr.length; i++)
	{
		var ch = checkStr.charAt(i);
				
		for (var j = 0; j < checkOK.length; j++)
		{
			if (ch == checkOK.charAt(j))
				break;
		}
		
		if (j == checkOK.length)
		{		
			allValid = false;
			break;
		}

		allNum += ch;
	}

	return allValid;	
}

// ----------------------------------------------------------------------------
//  メールアドレスチェック関数
//
//  true    全て有効文字(A〜Z,a〜z,-,ア〜ン,0〜9,@,.,)
//  false   A〜Z,a〜z,-,ア〜ン,0〜9,@,.,以外の文字が含まれている
// ----------------------------------------------------------------------------
function validateMailAddressString(checkStr)
{
	var checkOK   = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-@._";
	var allValid  = true;
	var decPoints = 0;
	var allNum    = "";

	for (var i = 0; i < checkStr.length; i++)
	{
		var ch = checkStr.charAt(i);
		for (var j = 0; j < checkOK.length; j++)
		{
			if (ch == checkOK.charAt(j))
				break;
		}
		
		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}

		allNum += ch;
	}

	return allValid;	
}

// ----------------------------------------------------------------------------
//  文字列長チェック関数
//
//  true    有効
//  false   無効
// ----------------------------------------------------------------------------
function validateStringLen(string, min, max)
{
	var str = string;
		
	if ((str.length < min) || (str.length > max)) 
	{
		return false;
	}
	else 
	{
		return true;
	}
}

// ----------------------------------------------------------------------------
//  数字列チェック関数
//
//  true    全て有効文字(0〜9)
//  false   0〜9以外の文字が含まれている
// ----------------------------------------------------------------------------
function IsNumber(num)
{
	for (var i = 0; i < num.length; i++)
	{
		if (isNaN(parseInt(num.charAt(i), 10))) 
			return (false);
	}
	
	if (parseInt(num, 10) < 0)
		return (false);
	
	return (true);
}

// ----------------------------------------------------------------------------
//  メールアドレスチェック関数
//
//  true    @の前後に文字が存在する
//  false   @の前後に文字が存在しない
// ----------------------------------------------------------------------------
function IsMailAddress(address)
{
	var exist = false;
	
	if(address.match(/^[A-Za-z0-9]+[\w\._-]+@[\w\.-]+\.\w{2,}$/)){
		exist = true;
	}
	/*for (var i = 0; i < address.length; i++)
	{
		if (address.charAt(i) == "@") 
		{
			if (i == 0)
				return false;
				
			exist = true;
			if (i + 1 == address.length)
				return false;	
		}
	}
	
	if (address.length == 0)
		exist = false;*/
			
	return exist;
}

/****************************************************************
* 機　能： 入力された値が日付でYYYY/MM/DD形式になっているか調べる
* 引　数： datestr　入力された値
* 戻り値： 正：true　不正：false
****************************************************************/
function ckDate(datestr) {
    // 正規表現による書式チェック
    if(!datestr.match(/^\d{4}\/\d{2}\/\d{2}$/)){
        return false;
    }
    var vYear = datestr.substr(0, 4) - 0;
    var vMonth = datestr.substr(5, 2) - 1; // Javascriptは、0-11で表現
    var vDay = datestr.substr(8, 2) - 0;
    // 月,日の妥当性チェック
    if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){
       	var vDt = new Date(vYear, vMonth, vDay);
        if(isNaN(vDt)){
            return false;
        }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){
            return true;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

/**
 * 古いブラウザでは日本語 1 文字を 2 と数えますが、
 * Internet Explorer 4.0 以降、Netscape Communicator 4.06（XXX）以降では
 * 日本語 1 文字を 1 と数えるので注意が必要です
 * 日本語を 2 として数えるには次のような関数を用いてください
 */
function jstrlen(str) {
   len = 0;
   str = escape(str);
   for (i = 0; i < str.length; i++, len++) {
      if (str.charAt(i) == "%") {
         if (str.charAt(++i) == "u") {
            i += 3;
            len++;
         }
         i++;
      }
   }
   return len;
}

/*
function FrontPage_Form2_Validator(theForm)
{
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜0123456789-";
	var checkStr = theForm.T1.value;
	var allValid = true;
	
	for (var i = 0;  i < checkStr.length;  i++)
	{
	    var ch = checkStr.charAt(i);
		for (var j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}
	}
  
	if (!allValid)
	{
		alert("Please enter only letter and digit characters in the \"T1\" field.");
		theForm.T1.focus();
		return (false);
	}
	return (true);
}
*/

