// デモ用
var VAL_NGAC = "testtest";

var DEFSTR_ERR = "申し訳ございません。もう一度ご入力をご確認ください。";
// アカウントチェック用
var DEFSTR_ACO = "ご希望アカウント";
var DEFSTR_STA = "※半角英数文字の 8文字～16文字。";
var DEFSTR_MES0 = "ご入力をご確認ください。";
var DEFSTR_MES1 = "半角英数文字で入力してください。";
var DEFSTR_MES2 = "8文字～16文字で入力してください。";
var str_aco = DEFSTR_ACO;
// パスワードチェック用
var DEFSTR_STP = "※パスワードは、登録・ログイン後、変更することが可能です。";
var DEFSTR_MES6 = "は２回入力してください。";
var DEFSTR_MES7 = "が「確認用」と異なります。";


// ***************************
// 入力フィールドハンドリング
// ---------------------------
function onClickInit(strField,opdefstr,opReset){
	if(opdefstr != ''){ str_aco = opdefstr; }
	var tempObj = j$("input#"+strField);
	var tempStr = tempObj.val();
	if (tempStr == str_aco){
		if (opReset == 1){ tempObj.val(str_aco);
		}else{ tempObj.val(''); }
	}else{
	if (tempStr == ''){
		if (opReset == 1){ tempObj.val(str_aco); }
	}}
}

// ***************************
// 入力チェック
// ---------------------------
function checkStr_forms(type,val){
	if(type=='e_han'){ // 英数半角文字
		var tmp = val.match(/[0-9a-zA-Z\+\-\/\*\,\. ]+/g);
	}else{
	if(type=='em'){ // メールアドレス
		var tmp = val.match(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/);
//		var tmp = val.match(/[0-9a-zA-Z\-\.\@]/g);
	}}
	if (tmp != val){ return false;
	}else{ return true; }
}
function ckStrFields(type,val1,val2){
	// アカウント
	var tempObjmes = "";
	if(type == 'ac'){ tempObjmes = "アカウント";
		// 入力ないかデフォルトのままなら
		if((val1 == '')||(val1 == str_aco)
		){ return DEFSTR_MES0;
		}else{
		// 半角英数文字チェック
		if(!(checkStr_forms('e_han',val1))
		){ return DEFSTR_MES1;
		}else{
		// 文字数チェック
		if(!((val1.length >= 8)&&(val1.length <= 16))
		){ return DEFSTR_MES2;
		}}}
	}else{
	// パスワード
	if(type == 'pw'){ tempObjmes = "パスワード";
		// 入力なければ
		if((val1 == '')||(val2 == '')
		){ return tempObjmes+" "+DEFSTR_MES6;
		}else{
		// 半角英数文字チェック
		if(
			(!(checkStr_forms('e_han',val1)))
			||(!(checkStr_forms('e_han',val2)))
		){ return tempObjmes+" は、"+DEFSTR_MES1;
		}else{
		// 文字数チェック
		if(
			(!((val1.length >= 8)&&(val1.length <= 16)))
			||(!((val2.length >= 8)&&(val2.length <= 16)))
		){ return tempObjmes+" は、"+DEFSTR_MES2;
		}else{
		// 同一チェック
		if(!(val1==val2)
		){ return tempObjmes+" "+DEFSTR_MES7;
		}}}}
	}else{
	// メールアドレス
	if(type == 'em'){ tempObjmes = "メールアドレス";
		// 入力なければ
		if((val1 == '')||(val2 == '')
		){ return tempObjmes+" "+DEFSTR_MES6;
		}else{
		// 文字チェック
		if(
			(!(checkStr_forms('em',val1)))
			||(!(checkStr_forms('em',val2)))
		){ return tempObjmes+" の、"+DEFSTR_MES0;
		}else{
		// 同一チェック
		if(!(val1==val2)
		){ return tempObjmes+" "+DEFSTR_MES7;
		}}}
	}}}
	return "";
}

// ***************************
// 重複チェック
// ---------------------------
function onClickWCheck(strField,nxtField,rtArea){
	// メッセージエリア初期化
	j$("#"+rtArea).html(DEFSTR_STA);
	j$("#"+rtArea).css({color:"#494949"});
	
	// 入力値取得
	var tempObj = j$("input#"+strField);
	var tempVal = tempObj.val();

	// エラーチェック
	var strMes = "";
	strMes = ckStrFields('ac',tempVal,'');

	// エラーセットなければ
	if(strMes == ''){
		var postFile = "*****"; // 通信先PHP
		// 本来はここで、ajax通信
		// デモなので割愛
		var data = "";
		if(tempVal==VAL_NGAC){ // すでにある
			data = "-1,すでに、使用されています。";
		}else{ data = "1,使用可能です。"; }

		var strcolor = ""; var list = Array();
		list = data.split(",");
		// 応答あれば
		if(list[0]!=''){
			strMes = list[1]; strcolor = "#0C92BB";
			if(list[0]!=1) { strcolor = "#FF0000"; }
			// 重複チェックから来た場合
			if(nxtField!=''){
				// メッセージエリア表示
				j$("#"+rtArea).html(strMes);
				j$("#"+rtArea).css({color:strcolor});
				j$("#"+rtArea).hide().fadeIn(3 * 1000);
				if(list[0]!=1) { tempObj.focus(); return;
				}else{
					var tempObj2 = j$("input#"+nxtField);
					tempObj2.focus(); return;
				}
			// submitから来た場合
			}else{
				// 次へ
				goSubmitGo(list[0],list[1],rtArea); return;
			}
		}
	}
	// エラーセットあれば
	if(strMes != ''){
		if(nxtField!=''){
			viewMesArea(rtArea,strMes,DEFSTR_STA);
			tempObj.focus();
		}else{ return strMes; }
	}
}

// ***************************
// submit
// ---------------------------
function goSubmit(type,ac,pw,pw2,rtArea){
	// submit
	if(type == 'submit'){
		// アカウント （再）エラーチェック
		var ck = onClickWCheck('userac','',rtArea);
		if(ck){ goSubmitGo(-1,ck,rtArea); }
	}else{
	if(type == 'cansel'){


	}}
}
function goSubmitGo(next,sMes,rtArea){
	//(アカウントチェック)
	if(next!=1){ // エラーあれば
		if(sMes != ''){ 
			viewMesArea(rtArea,sMes,DEFSTR_STP);
			j$("input#userac").focus(); return; }
	}else{
	//(パスワードチェック)
		var tempVal1 = j$("input#userac").val();
		var tempVal2 = j$("input#userpd").val();
		var tempVal3 = j$("input#userpd2").val();
		var strMes = "";
		strMes = ckStrFields('pw',tempVal2,tempVal3);
		if(strMes != ''){
			viewMesArea(rtArea,strMes,DEFSTR_STP);
			j$("input#userpd").focus(); return; }

	//(メールアドレスチェック)
		var tempVal4 = j$("input#userem").val();
		var tempVal5 = j$("input#userem2").val();
		strMes = "";
		strMes = ckStrFields('em',tempVal4,tempVal5);
		if(strMes != ''){ //alert(strMes); // メッセージ表示
			viewMesArea(rtArea,strMes,DEFSTR_STP);
			j$("input#userem").focus(); return; }

// ***************************
// 仮メール実行
// ---------------------------
		// 抜けた＞submit
		if(
			(tempVal1!='')&&(tempVal2!='')
			&&(tempVal3!='')&&(tempVal4!='')&&(tempVal5!='')
			){
			var postFile = "*****"; // 通信先PHP
			alert("実際の仮メール送信処理開始");
			OpenToggleDivOnOff('loginform_1','loginform');

		}else{ viewMesArea(rtArea,DEFSTR_ERR,DEFSTR_STP); return; }
	}
}

// ***************************
// viewMesArea
// ---------------------------
function viewMesArea(rtArea,sMes,defMes){
	// メッセージエリア表示
	j$("#"+rtArea).html(sMes);
	j$("#"+rtArea).css({color:"#FF0000"});
	j$("#"+rtArea).hide().fadeIn(3 * 1000);
	// 一定時間後
	myTimer = j$.timer(3 * 1000,function() {
		// メッセージエリア初期化
		j$("#"+rtArea).html(defMes);
		j$("#"+rtArea).css({color:"#494949"});
		j$("#"+rtArea).hide().fadeIn(3 * 1000);
	});
}

