﻿var fgKago=new Array();				//買い物かご
var fgFlg_Del_On="1";				//買い物かごの削除フラグ（On）
var fgFlg_Del_Off="0";				//買い物かごの削除フラグ（Off）
var fgCntHistoryBack=0;				//エラー表示を行なった回数

/************************************************************************/
// メール送信フォームに買い物かごを表示する
// Input Parameter
//    なし
//
// Output Parameter
//    なし
//
// 戻り値
//    なし
/************************************************************************/
function setKagoMail(){
var oAllKago="";	//前回表示した買い物かご
var i;				//ループカウンタ

	oAllKago = eval("(" + sv_kago.replace(/@@10@@/g,"'") + ");");
	for(var oKago in oAllKago){
		fgKago[oKago] = oAllKago[oKago];
	}

	document.getElementById("div_kago").className="";
	for(i=0;i<fgKago.length;i++){
		setKagoDisp(i, false);	//買い物かごの中身
	}
	setSumDisp();				//合計エリア
}

/************************************************************************/
// 買い物かごを表示する（画面用）
// Input Parameter
//    piIndex : インデックス
//    pDisable : true:編集可 false:編集不可
// Output Parameter
//    なし
// 戻り値
//    なし
/************************************************************************/
function setKagoDisp(piIndex, pDisable){
var oTbl = document.getElementById("tbody_kago");	//テーブルオブジェクト
var newTR;	//行オブジェクト
var newTD;	//列オブジェクト

	if (oTbl.rows.length==0){
		newTR = oTbl.insertRow(0);
		document.getElementById("div_kago").className="";	//買い物かご
	}else{
		newTR = oTbl.insertRow(oTbl.rows.length);
	}	

	newTD = newTR.insertCell(0);
	newTD.innerHTML = fgKago[piIndex].CM3_FULL_NAME;
	newTD.className = "td_full_name";

	newTD = newTR.insertCell(newTR.cells.length);
	newTD.innerHTML = fgKago[piIndex].CM3_AMOUNT;
	newTD.className = "td_qty";

	newTD = newTR.insertCell(newTR.cells.length);
	newTD.innerHTML = fgKago[piIndex].CM_UNIT;
	newTD.className = "td_unit";

	newTD = newTR.insertCell(newTR.cells.length);
	newTD.innerHTML = fgKago[piIndex].CM3_AMOUNT_SUM;
	newTD.className = "td_qty";

	if(pDisable){
		newTD = newTR.insertCell(newTR.cells.length);
		newTD.innerHTML = "<input type='button' name='btn" + newTR.cells.length + "' id='btn" + newTR.cells.length + "' value='もどす' onclick='delKago(this," + oTbl.rows.length + ");'>";
		newTD.className = "td_btn";

		newTD = newTR.insertCell(newTR.cells.length);
		newTD.innerHTML = fgKago[piIndex].CM2_CODE;
		newTD.className = "td_hidden";

		newTD = newTR.insertCell(newTR.cells.length);
		newTD.innerHTML = fgKago[piIndex].CM3_COM_CODE;
		newTD.className = "td_hidden";
	}

	if(fgKago[piIndex].Flg_Del==fgFlg_Del_On){
		newTR.className="tr_hidden";
	}

}

/************************************************************************/
// 合計金額を表示する（画面用）
// Input Parameter
//    なし
// Output Parameter
//    なし
// 戻り値
//    なし
/************************************************************************/
function setSumDisp(){
	document.getElementById("tbody_sum1").innerHTML = getAmountSum();
	document.getElementById("tbody_sum2").innerHTML = getTaxAmountSum();
	document.getElementById("tbody_sum3").innerHTML = getAmountSum();
}

/************************************************************************/
// 金額の合計を算出する
// Input Parameter
//    なし
// Output Parameter
//    なし
// 戻り値
//    算出した合計金額
/************************************************************************/
function getAmountSum(){
var sSum=0;	//金額編集エリア

	for(i=0;i<fgKago.length;i++){
		if(fgKago[i].Flg_Del==fgFlg_Del_Off){
			if(! isNaN(getNum(fgKago[i].CM3_AMOUNT))){
				sSum += getNum(fgKago[i].CM3_AMOUNT);
			}
		}
	}

	return "&yen;" + addComma(String(sSum));
}
/************************************************************************/
// 消費税の合計を算出する
// Input Parameter
//    なし
// Output Parameter
//    なし
// 戻り値
//    算出した合計金額
/************************************************************************/
function getTaxAmountSum(){
var sSum=0;	//金額編集エリア

	for(i=0;i<fgKago.length;i++){
		if(fgKago[i].Flg_Del==fgFlg_Del_Off){
			if(! isNaN(getNum(fgKago[i].CM3_TAX_AMOUNT))){
				sSum += getNum(fgKago[i].CM3_TAX_AMOUNT);
			}
		}
	}

	return "&yen;" + addComma(String(sSum));
}
/************************************************************************/
// 金額から数値のみを取得する
// Input Parameter
//    psValue : 金額
// Output Parameter
//    なし
// 戻り値
//    金額（数値のみ）
/************************************************************************/
function getNum(psValue){
var psRet = "";		//文字列編集エリア

	psRet = psValue.replace("&yen;","");
	psRet = psRet.replace(/,/g,"");

	if(! isNaN(psRet)){
		psRet = parseInt(psRet);
	}
	return psRet;
}
/************************************************************************/
// 金額にカンマ編集を行なう
// Input Parameter
//    psValue : 金額
// Output Parameter
//    なし
// 戻り値
//    カンマ編集した金額
/************************************************************************/
function addComma(psValue){
var i;					//ループカウンタ
var psRet = psValue;	//文字列編集エリア

    for(i = 0; i < psValue.length/3; i++){
        psRet = psRet.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");
    }
    return psRet;
}

/************************************************************************/
// 買い物トップに戻る
// Input Parameter
//    なし
//
// Output Parameter
//    なし
//
// 戻り値
//    エラーメッセージ
/************************************************************************/
function goHistoryBack(pNum){
	//同一ページ内にジャンプしている場合は履歴も1つ多くもどす
	//例）エラー表示領域（#ErrTop）にジャンプした場合など
	if(location.hash!=""){
		pNum -= 1;
	}
	history.go(pNum);
}