// ## サイトマップ
const SITEMAP = {
  'shikumi':{
    'title':'共済組合のしくみ',
    'directory':{
      'index':{
        'title':'共済組合のあらまし',
        'href':'shikumi/index.html'
      },
      'kumiaiin':{
        'title':'組合員',
        'href':'shikumi/kumiaiin.html'
      },
      'nini':{
        'title':'任意継続組合員',
        'href':'shikumi/nini.html'
      },
      'hihuyousya':{
        'title':'被扶養者',
        'href':'shikumi/hihuyousya.html'
      },
      'kakekin':{
        'title':'掛金と負担金',
        'href':'shikumi/kakekin.html'
      },
      'list04':{
        'title':'掛金等・負担金の種類と算定対象者',
        'href':'shikumi/list04.html',
        'target':'blank'
      }
    }
  },// -- /shikumi
  'tanki':{
    'title':'短期給付',
    'directory':{
      'index':{
        'title':'短期給付について',
        'href':'tanki/index.html'
      },
      'genbutsu':{
        'title':'現物給付',
        'directory':{
          'genbutsu01':{
            'title':'療養の給付・家族療養の給付',
            'href':'tanki/genbutsu01.html'
          },
          'genbutsu02':{
            'title':'医療費の流れ',
            'href':'tanki/genbutsu02.html'
          },
          'genbutsu03':{
            'title':'一部負担金',
            'href':'tanki/genbutsu03.html'
          },
          'genbutsu04':{
            'title':'一部負担金払戻金・家族療養費附加金',
            'href':'tanki/genbutsu04.html'
          },
          'genbutsu05':{
            'title':'高額療養費・合算高額療養附加金',
            'href':'tanki/genbutsu05.html'
          },
          'genbutsu06':{
            'title':'特定疾病に係る高額療養費の特例',
            'href':'tanki/genbutsu06.html'
          },
          'genbutsu07':{
            'title':'高額療養費の現物給付化',
            'href':'tanki/genbutsu07.html'
          },
          'genbutsu08':{
            'title':'保険外併用療養費',
            'href':'tanki/genbutsu08.html'
          },
          'genbutsu09':{
            'title':'入院したときの食事・生活費',
            'href':'tanki/genbutsu09.html'
          },
          'genbutsu10':{
            'title':'家庭での看護・介護',
            'href':'tanki/genbutsu10.html'
          }
        }
      },// -- /genbutsu
      'genkin':{
        'title':'現金給付',
        'directory':{
          'genkin01':{
            'title':'支給スケジュール',
            'href':'tanki/genkin01.html'
          },
          'genkin02':{
            'title':'療養費・家族療養費',
            'href':'tanki/genkin02.html'
          },
          'genkin03':{
            'title':'移送費・家族移送費',
            'href':'tanki/genkin03.html'
          },
          'genkin04':{
            'title':'出産費・出産費附加金・家族出産費・家族出産費附加金',
            'href':'tanki/genkin04.html'
          },
          'genkin05':{
            'title':'埋葬料・埋葬料附加金・家族埋葬料・家族埋葬料附加金',
            'href':'tanki/genkin05.html'
          },
          'genkin06':{
            'title':'高額介護合算療養費',
            'href':'tanki/genkin06.html'
          },
          'genkin07':{
            'title':'傷病手当金',
            'href':'tanki/genkin07.html'
          },
          'genkin08':{
            'title':'出産手当金',
            'href':'tanki/genkin08.html'
          },
          'genkin09':{
            'title':'休業手当金',
            'href':'tanki/genkin09.html'
          },
          'genkin10':{
            'title':'育児休業手当金',
            'href':'tanki/genkin10.html'
          },
          'genkin11':{
            'title':'介護休業手当金',
            'href':'tanki/genkin11.html'
          },
          'genkin12':{
            'title':'弔慰金・家族弔慰金',
            'href':'tanki/genkin12.html'
          },
          'genkin13':{
            'title':'災害見舞金・災害見舞品',
            'href':'tanki/genkin13.html'
          }
        }
      },// -- /genkin
      'other':{
        'title':'その他の手続き',
        'directory':{
          'other01':{
            'title':'その他の手続き',
            'href':'tanki/other01.html'
          },
          'other02':{
            'title':'第三者行為によるケガの場合',
            'href':'tanki/other02.html'
          }
        }
      }// -- /other
    }
  },// -- /tanki
  'nenkin':{
    'title':'長期給付',
    'directory':{
      'index':{
        'title':'長期給付',
        'href':'nenkin/index.html'
      }
    }
  },
  'fukushi':{
    'title':'福祉事業',
    'directory':{
      'index':{
        'title':'福祉事業',
        'href':'fukushi/index.html'
      },
      'kenshin':{
        'title':'保健事業',
        'directory':{
          'kenshin01':{
            'title':'人間ドック・脳ドック・がん検診（オプション検査）',
            'href':'fukushi/kenshin01.html'
          },
          'kenshin09':{
            'title':'女性がん検診（乳がん・子宮頸がん検診）',
            'href':'fukushi/kenshin09.html'
          },
          'kenshin02':{
            'title':'特定健診・特定保健指導',
            'href':'fukushi/kenshin02.html'
          },
          'kenshin10':{
            'title':'データヘルス計画',
            'href':'fukushi/kenshin10.html'
          },
          'kenshin03':{
            'title':'生活習慣病健診',
            'href':'fukushi/kenshin03.html'
          },
          'kenshin04':{
            'title':'インフルエンザ予防接種補助',
            'href':'fukushi/kenshin04.html',
            'target':'blank'
          },
          'kenshin05':{
            'title':'歯科健診',
            'href':'fukushi/kenshin05.html'
          },
          'kenshin08':{
            'title':'メンタルヘルス相談',
            'href':'fukushi/kenshin08.html'
          },
          'kenshin11':{
            'title':'アウトソーシング福利厚生事業',
            'href':'fukushi/kenshin11.html'
          }
        }
      },// -- /kenshin
      'kashitsuke':{
        'title':'貸付事業',
        'directory':{
          'kashitsuke01':{
            'title':'組合員貸付事業',
            'href':'fukushi/kashitsuke01.html'
          },
          'kashitsuke02':{
            'title':'団体信用生命保険事業',
            'href':'fukushi/kashitsuke02.html'
          }
        }
      },// -- /kashitsuke
      'chokin':{
        'title':'貯金事業',
        'href':'fukushi/chokin.html'
      },
      'hoken':{
        'title':'グループ保険事業',
        'directory':{
          'hoken01':{
            'title':'グループ保険事業',
            'href':'fukushi/hoken01.html'
          },
          'hoken02':{
            'title':'グループ保険事業（退職後制度）',
            'href':'fukushi/hoken02.html'
          }
        }
      },// -- /hoken
      'other':{
        'title':'その他',
        'directory':{
          'other01':{
            'title':'財形住宅貸付事業',
            'href':'fukushi/other01.html'
          },
          'other03':{
            'title':'提携住宅ローン',
            'href':'fukushi/other03.html'
          },
          'other04':{
            'title':'財形貯蓄事業',
            'href':'fukushi/other04.html'
          }
        }
      }// -- /other
    }
  },// -- /fukushi
  'seikyu':{
    'title':'届出書・請求書用紙',
    'directory':{
      'index':{
        'title':'届出書・請求書用紙',
        'href':'seikyu/index.html'
      }
    }
  },
  'privacy':{
    'title':'個人情報保護方針',
    'directory':{
      'index':{
        'title':'個人情報保護方針',
        'href':'privacy/index.html'
      }
    }
  },
  'specific_privacy':{
    'title':'特定個人情報保護関連',
    'directory':{
      'index':{
        'title':'特定個人情報保護関連',
        'href':'specific_privacy/index.html'
      }
    }
  },
  'sitemap':{
    'title':'サイトマップ',
    'directory':{
      'index':{
        'title':'サイトマップ',
        'href':'sitemap/index.html'
      }
    }
  },
  'links':{
    'title':'関連リンク',
    'directory':{
      'index':{
        'title':'関連リンク',
        'href':'links/index.html'
      }
    }
  },
  'reiki':{
    'title':'例規集',
    'directory':{
      'index':{
        'title':'例規集',
        'href':'reiki/index.html'
      }
    }
  },
  'yosan':{
    'title':'予算・決算・組合会会議録',
    'directory':{
      'index':{
        'title':'予算・決算・組合会会議録',
        'href':'yosan/index.html'
      }
    }
  },
  'contact':{
    'title':'お問い合わせ',
    'directory':{
      'index':{
        'title':'お問い合わせ',
        'href':'contact/index.html'
      }
    }
  },
  'magazine':{
    'title':'都市共済だより',
    'directory':{
      'index':{
        'title':'都市共済だより',
        'href':'magazine/index.html'
      }
    }
  },
  'backnumber':{
    'title':'お知らせ',
    'directory':{
      'index':{
        'title':'バックナンバー',
        'href':'backnumber/'
      }
    }
  }
};// -- /const SITEMAP

var FONTSIZE = 15; // -- PCフォントサイズ

var IS_MOBILE = true; // -- メディア判定
var SCREENSIZE = 0; // -- 画面サイズ(window.screen.availWidth)


// ## PCメニュー書出
function write_menu_pc(){
  let _html = '';

  _html += '<h2>'+SITEMAP[LOCATION.split('-')[0]]['title']+'</h2>';
  
  _html += menu_loop(SITEMAP[LOCATION.split('-')[0]],LOCATION.split('-')[0]);

  document.write(_html);

  document.querySelectorAll('body >div >aside >ul li:has(ul) span').forEach(function($element){
    $element.addEventListener('click',function($event){
      $event.target.parentElement.classList.toggle('active');
    });
  });
}// -- /function write_menu_pc()


// ## SPメニュー書出
function write_menu_sp(){
  let _location = LOCATION.split('-')[0];

  let _html = '';

  _html += '<ul>';

  if(_location == 'shikumi'){// -- 共済組合のしくみ
    _html += '<li class="active"><span>共済組合のしくみ</span>';
  }else{
    _html += '<li><span>共済組合のしくみ</span>';
  }
  _html += menu_loop(SITEMAP['shikumi'],'shikumi');
  _html += '</li>';

  if(_location == 'tanki'){// -- 短期給付
    _html += '<li class="active"><span>短期給付</span>';
  }else{
    _html += '<li><span>短期給付</span>';
  }
  _html += menu_loop(SITEMAP['tanki'],'tanki');
  _html += '</li>';

  if(_location == 'nenkin'){// -- 長期給付
    _html += '<li class="active"><span>長期給付</span></li>';
  }else{
    _html += '<li><a href="'+ ROOT + 'nenkin/index.html">長期給付</a></li>';
  }

  if(_location == 'fukushi'){// -- 福祉事業
    _html += '<li class="active"><span>福祉事業</span>';
  }else{
    _html += '<li><span>福祉事業</span>';
  }
  _html += menu_loop(SITEMAP['fukushi'],'fukushi');
  _html += '</li>';

  if(_location == 'seikyu'){// -- 届出書・請求書用紙
    _html += '<li class="active"><span>届出書・請求書用紙</span></li>';
  }else{
    _html += '<li><a href="'+ ROOT + 'seikyu/index.html">届出書・請求書用紙</a></li>';
  }

  _html += '</ul>';

  document.write(_html);

  document.querySelectorAll('#pulldown >div >ul li:has(ul) span').forEach(function($element){
    $element.addEventListener('click',function($event){
      $event.target.parentElement.classList.toggle('active');
    });
  });
}// -- /function write_menu_sp()


// ## ループパーツ
function menu_loop($sitemap,$location){
  let _location = $location.split('-');

  let _html = '<ul>';

  for(let _count=0, _max=Object.keys($sitemap['directory']).length; _count<_max; _count++){
    if(Object.keys($sitemap['directory'])[_count] == LOCATION.replace(_location.join('-')+'-','').split('-')[0]){// -- location一致
      _html += '<li class="active"><span>'+$sitemap['directory'][Object.keys($sitemap['directory'])[_count]]['title']+'</span>';
    }else{
      if('target' in $sitemap['directory'][Object.keys($sitemap['directory'])[_count]] && 'href' in $sitemap['directory'][Object.keys($sitemap['directory'])[_count]]){// -- targetがある
        _html += '<li><a href="'+ ROOT + $sitemap['directory'][Object.keys($sitemap['directory'])[_count]]['href'] +'" target="_blank" rel="noopener noreferrer">'+$sitemap['directory'][Object.keys($sitemap['directory'])[_count]]['title']+'</a>';
      }
      else if('href' in $sitemap['directory'][Object.keys($sitemap['directory'])[_count]]){// -- hrefがある
        _html += '<li><a href="'+ ROOT + $sitemap['directory'][Object.keys($sitemap['directory'])[_count]]['href'] +'">'+$sitemap['directory'][Object.keys($sitemap['directory'])[_count]]['title']+'</a>';
      }else{
        _html += '<li><span>'+$sitemap['directory'][Object.keys($sitemap['directory'])[_count]]['title']+'</span>';
      }
    }
    if('directory' in $sitemap['directory'][Object.keys($sitemap['directory'])[_count]]){// -- directoryがある
      _html += menu_loop($sitemap['directory'][Object.keys($sitemap['directory'])[_count]], $location+'-'+Object.keys($sitemap['directory'])[_count]);
    }

    _html += '</li>';
  }

  _html += '</ul>';

  return _html;
}// -- /function menu_loop($sitemap,$location)


// ## DOM読込完了時
function onDOMContentLoaded(){
  // PC or SP 判別
  window.addEventListener('resize',function(){
    let _screensize = window.screen.availWidth;

    if(SCREENSIZE != _screensize){
      if(_screensize < 768){
        IS_MOBILE = true;
        document.querySelector('body').style.fontSize = null;
        document.querySelector('body').classList.remove('pc');
      }else{
        IS_MOBILE = false;
        document.querySelector('body').classList.add('pc');
      }
      SCREENSIZE =_screensize;
    }
  });
  window.dispatchEvent(new Event('resize'));


  // ** ハンバーガーメニュー展開
  document.querySelector('body >header #burgermenu').addEventListener('click',function($event){
    document.querySelector('body').classList.add('pulldown');
    return false;
  });

  // ** ハンバーガーメニュー縮小
  document.querySelector('body #pulldown >div >header >nav').addEventListener('click',function($event){
    document.querySelector('body').classList.remove('pulldown');
    return false;
  });

  // ** 文字サイズ初期設定
  if(!localStorage.getItem('fontsize')){
    if(!IS_MOBILE || window.matchMedia('print').matches){  // PC or Printer
      FONTSIZE = 15;
      document.querySelector('body').style.fontSize = '15px';
      localStorage.setItem('fontsize',15);
      document.querySelector('#fontsize').classList.add('default');
    }else{
      document.querySelector('body').style.fontSize = null;
    }
  }else{
    if(!IS_MOBILE || window.matchMedia('print').matches){  // PC or Printer
      document.querySelector('#fontsize').classList.remove('small','default','large');
      FONTSIZE = Number(localStorage.getItem('fontsize'));
      document.querySelector('body').style.fontSize = FONTSIZE+'px';
      if(FONTSIZE<15){ document.querySelector('#fontsize').classList.add('small');
      }else if(FONTSIZE>15) { document.querySelector('#fontsize').classList.add('large');
      }else{ document.querySelector('#fontsize').classList.add('default'); }
    }else{
      document.querySelector('body').style.fontSize = null;
    }
  }

  // ** 文字サイズ縮小
  document.querySelector('body >header >div #fontsize >ul >li:nth-of-type(1)').addEventListener('click',function($event){
    document.querySelector('#fontsize').classList.remove('small','default','large');
    FONTSIZE -= 2;
    if(FONTSIZE<1) FONTSIZE = 1;
    document.querySelector('body').style.fontSize = FONTSIZE+'px';
    localStorage.setItem('fontsize',FONTSIZE);
    if(FONTSIZE<15){ document.querySelector('#fontsize').classList.add('small');
    }else if(FONTSIZE>15) { document.querySelector('#fontsize').classList.add('large');
    }else{ document.querySelector('#fontsize').classList.add('default'); }
    return false;
  });

  // ** 文字サイズリセット
  document.querySelector('body >header >div #fontsize >ul >li:nth-of-type(2)').addEventListener('click',function($event){
    document.querySelector('#fontsize').classList.remove('small','large');
    FONTSIZE = 15;
    document.querySelector('body').style.fontSize = '15px';
    localStorage.setItem('fontsize',15);
    document.querySelector('#fontsize').classList.add('default');
   return false;
  });

  // ** 文字サイズ拡大
  document.querySelector('body >header >div #fontsize >ul >li:nth-of-type(3)').addEventListener('click',function($event){
    document.querySelector('#fontsize').classList.remove('small','default','large');
    FONTSIZE += 2;
    document.querySelector('body').style.fontSize = FONTSIZE+'px';
    localStorage.setItem('fontsize',FONTSIZE);
    if(FONTSIZE<15){ document.querySelector('#fontsize').classList.add('small');
    }else if(FONTSIZE>15) { document.querySelector('#fontsize').classList.add('large');
    }else{ document.querySelector('#fontsize').classList.add('default'); }
    return false;
  });
}// -- /function onDOMContentLoaded()


// ## DOM読込状況確認
if(document.readyState === 'loading'){
  document.addEventListener('DOMContentLoaded', onDOMContentLoaded);
} else {
  onDOMContentLoaded();
}







