
function isBlank(val)
{
	for (var i = 0; i < val.length; i++)
	{
		var test = val.charAt(i);
		if ((test != ' ') && (test != '　') && (test != '\n') && (test != '\t'))
			return false;
	}
	return true;
}

function isValidEmail(str)
{
	//var regex = new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$");
    //return regex.test(str);
    
	if (!str) return false;
	if (isBlank(str) == true) return false;

	var at_loc = str.indexOf("@");
	var dot_loc = str.lastIndexOf(".");

	if ((at_loc == "-1") || (dot_loc == "-1") || (dot_loc < at_loc) || (dot_loc == (str.length-1)))
		return false;

	var iChars = "*|\":<>[]{}`\';()&$#%!=?\\";
	for (var i = 0; i < str.length; i++) {
		wstr = str.charAt(i);
		if (iChars.indexOf(wstr) != -1) {
			return false;
		}
		c = escape( wstr );
		if ( c.length > 3 )
		{
			alert("E-mailアドレスに全角文字が含まれています。");
			return false;
		}
	}
	return true;
}

function CheckEmail(email)
{
	var l, iFirst, iLast, i;
	// left trim
	l = email.length;
	iFirst = 0;
	for (i = 0; i < l; i++)
	{
		var ch = email.charAt(i);
		if (ch == ' ' || ch == '\n' || ch == ',' || ch == '\t')
			iFirst = i + 1;
		else
			break;
	}
	email = email.substring(iFirst);
	// right trim
	l = email.length;
	iLast = l;
	for (i = l - 1; i >= 0; i--)
	{
		var ch = email.charAt(i);
		if (ch == ' ' || ch == '\n' || ch == ',' || ch == '\t')
			iLast = i;
		else
			break;
	}
	email = email.substring(0, iLast);
	
	if (!isValidEmail(email))
		return false;

	return email;
}

function CheckDate(nYear, nMonth, nDate)
{
	if ((nMonth == 2)&&(nDate >= 29 ))
	{
		if (!(nYear % 4))
			nDate = 29;
		else
			nDate = 28;
	}
	else if ((nDate >= 31)&&((nMonth == 4)||(nMonth == 6)||(nMonth == 9)||(nMonth==11)))
	{
		nDate = 30;
	}
	return nDate;
}

//半角かなチェック実体
function isHankana(str){

	var i = 0;
	var oneChar = "";
	var testChar = "";
    var nn = navigator.appName.lastIndexOf("Netscape");
	var boolstatus = 0;

	//一文字ずつ見ていきます
	for ( i = 0 ; i < str.length ; i++ ){
		oneChar = str.charAt(i);	//一文字ずつ見ていく
		testChar = escape(oneChar); //アスキーコードorUnicodeに変換

        if(nn >= 0){	//ネットスケープはふつうのアスキーコードで返してきます。
        	if ( (testChar.indexOf('%A') == 0) ||
				 (testChar.indexOf('%B') == 0) ||
				 (testChar.indexOf('%C') == 0) ||
				 (testChar.indexOf('%D') == 0) ){
				 boolstatus = 1;
			}
		}
		else{			//IEはunicodeで返してきます
			if( (testChar.indexOf('%uFF6') == 0) ||
				(testChar.indexOf('%uFF7') == 0) ||
				(testChar.indexOf('%uFF8') == 0) ||
				(testChar.indexOf('%uFF9') == 0) ) {
				 boolstatus = 1;
			}
		}
	}
	
	//結果を確認します
	if ( boolstatus == 1 ){
		return true;		//半角かな
	}
	else {
		return false;		//入ってない
	}
}

/* 半角小文字英字及び数字及びハイフン、アンダーバー、カンマかをチェックする */
function IsAnks2(msg)
{
    var n = msg.length ;
    var i;

    for(i = 0; i < msg.length; i++)
    {
        if(IsAnk2(msg.charAt(i)) == false)
        {
		return false ;
        }
    }
   
    return true ;
}

/* 半角小文字英字及び数字及びハイフン、アンダーバー、カンマかをチェックする */
function IsAnk2(c) 
{
    var ank = "-.0123456789_abcdefghijklmnopqrstuvwxyz";
    var i;

    for(i = 0; i < ank.length; i++)
    {
        if(c == ank.charAt(i))
        {
            return true ;
        }
    }
    return false ;
}

/* 半角文字かどうかチェックする */
function IsAnk(c) 
{
    var ank = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ";
    var i;

    for(i = 0; i < ank.length; i++)
    {
        if(c == ank.charAt(i))
        {
            return true ;
        }
    }
    return false ;
}

/* 文字列の長さをチェックする len 以下 */
function LengthCheck(msg, len) 
{
    var n = msg.length ;
    var i;

    for(i = 0; i < msg.length; i++)
    {
        if(IsAnk(msg.charAt(i)) == false)
        {
            n ++;
        }
    }
    if(n > len) return false ;
    else        return true ;
}

//全角カナチェック
function isZenkana(str)
{
	var nn = navigator.appName.lastIndexOf("Netscape");
	var bOK = true;
	for (var i = 0; i < str.length; i++) {
		wstr = str.charAt(i);
		c = escape( wstr );		if ( c.length > 3 )
		{
			// あ〜ん までのチェック
			if(nn >= 0)
			{
				if((c >= '%82%A0') && (c <= '%82%F1'))
				{
					bOK = false;
					break;
				}
			}
			else
			{
				if((c >= '%u3042') && (c <= '%u3093'))
				{
					bOK = false;
					break;
				}
			}
		}
		else
		{
			bOK = false;
			break;
		}
		
	}
	return bOK;
}

function CheckNengetsu(nYear, nMonth)
{
	var bOK = false;
	now= new Date();

	if ((nYear == "")&&(nMonth == ""))
	{
		bOK = true;
	}
	else if ((nYear >= 1700)&&(nYear <= now.getFullYear()+10))
	{
		if (nMonth == "")
			bOK = true;
		else if ((nMonth >= 1)&&(nMonth <= 12))
			bOK = true;
	}
	return bOK;
}

function menuChangeOn(o) {o.style.backgroundColor='#d8d4d0';}
function menuChangeOff(o) {o.style.backgroundColor='#eeeeee';}


/* 半角数字かをチェックする */
function IsAnks3(msg)
{
    var n = msg.length ;
    var i;

    for(i = 0; i < msg.length; i++)
    {
        if(IsAnk3(msg.charAt(i)) == false)
        {
		return false ;
        }
    }
   
    return true ;
}

/* 半角数字かをチェックする */
function IsAnk3(c) 
{
    var ank = "0123456789";
    var i;

    for(i = 0; i < ank.length; i++)
    {
        if(c == ank.charAt(i))
        {
            return true ;
        }
    }
    return false ;
}

/* デジアルバム用機種依存文字かをチェックする */
function IsChkChrDigi(a,c) 
{
    var ank = "ｇョх援括窮欠合紫順~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]@ABCDEFGHIopqrstu_`abcdefghijklmn島這";
    var i;
    var c2;
    for(i = 0; i < c.length; i++)
    {
		for(j = 0; j < ank.length; j++)
		{
		    if(c.charAt(i) == ank.charAt(j))
		    {
				if(navigator.appName.charAt(0)=="N"){
					alert(a+"に使用できない文字が含まれています。");
				}else{
					alert(a+"に使用できない「"+ank.charAt(j)+"」が含まれています。");
				}
				return true;
		    }
		}
		c2 = escape(c.charAt(i));
		if(navigator.appName.charAt(0)=="N"){
			if(c2.match(/%3F/) != null){
				alert(a+"に使用できない文字が含まれています。");
				return true;
			}
		}else{
			if(c2.match(/%u24[0-9A-F][0-9A-F]|%u26[0-9A-F][0-9A-F]/) != null){
				alert(a+"に使用できない文字が含まれています。");
				return true;
			}
		}
		
	}
    return false ;
}
