//  baseModel.js
//    Control code for Base Model T-Shirts catalogue.
//    Copyright (C) 2007, Zootique Co., Ltd. All rights reserved.

//  定数初期設定
var imgRoot = "/images/";
var imgDir = "catalogue/baseModel/";
var bodyImgDir = "bodyImage/";
var imgExtension = ".png";
var bodyImgExtension = ".jpg";
var clMensPlain = ["LightPink", "Sax", "Sand", "Camel", "Gray", "Safari", "White"];   //  Mens/Plainの色選択リスト
var clMensPlainSel = 6;                                                               //  Mens/Plainの色選択・初期選択肢
var clMensBaseball = ["Green", "Red", "Navy", "Black"];                               //  Mens/Baseballの色選択リスト
var clMensBaseballSel = 3;                                                            //  Mens/Baseballの色選択・初期選択肢
var clLadiesPlain = ["LightPink", "LightYellow", "Sax", "White"];                     //  Ladies/Plainの色選択リスト
var clLadiesPlainSel = 3;                                                             //  Ladies/Plainの色選択・初期選択肢
var clLadiesBaseball = ["LightPink", "Red", "Sax", "Navy"];                           //  Ladies/Baseballの色選択リスト
var clLadiesBaseballSel = 3;                                                          //  Ladies/Baseballの色選択・初期選択肢
var szMensPlain = ["S", "M", "L", "XL"];                                              //  Mens/Plainのサイズ選択リスト
var szMensPlainSel = 2;                                                               //  Mens/Plainのサイズ選択・初期選択肢
var szMensBaseball = ["S", "M", "L", "XL"];                                           //  Mens/Baseballのサイズ選択リスト
var szMensBaseballSel = 2;                                                            //  Mens/Baseballのサイズ選択・初期選択肢
var szLadiesPlain = ["M"];                                                            //  Ladies/Plainのサイズ選択リスト
var szLadiesPlainSel = 0;                                                             //  Ladies/Plainのサイズ選択・初期選択肢
var szLadiesBaseball = ["M"];                                                         //  Ladies/Baseballのサイズ選択リスト
var szLadiesBaseballSel = 0;                                                          //  Ladies/Baseballのサイズ選択・初期選択肢
var baseModelPrice = "Price: <em>2,100Yen</em> (税込)"                                //  ベースモデルの値段
//  グローバル変数
//  コントロール初期設定
var genderSelection = "Mens";    //  性別
var styleSelection = "Plain";    //  スタイル（Plain/Baseball）
var colorSelection = "White";    //  色
var sizeSelection = "L";         //  サイズ（S/M/L/XL）
var isFront = true;              //  表示面(表：true、裏：false）
var onBody = true;               //  ボディ＆デザイン画 or デザイン画のみ

//  ***プログラム本体***
//  ***イベントプロシージャ***
function selectGenderClicked(obj){
  genderSelection = obj.value;
  optionChange();
  colorSelection = getFormSelected(document.getElementById("TCartWidgetsForm").selectColor);
  sizeSelection = getFormSelected(document.getElementById("TCartWidgetsForm").selectSize);
  changeImage();
  changeBodyImage();
  setCart();
}
function selectStyleChanged(obj){
  styleSelection = getFormSelected(obj);
  optionChange();
  colorSelection = getFormSelected(document.getElementById("TCartWidgetsForm").selectColor);
  sizeSelection = getFormSelected(document.getElementById("TCartWidgetsForm").selectSize);
  changeImage();
  changeBodyImage();
  setCart();
}
function selectColorChanged(obj){
  colorSelection = getFormSelected(obj);
  changeBodyImage();
  setCart();
}
function selectSizeChanged(obj){
  sizeSelection = getFormSelected(obj);
  setCart();
}

function selectViewClicked(obj){
  if( obj.value == "front" ) isFront = true;
  else isFront = false;
  changeImage();
}

function selectOnBodyClicked(obj){
  if( obj.value == "onbody" ) onBody = true;
  else onBody = false;
  changeImage();
}
//  ***その他ルーチン***
//    ページ内容の初期化をする。
function initDocument(){
  //  外部リンク設定
  externalLinks();
  //  商品番号設定
  itemCode = designerCode + "_" + designNumber;
  //  初期コントロール状態読み取り
  genderSelection = document.getElementsByName("selectGender")[0].checked == true ? "Mens" : "Ladies";
  styleSelection = getFormSelected(document.getElementsByName("selectStyle")[0]);
  colorSelection = getFormSelected(document.getElementsByName("selectColor")[0]);
  sizeSelection = getFormSelected(document.getElementsByName("selectSize")[0]);
  isFront = document.getElementsByName("selectView")[0].checked == true ? true : false;
  onBody = document.getElementsByName("selectOnBody")[0].checked == true ? true : false;
  //  コントロール内容設定
  optionChange();
  //  バックイメージ有無によるコントロール状態設定
  if( !hasBack ) document.getElementById("ViewSelect").selectView[1].disabled = true;
  else document.getElementById("ViewSelect").selectView[1].disabled = false;
  //  初期画像設定
  changeImage();
  //  キャプション設定
  document.getElementById("MainImageItemCode").innerHTML = designerCode + "_" + designNumber;
  //  価格設定
  document.getElementById("MainImagePrice").innerHTML = baseModelPrice;
  //  カート内容設定
  setCart();
}
//  コントロールの変化時に画像を差し替える(メイン画像)
function changeImage(){
  if(onBody) document.getElementById("DesignPicture").src=makeDesignFileName();
  else document.getElementById("DesignPicture").src = makeDesignDirName() + itemCode + "_" + "pl" + imgExtension;
  changeBodyImage();
}

//  コントロールの変化時に画像を差し替える(ボディ画像)
function changeBodyImage(){
  document.getElementById("imgBody").src = makeBodyFileName();
}

//  サフィックスからファイル名生成（図柄）
function makeDesignFileName(){
  if(isFront) return makeDesignDirName() + itemCode + "_" + makeDesignSuffix() + imgExtension;
  else return makeDesignDirName() + itemCode + "_" + makeDesignSuffix() + "_b" + imgExtension;
}

//  デザイン画像のあるディレクトリ名を生成
function makeDesignDirName(){
  return imgRoot + imgDir + designerCode + "/" + itemCode + "/";
}

//  サフィックスからファイル名生成(ボディ画像)
function makeBodyFileName(){
  style = styleSelection.toLowerCase();
  return imgRoot + bodyImgDir +                  //  ディレクトリ
          "bodyImage_" + genderSelection.toLowerCase() + "_" +   //  ファイル名
          colorSelection.toLowerCase() + "_" +
          style.slice(0, 1) + bodyImgExtension;
}

//  コントロールの状態から図柄ファイル名のサフィックスを決定する。
function makeDesignSuffix(){
  if( caseInsensitiveCompare( genderSelection, "mens" ) )
    if( caseInsensitiveCompare( styleSelection, "plain" ) ) return "mt";
    else return "mb";
  else
    if( caseInsensitiveCompare( styleSelection, "plain" ) ) return "lt";
    else return "lb";
}
//  Mens/Ladies、Style変更時にColor、Sizeのオプションを変更する。
function optionChange(){
  if( caseInsensitiveCompare( genderSelection, "mens" ) ){
    if( caseInsensitiveCompare( styleSelection, "plain" ) ){
      setFormSelect( document.getElementById("TCartWidgetsForm").selectColor, clMensPlain, clMensPlainSel );
      setFormSelect( document.getElementById("TCartWidgetsForm").selectSize, szMensPlain, szMensPlainSel );
    }
    else{   //  Mens, Baseball
      setFormSelect( document.getElementById("TCartWidgetsForm").selectColor, clMensBaseball, clMensBaseballSel );
      setFormSelect( document.getElementById("TCartWidgetsForm").selectSize, szMensBaseball, szMensBaseballSel );
    }
  }
  else{     //  Ladies
    if( caseInsensitiveCompare( styleSelection, "plain" ) ){  //  Ladies, Plain
      setFormSelect( document.getElementById("TCartWidgetsForm").selectColor, clLadiesPlain, clLadiesPlainSel );
      setFormSelect( document.getElementById("TCartWidgetsForm").selectSize, szLadiesPlain, szLadiesPlainSel );
    }
    else{   //  Ladies, Baseball
      setFormSelect( document.getElementById("TCartWidgetsForm").selectColor, clLadiesBaseball, clLadiesBaseballSel );
      setFormSelect( document.getElementById("TCartWidgetsForm").selectSize, szLadiesBaseball, szLadiesBaseballSel );
    }
  }
  colorSelection = getFormSelected(document.getElementById("TCartWidgetsForm").selectColor);
  sizeSelection = getFormSelected(document.getElementById("TCartWidgetsForm").selectSize);
}

//  カートの中身セット
function setCart() {
  document.getElementById("OrderForm").ITM.value = itemCode;
  document.getElementById("OrderForm").OPT1.value = genderSelection;
  document.getElementById("OrderForm").OPT2.value = styleSelection;
  document.getElementById("OrderForm").OPT3.value = colorSelection;
  document.getElementById("OrderForm").OPT4.value = sizeSelection;
}

