<%! from django.utils.translation import ugettext as _ %>
<%! from django.template.defaultfilters import escapejs %>
<%! from microsite_configuration import page_title_breadcrumbs %>
<%! from edxnotes.helpers import is_feature_enabled as is_edxnotes_enabled %>
<%inherit file="/main.html" />
<%namespace name='static' file='/static_content.html'/>
<%def name="course_name()">
 <% return _("{course_number} Courseware").format(course_number=course.display_number_with_default) %>
</%def>

<%block name="bodyclass">courseware ${course.css_class or ''}</%block>
<%block name="title"><title>
    % if section_title:
${page_title_breadcrumbs(section_title, course_name())}
    % else:
${page_title_breadcrumbs(course_name())}
    %endif
</title></%block>

<%block name="header_extras">
% for template_name in ["image-modal"]:
<script type="text/template" id="${template_name}-tpl">
    <%static:include path="js/${template_name}.underscore" />
</script>
% endfor
</%block>


<%block name="headextra">
<%static:css group='style-course-vendor'/>
<%static:css group='style-course'/>
## Utility: Notes
% if is_edxnotes_enabled(course):
<%static:css group='style-student-notes'/>
% endif

<%block name="nav_skip">${"#seq_content" if section_title else "#course-content"}</%block>

<%include file="../discussion/_js_head_dependencies.html" />

  % if show_chat:
    <link rel="stylesheet" href="${static.url('css/vendor/ui-lightness/jquery-ui-1.8.22.custom.css')}" />
    ## It'd be better to have this in a place like lms/css/vendor/candy,
    ## but the candy_res/ folder contains images and other junk, and it
    ## all needs to stay together for the Candy.js plugin to work.
    <link rel="stylesheet" href="${static.url('candy_res/candy_full.css')}" />
  % endif
  ${fragment.head_html()}
</%block>

<%block name="js_extra">
  <script type="text/javascript" src="${static.url('js/vendor/jquery.scrollTo-1.4.2-min.js')}"></script>
  <script type="text/javascript" src="${static.url('js/vendor/flot/jquery.flot.js')}"></script>

  ## codemirror
  <script type="text/javascript" src="${static.url('js/vendor/codemirror-compressed.js')}"></script>

  <%static:js group='courseware'/>

  <%include file="../discussion/_js_body_dependencies.html" />
  % if staff_access:
  	<%include file="xqa_interface.html"/>
  % endif

  <script type="text/javascript">
    var $$course_id = "${course.id | escapejs}";

    $(function(){
        $(".ui-accordion-header a, .ui-accordion-content .subtitle").each(function() {
          var elemText = $(this).text().replace(/^\s+|\s+$/g,''); // Strip leading and trailing whitespace
          var wordArray = elemText.split(" ");
          var finalTitle = "";
          if (wordArray.length > 0) {
            for (i=0;i<=wordArray.length-1;i++) {
              finalTitle += wordArray[i];
              if (i == (wordArray.length-2)) {
                finalTitle += "&nbsp;";
              } else if (i == (wordArray.length-1)) {
                // Do nothing
              } else {
                finalTitle += " ";
              }
            }
          }
          $(this).html(finalTitle);
        });
      });
  </script>

% if timer_expiration_duration:
  <script type="text/javascript">
    var timer = {
      timer_inst : null,
      end_time : null,
      get_remaining_secs : function(endTime) {
        var currentTime = new Date();
        var remaining_secs = Math.floor((endTime - currentTime)/1000);
        return remaining_secs;
      },
      get_time_string : function() {
        function pretty_time_string(num) {
          return ( num < 10 ? "0" : "" ) + num;
        }
        // count down in terms of hours, minutes, and seconds:
        var hours = pretty_time_string(Math.floor(remaining_secs / 3600));
        remaining_secs = remaining_secs % 3600;
        var minutes = pretty_time_string(Math.floor(remaining_secs / 60));
        remaining_secs = remaining_secs % 60;
        var seconds = pretty_time_string(Math.floor(remaining_secs));

        var remainingTimeString = hours + ":" + minutes + ":" + seconds;
        return remainingTimeString;
      },
      update_time : function(self) {
        remaining_secs = self.get_remaining_secs(self.end_time);
        if (remaining_secs <= 0) {
          self.end(self);
        }
        $('#exam_timer').text(self.get_time_string(remaining_secs));
      },
      start : function() { var that = this;
        // set the end time when the template is rendered.
        // This value should be UTC time as number of milliseconds since epoch.
        this.end_time = new Date((new Date()).getTime() + ${timer_expiration_duration});
        this.timer_inst = setInterval(function(){ that.update_time(that); }, 1000);
      },
      end : function(self) {
        clearInterval(self.timer_inst);
        // redirect to specified URL:
        window.location = "${time_expired_redirect_url}";
      }
    }
    // start timer right away:
    timer.start();
  </script>
% endif

% if show_chat:
  <script type="text/javascript" src="${static.url('js/vendor/candy_libs/libs.min.js')}"></script>
  <script type="text/javascript" src="${static.url('js/vendor/candy.min.js')}"></script>

  <script type="text/javascript">
    // initialize the Candy.js plugin
    $(document).ready(function() {
      Candy.init("http://${chat['domain']}:5280/http-bind/", {
        core: { debug: true, autojoin: ["${chat['room']}@conference.${chat['domain']}"] },
        view: { resources: "${static.url('candy_res/')}"}
      });
      Candy.Core.connect("${chat['username']}", "${chat['password']}");

      // show/hide the chat widget
      $('#chat-toggle').click(function() {
        var toggle = $(this);
        if (toggle.hasClass('closed')) {
          $('#chat-block').show().animate({height: '400px'}, 'slow', function() {
            $('#chat-open').hide();
            $('#chat-close').show();
          });
        } else {
          $('#chat-block').animate({height: '0px'}, 'slow', function() {
            $('#chat-open').show();
            $('#chat-close').hide();
            $(this).hide(); // do this at the very end
          });
        }
        toggle.toggleClass('closed');
      });
    });
  </script>
% endif

${fragment.foot_html()}

</%block>

% if timer_expiration_duration:
<div class="timer-main">
  <div id="timer_wrapper">
    % if timer_navigation_return_url:
    <a href="${timer_navigation_return_url}" class="timer_return_url">${_("Return to Exam")}</a>
    % endif
    <div class="timer_label">Time Remaining:</div> <div id="exam_timer" class="timer_value">&nbsp;</div>
  </div>
</div>
% endif

<%include file="/dashboard/_dashboard_prompt_midcourse_reverify.html" />
% if default_tab:
  <%include file="/courseware/course_navigation.html" />
% else:
  <%include file="/courseware/course_navigation.html" args="active_page='courseware'" />
% endif

<div class="container">
  <div class="course-wrapper">

% if disable_accordion is UNDEFINED or not disable_accordion:
    <div class="course-index" role="navigation">
      <header id="open_close_accordion">
        <a href="#">${_("close")}</a>
      </header>

      <div id="accordion" style="display: none">
        <nav aria-label="${_('Course Navigation')}">
          % if accordion.strip():
            ${accordion}
          % else:
            <div class="chapter">${_("No content has been added to this course")}</div>
          % endif
        </nav>
      </div>
    </div>
% endif

    <section class="course-content" id="course-content">
      ${fragment.body_html()}
    </section>
  </div>
</div>

<nav class="nav-utilities ${"has-utility-calculator" if course.show_calculator else ""}">
  <h2 class="sr nav-utilities-title">${_('Course Utilities Navigation')}</h2>

  ## Utility: Chat
  % if show_chat:
    <%include file="/chat/toggle_chat.html" />
  % endif

  ## Utility: Notes
  % if is_edxnotes_enabled(course):
    <%include file="/edxnotes/toggle_notes.html" args="course=course"/>
  % endif

  ## Utility: Calc
  % if course.show_calculator:
    <%include file="/calculator/toggle_calculator.html" />
  % endif
</nav>

<%include file="../modal/accessible_confirm.html" />
