<%#
# @file
# Main application file. Holds scaffolding present on every page.
# Then a certain non-partial view (no _ preceding filename) will be
# displayed within, based on URL
#%>

<!DOCTYPE html>
<html>
<head>
  <title><%=h yield(:title) %></title>
  <%= csrf_meta_tags %>
  <meta name="viewport" content="width=device-width, user-scalable=no">

  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <script type="text/javascript" src="//use.typekit.net/tki2nyo.js"></script>
  <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
  <script type="text/javascript" src="//use.typekit.net/obp7wss.js"></script>
  <script type="text/javascript">try{Typekit.load();}catch(e){}</script>

        <!-- app code -->
        <script type="text/javascript">
            require.config({baseUrl: '/famous/'});
            require(['main']);
        </script>
</head>

<body data-env="<%= Rails.env %>">

    <% if notice %>
    <p id="toast"><%= notice %></p>
    <% end %>

    <%= content_tag :div, class: authenticated? ? "main authenticated" : "main unauthenticated" do %>

        <% classes = action_name == "home" ? "homePage" : ""
           classes += action_name == "home" && authenticated? ? " explorePage" : ""
           classes += controller_name == "maps" && action_name == "index" ? " explorePage" : ""
           if controller_name == "maps" && action_name == "show" 
             classes += " mapPage"
             if @map.authorize_to_edit(current_user)
               classes += " canEditMap"
             end
             if @map.permission == "commons"
               classes += " commonsMap"
             end
           end
           classes += controller_name == "topics" && action_name == "show" ? " topicPage" : ""
           %>

        <div class="wrapper <%= classes %>" id="wrapper">
            
            <%= render :partial => 'layouts/upperelements' %>

            <%= yield %>

            <div class="showcard mapElement mapElementHidden" id="showcard"></div> <!-- the topic card -->
            <% if authenticated? %>
                <% # for creating and pulling in topics and synapses %>
                <%= render :partial => 'maps/newtopic' %>
                <%= render :partial => 'maps/newsynapse' %>
                <% # for populating the change metacode list on the topic card %>
                <%= render :partial => 'shared/metacodeoptions' %>
            <% end %>
            <%= render :partial => 'layouts/lowermapelements' %>

            <div id="famousOverlay"></div>
            <div id="loading"></div>
        </div>

    <% end %>

<%= render :partial => 'layouts/lightboxes' %>
<%= render :partial => 'layouts/templates' %>
<%= render :partial => 'shared/metacodeBgColors' %>
<script type="text/javascript" charset="utf-8">
    <% if authenticated? %>
        Metamaps.Active.Mapper = <%= user.to_json.html_safe %>
    <% else %>
        Metamaps.Active.Mapper = null;
    <% end %>
    Metamaps.Metacodes = <%= Metacode.all.to_json.html_safe %>;

    Metamaps.Loading = {
        loader: new CanvasLoader('loading'),
        hide: function () {
          $('#loading').hide();
        },
        show: function () {
          $('#loading').show();
        }
    };
    Metamaps.Loading.loader.setColor('#4fb5c0'); // default is '#000000'
    Metamaps.Loading.loader.setDiameter(28); // default is 40
    Metamaps.Loading.loader.setDensity(41); // default is 40
    Metamaps.Loading.loader.setRange(0.9); // default is 1.3
    Metamaps.Loading.loader.show(); // Hidden by default

    // set up uservoice with signed in user
    <% if authenticated? && ENV['SSO_KEY'] %>
        USERVOICE.load(Metamaps.Active.Mapper.name, Metamaps.Active.Mapper.id, "<%= user.email %>", "<%= current_sso_token %>");
    <% else %>
        USERVOICE.load();
    <% end %>
</script>

<%= render :partial => 'layouts/googleanalytics' if Rails.env.production? %>
</body>
</html>
