// JavaScript Document

//テキストエリアの文字数が500文字を超えたらアラートを出す
function checkLen(){
	
	lngM = 500;
	
	strT = document.form1.comment.value;
	
	lngL = strT.length;
	
	if (lngL > lngM){
//		alert("制限文字数【" + lngM + "文字】を超えています");
		document.form1.comment.innerText = strT.substring(0, lngM);
	  alert("ご意見・ご質問は500文字以内でお願いします。");
	}

}


// メールアドレスチェック
function checkEmail(usrEmail) {

    if (usrEmail.indexOf('@') == -1) {
        alert("不正なメールアドレスです。\nメールアドレスには、@が必要です。");
        return false;
    } else if (usrEmail.indexOf(',') != -1) {
        alert("不正なメールアドレスです。\nカンマが含まれています。");
        return false;
    } else if (usrEmail.match(/[!"#$%&'\(\)=\\|,:;^\[\]\{\}`*?<>]/)) {
        alert("不正なメールアドレスです。\n「!\"#$%&'()=\\|,:;^[]{}`*?<>」のいずれかが含まれています。");
        return false;
    } else {
        // もっと厳密なチェック
        var atCount = 0;
        for (var i = 0; i < usrEmail.length; i++) {
            ch = usrEmail.substring(i, i + 1)
            if ((ch >= "A" && ch <= "Z") || (ch >= "a" && ch <= "z") || (ch >= "0" && ch <= "9") ||
                (ch == "@") ||
                (ch == ".") ||
                (ch == "_") ||
                (ch == "-")
                ) {
                    if (ch == "@") {
                        atCount++;
                    }
            } else {
                alert("不正なメールアドレスです。\n全角文字で入力していませんか？");
                return false;
            }
        }

        if (atCount > 1) {
            alert("@ が複数含まれています。");
            return false;
        }

        if (usrEmail.indexOf('@') == 0) {
            alert("不正なメールアドレスです。\n@ で始まっています。");
            return false;
        }

        if (usrEmail.indexOf('@') < usrEmail.length - 1) {
            var subStr = usrEmail.substring(usrEmail.indexOf('@') + 1);
            if (subStr.indexOf('.') == -1) {
                alert("不正なメールアドレスです。\nドメイン名に . がありません。");
                return false;
            } else if (usrEmail.indexOf('.') + 1 == usrEmail.length) {
                alert("不正なメールアドレスです。\n末尾が . です。");
                return false;
            } else {
                return true;    // 正当
            }
        } else {
            alert("不正なメールアドレスです。\n@ の後に文字がありません。");
            return false;
        }
    }
    return false;
}


function valueChk() {

		if (document.form1.kana1.value =="") {
		  alert("姓のフリガナを全角で入力してください");
			document.form1.kana1.focus();
			return;
		}
		
		if (document.form1.kana2.value =="") {
		  alert("名前のフリガナを全角で入力してください");
			document.form1.kana2.focus();
			return;
		}
		
		if (document.form1.name1.value =="") {
		  alert("姓を全角で入力してください");
			document.form1.name1.focus();
			return;
		}
		
		if (document.form1.name2.value =="") {
		  alert("名前を全角で入力してください");
			document.form1.name2.focus();
			return;
		}

		if (document.form1.telno.value =="" && document.form1.address1.value =="" && document.form1.mail.value =="" ) {
		  alert("電話番号、お住まい、メールアドレスのうち1つ以上をご記入ください。");
			return;
		}
		
//フリガナが全角ひらがな・全角カタカナ以外ならアラートを出す
		if (document.form1.kana1.value !="") {
        
				usrkana1 = new String(document.form1.kana1.value);	
				
				if (usrkana1.match(/[ぁ-ヴーk]/) == null) {
				
						alert("フリガナは全角ひらがな、または全角カタカナで記入してください。");
						return;
				
				} else {
						ret = usrkana1.match(/[ぁ-ヴーk]/g);
						if (ret.length != usrkana1.length) {
							alert("フリガナはすべて全角ひらがな、または全角カタカナで記入してください。");
							return;
						}
					}		
		}
		
		if (document.form1.kana2.value !="") {
        
				usrkana2 = new String(document.form1.kana2.value);	
				
				if (usrkana2.match(/[ぁ-ヴーk]/) == null) {
				
						alert("フリガナは全角ひらがな、または全角カタカナで記入してください。");
						return;
				
				} else {
						ret = usrkana2.match(/[ぁ-ヴーk]/g);
						if (ret.length != usrkana2.length) {
							alert("フリガナはすべて全角ひらがな、または全角カタカナで記入してください。");
							return;
						}
					}		
		}
		
//名前が全角でなければアラートを出す
		if (document.form1.name1.value !="") {
        
				usrname1 = new String(document.form1.name1.value);	
				ret = usrname1.match(/[0-9]|[｡-ﾟ]|[ -~]+/g);
				
				if (ret != null) {
					alert("お名前は全角で記入してください。"); 
					return;
					
				}
		}
		
		
		if (document.form1.name2.value !="") {
        
				usrname2 = new String(document.form1.name2.value);	
				ret = usrname2.match(/[0-9]|[｡-ﾟ]|[ -~]+/g);
				
				if (ret != null) {
					alert("お名前は全角で記入してください。"); 
					return;
				}
		}
		
		

//電話番号が数字以外ならアラートを出す
		if (document.form1.telno.value !="") {
        
				usrtelno = new String(document.form1.telno.value);	
				
				if (usrtelno.match(/[0-9]|-|[０-９]|−/) == null) {
				
						alert("電話番号は半角英数で記入してください。");
						return;
				
				} else {
						ret = usrtelno.match(/[0-9]|-|[０-９]|−/g);
						if (ret.length != usrtelno.length) {
								alert("電話番号は半角英数で記入してください。");
								return;
						}
				}
		}
		
//会社の電話番号が数字以外ならアラートを出す		
		if (document.form1.comp_tel.value !="") {
        
				usrcomp_tel = new String(document.form1.comp_tel.value);	
				
				if (usrcomp_tel.match(/[0-9]|-|[０-９]|−/) == null) {
				
						alert("電話番号は半角英数で記入してください。");
						return;
				
				} else {
						ret = usrcomp_tel.match(/[0-9]|-|[０-９]|−/g);
						if (ret.length != usrcomp_tel.length) {
								alert("電話番号は半角英数で記入してください。");
								return;
						}
				}
		}
		
//会社のFAX番号が数字以外ならアラートを出す
		if (document.form1.comp_fax.value !="") {
        
				usrcomp_fax = new String(document.form1.comp_fax.value);	
				
				if (usrcomp_fax.match(/[0-9]|-|[０-９]|−/) == null) {
				
						alert("電話番号は半角英数で記入してください。");
						return;
				
				} else {
						ret = usrcomp_fax.match(/[0-9]|-|[０-９]|−/g);
						if (ret.length != usrcomp_fax.length) {
								alert("電話番号は半角英数で記入してください。");
								return;
						}
				}
		}
		
		valueChk2();			
		
}

function valueChk2() {
		
		if (document.form1.mail.value !="" && !checkEmail(document.form1.mail.value)) {
			return;
		}
		
		document.form1.kana1.value = tagchk(document.form1.kana1.value);
		document.form1.kana2.value = tagchk(document.form1.kana2.value);
		document.form1.name1.value = tagchk(document.form1.name1.value);
		document.form1.name2.value = tagchk(document.form1.name2.value);
		document.form1.telno.value = tagchk(document.form1.telno.value);
		document.form1.address1.value = tagchk(document.form1.address1.value);
		document.form1.address2.value = tagchk(document.form1.address2.value);
		document.form1.mail.value = tagchk(document.form1.mail.value);
		document.form1.comp_name.value = tagchk(document.form1.comp_name.value);
		document.form1.comp_pref.value = tagchk(document.form1.comp_pref.value);
		document.form1.comp_address1.value = tagchk(document.form1.comp_address1.value);
		document.form1.comp_address2.value = tagchk(document.form1.comp_address2.value);
		document.form1.comp_tel.value = tagchk(document.form1.comp_tel.value);
		document.form1.comp_fax.value = tagchk(document.form1.comp_fax.value);
		document.form1.title.value = tagchk(document.form1.title.value);
		document.form1.comment.value = tagchk(document.form1.comment.value);

		document.form1.submit();			
		
}

// タグ変換
function tagchk(tagStr){
	while(tagStr.indexOf("<", 0) != -1) {
	        tagStr = tagStr.replace("<", "＜");
	    }
	    while(tagStr.indexOf(">", 0) != -1) {
	        tagStr = tagStr.replace(">", "＞");
	    }
	    while(tagStr.indexOf("(", 0) != -1) {
	        tagStr = tagStr.replace("(", "（");
	    }
	    while(tagStr.indexOf(")", 0) != -1) {
	        tagStr = tagStr.replace(")", "）");
	    }
			while(tagStr.indexOf("&", 0) != -1) {
	        tagStr = tagStr.replace("&", "＆");
	    }
			while(tagStr.indexOf("'", 0) != -1) {
	        tagStr = tagStr.replace("'", "’");
	    }
			while(tagStr.indexOf('"', 0) != -1) {
	        tagStr = tagStr.replace('"', '”');
	    }
			return tagStr;
}