window.onload = function() {
	var formObj = document.getElementById("contactform");
	formObj.onsubmit = function() {return signup(this);}

	var textareaObj = document.getElementById("comment");
	textareaObj.onmousedown = function() {eraseTA(this);}
	textareaObj.onkeydown = function() {eraseTA(this);}
}

// 消去処理
function eraseTA(obj){
	if (obj.value == obj.defaultValue){
		obj.value = "";
	}
}

//-----------------------------------------------
// 全角文字のみか？のチェック処理
//-----------------------------------------------
function checkAllFullStringData(str_Data){
 	var str_Check = str_Data;
 	var int_flg = 0;
	//文字列のチェック
	for (var int_i = 0; int_i < str_Check.length; int_i++) {
        	var chr_chk = str_Check.charCodeAt(int_i);
		//  文字が半角だった場合
		if (chr_chk < 256 || (chr_chk >= 0xff61 && chr_chk <= 0xff9f)) {
			int_flg = 1;
			break;
		}
	}
	//全角文字のみのデータだった場合
	if(int_flg == 0){
		return true;
	}
	//全角文字と半角文字が混在する場合
	else {
		return false;
	}
}
//-----------------------------------------------
// 半角文字のみか？のチェック処理
//-----------------------------------------------
function checkAllHalfStringData(str_Data){
	var str_Check = str_Data;
 	var int_flg = 0;

	//文字列のチェック
	for(var int_i = 0; int_i < str_Check.length; int_i++){
        	var chr_chk = str_Check.charCodeAt(int_i);
		//  文字が半角の場合
		if (chr_chk < 256 || (chr_chk >= 0xff61 && chr_chk <= 0xff9f)) {
			int_flg = 0;
		}else{
			int_flg = 1;
			break;
		}
	}
	//半角文字のみのデータだった場合
	if(int_flg == 0){
		return true;
	}
	//全角文字と半角文字が混在する場合
	else {
		return false;
	}
}
//-----------------------------------------------
// 全角英数字を半角に変換する処理
//-----------------------------------------------
function convertFullToHalfNum(str_Data){
	var ua;
	var str_Dummy = str_Data;
	var str_CnvertData = ""; 
	var array_Data = new Array();

	// ブラウザー情報の設定
	setBrowserMedia();
	// ブラウザー情報の取得
	ua = getBrowserMedia();

	// ブラウザがInternetExplorerもしくは、Operaの場合
	if(ua.InternetExplorer || ua.Opera){  // ブラウザ判別部分
		str_Dummy = escape(str_Dummy);
	} 
	// ブラウザがNetscapeもしくは、Mozillaの場合
	else if(ua.Netscape || ua.Mozilla){
		str_Dummy = convertAscii2Unicode(str_Dummy);
	}

	array_Data['2018'] = '0060';
	array_Data['2019'] = '0027';
	array_Data['201D'] = '0022';
	array_Data['3000'] = '0020';

	str_CnvertData = str_Dummy.replace(/%uFFE5/g , '%u005c');

	while(str_CnvertData.match(/%u([A-E1-9][A-F0-9]{3})/)){
		if( re_char[ RegExp.$1 ] ){
			str_CnvertData = str_CnvertData.replace(/%u[A-E1-9][A-F0-9]{3}/, "%u" + array_Data[RegExp.$1]);
		 }else{
			return false;
		 } 
	}
	while(str_CnvertData.match(/%u(FF[A-F0-9]{2})/ )){
		str_CnvertData = str_CnvertData.replace(/%uFF[A-F0-9]{2}/, "%u00" + (("0x" + RegExp.$1).toString(10) - 65248).toString(16));
	}

	// ブラウザがNetscapeもしくは、Mozillaの場合
	if(ua.Netscape || ua.Mozilla){  // ブラウザ判別部分
		str_CnvertData = str_CnvertData.replace( /%u00/g , '%');
	}
	return(unescape(str_CnvertData));
}
//-----------------------------------------------
// 一括メールチェック
//-----------------------------------------------

////////////////////////////////////////
//strMsgには、"お届け先の～"といった場合に
//"お届け先の"を引数としてわたしてあげてください。
////////////////////////////////////////
function mailch(in_wpd_mail,strMsg)
{
	var errms="";
	// メールアドレスの未入力チェック
	if (in_wpd_mail.length == 0){
		errms=errms+strMsg+"メールアドレスを記入してください。\n";
	}else if(!checkAllHalfStringData(in_wpd_mail)){// メールアドレスの入力データチェック
		errms=errms+strMsg+"メールアドレスは半角で記入してください。\n";
	}else{
	var emailStr = in_wpd_mail
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
  	if (matchArray == null) {
		errms=errms+strMsg+"メールアドレスが正しくありません。\n"
	}else{

	var user=matchArray[1]
	var domain=matchArray[2]
  	if (user.match(userPat)==null) {
		errms=errms+strMsg+"メールアドレスが正しくありません。\n";
	}else{

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			      errms=errms+strMsg+"メールアドレスが正しくありません";
			}
		}
	}else{

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		errms=errms+strMsg+"メールアドレスにドメイン名がありません。\n";
		return false;
	}else{

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 ||
		domArr[domArr.length-1].length>3) {
		errms=errms+strMsg+"メールアドレスが正しくありません。\n";
	}else if (len<2) {
		var errStr=+strMsg+"メールアドレスにドメイン名がありません。\n"
		errms=errms+errStr;
	}}}}}}
return errms;
}

////////////////////////////////////////////////////////////////////////////
// 内容が空かどうかの処理（入力式）
//name:お名前、電話番号、郵便番号など
//in_name:受け取る入力フォーム変数（value値）
////////////////////////////////////////////////////////////////////////////
function missch(in_name,name){
var errms="";
	if (in_name.length == 0){
		errms=name+"を記入してください。\n";
	}
return errms
}
////////////////////////////////////////////////////////////////////////////
// 内容が空かどうかの処理(プルダウン式)
//name:都道府県、職業、など
//in_name:受け取る入力フォーム変数（value値）
////////////////////////////////////////////////////////////////////////////
function missch2(in_name,name){
var errms="";
	if (in_name.length == 0){
		errms=name+"を選択してください。\n";
	}
return errms
}

////////////////////////////////////////////////////////////////////////////
// 電話番号処理
//name:お届け先の
//telorfax:電話、またわFAX
//in_name:受け取る入力フォーム変数（value値）
////////////////////////////////////////////////////////////////////////////
function phonech(in_phone_num,name,telorfax){
var errms="";
	if (in_phone_num.length == 0)
	{
		errms=errms+name+telorfax+"番号を記入してください。\n";
	}else if(in_phone_num.length > 15){
		errms=errms+name+telorfax+"番号が長すぎます。\n";
	}else if (in_phone_num.match(/^[0-9]+\-[0-9]+\-[0-9]+$/) == null)
	{
		errms=errms+name+"正しい"+telorfax+"番号を記入してください。\n";
	}

return errms
}
////////////////////////////////////////////////////////////////////////////
// 郵便番号処理
//name:お届け先の
//in_zip:受け取る入力フォーム変数（value値）
////////////////////////////////////////////////////////////////////////////

function zipch(in_zip,name){
var errms="";

	if (in_zip.length == 0)
	{
		errms=errms+"郵便番号を記入してください。\n";
	}else{
	var chkvalue = in_zip.split('-').join('') // - を除去
		if ( (in_zip.length - chkvalue.length) >1 ){
		oksubmit = false ;
		errms=errms+"郵便番号を確認下さい。\n";
		}else if (chkvalue.length != 7) {
		oksubmit = false ;
		errms=errms+"郵便番号を確認下さい。\n";
		}
	}

return errms
}

////////////////////////////////////////////////////////////////////////////
// チェックボックス/ラジオボタン処理
//name:選択されていないときのメッセージ
//in_radio:受け取る入力フォーム変数(フォーム値1,フォーム値２,フォーム値3,…)
////////////////////////////////////////////////////////////////////////////


function radio_check(in_radio, alertcomment){
	var flag = 0;
			var errms="";
	// 設定開始（チェックする項目を設定してください）
	if(in_radio) { // 選択肢が複数ある場合
		flag = 1;
		var i;
		for(i = 0; i < in_radio.length; i ++){
			if(in_radio[i].checked){
				flag = 0; break;
			}
		}
	}
	if(flag){
	errms = alertcomment+"を選択して下さい。"+"\n" // 選択されていない場合は警告ダイアログを表示
	}
		return errms
}

function formatNum(keta, num) {
  var src = new String(num);
  var cnt = keta - src.length;
  if (cnt <= 0) return src;
  while (cnt-- > 0) src = "0" + src;
  return src;
}

////////////////////////////////////////////////////////////////////////////
// 送信処理（メイン部）
////////////////////////////////////////////////////////////////////////////
function signup(formname)
{
	var errms="";


//ご相談件名
	if(formname.title){
		in_name = formname.title.value;
		if(in_name.length <= 0){
			errms = errms + "ご相談件名を選択してください。\n";
		}
	}
	
//ご相談内容
	var cnt_chk = 0;
	var radio_list = document.getElementsByName("cnt[]");
	for(i=0;i<radio_list.length;i++){
		now_id = "cnt_" + i;
		if(document.getElementById(now_id).checked == true){
			cnt_chk = cnt_chk + 1;
		}
	}
	if (cnt_chk == 0){
		errms = errms + "ご相談内容を選択して下さい。\n";
	}

//お名前のチェック
	if(formname.name){
		in_name = formname.name.value;
		errms=errms+missch(in_name,"お名前");
	}

//住所
	if(formname.pref){
		in_name = formname.pref.value;
		if(in_name.length <= 0){
			errms = errms + "都道府県を選択してください。\n";
		}
	}

	
//連絡方法
	if(formname.contact){
		in_radio = formname.contact;
		errms = errms + radio_check(in_radio, "連絡方法");
	}

//メールチェック
	if(formname.mail){//タグが存在するかチェック。存在しないならば判定しない。
		in_wpd_mail = formname.mail.value;
		errms=errms+mailch(in_wpd_mail,"");
	}

//住宅ローン
	if(formname.loan){
		in_radio = formname.loan;
		errms = errms + radio_check(in_radio, "住宅ローンの有無");
	}
//支払い遅れ
	if(formname.slowpay){
		in_radio = formname.slowpay;
		errms = errms + radio_check(in_radio, "支払遅れの有無");
	}

  // 送信
  if(errms==""){
  return true;
  }else{
	  alert(errms);
	  return false;
  }
}
