/* -- JavaScript Library */
/* -- Global Functions */



// ********************************************************************************
// 名刺・カード（Ｃ画面）入力項目のチェック
// ********************************************************************************
function RequireField_ms_d(inputForm){

	var fCheck;
	var throughCount;
	var fieldsBefore;
	var fieldsNeeded;
	var strObjField;
	var fBeforeCheck;

	// チェックする必須入力項目のフィールド名
	var requireField = new Array("item_designcode", "item_papername", "item_printcount", 
				"deliv_name", 
				"deliv_furigana", 
				"deliv_pos1", "deliv_pos2", 
				"deliv_area", "deliv_address1", 
				"deliv_tel1", "deliv_tel2", "deliv_tel3", 
				"access_name", 
				"access_furigana", 
				"access_tel1", "access_tel2", "access_tel3", 
				"access_email", "access_email_check", 
				"payment");
	// チェックする必須入力項目名
	var fieldNames = new Array("注　 文 ： 商品番号", "注　 文 ： 紙の種類", "注　 文 ： 印刷枚数", 
				"配送先 ： 氏名",
				"配送先 ： フリガナ", 
				"配送先 ： 郵便番号", "配送先 ： 郵便番号", 
				"配送先 ： 都道府県", "配送先 ： 市町村番地", 
				"配送先 ： 電話番号", "配送先 ： 電話番号", "配送先 ： 電話番号", 
				"連絡先 ： 氏名等", 
				"連絡先 ： フリガナ", 
				"連絡先 ： 電話番号", "連絡先 ： 電話番号", "連絡先 ： 電話番号", 
				"連絡先 ： メールアドレス", "連絡先 ： メールアドレス 確認用", 
				"お支払い方法");
	// チェックするオプション項目のフィールド名
	var optField = new Array("print_pos1", "print_pos2", 
				"print_tel1", "print_tel2", "print_tel3", 
				"print_fax1", "print_fax2", "print_fax3", 
				"deliv_tel1", "deliv_tel2", "deliv_tel3", 
				"access_fax1", "access_fax2", "access_fax3");
	// チェックするオプション項目名
	var optfieldNames = new Array("文字原稿 ： 郵便番号", "文字原稿 ： 郵便番号", 
				"文字原稿 ： 電話番号", "文字原稿 ： 電話番号", "文字原稿 ： 電話番号", 
				"文字原稿 ： ファックス番号", "文字原稿 ： ファックス番号", "文字原稿 ： ファックス番号", 
				"配送先 ： 電話番号", "配送先 ： 電話番号", "配送先 ： 電話番号", 
				"連絡先 ： ファックス番号", "連絡先 ： ファックス番号", "連絡先 ： ファックス番号");

	// 必須入力項目のチェック
	fCheck	 = true;
	throughCount   = 0;
	fieldsBefore   = "";
	fieldsNeeded   = "---------------------------------\n" +
			"※ 必須の入力項目です ※" +
			"\n---------------------------------\n\n";
	for(var fieldNum=0; fieldNum < requireField.length; fieldNum++) {
		if ((inputForm.elements[requireField[fieldNum]].value == "") ||
			(inputForm.elements[requireField[fieldNum]].value == " ") ||
			(inputForm.elements[requireField[fieldNum]].value == "‖‖") ||
			(inputForm.elements[requireField[fieldNum]].value == "‖‖‖‖") ||
			(inputForm.elements[requireField[fieldNum]].value == "‖‖‖‖‖‖") ||
			(inputForm.elements[requireField[fieldNum]].value == "‖‖‖‖‖‖‖‖")) {

			if (throughCount == 0){
				inputForm.elements[requireField[fieldNum]].focus();
			}
			throughCount++;

			// 複合入力項目の一部の場合は表示を１セットにまとめる
			if (fieldsBefore != fieldNames[fieldNum]){
				fieldsNeeded += "　・ " + fieldNames[fieldNum] + "\n\n";
			}

			// 前ループの値を格納
			fieldsBefore = fieldNames[fieldNum];
			// エラーフラグをたてる
			fCheck = false;
		}
	}
	if (fCheck == false){ alert(fieldsNeeded); return fCheck; }



	// [E]メールアドレス項目の適正チェック
	// メールアドレス項目のフィールド名
	fieldsNeeded = "----------------------------------------\n" +
		"※ メールアドレスが正しく入力されていません ※" +
		"\n----------------------------------------";
	strObjField = "access_email";

	if (fCheck == true){
		if (CheckEmail(inputForm.elements[strObjField].value) == false) {
			inputForm.elements[strObjField].focus();
			inputForm.elements[strObjField].select();
			fCheck = false;
		}
	}
	if (fCheck == false){ alert(fieldsNeeded); return fCheck; }



	// [F]メールアドレス項目の適正チェック
	// メールアドレス項目のフィールド名
	fieldsNeeded = "--------------------------------------\n" +
			"※ フリーメールはご利用になれません ※" +
			"\n--------------------------------------";
	strObjField = "access_email";

	if (fCheck == true){
		if (CheckFmail(inputForm.elements[strObjField].value) == false) {
			inputForm.elements[strObjField].focus();
			inputForm.elements[strObjField].select();
			fCheck = false;
		}
	}
	if (fCheck == false){ alert( fieldsNeeded); return fCheck; }



	// メールアドレス項目と確認用メールアドレス項目の比較
	// 入力確認用のメールアドレス項目のフィールド名
	fieldsNeeded = "------------------------------------------------\n" +
		   "※ 確認用項目にも同じメールアドレスを入力してください ※" +
		   "\n------------------------------------------------";
	strObjField = "access_email_check";

	if (fCheck == true){
		if (inputForm.elements[strObjField].value != inputForm.elements[strObjField].value) {
			inputForm.elements[strObjField].focus();
			inputForm.elements[strObjField].select();
			fCheck = false;
		}
	}
	// 確認ダイアログボックスの表示
	if (fCheck == false){ alert(fieldsNeeded); return fCheck;}



	return confirm("注文内容の確認画面を表示します。");

}



// ********************************************************************************
// 名刺・カード（Ｃ画面）文字原稿 to 配送先コピー
// ********************************************************************************
function Replicate_ms_d_01to02(f){

	f.deliv_name.value = f.print_name.value;
	f.deliv_furigana.value = f.print_furigana.value;

	f.deliv_pos1.value = f.print_pos1.value;
	f.deliv_pos2.value = f.print_pos2.value;

	f.deliv_area.selectedIndex =  f.print_area.selectedIndex;

	f.deliv_address1.value = f.print_address1.value;
	f.deliv_address2.value = f.print_address2.value;

	f.deliv_tel1.value = f.print_tel1.value;
	f.deliv_tel2.value = f.print_tel2.value;
	f.deliv_tel3.value = f.print_tel3.value;

}



// ********************************************************************************
// 名刺・カード（Ｃ画面）文字原稿 to 連絡先コピー
// ********************************************************************************
function Replicate_ms_d_01to03(f){

	f.access_name.value = f.print_name.value;
	f.access_furigana.value = f.print_furigana.value;

	f.access_tel1.value = f.print_tel1.value;
	f.access_tel2.value = f.print_tel2.value;
	f.access_tel3.value = f.print_tel3.value;

	f.access_fax1.value = f.print_fax1.value;
	f.access_fax2.value = f.print_fax2.value;
	f.access_fax3.value = f.print_fax3.value;

	f.access_email.value = f.print_email.value;
	f.access_email_check.value = f.print_email.value;

}



// ********************************************************************************
// 名刺・カード（Ｃ画面）配送先 to 連絡先コピー
// ********************************************************************************
function Replicate_ms_d_02to03(f){

	f.access_name.value = f.deliv_name.value;
	f.access_furigana.value = f.deliv_furigana.value;

	f.access_tel1.value = f.deliv_tel1.value;
	f.access_tel2.value = f.deliv_tel2.value;
	f.access_tel3.value = f.deliv_tel3.value;

}



// ********************************************************************************
// 名刺・カードの料金計算
// ********************************************************************************
function MS_Calc(StrServiceCode, IntRogof, IntColor, IntPrintCount){

	var IntPrice = 0 ;

	// 枚数
	var ArrCount				= new Array( 100, 200, 300, 400, 500) ;
	// ベーシック名刺　表面：モノクロ / 裏面：無地
	var ArrM_N_BAS_CountPrice	= new Array(2500,4500,6300,7900,9300) ;
	// ベーシック名刺　表面：カラー　 / 裏面：無地
	var ArrC_N_BAS_CountPrice	= new Array(3100,5000,6700,8300,9700) ;
	// デザイン名刺　　表面：モノクロ / 裏面：無地
	var ArrM_N_DGN_CountPrice	= new Array(2500,4500,6300,7900,9300) ;
	// デザイン名刺　　表面：カラー　 / 裏面：無地
	var ArrC_N_DGN_CountPrice	= new Array(3100,5000,6700,8300,9700) ;
	// コンセプト名刺　　　表面：カラー　 / 裏面：無地
	var ArrC_N_CPT_CountPrice	= new Array(3700,5500,7100,8600,10000) ;

	// ロゴの使用
	var ArrRogoPrice	= new Array(   0,1500, 500) ;
	// 地図の使用
	var ArrMapPrice		= new Array(   0,2000, 500) ;

	var IntRogoPrice ;	// ロゴ作製料金
	var IntMapPrice ;	// 地図作製料金

	// 価格を計算する
	for(var fieldNum=0; fieldNum < ArrCount.length; fieldNum++) {
		if (( IntPrintCount == ArrCount[fieldNum] )) {
			switch (StrServiceCode) {
			case "M_N_BAS":						// ベーシック名刺(表：モノクロ / 裏：無地)
				if (IntColor == 0) {
					IntPrice = ArrM_N_BAS_CountPrice[fieldNum] ;
				} else {
					IntPrice = ArrC_N_BAS_CountPrice[fieldNum] ;
				}
				break ;
			case "C_N_BAS":						// ベーシック名刺(表：カラー / 裏：無地)
				IntPrice = ArrC_N_BAS_CountPrice[fieldNum] ;
				break ;
			case "M_N_DGN":						// デザイン名刺(表：モノクロ / 裏：無地)
				if (IntColor == 0) {
					IntPrice = ArrM_N_DGN_CountPrice[fieldNum] ;
				} else {
					IntPrice = ArrC_N_DGN_CountPrice[fieldNum] ;
				}
				break ;
			case "C_N_DGN":						// デザイン名刺(表：カラー / 裏：無地)
				IntPrice = ArrC_N_DGN_CountPrice[fieldNum] ;
				break ;
			case "C_N_CPT":						// コンセプト名刺(表：カラー / 裏：無地)
				IntPrice = ArrC_N_CPT_CountPrice[fieldNum] ;
				break ;
			default :
				IntPrice = 0 ;
				break ;
			}
		}
	}

	// ロゴ作製料金の取得
	IntRogoPrice = ArrRogoPrice[IntRogof] ;

	if (IntPrice != 0) {
		IntPrice = IntPrice + IntRogoPrice ;
	}

	// 消費税処理を行う　※料金に税込みのため計算不要
	//IntPrice = CalcTax( IntPrice ) ;

	// 四捨五入処理を行う　※料金に税込みのため計算不要
	//IntPrice = CalcRound( IntPrice ) ;

	return IntPrice ;

}



// ********************************************************************************
// 名刺・カードの料金計算　データ取得
// ********************************************************************************
function RequireField_MS_Calc(inputForm){

	// 必須入力のチェック・計算する入力項目のフィールド名
	var ArrFieldName	 = new Array("item_printpack", "value_item_printcolor", "value_item_printrogo", "value_item_printrogo_color", "item_printcount") ;
	// 必須入力のチェック・計算する入力項目名
	var ArrFieldDisplay	 = new Array("パッケージ", "印刷色", "ロゴの使用", "ロゴの印刷色", "印刷枚数") ;
	// 入力項目の値
	var ArrFieldValue	 = new Array() ;

	var IntColor = 0;
	var objPrintPrice = "item_printprice" ;
	var IntPrintPrice = 0 ;

	var fFailureCheck = true ;

	// 配列への格納
	for(var fieldNum=0; fieldNum < ArrFieldName.length; fieldNum++) {
		ArrFieldValue[fieldNum] = inputForm.elements[ArrFieldName[fieldNum]].value ;
		if ( (ArrFieldValue[fieldNum] == "") || (ArrFieldValue[fieldNum] == " ") ) {
			ArrFieldValue[fieldNum] = 0 ;
		}
	}

	// 計算のために加工（印刷色がカラーであるか否か = [IntColor = 1:カラー]）
	if ( (ArrFieldValue[1] != "0") && (ArrFieldValue[1] != "CL-Gray") ) {
		IntColor = 1 ;
	}

	// 計算のために加工（ロゴを印刷 且つ それがカラーであるか否か）
	if (ArrFieldValue[2] != 0) {
		if (ArrFieldValue[3] != 0) {
			IntColor = 1 ;
		}
	}

	// 名刺区分（ベースになる名刺のカラー区分　→　モノクロ名刺の場合ロゴのカラー区分によりカラーかモノクロか決定するが、カラー名刺は依存しない）
	IntPrintPrice = MS_Calc( 	ArrFieldValue[0],
						Number( ArrFieldValue[2] ),
						Number( IntColor ),
						Number( ArrFieldValue[4] ) ) ;

	// ディスプレイ用　桁区切り表示処理を行う
	IntPrintPrice = myFormatNumber( IntPrintPrice ) + "円" ;

	document.getElementById(objPrintPrice).value = IntPrintPrice ;

	if (fFailureCheck == false){ alert(fieldsFailure) ; return fFailureCheck ; }

}

/* EOF */

