﻿// フォームチェック通常色・警告色
//////////////////////////////////////////////////////////////////////////////// 
blur_color  = "#ffffff";
focus_color = "#A5D7DF";


// フォーム送信
////////////////////////////////////////////////////////////////////////////////
function Submit(form_name){
	var alert_message = '';
	
	
	// チェック
	// ===========================================================================
	if(!CheckForm("text",form_name,"name")){
		alert_message += '"お名前" を入力してください。\n';
	}
	if(!CheckForm("text",form_name,"company")){
		alert_message += '"貴社名" を入力してください。\n';
	}
	if(!CheckForm("text",form_name,"mail") || !CheckForm("text",form_name,"mail_domain")){
		alert_message += '"メールアドレス" を入力してください。\n';
	} else if(!CheckForm("account",form_name,"mail") || !CheckForm("account",form_name,"mail_domain")){
		alert_message += '"メールアドレス" は半角文字で入力してください。\n';
	}
	if(!CheckForm("text",form_name,"title")){
		alert_message += '"お問い合せ件名" を入力してください。\n';
	}
	if(!CheckForm("text",form_name,"text")){
		alert_message += '"お問い合せ本文" を入力してください。\n';
	}
	if(alert_message == ''){
		document.forms[form_name].submit();
	}else{
		alert(alert_message);
	}
}





// フォームチェック
////////////////////////////////////////////////////////////////////////////////
function CheckForm(check_mode,form_name,element_name,element_number){
	/* check_mode     -> チェック方法
	 *                   text   -> 入力状態
	 *                   select -> 選択状態
	 *                   check  -> チェック状態
	 *                   mail   -> メールアドレス文字列
	 *                   harf   -> 半角文字列
	 *                   full   -> 全角文字列
	 *                   number -> 数字
	 *                   full_nenmber -> 全角文字列＆数字
	 *
	 * form_name      -> フォーム名
	 * element_name   -> フォームオブジェクト名
	 * element_number -> フォームオブジェクト番号（オプション）
	 */
	
	var form_element = document.forms[form_name].elements[element_name];
	var result       = false;
	
	if(document.layers){
		return true;
	}
	
	if(check_mode == "text"){
		if(form_element.value != ""){
			result = true;
		}
	}else if(check_mode == "select"){
		if(form_element.options[form_element.selectedIndex].value != ""){
			result = true;
		}
	}else if(check_mode == "check"){
		if(arguments.length == 4){
			flag = 1;
			var i;
			for(i = 0; i < element_number; i ++){
				if(form_element[i].checked){
					flag = 0;
					break;
				}
			}
			if(flag == 0){
				result = true;
			}
		}else{
			if(form_element.checked){
				result = true;
			}
		}
	}else if(check_mode == "mail"){
		if(form_element.value.match(/^[\w\_\-\.]+\@[\w\-\.]+\.[a-z]+$/)){
			result = true;
		}
	}else if(check_mode == "account"){
		for (var i=0; i<form_element.value.length; i++) {
			var len=escape(form_element.value.charAt(i)).length;
			if (len<4){
				result = true;
			} else {
				result = false;
				break;
			}
  		}
	}else if(check_mode == "harf"){
		if(form_element.value.match(/^[\x21-\x7E]+$/)){
			result = true;
		}
	}else if(check_mode == "full"){
		if(form_element.value.match(/^[^\x21-\x7E]+$/)){
			result = true;
		}
	}else if(check_mode == "number"){
		if(form_element.value.match(/^[0-9]+$/)){
			result = true;
		}
	}else if(check_mode == "4-8length"){
		if(form_element.value.length >= 4 && form_element.value.length <= 8){
			result = true;
		}
	}else if(check_mode == "full_nenmber"){
		if(form_element.value.match(/^[^\x21-\x7E]+$/) || form_element.value == ""){
			result = true;
		}
	}
	if(result){
		if(check_mode != "check"){
			form_element.style.backgroundColor = blur_color;
		}
		return true;
	}else{
		if(check_mode != "check"){
			form_element.style.backgroundColor = focus_color;
		}
		return false;
	}
}
// フォームチェック通常色・警告色リセット
////////////////////////////////////////////////////////////////////////////////
function ResetColor(this_object){
	if(!document.layers){
		this_object.style.backgroundColor = blur_color;
	}
}





// フォームリセット
////////////////////////////////////////////////////////////////////////////////
function Reset(form_name){
	if(confirm("フォームの入力内容をリセットしますが\nよろしいですか？")){
		document.forms[form_name].reset();
		
		if(!document.layers){
			for(var i = 0 ; i < document.forms[form_name].elements.length ; i++){
				document.forms[form_name].elements[i].style.backgroundColor = blur_color;
			}
		}
	}
}

