//リストの全選択/全解除用function
//
//@param obj チェックボックスのオブジェクト
//
function checkAll(obj){
  var n = '';
  if (document.getElementById) {
    var type = document.getElementById("checkType").value;
    if (type == "" || type == "allCheck") {
      n = 1;
      document.getElementById("checkType").value = "unCheck";
    } else {
      n = 0;
      document.getElementById("checkType").value = "allCheck";
    }
  }
  if (obj == null) {
    //through
  } else if (obj.type == "checkbox") {
    obj.checked = (n == 1);
  } else {
    for (var i = 0; i < obj.length; i++) {
      obj[i].checked = (n == 1);
    }
  }
}

function chagePage(mode, curr_page, next_page){
  if (mode == 'ranking') {
    $(curr_page).style.display = 'none';
    $(next_page).style.display = 'block';
  } else if (mode == 'recommendA') {
    $(curr_page).style.display = 'none';
    $(next_page).style.display = 'block';
  } else if (mode == 'recommendB') {
    $(curr_page).style.display = 'none';
    $(next_page).style.display = 'block';
  }
}



/*
 * 規格が2つある商品に対しての処理
 */
var selected = {
  standard1: "",
  standard2: "",
  isFilled: function(){
    return this.standard1.length > 0 && this.standard2.length > 0;
  },
  isEmpty: function(){
    return this.standard1.length == 0 && this.standard2.length == 0;
  }
};


var temp = {
  standard1: "",
  standard2: ""
};

var standard1Name = "";
var standard2Name = "";

//var taxType = '(税込)';
var taxType = '';

// クリック時の処理
function selectStd(stdname, value){
  // 選択された規格に値を入れる
  selected[stdname] = value;
  checkAvailableSet(stdname, value);
  // 選択された値を表示
  repaint();
}

// マウスオーバー時の処理
function checkAvailableSet(stdname, value){
  temp.standard1 = selected.standard1;
  temp.standard2 = selected.standard2;
  temp[stdname] = value;
  
  // 選択されていないほうの値をセットする処理
  var value = (stdname == "standard1") ? temp.standard1 : temp.standard2;
  temp[stdname] = value;
  if (value != "" && checkSet(stdname, value)) {
    setCommodity(temp.standard1 + '_' + temp.standard2);
    changeImage(temp.standard1 + '_' + temp.standard2);
  } else {
    clearCommodity();
    if (temp.standard1 == "" || temp.standard2 == "") {
      repaint();
    }
  }
}

function selectStd(stdname){
  if (document.getElementById("standardSelect1") == null && document.getElementById("standardSelect2") == null) {
    return;
  } else if (document.getElementById("standardSelect1") == null){
    setOnlyOneCommodity(document.getElementById("standardSelect2").value);
  } else if (document.getElementById("standardSelect2") == null) {
    setOnlyOneCommodity(document.getElementById("standardSelect1").value);
  } else {
	// 選択された規格に値を入れる
	var value = (stdname == "standard1") ? document.getElementById("standardSelect1").value : document.getElementById("standardSelect2").value;
	selected[stdname] = value;
	checkAvailableSet(stdname, value);
	// 選択された値を表示
	repaint();
  }
}

// 組み合わせがあるのかチェック。
function checkSet(stdname, value){
  if ($(temp.standard1 + "_" + temp.standard2 + '_skuCode') == null) {
    return false;
  } else {
    return true;
  }
}


// 表示を切り替える処理
function repaint(){
  standard1Name = $("commodityStandard1Name").value;
  standard2Name = $("commodityStandard2Name").value;
  if (selected.standard1 == "" && selected.standard2 == "") {
    //$("selectMessage").style.color = "black"
    //$("selectMessage").innerHTML = standard1Name + "と" + standard2Name + "を選択してください";
    $("selectMessage").innerHTML = "请选择" + standard1Name + "和" + standard2Name;
  } else if (selected.standard1 == "") {
    //$("standard2").innerHTML = selected.standard2;
    //$("standard1").innerHTML = "選択してください";
    //$("standard1").innerHTML = "请选择";
    //$("selectMessage").style.color = "black";
    //$("selectMessage").innerHTML = standard1Name + "を選択してください";
    $("selectMessage").innerHTML = "请选择" + standard1Name;
  } else if (selected.standard2 == "") {
    //$("standard1").innerHTML = selected.standard1;
    //$("standard2").innerHTML = "選択してください";
    //$("standard2").innerHTML = "请选择";
    //$("selectMessage").style.color = "black"
    //$("selectMessage").innerHTML = standard2Name + "を選択してください";
    $("selectMessage").innerHTML = "请选择" + standard2Name;
  } else {
    //$("standard1").innerHTML = selected.standard1;
    //$("standard2").innerHTML = selected.standard2;
  }
}


// 在庫・金額の設定
function setCommodity(value){
  var setStd = "";
  var setValue = "";
  if ($("standardAssortment").value == "both") {
    setStd = value;
    setValue = selected.standard1 + '_' + selected.standard2;
  } else {
    setStd = value;
    setValue = standard;
  }
  
  $("price0_1_pres").innerHTML = "约";
  $("price0_1_afts").innerHTML = "元";
  
  // 価格関係の処理
  var priceMode = $("priceMode").value;
  switch (priceMode) {
    // 販売期間の場合
    case '0':
      $("price0").innerHTML = '<strong><span class="cCC1400">' + $(setStd + '_unitPrice').value + taxType + '</span> 日元</strong>';
      $("price1").innerHTML = "";
      $("price2").innerHTML = "";
      
	  getCNYAmountDetail($(setStd + '_unitPrice').value, "price0_1", "", "");
      break;
    // 特別価格期間の場合
    case '1':
      $("price0").innerHTML = '<strong><span class="cCC1400">' + $(setStd + '_discountPrice').value + taxType + '</span> 日元</strong>';
	  
	  getCNYAmountDetail($(setStd + '_discountPrice').value, "price0_1", "", "");
	  
      $("price1").innerHTML = '<strike>' + $(setStd + '_unitPrice').value + taxType + '日元</strike>';
      
	  getCNYAmountDetail($(setStd + '_unitPrice').value, "price1_1", "约", "元");
	  
      $("price2").innerHTML = $(setStd + '_offprice').value;
      
	  getCNYAmountDetail($(setStd + '_offprice').value, "price2_1", "约", "元");
      $("price2_1_off").innerHTML = $(setStd + '_offprice_off').value;
      break;
    // 予約期間の場合
    case '2':
      $("price0").innerHTML = '<strong><span class="cCC1400 tbold size14">' + $(setStd + '_reservationPrice').value + '</span>日元</strong> ';
      $("price1").innerHTML = "";
      $("price2").innerHTML = "";
      break;
    default:
      $("price0").innerHTML = "";
      $("price1").innerHTML = "";
      $("price2").innerHTML = "";
      
      $("price0_1").innerHTML = "";
      $("price1_1").innerHTML = "";
      $("price2_1").innerHTML = "";
      
	  $("price0_1_pres").innerHTML = "";
	  $("price0_1_afts").innerHTML = "";
	  $("price2_1_off").innerHTML = "";
      break;
  }
  
  // 在庫関係の処理
  var stockManagementType = $("stockManagementType").value;
  var availableStockQuantity = $(setStd + '_availableStockQuantity').value;
  // 予約商品の場合、在庫関係は非表示
  if (priceMode != 2) {
    switch (stockManagementType) {
      // 在庫数表示する
      case '2':
        $("stock").innerHTML = "库存： " + $(setStd + '_availableStockQuantity').value;
        break;
      // 在庫状況表示する
      case '3':
        $("stock").innerHTML = $(setStd + '_stockStatusMessage').value;
        break;
      default:
        break;
    }
  }
  // 在庫があればボタンを表示
  // 予約商品か否かで場合わけ
  var displayButton = (priceMode == 2) ? $("reservationButton").style : $("cartButton").style;
  var displayMessage = (priceMode == 2) ? "预约购物" : "购物";
  // 在庫の有無で場合わけ
  if (availableStockQuantity == "0") {
    displayButton.visibility = "hidden";
    if (priceMode == 2) {
    } else {
      $("cartButton").style.display = "none";
      $("cartButton2").style.display = "";
      $("cartButton2").style.visibility = "visible";
    }
    $("selectMessage").style.color = "red";
    if (priceMode == 2) {
      $("selectMessage").innerHTML = "预约处理结束";
    } else {
      $("selectMessage").innerHTML = "现在暂无库存";
    }
    if ($(setStd + '_arrivalGoodsFlg').value == "true") {
      $("arrivalGoods").style.visibility = "visible";
    } else {
      $("arrivalGoods").style.visibility = "hidden";
    }
  } else {
    $("arrivalGoods").style.visibility = "hidden";
    $("selectMessage").style.color = "green";
    $("selectMessage").innerHTML = displayMessage + "可能";
    
    //クリックのときだけボタンを表示
    if (selected.isFilled() && value == selected.standard1 + "_" + selected.standard2) {
      displayButton.visibility = "visible";
    } else if (selected.isEmpty() && value == standard) {
      displayButton.visibility = "visible";
    }
    if (priceMode == 2) {
    } else {
      $("cartButton").style.display = "inline";
      $("cartButton2").style.visibility = "hidden";
      $("cartButton2").style.display = "none";
    }
  }
  
  // クリックで選択されたskuコードの値を渡す
  // 組み合わせが無かった場合、何も起こさない
  try {
    if (selected.standard1 != "" && selected.standard2 != "" || standard != "") {
      $("selectSkuCode").value = $(setValue + '_skuCode').value;
      if ($(setStd + '_orderLimit').value != '') {
        $("orderLimitHtml").style.color = "#CC1400";
        $("orderLimitHtml").style.fontSize='9px';
        $("orderLimitHtml").innerHTML = "很抱歉，本商品为限量商品。<BR>每位会员限购买：" + $(setStd + '_orderLimit').value + taxType + "件。请谅解。";
      } else {
        $("orderLimitHtml").innerHTML = "";
      }
      $("orderLimit").value = $(setStd + '_orderLimit').value;
  
    } else {
    }
  } catch (e) {
  }
}


// 規格の組み合わせが無いときに価格、在庫、ボタンをクリア
function clearCommodity(){
  $("price0").innerHTML = "";
  $("price1").innerHTML = "";
  $("price2").innerHTML = "";
  
  $("price0_1").innerHTML = "";
  $("price1_1").innerHTML = "";
  $("price2_1").innerHTML = "";
  
　　$("price0_1_pres").innerHTML = "";
  $("price0_1_afts").innerHTML = "";
  $("price2_1_off").innerHTML = "";
  
  $("arrivalGoods").style.visibility = "hidden";
  $("selectMessage").style.color = "red";
  $("selectMessage").innerHTML = "不存在此商品。";
  $("selectSkuCode").value = "";
  $("orderLimitHtml").innerHTML = "";
  if ($("priceMode").value == 2) {
    $("reservationButton").style.visibility = "hidden";
  } else {
    if ($("stockManagementType").value == 2 || $("stockManagementType").value == 3) {
      $("stock").innerHTML = "库存： ";
    }
    $("cartButton").style.visibility = "hidden";
    $("cartButton").style.display = "inline";
    $("cartButton2").style.visibility = "hidden";
    $("cartButton2").style.display = "none";
  }
}

// 画像の切り替え
function changeImage(value){
  return;
  var setStd = value;
  // 画像ファイル名以外を抜き出す
  var exceptImagePath = document.imageArea.src.match(/.*\//);
  // 規格画像名
  var imageSku = $(setStd + '_skuCode').value + "_1.jpg";
  document.imageArea.src = exceptImagePath + imageSku;
}

// サムネイル画像マウスオーバー時に画像変更
function changeThumbnail(thumbnailPath){
  document.imageArea.src = thumbnailPath;
}


/*
 * 規格が一つの商品に対しての処理
 */
var standard = "";
var tempstandard = "";

// クリック時
function setOnlyOneCommodity(value){
  if (value != "") {
    standard = value;
    setCommodity(standard);
    //repaintOneCommodity();
    changeImage(standard);
  } else {
    clearCommodity();
	standard1Name = $("commodityStandard1Name").value;
	standard2Name = $("commodityStandard2Name").value;
    $("selectMessage").innerHTML = "请选择 " + standard1Name + standard2Name;
  }
}

// マウスオーバー時
function changeCommodity(tempvalue){
  standard1Name = $("commodityStandard1Name").value;
  standard2Name = $("commodityStandard2Name").value;
  
  var oneStandardName = (standard1Name == "") ? standard2Name : standard1Name;
  $("selectMessage").innerHTML = "";
  tempstandard = tempvalue;
  setCommodity(tempstandard);
  changeImage(tempstandard);
}

// 選択した規格を表示
function repaintOneCommodity(){
  if ($("standardAssortment").value == "only1") {
    $("standard1").innerHTML = standard;
  } else {
    $("standard2").innerHTML = standard;
  }
}


// マウスがフォーカスから外れたときの処理(規格2つのとき)
function resetCommodity(){
  selectStd("standard1", selected.standard1);
}

// マウスがフォーカスから外れたときの処理(規格1つのとき)
function resetOneCommodity(){
  if (standard == "") {
    clearCommodity();
    $("selectMessage").innerHTML = "";
  } else {
    setOnlyOneCommodity(standard);
  }
}


/*
 （表示切替）
 */
function showhide(id){
  if (document.getElementById) {
    if (document.getElementById(id).style.display == "block") {
      document.getElementById(id).style.display = "none";
    } else {
      document.getElementById(id).style.display = "block";
    }
  }
}

/* 
 SSL保護ページへのURLを動的に生成する
 */
function sendSSLAction(action){
  var skuCode = document.forms['cart'].selectSkuCode.value;
  var shopCode = document.forms['cart'].shopCode.value;
  var commodityCode = document.forms['cart'].commodityCode.value;
  var contextPath = document.forms['cart'].contextPath.value;
  var quantity = document.forms['cart'].quantity.value;
  var path = contextPath + '/app/catalog/detail/' + action + "/" + shopCode + "/" + commodityCode + "/" + skuCode;
  document.forms["cart"].action = path;
  document.forms["cart"].submit();
}

//何も処理を行わないダミー関数
function dummy(){

}

// 初期表示時に、最初の入力項目(パスワード、テキスト、テキストエリアのみ)にフォーカスを当てる
function onFocus(){
  //form要素タイプ
  var types1 = ["text", "textarea", "password", "checkbox", "radio", "select-one"];
  //form要素のうち、フォーカスするもの
  var types2 = ["text", "textarea", "password"];
  try {
    for (var f = 0; f < document.forms.length; f++) {
      var fm = document.forms[f];
      for (var i = 0; i < fm.elements.length; i++) {
        var item = fm.elements[i];
        if (types1.indexOf(item.type) >= 0) {
          if (types2.indexOf(item.type) >= 0 && item.value == "") {
            fm.elements[i].focus();
          }
          return;
        }
      }
    }
  } catch (e) {
    // フォーカスを当てる要素がない場合、何もしない。
  }
}


// ページロード時にonFocusイベントを追加
function addEvent(){
  // Firefox用の処理
  if (window.addEventListener) {
    window.addEventListener("load", onFocus, false);
    // IE用の処理
  } else if (window.attachEvent) {
    window.attachEvent("onload", onFocus);
  }
}

addEvent();

/* 
 ボタン二度押し制御
 */
function blockDoubleSubmit(formName){
  with (formName) {
    var links = document.getElementsByTagName('a');
    for (var i = 0; i < links.length; i++) {
      links[i].removeAttribute('href');
    }
    submit();
  }
}

/* 
 JavaScript テキストエリアの入力文字数を制限する
 */
function checkLength(id){
  nMaxLength = 100000; //表示する最大文字数
  strTemp = $(id).value;
  nLength = strTemp.length;
  if (nLength > nMaxLength){
    $(id).value = strTemp.substring(0, nMaxLength);
  }
}
