function check_required() {

	var frm=document.reg_form;
	var rq_elm,value;

	for(var i=0;i<frm.elements.length;i++) {
		rq_elm=document.getElementById("rq_"+frm.elements[i].name);
		if (rq_elm==null) {
			var span_names=frm.elements[i].name.split("_");
			var span_name="rq";
			for (var j=0;j<(span_names.length-1);j++) {
				span_name+="_"+span_names[j];
			}
			span_name+="_*";
			rq_elm=document.getElementById(span_name);
		}
		if (rq_elm!=null) {
			value=frm.elements[i].value;
			if (frm.elements[i].type=="radio") {
				value=com_get_radio_value(frm.elements[frm.elements[i].name],"","");
			}
			if (frm.elements[i].type=="checkbox") {
				value=com_get_checkbox_value(frm.elements[frm.elements[i].name],",");
			}
			if (value.replace(/[ 　]+/,"")=="") { //ignore zenkaku,hankaku space
				return frm.elements[i].name;
			}
		}
	}
	return "OK";

}
function check_reg() {
	var frm=document.reg_form;
	var ret,ajax_ret=true;

	// Check required fields
	var result=check_required();
	if (result!="OK") {
		alert(com_get_msg("901"));
		frm.elements[result].focus();
		return false;
	}

	if (frm.mode.value=="A") {
		ret=check_email_password(frm,"B");
		if (ret===false) {
			return false;
		}
		if (ret==2) ajax_ret=false;
	}

	// Date field check, birthday
	var birthday=new Date(frm.ms_birthday_yy.value+"/"+frm.ms_birthday_mm.value+"/"+frm.ms_birthday_dd.value);
	if (birthday.getDate() != frm.ms_birthday_dd.value.valueOf()) {
		alert(com_get_msg("5"));
		return false;
	}
	// Age check
	var min_age=frm.min_age.value.valueOf();
	var age=com_get_age(
			frm.ms_birthday_yy.value,
			frm.ms_birthday_mm.value,
			frm.ms_birthday_dd.value);
	// firefox 2000年問題対応
	if (age < 0)　age=age + 1900;
	if ((age<min_age)&&(age>0)){
		alert(com_get_msg("6",min_age.toString()));
		return false;
	}

	// Agreement check
	if (frm.mode.value=="A") {
		if (frm.elements["agree"].type=="radio") {
			if (com_get_radio_value(frm.elements["agree"],"","")!="Y") {
				alert(com_get_msg("7"));
				return false;
			}
		}
	}

	if (ajax_ret!==false) {
		frm.action=frm.confirm_page.value;
	}
	return true;
}
function get_address(zip_field) {
	var zip_value=document.reg_form.elements[zip_field].value;
	var pattern=/\d{3}-\d{4}/;
	if (!pattern.test(zip_value)) {
		alert(com_get_msg("8"));
		return false;
	}
	window.open("get_address.php?field1=ms_addr_pref&field2=ms_addr_line1&zip="+zip_value,"get_address",
	"menubar=no, toolbar=no,resizable=yes,scrollbars=yes,left=100,top=200,width=650,height=300");
}
//mode=E:only email, =P:only password, =B:Both
function check_email_password(frm,mode) {
	var ajax_ret=0;

	if (mode!="P") {
		// Check email double inputs
		if (frm.ms_email.value!=frm.ms_email2.value) {
			alert(com_get_msg("1"));
			frm.ms_email.focus();
			return false;
		}
		//Email Address duplicate check
		var email=frm.ms_email.value;
		ajax_ret =ajax_duplicate("m_contacts","ms_email,ms_status",email+",1");
		if (ajax_ret==1) {
			alert(com_get_msg("4"));
			frm.ms_email.focus();
			return false;
		}
	}

	if (mode!="E") {
		// Check password format
		var pattern=/[a-zA-Z0-9\#\$\!\-\_]{6,10}/;
		var rg = new RegExp(pattern);
		var result=rg.exec(frm.ms_password.value);
		if (result != frm.ms_password.value) {
			alert(com_get_msg("3"));
			frm.ms_password.value="";
			frm.ms_password2.value="";
			frm.ms_password.focus();
			return false;
		}

		// Check password double inputs
		if (frm.ms_password.value!=frm.ms_password2.value) {
			alert(com_get_msg("2"));
			frm.ms_password.value="";
			frm.ms_password2.value="";
			frm.ms_password.focus();
			return false;
		}
	}

	if (ajax_ret===false) {
		return 2;
	}
	return 1;
}
function confirm_reg() {
	return confirm(com_get_msg("902"));
}
function confirm_update() {
	return confirm(com_get_msg("903"));
}
function back_entry() {
	var frm=document.reg_form;
	frm.mode.value="R";
	frm.action=frm.back_page.value;
	frm.submit();
}
function not_agree() {
	var frm=document.reg_form;
	alert(com_get_msg("7"));
}
function jump_entry() {
	var frm=document.reg_form;
	frm.agree.value="";
	frm.submit();
}
function open_update_ep() {
	document.ep_form.submit();
}
function change_visible() {
	var change_field=document.reg_form.change_field;
	var input_form;
	for (var i=0;i<change_field.length;i++) {
		input_form=document.getElementById("change_"+change_field[i].value);
		if (change_field[i].checked) {
			input_form.className="";
		} else {
			input_form.className="invisible";
		}
	}
	return;
}
function check_pws() {
//  return true; // for server check function test:
	var ret=2;
	var frm=document.reg_form;
	var change_field=com_get_radio_value(document.reg_form.change_field);

	if (change_field=="email") {
		if (frm.ms_email.value=="") {
			alert(com_get_msg("10"));
			frm.ms_email.focus();
			return false;
		}
		if (frm.ms_email.value==frm.old_email.value) {
			alert(com_get_msg("11"));
			frm.ms_email.focus();
			return false;
		}
		ret=check_email_password(frm,"E");
	} else {
		if (frm.old_password.value=="") {
			alert(com_get_msg("13"));
			frm.old_password.focus();
			return false;
		}
		//Check current password
		var email=frm.old_email.value;
		var password=frm.old_password.value;
		var ms_id=ajax_alogin(email,password,0);
		if (ms_id==0) {
			alert(com_get_msg("12"));
			return false;
		} else if (ms_id>0) {
			if (frm.ms_password.value=="") {
				alert(com_get_msg("14"));
				frm.ms_password.focus();
				return false;
			}
			if (frm.ms_password.value==frm.old_password.value) {
				alert(com_get_msg("15"));
				frm.ms_password.value="";
				frm.ms_password2.value="";
				frm.ms_password.focus();
				return false;
			}
			//Check new password
			ret=check_email_password(frm,"P");
		}
	}
	if (ret===false) {
		return false;
	}

	if (ret!=2) {
		frm.action="change_pws_end.php";
	}
	return confirm(com_get_msg("904"));
}
function send_mail() {
	var frm=document.mail_form;

	if (!confirm(com_get_msg("21"))) return;

	var from=frm.from.value;
	var to=frm.to.value;
	var cc=frm.cc.value;
	var bcc=frm.bcc.value;
	var subject=frm.subject.value;
	var content=frm.content.value;

	if (to=="" || subject=="" || content=="") {
		alert(com_get_msg("24"));
		return;
	}

	var ret=ajax_send_mail(from,to,cc,bcc,subject,content);

	if (ret===false) {
		alert(com_get_msg("25"));
	}
	if (ret==1) {
		alert(com_get_msg("20"));
	}
	return;
}