//=============================================================================
// 複数対応版 商品情報取得 Ajax						Powerd by Axdd system div.
// Version 2.1.0
// Created by Akira.Kusama
//=============================================================================

//------------------------------------
// 更新履歴
//------------------------------------
/*

2007/01/12 v2.1.1 カートに入れたあとの、買い物続行ボタン遷移対策
2006/12/02 v2.1.0 小窓Open/Closeコントロールの調整
2006/11/14 v2.0.0 小窓コントロールの追加
2006/10/04 v1.0.1 Ajax用pathの削除（http/https対策）
2006/10/04 v1.0.0 リリース

*/

//===================================
// GetMultiProdItemConfirm.js
// 
// ::used module::
// :Nomal mode
// use prototype.js	->	"1.4.0以上"
// use ObjTree.js
//
// use dojo/dojo.js
// use dojo/src/lfx/html.js
//
// use Common.js
// use ValueCtrl.js
// use InnerHtmlCtrl.js
// use StyleCtrl.js
// use AjaxCtrl.js
// ===================================

//------------------------------------
// Script Call
//------------------------------------
/*
*/


//------------------------------------
// Html Sample
//------------------------------------
/*
*/


//-----------------------------------------------------------------------
//                    Get Multi Product Item Confirm
//-----------------------------------------------------------------------

/* ***** Global ***** */


/* ***** User Object ***** */


/* ***** Getter ***** */


/* ***** Setter ***** */


/* ***** Event ***** */
// Event : Open Window
function opnMultiItem(divIdName) {
	try {
		var utl = new utility();	// Common.js
		
		// Open Window
		if (utl.boolObjChk(utl.ufc(divIdName))) {
			// Dojo Effect Open
			fadeInEffe(divIdName, gDojoDelay);
		}
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:opnMultiItem\n" + e);
	}
}

// Event : Close Window
function clsMultiItem(divIdName, delay, flg) {
	try {
		var utl = new utility();		// Common.js
		
		if (utl.ufc(delay) == "" || delay == null) {
			delay = 0;
		}
		
		if (utl.ufc(flg) == "" || flg == null) {
			flg = 0;
		}
		
		// Close Window
		if (utl.boolObjChk(utl.ufc(divIdName))) {
			if (utl.ufc(gBackUrl) == "") {
				// Dojo Effect Close
			    setTimeout('fadeOutEffe("' + divIdName + '", ' + gDojoDelay + ')', parseInt(delay));
			    
				if (flg == 0) {
					displayOff(divIdName, 200, 50)
				}
			} else {
				location.href = gBackUrl;
			}
		}
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:clsMultiItem\n" + e);
	}
}


/* ***** Subroutine ***** */
// Prod List
function SetTagsDisp(key) {
	try {
		var sty = new StyleCtrl();	// StyleCtrl.js
		
		sty.display('PROD_ID' + gSelectId, key);			// 商品ID
		sty.display('PROD_NAME_JP' + gSelectId, key);		// 商品名
		sty.display('SHAPE_CAPA' + gSelectId, key);			// 商品内容
		sty.display('SELL_PRICE' + gSelectId, key);			// 販売価格
		sty.display('RAKUMEM_POINT' + gSelectId, key);		// らくメンPt
		sty.display('PACKAGE_STYLE_NAME' + gSelectId, key);	// 配送形態
		sty.display('CENTER_COM_NAME' + gSelectId, key);	// 配送元
		sty.display('ZAIKO' + gSelectId, key);				// 在庫数
		sty.display('IZAIKO' + gSelectId, key);				// 整数形式在庫数
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:SetTagsDisp\n" + e);
	}
	return;
}

// Stock Status Images
function SetStockStatusDisp(keyNo) {
	try {
		var sty = new StyleCtrl();	// StyleCtrl.js
		
		if (keyNo == 0) {
			// 在庫状況の変更：無し
			sty.display('STOCK_STATUS_OK' + gSelectId, 'none');
			sty.display('STOCK_STATUS_LT' + gSelectId, 'none');
			sty.display('STOCK_STATUS_NG' + gSelectId, 'inline');
		} else if (keyNo == 1) {
			// 在庫状況の変更：逼迫中
			sty.display('STOCK_STATUS_OK' + gSelectId, 'none');
			sty.display('STOCK_STATUS_LT' + gSelectId, 'inline');
			sty.display('STOCK_STATUS_NG' + gSelectId, 'none');
		} else if (keyNo == 2) {
			// 在庫状況の変更：有り
			sty.display('STOCK_STATUS_OK' + gSelectId, 'inline');
			sty.display('STOCK_STATUS_LT' + gSelectId, 'none');
			sty.display('STOCK_STATUS_NG' + gSelectId, 'none');
		} else  {
			// エラー
			// 在庫状況の変更：エラー
			sty.display('STOCK_STATUS_OK' + gSelectId, 'none');
			sty.display('STOCK_STATUS_LT' + gSelectId, 'none');
			sty.display('STOCK_STATUS_NG' + gSelectId, 'inline');
		}
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:SetStockStatusDisp\n" + e);
	}
}

// CartIn Button
function SetCartInDisp(keyNo) {
	try {
		var sty = new StyleCtrl();	// StyleCtrl.js
		
		if (keyNo >= 1) {
			// 在庫状況の変更：逼迫中 又は 有り
			// カートに入れるボタンの状態変更：購入可
			sty.display('CART_IN_OK' + gSelectId, 'inline');
			sty.display('CART_IN_NG' + gSelectId, 'none');
		} else {
			// 在庫状況の変更：無し
			// カートに入れるボタンの状態変更：購入不可
			sty.display('CART_IN_OK' + gSelectId, 'none');
			sty.display('CART_IN_NG' + gSelectId, 'inline');
		}
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:SetCartInDisp\n" + e);
	}
}


// Close Window Controler : CartWrapper
// classArray[i].style.display が "none" 以外は閉じますよ
function CartWrapper(flg) {
	try {
		var utl = new utility();		// Common.js
		
		if (utl.ufc(flg) == "" || flg == null) {
			flg = 0;
		}
		
		var classArray = new Array();
		classArray = utl.boolObjClassChk('cartWrapper');
		var i = 0;
		for (i = 0; i < classArray.length; i++) {
			if(classArray[i].style.display != "" && classArray[i].style.display != "none") {
				if (classArray[i].id != gDivIdName) {
					clsMultiItem(classArray[i].id, '', flg);
					
					if (flg == 0) {
						displayOff(classArray[i].id, 200, 50)
					}
				}
			}
		}
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:CartWrapper\n" + e);
	}
}


// Ajax Complete : Set Little Window
function SetObjectTags(originalRequest) {
	try {
		var utl = new utility();		// Common.js
		var htm = new InnerHtmlCtrl();	// InnerHtmlCtrl.js
		var sty = new StyleCtrl();		// StyleCtrl.js
		
		var xotree = new XML.ObjTree();
		
		var product;
		
		CartWrapper(1);		// Open中の小窓を閉じる
		
		if (utl.ufc(originalRequest.responseText) != "" && 
				!(utl.ufc(originalRequest.responseText).match(/<html>.*/i))) {
			var tree = xotree.parseXML(originalRequest.responseText);
			var obj = tree.data;
			
			// Get Object Tree
			product = new ProductBeans(obj);
			
			// 情報配置
			product.set(product);
			
			sty.display('SENDCART' + gSelectId, 'block');
			sty.display('NEXTSHOPPING' + gSelectId, 'none');
			sty.display('COM' + gSelectId, 'none');
			sty.display('COMNG' + gSelectId, 'none');
			
			if (product.prodId == gProductId) {
				// 情報表示
				SetTagsDisp('inline');
				sty.display('MSG' + gSelectId, 'none');
				
				// 在庫状態表示
				SetStockStatusDisp(product.stockStatus);
				
				// CartIn Button
				SetCartInDisp(product.stockStatus);
			}else {
				// 情報非表示
				SetTagsDisp('none');
				sty.display('MSG' + gSelectId, 'inline');
				
				// 在庫状態非表示
				SetStockStatusDisp(-1);
				
				// CartIn Button
				SetCartInDisp(-1);
			}
		} else {
			if (htm.get('COMNGWORD' + gSelectId) == "") {
				htm.set('COMNGWORD' + gSelectId, '商品情報取得に失敗しました。');
			}
			sty.display('SENDCART' + gSelectId, 'none');
			sty.display('NEXTSHOPPING' + gSelectId, 'none');
			sty.display('COM' + gSelectId, 'none');
			sty.display('COMNG' + gSelectId, 'block');
		}
		
		// Open Window
		setTimeout("displayOn('" + gDivIdName + "');", 255);
		setTimeout("opnMultiItem('" + gDivIdName + "');", 260);
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:SetObjectTags\n" + e);
	}
}


/* ***** Mainroutine ***** */
// Main : Get and Set Product
function GetProdMultiItem(pIdName, selId, ltWinIdName) {
	try {
		var utl = new utility();		// Common.js
		var val = new ValueCtrl();		// ValueCtrl.js
		var htm = new InnerHtmlCtrl();	// InnerHtmlCtrl.js
		var uTool = new UrlTool();		// UrlTool.js
		var sty = new StyleCtrl();		// StyleCtrl.js
		var ajx = new AjaxCtrl();		// AjaxCtrl.js
		
		if (utl.boolObjChk(pIdName)) {
			if (val.get(pIdName) != "" && ltWinIdName.length > 0) {
				// Global変数へ代入 clsMultiItem 処理対策 2007/01/12
				/*
					すでに open されている別小窓に対し、clsMultiItem 処理をおこ
					なうと、保存されている別 gBackUrl へ遷移してしまう。
					この現象を回避するために、open 処理時に gBackUrl を初期化。
				*/
				gBackUrl = "";						// Global BackURL
				
				if (utl.ufc(gDivIdName) == utl.ufc(ltWinIdName)) {
					clsMultiItem(gDivIdName, '', 1);
				}
				
				// Global変数へ代入
				gProductId = val.get(pIdName);		// Global ProductId
				gSelectId = utl.ufc(selId);			// Global SelectId
				gDivIdName = utl.ufc(ltWinIdName);	// Global DivIdName
				
				CartWrapper(0);		// Open中の小窓を閉じる
				
				sty.display('SENDCART' + gSelectId, 'none');
				sty.display('NEXTSHOPPING' + gSelectId, 'none');
				sty.display('COM' + gSelectId, 'block');
				sty.display('COMNG' + gSelectId, 'none');
				
				if (utl.boolObjChk('COM' + gSelectId)) {
					// Open Window
					setTimeout("displayOn('" + gDivIdName + "');", 255);
					setTimeout("opnMultiItem('" + gDivIdName + "');", 260);
				}
				
				// Ajax Send URL
				var url = location.protocol + '//' + location.hostname + '/';
				var path = 'item/GetItemInfo?';
				var parm = 'S=1004';
				parm += '&PROD_ID=' + uTool.Encode(gProductId);
				
				// Ajax
				// url, complete, method(Default:post)
				ajx.send(url + path + parm, SetObjectTags);
			}
		}
	} catch(e) {
		alert("GetProdMultiItemConfirm\nfunc:GetProdMultiItem\n" + e);
	}
}


