/*---------------------------------------------------------------
	オクタルサーブ用コンタクトフォーム
		JavaScriptユーティリティ関数
													Make:2009.7
---------------------------------------------------------------*/

/*--------------------------------------------------------------
	全角 → 半角（英数字／一部記号（－＋＿＠．，）／空白）
--------------------------------------------------------------*/
//文字定義
han = "0123456789";
han += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
han += "abcdefghijklmnopqrstuvwxyz";
han += ":/-=+_{}#@., ";

zen = "０１２３４５６７８９";
zen += "ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ";
zen += "ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ";
zen += "：／－＝＋＿｛｝＃＠．，　";

/*--------------------------------------------------------------
	全角→半角 変換
--------------------------------------------------------------*/
function ZenToHan2(InChar){
	OutChar = "";

	for(i=0; i<InChar.length; i++){
		oneStr = InChar.charAt(i);
		num = zen.indexOf(oneStr,0);
		oneStr = num >= 0 ? han.charAt(num) : oneStr;
		OutChar += oneStr;
	}

	return OutChar;
}

/*--------------------------------------------------------------
	全角を半角に変換し、変換メッセージ表示
--------------------------------------------------------------*/
function CharChange(id){
	ClassName = document.getElementById(id).className;
	marea = "chg_" + id;

	InChar = document.getElementById(id).value;

	// 変換メッセージエリアのクリア
	document.getElementById(marea).className = "hidden";
	OutChar = ZenToHan2(InChar);
	if(OutChar != InChar) {
		DispMessage(marea);
		document.getElementById(id).value = OutChar;
	}
}

/*--------------------------------------------------------------
	指定ルールに応じた、入力値のチェック
	　※全角の場合、半角に変換してから処理
--------------------------------------------------------------*/
function CharCheck(id, rule){
	ClassName = document.getElementById(id).className;
	marea = "chg_" + id;
	earea = "e_" + id;

	// 変換メッセージエリアのクリア
	document.getElementById(marea).className = "hidden";
	InChar = document.getElementById(id).value;
	if(InChar == "") {
		// エラーメッセージエリアのクリア
		DispNormal(earea, id);
		return;
	}
	OutChar = ZenToHan2(InChar);

	// 数値のみのチェック
	if(rule == "num") {
		if(!OutChar.match(/^[\-\d]+$/)) {
			msg = "↑数値とハイフンで入力してください。";
			DispError(earea, msg, id);
		}else{
			// エラーメッセージエリアのクリア
			DispNormal(earea, id);
			document.getElementById(id).value = OutChar;
			if((OutChar != "") && (OutChar != InChar)) 
				DispMessage(marea);
		}
	}

	// 英数字のみのチェック
	if(rule == "alpha") {
//		if(!OutChar.match(/^[A-Za-z0-9]+[\w-=+{}#]+@[\w\.-]+\.\w{2,}$/)) {
		if(!OutChar.match(/\@[\w\.-]+\.\w{2,}$/)) {
			msg = "↑メールアドレスを正しく入力してください。";
			DispError(earea, msg, id);
		}else{
			// エラーメッセージエリアのクリア
			DispNormal(earea, id);
			document.getElementById(id).value = OutChar;
			if((OutChar != "") && (OutChar != InChar)) 
				DispMessage(marea);
		}
	}
}

/*--------------------------------------------------------------
	必須入力チェック
	　※エラーメッセージの表示／非表示
--------------------------------------------------------------*/
function InputCheck(id){
	Val = document.getElementById(id).value;
	earea = "e_" + id;

	if(Val == "") {
		msg = "↑入力をお願いします。";
		DispError(earea, msg, id);
	} else {
		DispNormal(earea, id);		// エラーメッセージエリアのクリア
	}
}

/*--------------------------------------------------------------
	確認用メールアドレスの入力チェック
	　※メールアドレスと違っていないかどうか
--------------------------------------------------------------*/
function CompCheck_Mail(mail1, mail2){
	mail_val1 = document.getElementById(mail1).value;
	mail_val2 = document.getElementById(mail2).value;
	earea1 = "e_" + mail1;
	earea2 = "e_" + mail2;

	msg = "↑上のメールアドレスと同じアドレスを入力してください。";
	if (mail_val1 == "") {			/* メールアドレス未入力 */
		msg = "↑入力をお願いします。";
		DispError(earea1, msg, mail1);
		if (mail_val2 == "") {			/* 確認アドレス未入力 */
			msg = "↑入力をお願いします。";
			DispError(earea2, msg, mail2);
		} else {
			msg = "↑上のメールアドレスと同じアドレスを入力してください。";
			DispError(earea2, msg, mail2);
		}
	} else {
		if (mail_val2 == "") {		/* 確認アドレス未入力 */
			msg = "↑入力をお願いします。";
			DispError(earea2, msg, mail2);
		} else if (mail_val1 != mail_val2) {
			DispError(earea2, msg, mail2);
		} else {
			DispNormal(earea2, mail2);
		}
	}
}

/*--------------------------------------------------------------
	エラーメッセージの表示
--------------------------------------------------------------*/
function DispError(earea, str, id){
	msg = "<span class=\"error_hissu\">" + str + "</span>";
	document.getElementById(earea).innerHTML = msg;

	document.getElementById(earea).className = "visible_input";
	if (id != "") {
		document.getElementById(id).className = id;
		document.getElementById(id).style.border="2px solid #CC0000";
	}
}

/*--------------------------------------------------------------
	エラーメッセージの非表示
--------------------------------------------------------------*/
function DispNormal(earea, id){
	document.getElementById(earea).className = "hidden";
	if (id != "") {
		document.getElementById(id).className = id;
		document.getElementById(id).style.border="1px solid #CCCCCC";
	}
}

/*--------------------------------------------------------------
	メッセージの表示／非表示
	（注）入力項目のid名は引数で受け渡さないので、フォーム内の
　　　　　設定値を固定で使用している
--------------------------------------------------------------*/
function DispMessage(marea){
	if (marea == "chg_tel_num") {
		document.getElementById("chg_tel_num").className = "visible_input";
	} else {
		document.getElementById("chg_tel_num").className = "hidden";
	}
	if (marea == "chg_cel_num") {
		document.getElementById("chg_cel_num").className = "visible_input";
	} else {
		document.getElementById("chg_cel_num").className = "hidden";
	}
	if (marea == "chg_hp_url") {
		document.getElementById("chg_hp_url").className = "visible_input";
	} else {
		document.getElementById("chg_hp_url").className = "hidden";
	}
	if (marea == "chg_toi_mail1") {
		document.getElementById("chg_toi_mail1").className = "visible_input";
	} else {
		document.getElementById("chg_toi_mail1").className = "hidden";
	}
	if (marea == "chg_toi_mail2") {
		document.getElementById("chg_toi_mail2").className = "visible_input";
	} else {
		document.getElementById("chg_toi_mail2").className = "hidden";
	}
}

