{% block head %}
<!doctype html>
<html class="no-js" lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ page.title }} - {{SITENAME}}</title>
    {% include "styles.html" %}
  </head>
  <body>
    {% include "menu.html" %}
    
    {% include "submenu.html" %}
    
    {% include "generic.html" %}
    
    {% include "footer.html" %}
    
  <script src="/theme/js/jquery-2.1.1.min.js"></script>
  <script src="/theme/js/bootstrap.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
  </body>
</html>
{% endblock %}
