//
//	WebShopping Ver.5用JavaScript外部ファイル コア
//	■base.js■
//	2000/09/05	Ver 0.05
//
//------------------------------------------------------------------
// Num_chk（メッセージなし）
// 数値チェック
//------------------------------------------------------------------
function Num_chk(stri,opt1,minusflg, piriodflg){
	var chk_flg = true;
	var wkstr = stri;

	// マイナスを許可する場合
	if (minusflg == true){
		wkstr = wkstr.replace('-','0');
	}
	// ピリオドを許可する場合
	if (piriodflg == true){
		wkstr = wkstr.replace('.','0');
	}
	if ((opt1 == "allownull") && (wkstr=="")){
		chk_flg = true;
	}
	else{
		j=parseInt(wkstr,10);
		strj=""+j+"";
		if(j < 0){
			chk_flg = false;
		}
		else if (wkstr != strj){
			wkstr=""+wkstr+"";
			if (wkstr.charAt(0) == '0' || wkstr.length >= 10){
				for(var i=0;i < wkstr.length && chk_flg==true ; i++){
					swkstr = wkstr.charAt(i);
					j = parseInt(swkstr,10);
					sstrj = ""+j+"";
					if (swkstr != sstrj){
						chk_flg = false;
					}
					else {
						chk_flg = true;
					}
				}
			}
			else {
				chk_flg = false;
			}
		}
	}
	return chk_flg
}
//------------------------------------------------------------------
// Null_chk（メッセージなし）
// ＮＵＬＬチェック
//------------------------------------------------------------------
function Null_chk(str){
	var ok = "0";
	var ng = "0";
	var chk_flg = true;
	var wk_str = str;
	if( wk_str.length == 0 ){
	    chk_flg = false;
	}
	else{
		for(var i=0; i<wk_str.length; i++){
			if ((wk_str.charAt(i)==" ")||(wk_str.charAt(i)=="　")){
				ok = "1";
			}
			else{
				ng = "1";
			}
		}
		if (ok=="1" && ng=="0"){
			chk_flg = false;
		}
	}
	return chk_flg;
}
//------------------------------------------------------------------
// chkElementArray
// ターゲットオブジェクトが配列なのかどうかをチェック
// 引数　：argFormName    （I）チェックするフォームの名前
//         argTargetName  （I）チェックするコントロールの名前
// 戻り値：true 配列である。  false:配列ではない。
// 備考　：フォームが配列の場合は、formname[0]のようにインデックスまで指定する
//------------------------------------------------------------------
function chkElementArray(argFormName, argTargetName, argTargetIndex){
	var ArrayFlg;

	// 引数にnullがきたときは配列ではないので無条件にfalse。
	if (argTargetIndex == null){
		ArrayFlg = false;

	// 引数に1以上がきたときは配列なので無条件にtrue。
	}else if (argTargetIndex >= 1) {
		ArrayFlg = true;

	// ゼロのときは配列か配列じゃないかわからないので判定処理。
	}else{
		var str = "document." + argFormName + "." + argTargetName + ".length";
		if (isNaN(eval(str)) == false){
			ArrayFlg = true;
		}
		else{
			ArrayFlg = false;
		}
	}
	return ArrayFlg;
}
//------------------------------------------------------------------
// chkFormArray
// フォームが配列なのかどうかをチェック
// 引数　：argFormName  （I）チェックするフォームの名前
// 戻り値：null 配列ではない　　　数値 document.formsのインデックス
//------------------------------------------------------------------
function chkFormArray(argFormName, argTargetIndex){
	var ArrayIdx = null;
	var FormCount = 0;
	var svIdx = null;

	// 引数にnullがきたときは配列ではないので何もしない
	if (argTargetIndex == null){
	}else{
		var formcnt = document.forms.length;

		// NNの場合、eval(フォーム名[idx])だと実行時エラーが起きるため、
		// formsで置き換えて処理する。ただし、別名のフォームがドキュメントに
		// あるかもしれないので、forms配列の中から指定されたものを探してインデックスを置き換える。
		for (var i = 0; i < formcnt; i++) {

			// 同じ名称のフォームが複数あったら配列。
			if ((document.forms[i].name == argFormName )){ 

				// ターゲットのインデックスに該当するformsインデックスを取得。
				if (FormCount == argTargetIndex){
					svIdx = i;
				}

				FormCount += 1;

				// 配列であることが証明され、なおかつ、formsインデックスも取得できたらＥＸＩＴ
				if ((FormCount > 1) && (svIdx != null)){
					ArrayIdx = svIdx;
					break;
				}
			}
		}
	}
	return ArrayIdx;
}
//------------------------------------------------------------------
// makeEvalStr
// フォームの中のコントロールを示唆する文字列を配列を加味して作成
// 引数　：argFormName		（I）チェックするフォームの名前
// 　　　：argTargetIndex	（I）チェックするフォームのインデックス（配列でないときはnullか0）
// 　　　：argTargetName	（I）チェックするテキストの名前
// 　　　：argTargetIndex	（I）チェックするテキストのインデックス（配列でないときはnullか0）
// 戻り値：作成された文字列
//------------------------------------------------------------------
function makeEvalStr(argFormName, argFormIndex, argTargetName, argTargetIndex){
	var str;
	var wk_formname;
	var formsidx;
	// フォームが配列なのかどうかをチェック
	formsidx = chkFormArray(argFormName, argFormIndex);
	if (formsidx != null){
		wk_formname = "forms[" + formsidx + "]";
	}
	else{
		wk_formname = argFormName;
	}
	// テキストが配列なのかどうかをチェック
	if (chkElementArray(wk_formname, argTargetName, argTargetIndex) == true){
		str = "document." + wk_formname + "." + argTargetName + "[" + argTargetIndex + "]";
	}
	else{
		str = "document." + wk_formname + "." + argTargetName;
	}
	return(str);
}

