//=============================================================================
// 複数対応版 カートイン Ajax						Powerd by Axdd system div.
// Version 2.2.0
// Created by Akira.Kusama
//=============================================================================

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

2007/05/08 v2.2.0 変数servletによる切り替え処理追加
2006/12/04 v2.1.1 プロトコル取得方法を固定から可変に変更 [location.protocol]
2006/12/02 v2.1.0 エフェクト調整 及び ショッピング続行時任意URL
2006/11/15 v2.0.0 ver2用改修（オブジェクト化）
2006/10/04 v1.0.1 Ajax用pathの削除（http/https対策）
2006/10/04 v1.0.0 リリース

*/

//===================================
// QtyMultiCount.js
// 
// ::used module::
// use prototype.js	->	"1.4.0以上"
// use ObjTree.js
//
// use GetMultiProdItemConfirm.js
// use Common.js
// use ValueCtrl.js
// use InnerHtmlCtrl.js
// use UrlTool.js
// use StyleCtrl.js
// use CartConfirm.js
//
// :dojo mode [Nomal mode + Add Script]
// use dojo/dojo.js
// use dojo/src/lfx/html.js
// use DojoMultiCtrl.js
// ===================================

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


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


//-----------------------------------------------------------------------
//                          Quality Count Control
//-----------------------------------------------------------------------

/* ***** Global ***** */
var chgSelect = "";		// Global Select ChagePage

/* ***** Constructor ***** */


/* ***** User Object ***** */
// Shopping Cart In
function shoppingCart(returnPath) {
	try {
		var utl = new utility();		// Common.js
		var uTool = new UrlTool();		// UrlTool.js
		
		// location.href
		var url = 'https://' + location.hostname + '/';
		var path = 'app-shop/MyCartApp?';
		var parm = 'P_PROC=Show';
		
		if (utl.ufc(returnPath) == "") {
			parm += '&P_URL=' + uTool.Encode(location.protocol + '//' + location.hostname + location.pathname + location.search);
		} else {
			parm += '&P_URL=' + uTool.Encode(returnPath);
		}
		
		location.href = url + path + parm;
	} catch(e) {
		alert("CartMultiIn\nfunc:Cart\n" + e);
	}
}


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


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


/* ***** Subroutine ***** */
// Ajax Complete : 
function cartInChk(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();
		// GetMultiProdItemConfirm.js
		CartWrapper(1);		// Open中の小窓を閉じる
		
		var resText = utl.ufc(originalRequest.responseText);
		
		if (resText != '' && !(resText.match(/<html>.*/i))) {
			var xotree = new XML.ObjTree();
			var tree = xotree.parseXML(originalRequest.responseText);
			var obj = tree.data;
			
			if (utl.ufc(obj.res['#text']) == "1") {
				// 1:正常
				if (chgSelect == "Chg") {
					shoppingCart(gBackUrl);
				} else {
					if (utl.boolObjChk('NEXTSHOPPING' + gSelectId)) {
						// Next Shopping
						sty.display('SENDCART' + gSelectId, 'none');
						sty.display('NEXTSHOPPING' + gSelectId, 'block');
						sty.display('COM' + gSelectId, 'none');
						sty.display('COMNG' + gSelectId, 'none');
					} else {
						// GetMultiProdItemConfirm.js
						// Event : Close Dojo Window
						clsMultiItem(gDivIdName, '', 0);
					}
				}
				
				// qty(Quality)を1に初期化
				gQtyObj.value = 1;
			} else {
				// -1:処理不正  -2:例外処理  -3:販売上限数超え  -4:99個以上カートに投入
				if (htm.get('COMNGWORD' + gSelectId) == "" || 
						utl.ufc(obj.res['#text']) == "-1" || 
						utl.ufc(obj.res['#text']) == "-2") {
					//htm.set('COMNGWORD' + gSelectId, 'Code：' + utl.ufc(obj.res['#text']));
					htm.set('COMNGWORD' + gSelectId, 'ショッピングカートに、商品が入りませんでした。');
				} else if (utl.ufc(obj.res['#text']) == "-3") {
					//htm.set('COMNGWORD' + gSelectId, 'Code：' + utl.ufc(obj.res['#text']));
					htm.set('COMNGWORD' + gSelectId, '販売上限数を超えています。');
				} else if (utl.ufc(obj.res['#text']) == "-4") {
					//htm.set('COMNGWORD' + gSelectId, 'Code：' + utl.ufc(obj.res['#text']));
					htm.set('COMNGWORD' + gSelectId, 'ショッピングカートには、1商品99個以上ははいりません。');
				}
				sty.display('SENDCART' + gSelectId, 'none');
				sty.display('NEXTSHOPPING' + gSelectId, 'none');
				sty.display('COM' + gSelectId, 'none');
				sty.display('COMNG' + gSelectId, 'block');
			}
			// Open Window
			if (utl.boolObjChk('NEXTSHOPPING' + gSelectId)) {
				setTimeout("displayOn('" + gDivIdName + "');", 255);
				setTimeout("opnMultiItem('" + gDivIdName + "');", 260);
			}
		} else {
			alert("CartMultiIn\nfunc:cartInChk\nError:Response Error");
		}
		
		try {
			CartConfirm();	// CartConfirm.js
		} catch(e) {
			//alert("CartMultiIn\nfunc:cartInChk:CartConfirm\n" + e);
		}
	} catch(e) {
		alert("CartMultiIn\nfunc:cartInChk\n" + e);
	}
}


/* ***** Event ***** */


/* ***** Mainroutine ***** */
// Main : Cart Multi In
function CartMultiIn(divIdName, pIdName, qtyName, bkUrl, servlet){
	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
		
		var send = false;
		
		if (val.get(pIdName) != "" && val.get(qtyName) != "") {
			if (chgSelect == "") {
				if (utl.boolObjChk(divIdName)) {
					send = true;
				}
			} else {
				send = true;
			}
		}
		
		if (send) {
			// Global変数へ代入
			gQtyObj = utl.boolObjChk(qtyName);		// Global QuantityObject
			gBackUrl = utl.ufc(bkUrl);				// Global Back URL
			
			// GetMultiProdItemConfirm.js
			CartWrapper(1);		// 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);
			}
			
			var pid = val.get(pIdName);				// Local ProductID
			var qty = val.get(qtyName);				// Local Quantity
			
			if (chgSelect == "") {
				gDivIdName = utl.ufc(divIdName);	// Global DivIdName
			}
			
			// Ajax Send URL
			var url = location.protocol + '//' + location.hostname + '/';
			var path = 'app-shop/';
			if (utl.ufc(servlet) == "") {
				// Defaultカート
				path = path + 'SimpleShopMdl';
			} else {
				path = path + servlet;
			}
			path = path + '?';
			var parm = 'proc=cart_in';
			parm += '&pid=' + uTool.Encode(pid);
			parm += '&qty=' + uTool.Encode(qty);
			
			// Ajax
			// url, complete, method(Default:post)
			ajx.send(url + path + parm, cartInChk);
		}
	} catch(e) {
		alert("CartMultiIn\nfunc:CartMultiIn\n" + e);
	}
}


// Main : Cart Multi In Chg
function CartMultiInChg(pIdName, qtyName, bkUrl, servlet){
	chgSelect = "Chg";
	CartMultiIn('', pIdName, qtyName, bkUrl, servlet);
}



