<!DOCTYPE html>
<html>

<head>
  <script data-require="jquery@*" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <link rel="stylesheet" href="style.css" />
  <link rel="stylesheet" href="common.css">
  <link rel="stylesheet" href="elements.css">
  <link rel="stylesheet" href="classes.css">
  <link rel="stylesheet" href="ymaps.css">
  <script src="http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script>
  <script src="script.js"></script>
  <script src="actions.js"></script>

</head>

<body>
  <div id="container">
    <nav>
      <h1>Ангары</h1>
      <div class="list_manager" id="manage-list-show"><span>▼</span> Показать список</div>
    </nav>
    <div id="menu-list">
      <div id="menu-container">
        <ol>
          <li>
            <span>
                <span>1</span> Арочный, г. Юхнов
            <div>2009 г.</div>
            </span>

          </li>
          <li>
            <span>
                <span>2</span> Прямоугольный, г. Павловский Посад
            <div>2009 г.</div>
            </span>
          </li>
          <li>
            <span>
                <span>3</span> Шатровый, г. Юхнов
            <div>2009 г.</div>
            </span>
          </li>
          <li>
            <span>
                <span>4</span> Арочный, г. Ногинск
            <div>2009 г.</div>
            </span>
          </li>
          <li>
            <span>
                <span>5</span> Прямоугольный, г. Юхнов
            <div>2009 г.</div>
            </span>
          </li>
          <!--<li>
            <span>
                <span>6</span> 
                Арочный, г. Юхнов
                <div>2009 г.</div>
            </span>
        </li>
        <li>
            <span>
                <span>7</span> 
                Прямоугольный, г. Павловский Посад
                <div>2009 г.</div>
            </span>
        </li>
        <li>
            <span>
                <span>8</span> 
                Шатровый, г. Юхнов
                <div>2009 г.</div>
            </span>
        </li>-->
          <li>
            <span>
                <span>9</span> Арочный, г. Юхнов
            <div>2009 г.</div>
            </span>
          </li>
          <li>
            <span>
                <span>10</span> Прямоугольный, г. Павловский Посад
            <div>2009 г.</div>
            </span>
          </li>
        </ol>
      </div>
      <div class="list_manager" id="manage-list-hide"><span>▲</span> Скрыть список</div>
    </div>
    <div id="main">
      <div id="shell">
      </div>
      <div id="gallery">
        Gallery
        <div class="close"></div>
      </div>
      <div class="mapArea" id="map1">
      </div>
    </div>
  </div>
</body>

</html>
// Как только будет загружен API и готов DOM, выполняем инициализацию
ymaps.ready(init);

var myMaps = {};

function init() {
    var Map, Markers,
        mapsParams = {
            map1: {
                center: [55.76, 37.64],
                markers: [
                    [55.779393, 38.651318], // Павлов Посад
                    [55.383874, 36.724225],  // Наро-Фоминск
                    [54.744659, 35.242463]   // Юхнов
                ],
                imgTexts: [
                    "Ангар первый",
                    "Ангар второй",
                    "Ангар третий"
                ]
            }
        };
    for (var map in mapsParams) {
        //console.log('map(' + typeof(map) + ') = ' + map);
        //console.dir(mapsParams[map]);
        //console.log(mapsParams[map].center);
        //console.log(mapsParams[map].balloonContent);
        //console.log(mapsParams[map].hintContent);
        //console.log('zoom type: '+typeof mapsParams['zoom']);
        //console.log('type type: '+typeof mapsParams['type']);
        Map = mapsParams[map];
        myMaps[map] = new ymaps.Map(map, {
            center: Map.center,//Петрозаводск //[55.76, 37.64], // Москва
            zoom: 8,
            type: 'yandex#map'
        });
        // добавим маркеры
        Markers = Map.markers;
        for (var i = 0, j = Markers.length; i < j; i++) {
            myMaps[map].geoObjects.add(new ymaps.Placemark(
                Markers[i], {
                    balloonContent: '<img class="preview" onclick="manageGallery('+(i+1)+')" src="images/map' + (i + 1) + '.jpg" />' +
                    '<div>' + Map.imgTexts[i] + '</div>' +
                    '<input type="button" value="Видео">'
                }
            ));
        } //console.dir(myMaps[map].getCenter());
        myMaps[map].controls.add(
            new ymaps.control.TypeSelector(
                ['yandex#map', 'yandex#hybrid', 'yandex#satellite']
            )
        );
        myMaps[map].controls.add('zoomControl', {
            float: 'none',
            position: {
                right: 40,
                top: 75
            }
        });
    }
}
#container {
    height: 100%;
    position: relative;
}
#main {
    height: 100%;
    width: 100%;
    margin-top: -60px;
    padding-top: 60px;
}
#manage-list-hide{
    bottom: 0;
    border-top: solid 1px;
    display: none;
    width: 100%;
}
#manage-list-show{
    border-bottom-left-radius: 14px;
    border-bottom-right-radius: 14px;
    opacity: 0.85;
}
#menu-container{
    position: absolute;
    
    top: 0;
    bottom: 50px;
    overflow: auto;
    width: 100%;
    background: #000;
    padding: 0 10px 28px 20px;
}
#menu-list{
    display: none;
    margin: 0px;
    position: absolute;
    opacity: 0.85;
    bottom: 0px;
    top: 59px;
    z-index: 1;
    background-color: black;
}
#shell{
    background-color: black;
    bottom: 0;
    display: none;
    opacity: 0.5;
    left: 0;
    right: 0;
    position: fixed;
    padding: 20px;
    top: 0;
    z-index: 2;
}
#gallery{
    background-color: lightyellow;
    display: none;
    height: 535px;
    position: fixed;
    top: 25%;
    width: 594px;
    z-index: 3;
}
[id^="manage-list-"] span:first-child{
    cursor: pointer;
    display: inline-block;
    transform: scaleY(0.5);
}
$(function(){
    // показать/спрятать список
    var manageListBlock = $('.list_manager');
    $('span:first-child', manageListBlock).on('click', function(){
        $(manageListBlock).toggle(200); //console.dir($(manageListBlock));
        $('#menu-list').slideToggle(300);
    });
    // обработать клик по элементу списка
    $('div#menu-container ol li').on('click', function(){
        var pMarker = 'map'+($(this).index()+1);
        console.log('pMarker: '+pMarker);
        //console.dir(myMaps['map1'].balloon);

    });
    // закрыть превью
    $('.close').on('click', function(){
        $(this).parent().fadeOut(200, function(){
            $(getShell()).fadeOut(200);
        });
    });
    // скорректировать позицию превью на изменение размера окна
    $(window).on('resize', manageGallery);

});

function manageGallery(nmb){
    var shell   = getShell(),
        gallery = $('#gallery');
    if(typeof nmb == 'number' || $(gallery).is(':visible')){
        //console.log(typeof nmb);
        //console.log('visible: '+$(gallery).is(':visible'));
        var ofstLeft= ($(shell).width()-$(gallery).width())/ 2,
            ofstTop = ($(shell).height()-$(gallery).height()+60)/ 2;
        // через jQuery не работает...
        $(gallery)[0].style.top=ofstTop+'px';
        $(gallery)[0].style.left=ofstLeft+'px';
        //
        if(nmb){
            $(shell).fadeIn(200, function(){
                $(gallery).fadeIn(200);
            });
        }
    }
}
function getShell(){
    return $('#shell');
}
.close{
    cursor: pointer;
    font-family: Arial;
    position: absolute;
    right: -6px;
    top:4px;
    width: 24px;
    height: 24px;
    zoom: 1.5;
    transform: scaleY(0.7);
}
.close::after{
    content: 'x';
}
.list_manager{
    font-family: Helvetica, Arial, sans-serif;
    font-size: 12px;
    height: 51px;
    line-height: 50px;
    padding: 0 15px;
    position: absolute;
}
.mapArea{
    height: 100%;
}
a, body, div, li, menu, nav, span{
    box-sizing: border-box;
    -moz-box-sizing: border-box;
}
.list_manager,
#menu-list{
    width: 276px;
}
.list_manager,
#menu-list >ol{
    background-color: black;
    color: white;
    margin-top: -4px;
}
#menu-list{
    left: 112px;
}
nav{
  padding-left: 112px !important;
}

a, body, div, li, menu, nav, span{
    box-sizing: border-box;
}
html, body{
    height: 100%;
    margin: 0;
    padding: 0;
}
menu{
    margin: 0;
}
nav{
    background-color: black;
    height: 60px;
    padding: 0;
    position: relative;
}
#menu-list{
    display: none;
}
#menu-container >ol{
    margin: 0;
}
nav >div{
    position: absolute;
    z-index: 2;
}
#menu-container >ol li{
    min-height: 66px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    position: relative;
    padding-top: 13px;
    list-style: none;
}
#menu-container >ol li >span{
    display: block;
    margin-left: -47px;
    padding-left: 36px;
    height: 66px;
    color: white;
}
#menu-container >ol li >span:hover,
#menu-container >ol li >span:hover div{
    color: red;
    cursor: pointer;
}
#menu-container >ol li >span:hover >span{
    color: white;
}
#menu-container >ol li >span >span{
    margin-left: -37px;
    margin-right: 4px;
    margin-top: 4px;
    padding-top: 2px;
    display: inline-block;
    text-align: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: solid 2px #bbb;
}
#menu-container >ol li span >div{
    margin-top: 8px;
    font-size: 12px;
    opacity: 0.7;
}
nav h1{
    color: white;
    font-family: 'Myriad Pro', Arial, Impact, Helvetica;
    line-height: 60px;
    margin: 0;
}
nav div{
   color: white;
}
.ymaps-b-balloon__content-body img{
    cursor: pointer;
}