//
//  商品項目を表示する
//  用品・アパレルページ用
//  要prototype.js
//  showGoods(url, element, category)
//  url：ターゲットスクリプトのurl
//  element：出力先要素のid
//  category：受信データの表示先HTMLファイル名
//  sortKey：ソートに使うフィールド名
//  sortFlag：ソートの順方向（'asc' or 'desc'）
//
//  2007/09/18 (c) Ohsako, Junichi
//


function showGoods(url, element, category, sortKey, sortFlag) {
  // prototype.js でAjax通信
  new Ajax.Request(url, {
    asynchronous: false,
    method: "post",
    parameters: 'table=goods_tbl&key=category&key_value=' + category + '&sort_key=' + sortKey + '&sort_flag=' + sortFlag,
    onComplete: function(request) {
                  var xml = request.responseXML;
                  // <record>のノードリストを得る
                  var record = xml.getElementsByTagName("record");
                  // <maker>のノードリストを得る
                  var resMaker = xml.getElementsByTagName("maker");
                  // <gname>のノードリストを得る
                  var resGname = xml.getElementsByTagName("gname");
                  // <model>のノードリストを得る
                  var resModel = xml.getElementsByTagName("model");
                  // <price>のノードリストを得る
                  var resPrice = xml.getElementsByTagName("price");
                  // <explanation>のノードリストを得る
                  var resExplanation = xml.getElementsByTagName("explanation");
                  // <imagepath>のノードリストを得る
                  var resImagepath = xml.getElementsByTagName("imagepath");
                  // <alternate>のノードリストを得る
                  var resAlternate = xml.getElementsByTagName("alternate");
                  // 有効なデータが存在するかを判定
                  if(xml.getElementsByTagName("record").length) { 
                    // ここから変数htmlにHTML化した文字列を蓄積
                    var html = '';
                    // ノードリストから値を取り出してHTML生成
                    html += '<h2 id="catid' + category + '" class="categoryheader">' + catArray[category] + '</h2>';
                    for(var i = 0; i < record.length; i++) {
                      html += '<div class="tileboxg">';
                      if(resImagepath[i].childNodes.length) {
                        var limage = resImagepath[i].firstChild.nodeValue;
                        var simage = resImagepath[i].firstChild.nodeValue;
                        html += '<a href="javascript:openWinFix(\'lImage\',\'photo.html?' + limage.match(/img\/goods\/g\d+/) + '_l.jpg' + '\',\'640\',\'580\');">';
                        html += '<img src="' + simage.match(/img.+/) + '" alt="" /></a>';
                      }
                      if(resMaker[i].childNodes.length) {
                        html += '<h3>' + resMaker[i].firstChild.nodeValue + '<br />';
                      }
                      if(resGname[i].childNodes.length) {
                        html += resGname[i].firstChild.nodeValue + '</h3>';
                      }
                      if(resModel[i].childNodes.length) {
                        html += '<p><strong>品番：</strong>' + resModel[i].firstChild.nodeValue + '</p>';
                      }
                      if(resPrice[i].childNodes.length) {
                        html += '<p><strong>価格：</strong>' + conv2Commaed(resPrice[i].firstChild.nodeValue) + '円</p>';
                      }
                      if(resExplanation[i].childNodes.length) {
                        html += '<p>' + resExplanation[i].firstChild.nodeValue + '</a></div>';
                      }
                    }
                    // DOM書き出し
                    if(html) {
                      $(element).innerHTML = html;
                    }
                  }
                }
    }  
  );
}


// カテゴリー判定用配列
var catArray = ['用品', 'パーツ', 'アパレル', '小物', 'その他'];

// 3桁の位取りコンマを数字に挿入する関数
function conv2Commaed(val) {
  // 負数なら符号転換
  if (val < 0) {
    return "-" + conv2Commaed(-val);
  }
  // 1000で除算し、コンマとテキスト化した剰余を付加する再帰呼出し
  if (val >= 1000) {
    return conv2Commaed(Math.floor(val / 1000)) + "," + ((1000 + val % 1000).toString()).substring(1);
  }
  return val;
}
