//在庫表示WINDOWオブジェクト
var ItemStockWin = null;
//区切り文字
var delimiter = ",";
//データ取得処理フラグキー
var paramMethodFlgKey = "method_flg=";
//データ取得処理フラグ　SQLServerから在庫情報を取得
var paramSqlMethodFlg = "1";
//データ取得処理フラグ　Wingsから在庫情報を取得
var paramJoltMethodFlg = "2";
//データ取得処理フラグ　SQLServer、Wings両方から在庫情報を取得
var paramAllMethodFlg = "0";

//商品在庫状況画面を表示（SQLServerから取得）
function itemStockSqlWinOpen(paramValue){
	//データ取得方法をパラメータにセット
	var paramator = paramMethodFlgKey + paramSqlMethodFlg;
	//指定パラメータの存在チェック
	if(paramValue==null || paramValue==""){
		//URLに付けるBookNo、商品番号を取得
		getparam = new getParam();
		//BookNo、商品番号をパラメータにセット
		paramator = paramator + getparam.param;
	}else{
		//指定パラメータをセット
		paramator = paramator + paramValue;
	}
	
	//商品在庫状況画面を表示
	itemStockWinOpenParam(paramator);
}
//10530_TT・SiteCatalyst 2010.11.18 ADD HuyNDN START
//商品在庫状況画面を表示（SQLServerから取得）
function itemStockSqlWinOpen2(paramValue,SiteCatalyst){
	//データ取得方法をパラメータにセット
	var paramator = paramMethodFlgKey + paramSqlMethodFlg;
	if(SiteCatalyst != null && SiteCatalyst != "")
	{
		//指定パラメータの存在チェック
		if(paramValue==null || paramValue==""){
			//URLに付けるBookNo、商品番号を取得
			getparam = new getParam();
			//BookNo、商品番号をパラメータにセット
			paramator = paramator + getparam.param + SiteCatalyst;
		}else{
			//指定パラメータをセット
			paramator = paramator + paramValue + SiteCatalyst;
		}
	}
	else
	{
		//指定パラメータの存在チェック
		if(paramValue==null || paramValue==""){
			//URLに付けるBookNo、商品番号を取得
			getparam = new getParam();
			//BookNo、商品番号をパラメータにセット
			paramator = paramator + getparam.param;
		}else{
			//指定パラメータをセット
			paramator = paramator + paramValue;
		}
	}

	//商品在庫状況画面を表示
	itemStockWinOpenParam(paramator);
}
//10530_TT・SiteCatalyst 2010.11.18 ADD HuyNDN END

//商品在庫状況画面を表示（Wingsから取得）
function itemStockJoltWinOpen(paramValue){
	//データ取得方法をパラメータにセット
	var paramator = paramMethodFlgKey + paramJoltMethodFlg;
	//指定パラメータの存在チェック
	if(paramValue==null || paramValue==""){
		//URLに付けるBookNo、商品番号を取得
		getparam = new getParam();
		//BookNo、商品番号をパラメータにセット
		paramator = paramator + getparam.param;
	}else{
		//指定パラメータをセット
		paramator = paramator + paramValue;
	}
	//商品在庫状況画面を表示
	itemStockWinOpenParam(paramator);
}

//商品在庫状況画面を表示（SQLServer、Wings両方から取得）
function itemStockAllWinOpen(paramValue){
	//データ取得方法をパラメータにセット
	var paramator = paramMethodFlgKey + paramAllMethodFlg;
	//指定パラメータの存在チェック
	if(paramValue==null || paramValue==""){
		//URLに付けるBookNo、商品番号を取得
		getparam = new getParam();
		//BookNo、商品番号をパラメータにセット
		paramator = paramator + getparam.param;
	}else{
		//指定パラメータをセット
		paramator = paramator + paramValue;
	}
	//商品在庫状況画面を表示
	itemStockWinOpenParam(paramator);
}


//商品在庫状況画面を表示
function itemStockWinOpenParam(param){
	
	//windowサイズ
	var wid = 850;
	var hei = 410;
	//windowを出す場所
	var x = (screen.width - wid ) / 2;
	var y = (screen.height - hei ) / 2;
	//画面遷移先URL
	var strOpenURL = "/GetItemStockInfo.servlet?" + param;

	// for debug
	//var p = strOpenURL + "," +
	//	"ItemStockWin" + "," +
	//	'width='+wid+',height='+hei+',top='+y+',left='+x+
	//	',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no';
	//alert(p);
	//return true;

	//windowを開く
	ItemStockWin = top.window.open(strOpenURL,
		"ItemStockWin",
		'width='+wid+',height='+hei+',top='+y+',left='+x+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no');
	//windowにフォーカスをあてる
	if(window_Chek(ItemStockWin)){
		ItemStockWin.focus();
	}
}


//パラメータ情報を作成する
function getParam(){
	
	//パラメータ格納用変数
	this.param = "";
	//パラメータキー　BookNo
	var paramkey_bookno = "&book_no=";
	//パラメータキー　商品番号
	var paramkey_syono = "&sho_no=";
	//BookNo格納用変数
	var book_no = "";
	//商品番号格納用変数
	var syo_no = "";

	var bookno_syono_list = new Array();

	//Formの数
	var flen = document.forms.length;
	//フォーム情報を取得
	for(i=0; i < flen; i++){
		//商品情報取得
		getvalue = new getValue(document.forms[i]);

		// 重複追加チェック。BOOKと商品番号が一致したら、リクエストパラメータに含めない。
		var newKey = getvalue.bookno + "-" + getvalue.syono;
		var through = false;
		if (newKey == "-") {
			through = true;
		}
		for (var k = 0; k < bookno_syono_list.length; k ++ )
		{
			if (bookno_syono_list[k] == newKey)
			{
				through = true;
				continue;
			}
		}
		if (through)
		{
			continue;
		}
		bookno_syono_list.push(newKey);

		//BookNoを初期化
		var bookNos = "";
		//BookNoの数を取得
		var booklen = ((getvalue.bookno).split(delimiter)).length;
		//商品番号を初期化
		var syoNos = "";
		//商品番号の数を取得
		var syolen = ((getvalue.syono).split(delimiter)).length;
		//BookNoの数だけ商品番号を増やす
		for(j=0;j<booklen;j++){
			syoNos += delimiter + getvalue.syono;
		}
		//商品番号の数だけBookNoを増やす
		for(j=0;j<syolen;j++){
			bookNos += delimiter + getvalue.bookno;
		}

		//文字列BookNoを配列に変換
		var arrayBookNo = bookNos.split(delimiter);
		//配列BookNoをソートする
		arrayBookNo = arrayBookNo.sort();
		//配列BookNoを文字列に変換
		bookNos = arrayBookNo.toString();
		//BookNoを格納
		book_no = book_no + bookNos;
		//商品番号を格納
		syo_no = syo_no + syoNos;
	}

	//BookNoの区切り文字を取る
	book_no = book_no.substring(1);
	//商品番号の区切り文字を取る
	syo_no = syo_no.substring(1);

	//区切り文字をパラメータキーに変換
	while(book_no.indexOf(delimiter)!=-1){
		book_no = book_no.replace(delimiter, paramkey_bookno);
	}
	//頭にパラメータキーを付ける
	book_no = paramkey_bookno + book_no;

	//区切り文字をパラメータキーに変換
	while(syo_no.indexOf(delimiter)!=-1){
		syo_no = syo_no.replace(delimiter, paramkey_syono);
	}
	//頭にパラメータキーを付ける
	syo_no = paramkey_syono + syo_no;

	//パラメータをセット
	this.param = book_no + syo_no;

}

//商品情報を取得する
function getValue(formObject){

	//Book番号格納用変数
	this.bookno = "";
	//商品番号格納用変数
	this.syono = "";
	//指定formオブジェクトの要素数を取得
	var elementLen = formObject.elements.length;
	//要素数分ループ
	for(k=0;k<elementLen;k++){
		//名前がBookNo
		if(formObject.elements[k].name=="BookNo"){
			//タイプがselect
			if(formObject.elements[k].type=="select-one"){
				//Book番号のサイズを取得
				var oLenBookNo = formObject.BookNo.options.length;
				//Book番号を取得する
				for(l=0; l<oLenBookNo; l++){
					//空文字は加えない
					if(formObject.BookNo.options[l].value != null && formObject.BookNo.options[l].value != "")
					{
						this.bookno += delimiter + formObject.BookNo.options[l].value;
					}
				}
			//タイプがhidden
			}else if(formObject.elements[k].type=="hidden"){
				this.bookno += delimiter + formObject.BookNo.value;
			}
		//名前がSyoNo
		}else if(formObject.elements[k].name=="SyoNo"){
			//タイプがselect
			if(formObject.elements[k].type=="select-one"){
				//商品番号のサイズを取得
				var oLenSyoNo = formObject.SyoNo.options.length;
				//商品番号を取得する
				for(l=0; l<oLenSyoNo; l++){
					//空文字は加えない
					if(formObject.SyoNo.options[l].value != null && formObject.SyoNo.options[l].value != "")
					{
						this.syono += delimiter + formObject.SyoNo.options[l].value;
					}
				}
			//タイプがhidden
			}else if(formObject.elements[k].type=="hidden"){
				this.syono += delimiter + formObject.SyoNo.value;
			}
		}
	}
	//頭の区切り文字を除く
	this.bookno = this.bookno.substring(1);
	//頭の区切り文字を除く
	this.syono =  this.syono.substring(1);

}

//在庫表示WINDOWが開いていれば閉じる
function closeWin(objWin) {
	if(window_Chek(objWin)){
		objWin.close();
		objWin = null;
	}
}

//別ウインドウ有無確認する。windowがあれば true なければ false 
function window_Chek(winVar) {
	var ua = navigator.userAgent;
	if( winVar ){
		if( ua.indexOf('MSIE 4')!=-1 && ua.indexOf('Win')!=-1 ){
			return !winVar.closed;
		}
		else{
			return typeof winVar.document  == 'object';
		}
	}
	else{
		return false;
	}
}

//パラメータ情報を作成する
function getColorSizeParam(){
	
	//パラメータ格納用変数
	this.param = "";
	//パラメータキー　色
	var paramkey_color = "&color=";
	//パラメータキー　サイズ
	var paramkey_size = "&size=";
	//色格納用変数
	var color = "";
	//サイズ格納用変数
	var size = "";

	//Formの数
	var flen = document.forms.length;
	//フォーム情報を取得
	for(i=0; i < flen; i++){
		//商品情報取得
		
		var formObject = document.forms[i];
		var elementLen = formObject.elements.length;
		for(k=0;k<elementLen;k++){
			//名前がColor
			if(formObject.elements[k].name=="Color"){
				color  = formObject.Color.value;
			//名前がSize
			}else if(formObject.elements[k].name=="Size"){
				size = formObject.Size.value;	
			}
		}		
	}

	//頭にパラメータキーを付ける
	color = paramkey_color + color;

	//頭にパラメータキーを付ける
	size = paramkey_size + size;

	//パラメータをセット
	this.param = color + size;
}


