//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//　共通クラス
//  依存関係：commonlib.js
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

clsPurchaseList = new Object();
clsPurchaseList = function(){
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  //*******************************************************
  //　プロパティ
  //*******************************************************
  //データ格納用JSON
  this.objListContents = new Object;
  
  //インスタンス名
  this.strInsName = "buy";
  
  //動作用DOM
  this.objListArea  = new Object();
  this.objBtnArea   = new Object();
  
  //頁数
  this.intPageCnt = 0;
  
  //定数
  this.astrTypeID = {
    "book"      : "B",
    "magazine"  : "M"
  }
  
  //*******************************************************
  //　コンストラクタ
  //*******************************************************

  
  //*******************************************************
  //　初期化
  //*******************************************************
  this.init = function(){
    
    //=====================================================
    //JSONをプロパティに格納
    //=====================================================
    this.objListContents = objPurchaseHistory;

    //=====================================================
    //ドキュメント取得
    //=====================================================
    try{
      this.objListArea  = document.getElementById('PurchaseListArea');
      this.objBtnArea   = document.getElementById('PurchaseButtonArea');
    }catch(e){
      return;
    }
    if (!this.objListArea){
      return;
    }

    //=====================================================
    //描画更新
    //=====================================================
    this.reload();
  }

  //*******************************************************
  //　購入リスト追加
  //　概　要：購入リストに追加
  //　引　数：[0]タイプ　book：書籍 , magazine：雑誌
  //　        [1]ID
  //　        [2]ISBNコード、ASINコード
  //　        [3]タイトル
  //　戻り値：なし
  //*******************************************************
  this.setlist = function(vstrType, vstrID, vstrCode, vstrName){
    
    //=====================================================
    //雑誌の場合は詳細か否か判定
    //=====================================================
    var strMagType = "";
    if (vstrType == "magazine_d"){
      vstrType = "magazine";
      strMagType = "detail";
    }
    
    //=====================================================
    //エラーチェック（50件まで）
    //=====================================================
    if (this.objListContents.length >= 50){
      alert('購入リストへの追加は最大50件までです。');
      return false;
    }

    //=====================================================
    //既に存在している場合は処理終了
    //=====================================================
    for (var i=0; i<this.objListContents.length; i++){
      if (this.objListContents[i]['type'] == vstrType 
          && this.objListContents[i]['id'] == vstrID){
        alert('既に購入リストに追加されています。');
        return false;
      }
    }
    
    //=====================================================
    //JSON更新
    //=====================================================
    var objThisData = new Array();
    objThisData['id']    = vstrID;
    objThisData['type']  = vstrType;
    objThisData['code']  = vstrCode;
    objThisData['name']  = vstrName;
    this.objListContents.push(objThisData);
    
    //=====================================================
    //Cookie書込み
    //=====================================================
    this.setcookie();
    
    //=====================================================
    //描画更新（通常時）
    //=====================================================
    if (strMagType == ""){
      this.reload();
      alert('購入リストに追加しました。');
    }
    
    //=====================================================
    //メッセージ（雑誌詳細時）
    //=====================================================
    else{
      if (confirm('購入リストに追加しました。一覧に戻りますか？')){
        document.location.href = "eiyo." + gstrLinkExet;
      }
    }
  }

  //*******************************************************
  //　購入リスト削除
  //　概　要：購入リストに追加
  //　引　数：[0]削除対象JSON要素番号（-1は全データ削除）
  //　戻り値：なし
  //*******************************************************
  this.dellist = function(vintDelIndex){

    //=====================================================
    //確認
    //=====================================================
    if (vintDelIndex == -1){
      if (!confirm ("全てクリアしても宜しいですか？")){ return; }
    }

    //=====================================================
    //JSON更新
    //=====================================================
    var objTemp = new Array();
    if (vintDelIndex != -1){
      for (var i=0; i<this.objListContents.length; i++){
        if (i == vintDelIndex){ continue; }
        objTemp.push(this.objListContents[i]);
      }
    }
    this.objListContents = objTemp;
    
    //=====================================================
    //Cookie書込み
    //=====================================================
    this.setcookie();
    
    //=====================================================
    //描画更新
    //=====================================================
    this.reload();
  }

  //*******************************************************
  //　Cookie書込み
  //　概　要：Cookie書込み
  //　引　数：なし
  //　戻り値：なし
  //*******************************************************
  this.setcookie = function(){
    
    //書込み値生成
    var strValue = "";
    for (var i=0; i<this.objListContents.length; i++){
      strValue += this.astrTypeID[this.objListContents[i]['type']] + ":";
      strValue += this.objListContents[i]['id'] + ",";
    }
    strValue = strValue.replace(/,$/, "");
    
    //書込み
    com.setcookie("buylist", strValue, "/", "");
    
  }

  //*******************************************************
  //　購入実行
  //　概　要：購入実行
  //　引　数：なし
  //　戻り値：なし
  //*******************************************************
  this.buyexec = function(){
    
    //ID編集
    var objAsinCode = document.getElementById('asin_code');
    var strAsinCode = "";
    for (var i=0; i<this.objListContents.length; i++){
      strAsinCode += this.objListContents[i]['code'] + ",";
    }
    strAsinCode = strAsinCode.replace(/,$/, "");

    //クッションページに遷移
    document.location.href = "../search/amazon.php?asin_code=" + strAsinCode;
  }
  
  //*******************************************************
  //　購入リスト再描画
  //　概　要：購入リストに追加
  //　引　数：[0]タイプ　book：書籍 , magazine：雑誌
  //　        [1]ID
  //　        [2]ISBNコード、ASINコード
  //　        [3]タイトル
  //　戻り値：なし
  //*******************************************************
  this.reload = function(){

    var strHtml = "";

    //=====================================================
    //値無しの場合
    //=====================================================
    if (this.objListContents.length < 1){
			//メッセージ表示
      strHtml = "";
			strHtml += "<p class=\"empty-text01\">商品を購入するには購入リストに入れる必要があります。</p>\n";
			strHtml += "<p class=\"empty-text02\">各商品の購入ボタンをクリックしてください。</p>\n";
      this.objListArea.innerHTML = strHtml;
      
      //ボタン非活性
      strHtml = "";
      strHtml += "<div class=\"marginB7\"><img src=\"images/side-list/bt_002_off.gif\" alt=\"ご購入手続きへ\" /></div>\n";
      strHtml += "<div><img src=\"images/side-list/bt_003_off.gif\" alt=\"全てクリア\" /></div>\n";
      this.objBtnArea.innerHTML = strHtml
    }
    
    //=====================================================
    //値ありの場合
    //=====================================================
    else{
      //表示件数定義
      intViewCnt = 5;
      
      //行番号初期化
      intRow = 0;
      intBlock = 0;
      
      //===================================================
      //リスト生成
      //===================================================
      strHtml = "";
      strHtml += "<ul>\n";
      for (var i=0; i<this.objListContents.length; i++){
        //タイトル編集
        strTitle = this.objListContents[i]['name'];
        strTitle = strTitle.replace(/&lt;/g, "＜");
        strTitle = strTitle.replace(/&gt;/g, "＞");
        strTitle = strTitle.replace(/</g, "＜");
        strTitle = strTitle.replace(/>/g, "＞");
        this.objListContents[i]['name'] = strTitle;

        if (intRow == 0){
          strDisplay = "";
          if (intBlock != ""){
            strDisplay = " style=\"display:none;\" ";
            //strDisplay = " style=\"border:1px solid black;\" ";
          }
          strHtml += "<div id=\"listblock" + intBlock + "\" " + strDisplay + ">";
        }
        
    		strHtml += "	<li>\n";
    		strHtml += "		<p>" + this.objListContents[i]['name'] + "</p>\n";
    		strHtml += "		<div><input type=\"image\" src=\"images/side-list/bt_001.gif\" alt=\"削除\" onclick=\"" + this.strInsName + ".dellist(" + i + ");\" /></div>\n";
    		strHtml += "	</li>\n";
        
        intRow++;

        if (intRow == intViewCnt){
          strHtml += "</div>";
          intRow = 0;
          intBlock++;
        }
        
      }
      if (intRow != intViewCnt){
        strHtml += "</div id=\"listblock" + intBlock + "\" " + strDisplay + ">";
      }
      strHtml += "</ul>\n";

      this.objListArea.innerHTML = strHtml;
      
      //===================================================
      //ページング
      //===================================================
      strHtml = "";
      if (this.objListContents.length > intViewCnt){
        intPageCnt = Math.floor(this.objListContents.length / intViewCnt);
        if (this.objListContents.length % intViewCnt > 0){
          intPageCnt++;
        }
        this.intPageCnt = intPageCnt;
        strHtml += "<div class=\"pageing\" style=\"font-size:75%; margin-top:10px;\">\n";
        //for (var i=0; i<10; i++){
        for (var i=0; i<this.intPageCnt; i++){
          strStyle = "";
          if (i == 0){
            strStyle = " style=\"font-weight:bold; text-decoration:none;\" ";
          }else{
            strStyle = " style=\"font-weight:normal; text-decoration:underline;\" ";
          }

          strHtml += "<a id=\"listpage" + i + "\" href=\"javascript:void(0);\" onclick=\"" + this.strInsName + ".pageing(" + i + ");\" " + strStyle + ">";
          strHtml += (i + 1);
          strHtml += "</a>\n";
          
          if (i != this.intPageCnt-1){
            strHtml += "|\n";
          }
        }
        strHtml += "</div>\n";
      }
      
      this.objListArea.innerHTML += strHtml;
      
      //===================================================
      //ボタン活性
      //===================================================
      strHtml = "";
      strHtml += "<div class=\"marginB7\"><input type=\"image\" src=\"images/side-list/bt_002.gif\" alt=\"ご購入手続きへ\" onclick=\"" + this.strInsName + ".buyexec(); return false;\" /></div>\n";
      strHtml += "<div><input type=\"image\" src=\"images/side-list/bt_003.gif\" alt=\"全てクリア\" onclick=\"" + this.strInsName + ".dellist(-1);\" /></div>\n";
      this.objBtnArea.innerHTML = strHtml;
    }
    
  }
  
  //*******************************************************
  //　購入リストページ切り替え
  //　概　要：購入リストのページを切り替える
  //　引　数：[0]ページID
  //　戻り値：なし
  //*******************************************************
  this.pageing = function(vintThisID){
    
    for (var i=0; i<this.intPageCnt; i++){
      try{
        var objPageBlock = document.getElementById('listblock' + i);
        objPageBlock.style.display = "none";

        var objPageKey = document.getElementById('listpage' + i);
        objPageKey.style.fontWeight = "normal";
        objPageKey.style.textDecorationNone = "false";
        objPageKey.style.textDecorationUnderline = "true";
        objPageKey.style.textDecoration = "underline";
      }catch(e){}
    }
    try{
      var objPageBlock = document.getElementById('listblock' + vintThisID);
      objPageBlock.style.display = "block";

      var objPageKey = document.getElementById('listpage' + vintThisID);
      objPageKey.style.fontWeight = "bold";
      objPageKey.style.textDecorationUnderline = "false";
      objPageKey.style.textDecorationNone = "true";
      objPageKey.style.textDecoration = "none";
    }catch(e){}
    
  }
  //*******************************************************
  
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//インスタンス生成
com.addEvent(window, "load", function(){
  buy = new clsPurchaseList();
  buy.init();
});

//JSON取得（サーバーより）
var objPurchaseHistory = new Array();
var strSetValue = com.getcookie("buylist");
if (strSetValue != ""){
  document.write("<script type=\"text/javascript\" src=\"" + gstrRoot + "/search/list.php?id=" + strSetValue + "\"></script>");
}