//
// 初期化関数
//
function init() {
  loadHead('maps', 0);
  var loadPage = function() {
    loadBackground_h2();
    init_areamap();
    layoutAreamapselect();
    layoutToggles();
    layoutInfo();
    loadFoot(0);
    countAccess('maps');
  }
  login(loadPage);
  return true;
}


//
// 
//
function layoutAreamapselect() {
  var i;
  var world = new Array('1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D');
  var dl = document.createElement('dl');
  var dt_world = document.createElement('dt'); dt_world.innerHTML = 'WORLD:';
  var dt_area  = document.createElement('dt'); dt_area.innerHTML  = 'AREA:';
  var dt_map   = document.createElement('dt'); dt_map.innerHTML  = 'MAP:';
  var dd_world = document.createElement('dd');
  dd_world.className = 'select_world';
  
  var sel_w, sel_a;
  sel_w = document.getElementById('areamap').getAttribute('select_world');
  sel_a = document.getElementById('areamap').getAttribute('select_area');

  // WORLD
  for( i = 0; i < world.length; i++ ) {
    var a = document.createElement('a');
    a.value = world[i];
    a.innerHTML = world[i];
    a.title = 'WORLD ' + a.innerHTML;
    addListener(a, 'click', change_areamapselect, false);
    if( world[i] == sel_w ) { a.className = 'active'; }
    dd_world.appendChild(a);
  }
  var dd_area = document.createElement('dd');
  dd_area.className = 'select_area';
  // AREA
  for( i = 0; i < 4; i++ ) {
    var a = document.createElement('a');
    a.value = i + 1;
    a.innerHTML = i + 1;
    a.title = 'AREA ' + a.innerHTML;
    addListener(a, 'click', change_areamapselect, false);
    if( i == sel_a - 1 ) { a.className = 'active'; }
    dd_area.appendChild(a);
  }
  var dd_map = document.createElement('dd');
  dd_map.className = 'select_map';
  
  dl.appendChild(dt_world); dl.appendChild(dd_world);
  dl.appendChild(dt_area);  dl.appendChild(dd_area);
  dl.appendChild(dt_map);   dl.appendChild(dd_map);
  layoutMapselect();
  document.getElementById('areamapselect').appendChild(dl);
  return;
}
//
function layoutMapselect() {
  var map = new Array('a', 'b', 'c', 'd', 'e');
  var query = new Array();
  query.push('cmd=count_areamap');
  query.push('world=' + document.getElementById('areamap').getAttribute('select_world'));
  query.push('area='  + document.getElementById('areamap').getAttribute('select_area'));
  var func = function(xml) {
    var dd = getNode(document.getElementById('areamapselect'), 'dd', 2); dd.innerHTML = '';
    var i;
    for( i = 0; i < getNodeValue(xml, 'count', 0); i++ ) {
      var a = document.createElement('a');
      a.value = map[i];
      a.innerHTML = map[i].toUpperCase();
      a.title = 'MAP ' + a.innerHTML;
      addListener(a, 'click', change_areamapselect, false);
      if( map[i].toLowerCase() == document.getElementById('areamap').getAttribute('select_map') ) { a.className = 'active'; }
      //if( i == 0 ) { a.className = 'active'; }
      dd.appendChild(a);
    }
    //document.getElementById('areamap').setAttribute('select_map', 'a');
    loadAreamap();
  }
  httpXMLRequest(dir('cgi', 0) + 'maps.cgi', 'POST', array2queryString(query), func, httpError, 'cgi_maps_count_areamap', true);
  return;
}

//
function change_areamapselect(e) {
  var target = getTargetElement(e);
  var areamap = document.getElementById('areamap');

  areamap.setAttribute('select_map', 'a');
  
  var i;
  for( i = 0; i < target.parentNode.getElementsByTagName('a').length; i++ ) {
    target.parentNode.getElementsByTagName('a')[i].className = '';
  }
  target.className = 'active';
  areamap.setAttribute(target.parentNode.className, target.value);

  if( target.parentNode.className != 'select_map' ) { layoutMapselect(); }
  else { loadAreamap(); }
  return;
}


////////////////////////////////////////////////////////////////////////////////
//
// toggles
//
////////////////////////////////////////////////////////////////////////////////
function layoutToggles() {
  var name_toggle = new Array(), type_toggle = new Array();
  name_toggle.push('アイテム・隠しブロック');
  name_toggle.push('敵キャラクタ');
  name_toggle.push('メモ');
  //name_toggle.push('公開メモ');
  //name_toggle.push('共有メモ');
  type_toggle.push('item');
  type_toggle.push('char');
  type_toggle.push('memo');
  //type_toggle.push('open');
  //type_toggle.push('share');

  var i; for( i = 0; i < name_toggle.length; i++ ) {
    var label = document.createElement('label');
    var checkbox = document.createElement('input');
    var span = document.createElement('span');
    span.innerHTML = name_toggle[i];
    span.title = name_toggle[i] + ' の表示・非表示を切り換えます．'
    checkbox.className = 'checkbox';
    checkbox.type = 'checkbox';
    checkbox.title = name_toggle[i] + ' の表示・非表示を切り換えます．'
    checkbox.id = 'toggle_' + type_toggle[i];
    checkbox.name = 'toggle';
    checkbox.category = type_toggle[i];

    //if( i != 0  &&  i != 1 ) { checkbox.checked = 'checked'; }
    checkbox.checked = 'checked';
    
    //
    // ユーザによって，デフォルトの表示カテゴリをカスタマイズできればいいな
    //


    addListener(checkbox, 'click', loadMemos, false);
    label.id = 'label_' + checkbox.id;
    label.setAttribute('for', checkbox.id);
    label.appendChild(checkbox);
    label.appendChild(span);
    document.getElementById('toggles').appendChild(label);
  }
  
  return;
}




addListener(window, 'load', init, false);

