﻿
function RandomName(str){
	var RandName = new String;

	//フォームをクリア
	if(str == "clr"){
		if(document.show.randomname.value) document.show.randomname.value = "";
		return;
	}

	//オプションクリア
	if(str == "oclr"){
		if(document.show.mojicount.value) document.show.mojicount.value = "";
		if(document.show.moji.value) document.show.moji.value = "";
		if(document.show.mojiafter.value) document.show.mojiafter.value = "";
		return;
	}

//---------------------------------------------------------------

	strLong = new Array( 2, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 8 );
	var no = new String;
	no = Math.floor(Math.random() * strLong.length);		//文字数は strLong[no]　で取得
	strLongset = strLong[no];

//文字定義
	//どこでもOK
	strKana_all1 = new Array("ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","ガ","ギ","グ","ゲ","ゴ","サ","シ","ス","セ","ソ","ザ","ジ","ズ","ゼ","ゾ","タ","チ","ツ","テ","ト","ダ","ヂ","ヅ","デ","ド","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ヴ","ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","サ","シ","ス","セ","ソ","ア","イ","ウ","エ","オ","サ","シ","ス","セ","ソ","ナ","ニ","ヌ","ネ","ノ","ラ","リ","ル","レ","ロ","ラ","リ","ル","レ","ロ");
	//どこでもOKだが2文字扱い
	strKana_all2 = new Array("イェ","ウァ","ウィ","ウェ","ウォ","ヴァ","ヴィ","ヴェ","ヴォ","クァ","クィ","クェ","クォ","グァ","グィ","グェ","グォ","シィ","シェ","ジィ","ジェ","チェ","ツァ","ツィ","ツェ","ツォ","ティ","トゥ","ディ","ドゥ","ニェ","ファ","フィ","フェ","フォ","ユァ","ユィ","ユェ","ユォ","キャ","キュ","キョ","ギャ","ギュ","ギョ","シャ","シュ","ショ","ジャ","ジュ","ジョ","チャ","チュ","チョ","ヂャ","ヂュ","ヂョ","テュ","デュ","ニャ","ニュ","ニョ","ヒャ","ヒュ","ヒョ","ビャ","ビュ","ビョ","ピャ","ピュ","ピョ","フュ","ミャ","ミュ","ミョ","リャ","リュ","リョ","ウァ","ウィ","ウェ","ウォ","ヴァ","ヴィ","ヴェ","ヴォ","シャ","シュ","ショ","シェ","シェ","シェ","ティ","ティ","ティ","フュ","フュ","フュ","ミュ");
	//姓・名・...の２文字目以降どこでもOKだが連続してはいけない
	strkana_after = new Array("ッ","ッ","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","＝","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","・","ン","ン","ン","ン","ン","ン","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー","ー");

//生成
	var wordStart = new String;
	wordStart = 1;					//単語の1文字目フラグ
	var strPre = new String;		//直前の文字保存

	strCount = document.show.mojicount.value;	//文字数指定の取得
	strPrev = document.show.moji.value;			//先頭文字の取得
	strAfter = document.show.mojiafter.value;

	if(strCount){strLongset = strCount;}	//文字数指定の場合
	if(strPrev){RandName = strPrev; strLongset -= RandName.length;}　//先頭文字指定の場合
	if(strAfter){RandName_after = strAfter;	strLongset_after = RandName_after.length;}　//末尾文字指定の場合

	totalsuu = strPrev.length + strAfter.length;
	if( strCount && (strLongset <= totalsuu) ){document.show.mojicount.value = "";}


	while(strLongset){
		if(wordStart){
		//単語の1文字目
			if(strLongset > 1){
				strListLong = strKana_all1.length + strKana_all2.length;
				no = Math.floor(Math.random() * strListLong);
				if(no < strKana_all1.length){
					RandName = RandName + strKana_all1[no];
					strPre = "";
					strLongset--;
				}else{
					no -= strKana_all1.length;
					RandName = RandName + strKana_all2[no];
					strPre = "";
					strLongset -=2;
				}
			}else{
				no = Math.floor(Math.random() * strKana_all1.length);
				RandName = RandName + strKana_all1[no];
				strPre = "";
				strLongset--;
			}
			wordStart = 0;
		}else{
		//２文字目以降
			if(strLongset > 1){
				strListLong = strKana_all1.length + strKana_all2.length + strkana_after.length;
				strset = strKana_all1.length + strKana_all2.length;
				no = Math.floor(Math.random() * strListLong);
				if(no < strKana_all1.length){
					RandName = RandName + strKana_all1[no];
					strPre = "";
					strLongset--;
				}else if(no < strset){
					no -= strKana_all1.length;
					RandName = RandName + strKana_all2[no];
					strPre = "";
					strLongset -=2;
				}else{
					if(strPre){
						if(strPre == "ッ")		strkana_after0 = new Array("ン");
						else if(strPre == "ン")	strkana_after0 = new Array("・","＝");
						else					strkana_after0 = new Array("ン","・","＝");
						no = Math.floor(Math.random() * strkana_after0.length);
						strPre = strkana_after0[no];
						RandName = RandName + strPre;
						if(strPre == "・" || strPre == "＝" ) wordStart = 1;
					}else{
						no -= strset;
						RandName = RandName + strkana_after[no];
						strPre = strkana_after[no];
						if(strPre == "・" || strPre == "＝" ) wordStart = 1;
					}
					strLongset--;
				}
			}else{
				strListLong = strKana_all1.length + strkana_after.length;
				no = Math.floor(Math.random() * strListLong);
				if(no < strKana_all1.length){
					RandName = RandName + strKana_all1[no];
					strPre = "";
				}else{
					no -= strKana_all1.length;



					if(strPre){
						if(strPre == "ッ")		strkana_after0 = new Array("ン");
						else if(strPre == "ン")	strkana_after0 = strKana_all1;
						else					strkana_after0 = new Array("ン");
						no = Math.floor(Math.random() * strkana_after0.length);
						RandName = RandName + strkana_after0[no];
					}else{
						strkana_after0 = new Array("ー","ン");
						no = Math.floor(Math.random() * strkana_after0.length);
						RandName = RandName + strkana_after0[no];
					}

				}
				strLongset--;



			}

		}

			//末尾文字ぶんチェク
			if( strAfter.length ){
			if( strLongset <= strAfter.length ){
				if(strLongset != strAfter.length){
					RandName = RandName.slice( 0,-1 )
				}
				RandName = RandName + RandName_after;
				break;
			}
			}


	}













/*
	if(document.show.randomname.value){
		//フォームに値がある場合

		RandName = "入力あり";
	}else{
		//フォームに値がない場合
		RandName = "らんだむ";
	}
*/



//---------------------------------------------------------------

	//フォームに値を代入
	document.show.randomname.value = RandName;
}



