//store the current parameter
//var parameters = {page : 1 , sex : null , category : null , type : null , sale : null};
var parameters = {};
var limit = 6; //constatnt
var max_page_count = 5; //constant 
var avatar_exist = true;
var shop_items = new Array();
var g_items = new Array();
var avt_sex = null;


//shop loader
function load() {
    $.getJSON('userinfo_nologin.php' , loadFirst);
}


//
function loadFirst(userinfo){
  shopLoadUserInfo(userinfo);
  $.getJSON('shopinfo_nologin.php' , loadMain);
}


//
function loadMain(json){
  params = getPageParameters();
  var page = params['page'] ? params['page'] : 1;
  var sex = params['sex'] ? params['sex'] : null;
  var category = params['category'] ? params['category'] : null;
  var type = params['type'] ? params['type'] : null; //{0:新着 , 1:期間限定 , 2:ゲームタイトル関連 }
  var sale = params['sale'] ? params['sale'] : null; //free/wallet/point
  shop_items = json;
  loadShop(json , page , sex , category , type , sale);
}


//
function loadShop(items , page , sex , category , type , sale) {
  //clear current content
  document.getElementById('item_list').innerHTML = '';
  document.getElementById('item_list').className = 'item_list';

  //generate main contents
  var cnt = 0;
  var list = new Array();

  for(var j = 0 ; j < items.length ; j++)
  {
    var ok = true;
    if(items[j]['display'] != 1)ok=false;
    if(category != null && category != items[j]['category'])ok = false; 
    if(sex != null && items[j]['sex'] != sex && items[j]['sex']!=3)ok = false;
    if(sale != null && items[j]['point_type'] != sale)ok = false;
    if(type == 0 && items[j]['new'] != true)ok = false;
    if(type == 1 && items[j]['limits'] != 1)ok = false;
    if(type == 2 && items[j]['game'] != 1)ok = false;

    if(ok){
      if( list.length < limit && cnt >= limit*(page-1) )list.push(items[j]);
      cnt++;
    }
  }

  //該当する項目が存在しないとき
  if(list.length == 0){
    $('#item_list').html('<div style="margin:30px auto;color:red;font-size:12px;font-weight:bold;text-align:center;">該当する商品がありません。</div>');
  }

  //ここ以降で保存するのが重要
  //store parameters
  parameters['page'] = page;
  parameters['sex'] = sex;
  parameters['category'] = category;
  parameters['type'] = type;
  parameters['sale'] = sale;

  //convert list element to html
  for(var k = 0; k < list.length ; k++)
  {
    document.getElementById('item_list').appendChild(genItemHTML(list[k]));

    if(k%3 == 2 && k != limit-1)
    {
      var bar = document.createElement('div');
      //bar.setAttribute('class' , 'bar');
      bar.className = 'hr_type1';
      document.getElementById('item_list').appendChild(bar);
    }
  }

  var div_clear = document.createElement('div');
  div_clear.className = 'clear';
  document.getElementById('item_list').appendChild(div_clear);

  // 右端のマージン制御
  $("#item_list div.item:nth-child(4n+3)").addClass("third_child");
}


//
function genItemHTML(ns){
  var root = document.createElement('div');
  root.className = 'item';

  var icon = document.createElement('div');
  icon.className = 'icon tooltip_item';
  icon.title = ns['name'];

  var img1 = document.createElement('img');
 
  if(ns['photo_b']){
    img1.src = '/na/data/images/org/' + ns['photo_b'];
  }else{
    img1.src = './data/images/item_icon.jpg';
  }
  img1.className = 'icon';
  icon.appendChild(img1);
  if(ns['new']){   //新着アイテムには、New表示を！
    var fuga = document.createElement('div');fuga.className = 'new';
    icon.appendChild(fuga);
  }
  root.appendChild(icon);
  
  var setumei = document.createElement('div');
  setumei.className = 'setumei';

  if( ns['limits'] == 1 ){  //限定アイテムには、限定アイコンを!!
    var img2 = document.createElement('img');
    img2.src = './data/images/icon_12.gif';
    setumei.appendChild(img2);
  }
  if( ns['rank'] > 1 ){  // ステージアイテムにアイコン
    var img3 = document.createElement('img');
    if( ns['rank'] == 2 ) img3.src = './data/images/icon_03.gif';
    if( ns['rank'] == 3 ) img3.src = './data/images/icon_06.gif';
    if( ns['rank'] == 4 ) img3.src = './data/images/icon_08.gif';
    if( ns['rank'] == 5 ) img3.src = './data/images/icon_10.gif';
    setumei.appendChild(img3);
  }

  var name = document.createElement('span');

  if(ns['name']){
    var _name = ns['name'];
    if(_name.length > 30)_name = _name.substring(0,30) + '...';
    name.innerHTML = _name;
  }

  setumei.appendChild(name);
  root.appendChild(setumei);
  root.appendChild( createSlot(ns) );  //装備スロット

  var sex_match = ((!(ns['sex'] == 1 && avt_sex == 'f')) && (!(ns['sex'] == 2 && avt_sex == 'm'))) || (ns['sex'] == 3);

  var soubi = document.createElement('div');
  soubi.className = 'soubi';
  for(var i = 1 ; i <= 3 ; i++)
  {
    var p = document.createElement('div');
    p.className = 'parts0' + i;
    if(i == 1){ //値段
        var priceDOM = document.createElement('span');
        priceDOM.className = 'price';
        var imageDOM = document.createElement('img');
        if(ns['point_type'] == 0){  //無料アイテム
          priceDOM.innerHTML = '<img src="./data/images/icon_price_free.gif" />';
        }else if(ns['point_type'] == 1){   //Walletアイテム
          priceDOM.innerHTML = '<img src="./data/images/icon_price_coin.gif" />' + ns['point'];
        }else{
          priceDOM.innerHTML = '<img src="./data/images/icon_price_point.gif" />' + ns['point'];
        }
        p.appendChild(priceDOM);
    }else if(i == 2){//カートボタン
        var cart_text = document.createElement('span');
        cart_text.appendChild(document.createTextNode("Get it"));
        p.appendChild(cart_text);
    }else if(i == 3){ //試着する
        var equip_text = document.createElement('span');
        equip_text.appendChild(document.createTextNode("Try it on"));
        p.appendChild(equip_text);
    }
    soubi.appendChild(p);
  }
  root.appendChild(soubi);
  return root;
}


//
function shopLoadUserInfo(ls) {
    avt_sex = ls['sex'];
    if(!avt_sex){
      avatar_exist = false;
      return;
    }
    setitem_id = ls['setitem_id'];
    if(sex == 'm'){
      for(var i = 0 ; i < init_list.length ; i ++)init_list[i] = m_init_list[i];
    }else{
      for(var i = 0 ; i < init_list.length ; i ++)init_list[i] = f_init_list[i];
    }
    for(var i = 0 ; i < equip_list.length ; i++)def_list[i] = equip_list[i];
}


//
function createSlot(ns){
  var category_indices = new Array(null,1,4,5,6,7,8,9,2,11,13,12);
  var category_keys = new Array( null ,'hat', 'ubody', 'lbody', 'hand', 'shoes',
                                'ritem', 'litem', 'hair', 'motion', 'background_effect', 'background');
  var bui_indices = new Array(0,2,3,4,5,6,7,8,9,10,12,11);
  var digit = new Array(0,0,0,0,0,0,0,0,0,0,0,0);

  var bui = document.createElement('div');
  bui.className = 'bui';

  var row = document.createElement('div');
  row.className = 'row';

  if(ns['category'] != 'setitem'){
    for(var j = 1, len = category_indices.length ; j < len ; j++){
      if(ns['category'] == category_indices[j]){
        digit[j] = 1;
      }
    }
  }else{
    for(var j = 1, len = category_keys.length ; j < len ; j++){
      if(j == 10 || ns[category_keys[j]] == 1){//なんでも装備可能
        digit[j] = 0;
      }else if(ns[category_keys[j]] == 2){ //装備禁止
        digit[j] = 2;
      }else{
        digit[j] = 1;
      }
    }
  }
  var img = document.createElement('img');
  img.src = './data/images/bui/' + digit.join("") + '.gif';
  img.alt = ns['name'];
  img.className = 'wide';
  row.appendChild(img);

  bui.appendChild(row);
  return bui;
}

