﻿function LoadAsyncCart(oid, width, height) {
	var key = "oid=" + oid + "&width=" + width + "&height=" + height + "&t=" + (new Date()).getTime();
	
	new Ajax.Request("AsyncBasket.svc/get",
	{
		method:"get",
		parameters:key,
		onComplete:function(ajax) {
			var result = ajax.responseText;
			$("getall").innerHTML = eval(result);
		}
	});	

}

function LoadAsyncBookmark(width, height, max, fid) {
    var key = "width=" + width + "&height=" + height + "&max=" + max + "&fid=" + fid + "&t=" + (new Date()).getTime();

    new Ajax.Request("AsyncBookmark.svc/get",
	{
	    method: "get",
	    parameters: key,
	    onComplete: function(ajax) {
	        var result = ajax.responseText;
	        $("bookmark_getall").innerHTML = eval(result);
	    }
	});

}

function AsyncDeleteItem(shopid, line) {
	var key = "oid=" + shopid + "&lineId=" + line + "&t=" + (new Date()).getTime();
	new Ajax.Request("AsyncBasket.svc/delete",
	{
		method:"get",
		parameters:key,
		onComplete:function(ajax) {
			LoadAsyncCart(shopid, 0, 0);
		}
	});
}

function AddItem(shopid, sku, qty, group, options) {
    var url = "_AddMultiProduct.aspx?shop_cd_01=" + shopid + "&sku_01=" + sku + "&qty_01=" + qty + options;
    document.location = url;
}

function AsyncAddItem(shopid, sku, qty, group) {
	var key = "oid=" + shopid + "&sku=" + sku + "&qty=" + qty + "&group=" + group + "&t=" + (new Date()).getTime();
	new Ajax.Request("AsyncBasket.svc/add",
	{
		method:"get",
		parameters:key,
		onComplete:function(ajax) {
			var result = eval(ajax.responseText);
			switch(result) {
				case "NONE":
					var o = $('_ctl5_label_' + shopid + '_' + sku)
					if (o) o.innerHTML = '商品をカートに入れました';
					break;
				case "CAUTION":
					GetErrorInfo(shopid, sku, qty, "1");
					break;
				case "ERROR":
					AsyncErrorInfo();
					break;
				default:
					break;
			}
			LoadAsyncCart(shopid, 0, 0);
		}
	});
}

function AsyncAddBookmark(shopid, sku, max, fid, op) {
  var key = "sku=" + sku + "&fid=" + fid + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/add",
  {
      method: "get",
      parameters: key,
      onComplete: function(ajax) {
          var result = eval(ajax.responseText);
          switch (result) {
              case true:
                  var o = $('_ctl5_label_' + shopid + '_' + sku)
                  if (o) o.innerHTML = 'ブックマーク に' + op + 'しました';
                  break;
              default:
                  break;
          }

          if ($("bookmark_getall")) {
              LoadAsyncBookmark(0, 0, max, fid);
          }
      }
  });
}

function SelectedValue(id)
{
  var o = $(id);
  for (var i = 0; i < o.options.length; i++) { 
    if (o.options[i].selected)
      return o.options[i].value;
  }
}

var abWin = null;
function AsyncAddBookmarkToFolder(shopid, sku, max, pfid, dfid)
{
  abWin = new Window({className: "dialog", maximizable:false, minimizable:false, resizable:false, draggable:false, width:300, height:100, zIndex: 100, title: "ブックマーク へ追加"})
  abWin.setDestroyOnClose();

  var key = "pfid=" + pfid + "&dfid=" + dfid + "&sku=" + sku + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/selectFolder",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var contents = eval(ajax.responseText);
      abWin.getContent().update(contents);
      Windows.addObserver(abWinEvent);
      abWin.showCenter(true);
		}
  });
}

var abWinEvent = {
  onShow: function(eventName, winObj) { if (abWin && winObj==abWin) $('add_button').focus(); }
}

var fnWin = null;
function AsyncAddBookmarkFolderInput(pfid, sku, max) {
  fnWin = new Window({className: "dialog", maximizable:false, minimizable:false, resizable:false, draggable:false, width:300, height:100, zIndex: 100, title: "新規フォルダの作成"})
  fnWin.setDestroyOnClose();

  var key = "pfid=" + pfid + "&sku=" + sku + "&max=" + max + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/inputNewFolder",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var contents = eval(ajax.responseText);
      fnWin.getContent().update(contents);
      fnWin.showCenter(true);
		}
  });
}

function AsyncAddBookmarkFolder(shopid, sku, max, pfid, name) {
  var key = "sku=" + sku + "&pfid=" + pfid + "&name=" + name + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/createFolder",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var fid = eval(ajax.responseText);
      if (fid)
      {
        if (sku && sku != "")
        {
          AsyncAddBookmarkToFolder(shopid, sku, max, pfid, fid);
        }
        else
        {
          RefreshPage(fid);
        }
      }
      else
      {
				alert("同じ名称のフォルダーが存在するため、作成できませんでした。");
      }
		}
	});
}

var rnWin = null;
function AsyncRenameInputBookmarkFolder(pfid, fid) {
  var key = "pfid=" + pfid + "&fid=" + fid + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/renameFolderInput",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var contents = eval(ajax.responseText);
      rnWin = new Window({className: "dialog", maximizable:false, minimizable:false, resizable:false, draggable:false, width:300, height:120, zIndex: 100, title: "フォルダの名称変更"})
      rnWin.setDestroyOnClose();
      rnWin.getContent().update(contents);
      rnWin.showCenter(true);
		}
  });
}

function AsyncRenameBookmarkFolder(shopid, pfid, fid, name) {
  var key = "pfid=" + pfid + "&fid=" + fid + "&name=" + name + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/renameFolder",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var fid = eval(ajax.responseText);
      if (fid) {
        RefreshPage(fid);
      } else {
				alert("同じ名称のフォルダが存在するため、フォルダ名を変更できませんでした。");
      }
		}
  });
}

var rmWin = null;
function AsyncRemoveSelectBookmarkFolder(pfid, fid) {
  var key = "pfid=" + pfid + "&fid=" + fid + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/removeFolderSelect",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var contents = eval(ajax.responseText);
      rmWin = new Window({className: "dialog", maximizable:false, minimizable:false, resizable:false, draggable:false, width:300, height:100, zIndex: 100, title: "フォルダの削除"})
      rmWin.setDestroyOnClose();
      rmWin.getContent().update(contents);
      rmWin.showCenter(true);
		}
  });
}

var rmcWin
function AsyncRemoveBookmarkFolder(shopid, fid) {
  var key = "fid=" + fid + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/removeFolder",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var name = eval(ajax.responseText);
      if (name) {
        rmcWin = new Window({className: "dialog", maximizable:false, minimizable:false, resizable:false, draggable:false, width:300, height:100, zIndex: 100, title: "フォルダの削除"})
        rmcWin.setDestroyOnClose();
        rmcWin.getContent().update("<div id='BookmarkDialog'><table><tr><td>フォルダ名「" + name + "」を削除しました。</td></tr></table><hr/><input type='button' value='閉じる' onClick=\"RefreshPage('00000000');rmcWin.close();\"/></div>");
        rmcWin.showCenter(true);
      } else {
				alert("フォルダの削除に失敗しました。");
      }
		}
  });
}

var mvWin = null;
function AsyncMoveBookmarkSelectFolder(pfid, fid, sku, max) {
  var key = "pfid=" + pfid + "&fid=" + fid + "&sku=" + sku + "&max=" + max + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/moveBookmarkSelectFolder",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var contents = eval(ajax.responseText);
      mvWin = new Window({className: "dialog", maximizable:false, minimizable:false, resizable:false, draggable:false, width:300, height:120, zIndex: 100, title: "フォルダの移動"})
      mvWin.setDestroyOnClose();
      mvWin.getContent().update(contents);
      mvWin.showCenter(true);
		}
  });
}

function AsyncMoveBookmark(shopid, sfid, sku, max, dfid) {
  var key = "fid=" + sfid + "&sku=" + sku + "&tfid=" + dfid + "&t=" + (new Date()).getTime();
  new Ajax.Request("AsyncBookmark.svc/moveBookmark",
  {
    method:"get",
    parameters:key,
    onComplete:function(ajax) {
      var fid = eval(ajax.responseText);
      if (fid) {
        RefreshPage(fid);
      } else {
				alert("既に登録済みです。");
      }
		}
  });
}

function ShowCaution(shopid, sku, qty, group, msg) {
	Dialog.confirm(msg, {
		windowParameters:{width:400, height:100},
		okLabel:'カートへ',
		cancelLabel:'戻る',
		id:'AsyncBasketConfirm',
		ok:function(win) {
			AsyncAddItem(shopid, sku, qty, group);
			return true;
		},
		cancel:function(win) {
		}
	});
}

function GetErrorInfo(shopid, sku, qty, group) {
	new Ajax.Request("AsyncBasket.svc/error?t=" + (new Date()).getTime(),
	{
		method:"get",
		onComplete:function(ajax) {
			var result = eval(ajax.responseText);
			ShowCaution(shopid, sku, qty, group, result);
		}
	});
}


function AsyncErrorInfo() {
	new Ajax.Request("AsyncBasket.svc/error?t=" + (new Date()).getTime(),
	{
		method:"get",
		onComplete:function(ajax) {
			var result = eval(ajax.responseText);
			if (result != "") {
				alert(result);
			}
		}
	});
}
