Merge branch 'master' into refactor
Conflicts: lms/djangoapps/django_comment_client/tests.py lms/static/coffee/src/discussion/content.coffee requirements.txt
This commit is contained in:
@@ -3,11 +3,6 @@ from lxml import etree
|
||||
from xmodule.x_module import XModule
|
||||
from xmodule.raw_module import RawDescriptor
|
||||
|
||||
import comment_client
|
||||
import dateutil
|
||||
from dateutil.tz import tzlocal
|
||||
from datehelper import time_ago_in_words
|
||||
|
||||
import json
|
||||
|
||||
class DiscussionModule(XModule):
|
||||
|
||||
@@ -9,9 +9,6 @@ from django.contrib.auth.models import User
|
||||
from mitxmako.shortcuts import render_to_response, render_to_string
|
||||
from courseware.courses import get_course_with_access
|
||||
|
||||
from dateutil.tz import tzlocal
|
||||
from datehelper import time_ago_in_words
|
||||
|
||||
from urllib import urlencode
|
||||
from django_comment_client.permissions import check_permissions_by_view
|
||||
from django_comment_client.utils import merge_dict, extract, strip_none
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
from django.core.urlresolvers import reverse
|
||||
import django.core.urlresolvers as urlresolvers
|
||||
import urllib
|
||||
import sys
|
||||
import inspect
|
||||
|
||||
def pluralize(content, text):
|
||||
num, word = text.split(' ')
|
||||
@@ -9,10 +11,10 @@ def pluralize(content, text):
|
||||
return num + ' ' + word
|
||||
|
||||
def url_for_user(content, user_id):
|
||||
return reverse('django_comment_client.forum.views.user_profile', args=[content['course_id'], user_id])
|
||||
return urlresolvers.reverse('django_comment_client.forum.views.user_profile', args=[content['course_id'], user_id])
|
||||
|
||||
def url_for_tags(content, tags): # assume that tags is in the format u'a, b, c'
|
||||
return reverse('django_comment_client.forum.views.forum_form_discussion', args=[content['course_id']]) + '?' + urllib.urlencode({'tags': tags})
|
||||
def url_for_tags(content, tags): # assume that attribute 'tags' is in the format u'a, b, c'
|
||||
return urlresolvers.reverse('django_comment_client.forum.views.forum_form_discussion', args=[content['course_id']]) + '?' + urllib.urlencode({'tags': tags})
|
||||
|
||||
def close_thread_text(content):
|
||||
if content.get('closed'):
|
||||
@@ -20,9 +22,7 @@ def close_thread_text(content):
|
||||
else:
|
||||
return 'Close thread'
|
||||
|
||||
mustache_helpers = {
|
||||
'pluralize': pluralize,
|
||||
'url_for_tags': url_for_tags,
|
||||
'url_for_user': url_for_user,
|
||||
'close_thread_text': close_thread_text,
|
||||
}
|
||||
current_module = sys.modules[__name__]
|
||||
all_functions = inspect.getmembers(current_module, inspect.isfunction)
|
||||
|
||||
mustache_helpers = {k: v for k, v in all_functions if not k.startswith('_')}
|
||||
|
||||
@@ -1,25 +1,132 @@
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils import unittest
|
||||
from student.models import CourseEnrollment
|
||||
from student.models import CourseEnrollment, \
|
||||
replicate_enrollment_save, \
|
||||
replicate_enrollment_delete, \
|
||||
update_user_information, \
|
||||
replicate_user_save
|
||||
|
||||
from django.db.models.signals import m2m_changed, pre_delete, pre_save, post_delete, post_save
|
||||
from django.dispatch.dispatcher import _make_id
|
||||
import string
|
||||
import random
|
||||
from .permissions import has_permission, assign_default_role
|
||||
from .permissions import has_permission
|
||||
from .models import Role, Permission
|
||||
|
||||
# code adapted from https://github.com/justquick/django-activity-stream/issues/88
|
||||
class NoSignalTestCase(unittest.TestCase):
|
||||
def _receiver_in_lookup_keys(self, receiver, lookup_keys):
|
||||
"""
|
||||
Evaluate if the receiver is in the provided lookup_keys; instantly terminates when found.
|
||||
"""
|
||||
for key in lookup_keys:
|
||||
if (receiver[0][0] == key[0] or key[0] is None) and receiver[0][1] == key[1]:
|
||||
return True
|
||||
return False
|
||||
|
||||
class PermissionsTestCase(unittest.TestCase):
|
||||
def _find_allowed_receivers(self, receivers, lookup_keys):
|
||||
"""
|
||||
Searches the receivers, keeping any that have a lookup_key in the lookup_keys list
|
||||
"""
|
||||
kept_receivers = []
|
||||
for receiver in receivers:
|
||||
if self._receiver_in_lookup_keys(receiver, lookup_keys):
|
||||
kept_receivers.append(receiver)
|
||||
return kept_receivers
|
||||
|
||||
def _create_lookup_keys(self, sender_receivers_tuple_list):
|
||||
"""
|
||||
Creates a signal lookup keys from the provided array of tuples.
|
||||
"""
|
||||
lookup_keys = []
|
||||
|
||||
for keep in sender_receivers_tuple_list:
|
||||
receiver = keep[0]
|
||||
sender = keep[1]
|
||||
lookup_key = (_make_id(receiver) if receiver else receiver, _make_id(sender))
|
||||
lookup_keys.append(lookup_key)
|
||||
return lookup_keys
|
||||
|
||||
def _remove_disallowed_receivers(self, receivers, lookup_keys):
|
||||
"""
|
||||
Searches the receivers, discarding any that have a lookup_key in the lookup_keys list
|
||||
"""
|
||||
kept_receivers = []
|
||||
for receiver in receivers:
|
||||
if not self._receiver_in_lookup_keys(receiver, lookup_keys):
|
||||
kept_receivers.append(receiver)
|
||||
return kept_receivers
|
||||
|
||||
def setUp(self, sender_receivers_to_keep=None, sender_receivers_to_discard=None):
|
||||
"""
|
||||
Turns off signals from other apps
|
||||
|
||||
The `sender_receivers_to_keep` can be set to an array of tuples (reciever, sender,), preserving matching signals.
|
||||
The `sender_receivers_to_discard` can be set to an array of tuples (reciever, sender,), discarding matching signals.
|
||||
with both, you can set the `receiver` to None if you want to target all signals for a model
|
||||
"""
|
||||
self.m2m_changed_receivers = m2m_changed.receivers
|
||||
self.pre_delete_receivers = pre_delete.receivers
|
||||
self.pre_save_receivers = pre_save.receivers
|
||||
self.post_delete_receivers = post_delete.receivers
|
||||
self.post_save_receivers = post_save.receivers
|
||||
|
||||
new_m2m_changed_receivers = []
|
||||
new_pre_delete_receivers = []
|
||||
new_pre_save_receivers = []
|
||||
new_post_delete_receivers = []
|
||||
new_post_save_receivers = []
|
||||
|
||||
if sender_receivers_to_keep:
|
||||
lookup_keys = self._create_lookup_keys(sender_receivers_to_keep)
|
||||
new_m2m_changed_receivers = self._find_allowed_receivers(self.m2m_changed_receivers, lookup_keys)
|
||||
new_pre_delete_receivers = self._find_allowed_receivers(self.pre_delete_receivers, lookup_keys)
|
||||
new_pre_save_receivers = self._find_allowed_receivers(self.pre_save_receivers, lookup_keys)
|
||||
new_post_delete_receivers = self._find_allowed_receivers(self.post_delete_receivers, lookup_keys)
|
||||
new_post_save_receivers = self._find_allowed_receivers(self.post_save_receivers, lookup_keys)
|
||||
|
||||
if sender_receivers_to_discard:
|
||||
lookup_keys = self._create_lookup_keys(sender_receivers_to_discard)
|
||||
|
||||
new_m2m_changed_receivers = self._remove_disallowed_receivers(new_m2m_changed_receivers or self.m2m_changed_receivers, lookup_keys)
|
||||
new_pre_delete_receivers = self._remove_disallowed_receivers(new_pre_delete_receivers or self.pre_delete_receivers, lookup_keys)
|
||||
new_pre_save_receivers = self._remove_disallowed_receivers(new_pre_save_receivers or self.pre_save_receivers, lookup_keys)
|
||||
new_post_delete_receivers = self._remove_disallowed_receivers(new_post_delete_receivers or self.post_delete_receivers, lookup_keys)
|
||||
new_post_save_receivers = self._remove_disallowed_receivers(new_post_save_receivers or self.post_save_receivers, lookup_keys)
|
||||
|
||||
m2m_changed.receivers = new_m2m_changed_receivers
|
||||
pre_delete.receivers = new_pre_delete_receivers
|
||||
pre_save.receivers = new_pre_save_receivers
|
||||
post_delete.receivers = new_post_delete_receivers
|
||||
post_save.receivers = new_post_save_receivers
|
||||
super(NoSignalTestCase, self).setUp()
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Restores the signals that were turned off.
|
||||
"""
|
||||
super(NoSignalTestCase, self).tearDown()
|
||||
m2m_changed.receivers = self.m2m_changed_receivers
|
||||
pre_delete.receivers = self.pre_delete_receivers
|
||||
pre_save.receivers = self.pre_save_receivers
|
||||
post_delete.receivers = self.post_delete_receivers
|
||||
post_save.receivers = self.post_save_receivers
|
||||
|
||||
|
||||
class PermissionsTestCase(NoSignalTestCase):
|
||||
def random_str(self, length=15, chars=string.ascii_uppercase + string.digits):
|
||||
return ''.join(random.choice(chars) for x in range(length))
|
||||
|
||||
def setUp(self):
|
||||
|
||||
sender_receivers_to_keep = [
|
||||
(assign_default_role, CourseEnrollment),
|
||||
|
||||
sender_receivers_to_discard = [
|
||||
(replicate_enrollment_save, CourseEnrollment),
|
||||
(replicate_enrollment_delete, CourseEnrollment),
|
||||
(update_user_information, User),
|
||||
(replicate_user_save, User),
|
||||
]
|
||||
super(PermissionsTestCase, self).setUp(sender_receivers_to_keep=sender_receivers_to_keep)
|
||||
super(PermissionsTestCase, self).setUp(sender_receivers_to_discard=sender_receivers_to_discard)
|
||||
|
||||
self.course_id = "MITx/6.002x/2012_Fall"
|
||||
|
||||
@@ -32,20 +139,24 @@ class PermissionsTestCase(unittest.TestCase):
|
||||
password="123456", email="staff@edx.org")
|
||||
self.moderator.is_staff = True
|
||||
self.moderator.save()
|
||||
self.student_enrollment = CourseEnrollment.objects.create(user=self.student, course_id=self.course_id)
|
||||
self.moderator_enrollment = CourseEnrollment.objects.create(user=self.moderator, course_id=self.course_id)
|
||||
|
||||
def tearDown(self):
|
||||
self.student_enrollment.delete()
|
||||
self.moderator_enrollment.delete()
|
||||
self.student.delete()
|
||||
self.moderator.delete()
|
||||
super(PermissionsTestCase, self).tearDown()
|
||||
|
||||
def testDefaultRoles(self):
|
||||
self.assertTrue(student_role in self.student.roles.all())
|
||||
self.assertTrue(moderator_role in self.moderator.roles.all())
|
||||
self.assertTrue(self.student_role in self.student.roles.all())
|
||||
self.assertTrue(self.moderator_role in self.moderator.roles.all())
|
||||
|
||||
def testPermission(self):
|
||||
name = self.random_str()
|
||||
Permission.register(name)
|
||||
add_permission(moderator_role, name)
|
||||
self.assertTrue(has_permission(self.moderator, name))
|
||||
self.moderator_role.add_permission(name)
|
||||
self.assertTrue(has_permission(self.moderator, name, self.course_id))
|
||||
|
||||
add_permission(self.student, name)
|
||||
self.assertTrue(has_permission(self.student, name))
|
||||
self.student_role.add_permission(name)
|
||||
self.assertTrue(has_permission(self.student, name, self.course_id))
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
datehelper
|
||||
==========
|
||||
|
||||
This Python module contains some useful date-related methods inspired by rails.
|
||||
@@ -1 +0,0 @@
|
||||
from time_ago_in_words import *
|
||||
@@ -1,151 +0,0 @@
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil.tz import tzlocal
|
||||
import calendar
|
||||
|
||||
# only used for testing
|
||||
def _timedelta(**kwargs):
|
||||
kwargs['days'] = kwargs.get('days', 0)
|
||||
if kwargs.get('years', False):
|
||||
# not really a good solution since ignoring leap years
|
||||
# but this is only for test anyways
|
||||
kwargs['days'] += kwargs['years'] * 365
|
||||
del kwargs['years']
|
||||
if kwargs.get('months', False):
|
||||
kwargs['days'] += kwargs['months'] * 30
|
||||
del kwargs['months']
|
||||
return timedelta(**kwargs)
|
||||
|
||||
def time_ago_in_words(from_time, include_seconds=False):
|
||||
return distance_of_time_in_words(from_time, datetime.now(tzlocal()), include_seconds=False)
|
||||
|
||||
distance_of_time_in_words_to_now = time_ago_in_words
|
||||
|
||||
def _time_in_words(before_text, unit):
|
||||
if before_text:
|
||||
before_text += ' '
|
||||
def time_in_words_generator(count):
|
||||
if count <= 1:
|
||||
if before_text == 'less than ':
|
||||
if unit == 'hour':
|
||||
count = 'an'
|
||||
else:
|
||||
count = 'a'
|
||||
return '{0}{1} {2}'.format(before_text, count, unit)
|
||||
else:
|
||||
return '{0}{1} {2}s'.format(before_text, count, unit)
|
||||
return time_in_words_generator
|
||||
|
||||
def distance_of_time_in_words(from_time, to_time=0, include_seconds=False, options = {}):
|
||||
"""Return a rough description of the time interval between from_time and to_time.
|
||||
This is a direct translation from rails in ActionView::Helpers::DateHelper.
|
||||
Reference:
|
||||
http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-distance_of_time_in_words
|
||||
|
||||
>>> from_time = datetime.now(tzlocal())
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(minutes=50))
|
||||
'about 1 hour'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(seconds=15))
|
||||
'less than a minute'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(seconds=15), True)
|
||||
'less than 20 seconds'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(years=3))
|
||||
'about 3 years'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(hours=60))
|
||||
'3 days'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(seconds=45), True)
|
||||
'less than a minute'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(seconds=-45), True)
|
||||
'less than a minute'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(seconds=76))
|
||||
'1 minute'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(years=1, days=3))
|
||||
'about 1 year'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(years=3, months=6))
|
||||
'over 3 years'
|
||||
>>> distance_of_time_in_words(from_time, from_time + _timedelta(years=4, days=9, minutes=30, seconds=5))
|
||||
'about 4 years'
|
||||
>>> to_time = from_time + _timedelta(years=6, days=19)
|
||||
>>> distance_of_time_in_words(from_time, to_time, True)
|
||||
'about 6 years'
|
||||
>>> distance_of_time_in_words(to_time, from_time, True)
|
||||
'about 6 years'
|
||||
>>> distance_of_time_in_words(from_time, from_time)
|
||||
'less than a minute'
|
||||
"""
|
||||
|
||||
if isinstance(from_time, int):
|
||||
from_time = datetime.fromtimestamp(time.time()+from_time)
|
||||
if isinstance(to_time, int):
|
||||
to_time = datetime.fromtimestamp(time.time()+to_time)
|
||||
|
||||
distance_in_minutes = int(round(abs((to_time - from_time).total_seconds()) / 60))
|
||||
distance_in_seconds = int(round(abs((to_time - from_time).total_seconds())))
|
||||
|
||||
less_than_x_minutes = _time_in_words('less than', 'minute')
|
||||
less_than_x_seconds = _time_in_words('less than', 'second')
|
||||
half_a_minute = 'half a minute'
|
||||
x_minutes = _time_in_words('', 'minute')
|
||||
about_x_hours = _time_in_words('about', 'hour')
|
||||
x_days = _time_in_words('', 'day')
|
||||
about_x_months = _time_in_words('about', 'month')
|
||||
x_months = _time_in_words('', 'month')
|
||||
about_x_years = _time_in_words('about', 'year')
|
||||
over_x_years = _time_in_words('over', 'year')
|
||||
almost_x_years = _time_in_words('almost', 'year')
|
||||
|
||||
if 0 <= distance_in_minutes <= 1:
|
||||
if not include_seconds:
|
||||
if distance_in_minutes == 0:
|
||||
return less_than_x_minutes(1)
|
||||
else:
|
||||
return x_minutes(distance_in_minutes)
|
||||
else:
|
||||
if 0 <= distance_in_seconds <= 4:
|
||||
return less_than_x_seconds(5)
|
||||
elif 5 <= distance_in_seconds <= 9:
|
||||
return less_than_x_seconds(10)
|
||||
elif 10 <= distance_in_seconds <= 19:
|
||||
return less_than_x_seconds(20)
|
||||
elif 20 <= distance_in_seconds <= 39:
|
||||
return half_a_minute
|
||||
elif 40 <= distance_in_seconds <= 59:
|
||||
return less_than_x_minutes(1)
|
||||
else:
|
||||
return x_minutes(1)
|
||||
elif 2 <= distance_in_minutes <= 44:
|
||||
return x_minutes(distance_in_minutes)
|
||||
elif 45 <= distance_in_minutes <= 89:
|
||||
return about_x_hours(1)
|
||||
elif 90 <= distance_in_minutes <= 1439:
|
||||
return about_x_hours(int(round(float(distance_in_minutes) / 60.0)))
|
||||
elif 1440 <= distance_in_minutes <= 2519:
|
||||
return x_days(1)
|
||||
elif 2520 <= distance_in_minutes <= 43199:
|
||||
return x_days(int(round(float(distance_in_minutes) / 1440.0)))
|
||||
elif 43200 <= distance_in_minutes <= 86399:
|
||||
return about_x_months(1)
|
||||
elif 86400 <= distance_in_minutes <= 525599:
|
||||
return x_months(int(round(float(distance_in_minutes) / 43200.0)))
|
||||
else:
|
||||
fyear = from_time.year
|
||||
if from_time.month >= 3:
|
||||
fyear += 1
|
||||
tyear = to_time.year
|
||||
if to_time.month < 3:
|
||||
tyear -= 1
|
||||
leap_years = 0 if fyear > tyear else len([x for x in range(fyear, tyear + 1) if calendar.isleap(x)])
|
||||
minute_offset_for_leap_year = leap_years * 1440
|
||||
# Discount the leap year days when calculating year distance.
|
||||
# e.g. if there are 20 leap year days between 2 dates having the same day
|
||||
# and month then the based on 365 days calculation
|
||||
# the distance in years will come out to over 80 years when in written
|
||||
# english it would read better as about 80 years.
|
||||
minutes_with_offset = distance_in_minutes - minute_offset_for_leap_year
|
||||
remainder = (minutes_with_offset % 525600)
|
||||
distance_in_years = (minutes_with_offset / 525600)
|
||||
if remainder < 131400:
|
||||
return about_x_years(distance_in_years)
|
||||
elif remainder < 394200:
|
||||
return over_x_years(distance_in_years)
|
||||
else:
|
||||
return almost_x_years(distance_in_years + 1)
|
||||
7
lms/static/coffee/src/backbone_discussion/content.coffee
Normal file
7
lms/static/coffee/src/backbone_discussion/content.coffee
Normal file
@@ -0,0 +1,7 @@
|
||||
$ ->
|
||||
class Content extends Backbone.Model
|
||||
|
||||
class Thread extends Content
|
||||
|
||||
window.Content = Content
|
||||
window.Thread = Thread
|
||||
31
lms/static/coffee/src/backbone_discussion/discussion.coffee
Normal file
31
lms/static/coffee/src/backbone_discussion/discussion.coffee
Normal file
@@ -0,0 +1,31 @@
|
||||
$ ->
|
||||
|
||||
class Discussion extends Backbone.Collection
|
||||
model: Thread
|
||||
initialize: ->
|
||||
this.bind "add", (item) =>
|
||||
item.collection = this
|
||||
|
||||
class DiscussionModuleView extends Backbone.View
|
||||
|
||||
class DiscussionView extends Backbone.View
|
||||
|
||||
$: (selector) ->
|
||||
@$local.find(selector)
|
||||
|
||||
initialize: ->
|
||||
@$local = @$el.children(".local")
|
||||
|
||||
events:
|
||||
"submit .search-wrapper>.discussion-search-form": "search"
|
||||
"click .discussion-search-link": "search"
|
||||
"click .discussion-sort-link": "sort"
|
||||
"click .discussion-paginator>.discussion-page-link": "page"
|
||||
|
||||
$(".discussion-module").each (index, elem) ->
|
||||
view = new DiscussionModuleView(el: elem)
|
||||
|
||||
$("section.discussion").each (index, elem) ->
|
||||
discussionData = DiscussionUtil.getDiscussionData(elem)
|
||||
discussion = new Discussion(discussionData)
|
||||
view = new DiscussionView(el: elem, model: discussion)
|
||||
7
lms/static/coffee/src/backbone_discussion/utils.coffee
Normal file
7
lms/static/coffee/src/backbone_discussion/utils.coffee
Normal file
@@ -0,0 +1,7 @@
|
||||
class @DiscussionUtil
|
||||
@getDiscussionData: (id) ->
|
||||
if id instanceof $
|
||||
id = id.attr("_id")
|
||||
else if typeof id == "object"
|
||||
id = $(id).attr("_id")
|
||||
return $$discussion_data[id]
|
||||
@@ -1,7 +1,411 @@
|
||||
$ ->
|
||||
class Content extends Backbone.Model
|
||||
if not @Discussion?
|
||||
@Discussion = {}
|
||||
|
||||
class Thread extends Content
|
||||
Discussion = @Discussion
|
||||
|
||||
window.Content = Content
|
||||
window.Thread = Thread
|
||||
initializeVote = (content) ->
|
||||
$content = $(content)
|
||||
$local = Discussion.generateLocal($content.children(".discussion-content"))
|
||||
id = $content.attr("_id")
|
||||
if Discussion.isUpvoted id
|
||||
$local(".discussion-vote-up").addClass("voted")
|
||||
else if Discussion.isDownvoted id
|
||||
$local(".discussion-vote-down").addClass("voted")
|
||||
|
||||
initializeFollowThread = (thread) ->
|
||||
$thread = $(thread)
|
||||
id = $thread.attr("_id")
|
||||
$thread.children(".discussion-content")
|
||||
.find(".follow-wrapper")
|
||||
.append(Discussion.subscriptionLink('thread', id))
|
||||
|
||||
@Discussion = $.extend @Discussion,
|
||||
|
||||
bindContentEvents: (content) ->
|
||||
|
||||
$content = $(content)
|
||||
$discussionContent = $content.children(".discussion-content")
|
||||
$local = Discussion.generateLocal($discussionContent)
|
||||
|
||||
id = $content.attr("_id")
|
||||
|
||||
handleReply = (elem) ->
|
||||
$replyView = $local(".discussion-reply-new")
|
||||
if $replyView.length
|
||||
$replyView.show()
|
||||
else
|
||||
thread_id = $discussionContent.parents(".thread").attr("_id")
|
||||
view =
|
||||
id: id
|
||||
showWatchCheckbox: not Discussion.isSubscribed(thread_id, "thread")
|
||||
$discussionContent.append Mustache.render Discussion.replyTemplate, view
|
||||
Discussion.makeWmdEditor $content, $local, "reply-body"
|
||||
$local(".discussion-submit-post").click -> handleSubmitReply(this)
|
||||
$local(".discussion-cancel-post").click -> handleCancelReply(this)
|
||||
$local(".discussion-reply").hide()
|
||||
$local(".discussion-edit").hide()
|
||||
|
||||
handleCancelReply = (elem) ->
|
||||
$replyView = $local(".discussion-reply-new")
|
||||
if $replyView.length
|
||||
$replyView.hide()
|
||||
$local(".discussion-reply").show()
|
||||
$local(".discussion-edit").show()
|
||||
|
||||
handleSubmitReply = (elem) ->
|
||||
if $content.hasClass("thread")
|
||||
url = Discussion.urlFor('create_comment', id)
|
||||
else if $content.hasClass("comment")
|
||||
url = Discussion.urlFor('create_sub_comment', id)
|
||||
else
|
||||
return
|
||||
|
||||
body = Discussion.getWmdContent $content, $local, "reply-body"
|
||||
|
||||
anonymous = false || $local(".discussion-post-anonymously").is(":checked")
|
||||
autowatch = false || $local(".discussion-auto-watch").is(":checked")
|
||||
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: 'json'
|
||||
data:
|
||||
body: body
|
||||
anonymous: anonymous
|
||||
autowatch: autowatch
|
||||
error: Discussion.formErrorHandler($local(".discussion-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".discussion-errors"))
|
||||
$comment = $(response.html)
|
||||
$content.children(".comments").prepend($comment)
|
||||
Discussion.setWmdContent $content, $local, "reply-body", ""
|
||||
Discussion.setContentInfo response.content['id'], 'can_reply', true
|
||||
Discussion.setContentInfo response.content['id'], 'editable', true
|
||||
Discussion.extendContentInfo response.content['id'], response['annotated_content_info']
|
||||
Discussion.initializeContent($comment)
|
||||
Discussion.bindContentEvents($comment)
|
||||
$local(".discussion-reply-new").hide()
|
||||
$local(".discussion-reply").show()
|
||||
$local(".discussion-edit").show()
|
||||
$discussionContent.attr("status", "normal")
|
||||
|
||||
handleVote = (elem, value) ->
|
||||
contentType = if $content.hasClass("thread") then "thread" else "comment"
|
||||
url = Discussion.urlFor("#{value}vote_#{contentType}", id)
|
||||
Discussion.safeAjax
|
||||
$elem: $local(".discussion-vote")
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$local(".discussion-vote").removeClass("voted")
|
||||
$local(".discussion-vote-#{value}").addClass("voted")
|
||||
$local(".discussion-votes-point").html response.votes.point
|
||||
|
||||
handleUnvote = (elem, value) ->
|
||||
contentType = if $content.hasClass("thread") then "thread" else "comment"
|
||||
url = Discussion.urlFor("undo_vote_for_#{contentType}", id)
|
||||
Discussion.safeAjax
|
||||
$elem: $local(".discussion-vote")
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$local(".discussion-vote").removeClass("voted")
|
||||
$local(".discussion-votes-point").html response.votes.point
|
||||
|
||||
handleCancelEdit = (elem) ->
|
||||
$local(".discussion-content-edit").hide()
|
||||
$local(".discussion-content-wrapper").show()
|
||||
|
||||
handleEditThread = (elem) ->
|
||||
$local(".discussion-content-wrapper").hide()
|
||||
$editView = $local(".discussion-content-edit")
|
||||
if $editView.length
|
||||
$editView.show()
|
||||
else
|
||||
view = {
|
||||
id: id
|
||||
title: $local(".thread-raw-title").html()
|
||||
body: $local(".thread-raw-body").html()
|
||||
tags: $local(".thread-raw-tags").html()
|
||||
}
|
||||
$discussionContent.append Mustache.render Discussion.editThreadTemplate, view
|
||||
Discussion.makeWmdEditor $content, $local, "thread-body-edit"
|
||||
$local(".thread-tags-edit").tagsInput Discussion.tagsInputOptions()
|
||||
$local(".discussion-submit-update").unbind("click").click -> handleSubmitEditThread(this)
|
||||
$local(".discussion-cancel-update").unbind("click").click -> handleCancelEdit(this)
|
||||
|
||||
handleSubmitEditThread = (elem) ->
|
||||
url = Discussion.urlFor('update_thread', id)
|
||||
title = $local(".thread-title-edit").val()
|
||||
body = Discussion.getWmdContent $content, $local, "thread-body-edit"
|
||||
tags = $local(".thread-tags-edit").val()
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: 'json'
|
||||
data: {title: title, body: body, tags: tags},
|
||||
error: Discussion.formErrorHandler($local(".discussion-update-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".discussion-update-errors"))
|
||||
$discussionContent.replaceWith(response.html)
|
||||
Discussion.extendContentInfo response.content['id'], response['annotated_content_info']
|
||||
Discussion.initializeContent($content)
|
||||
Discussion.bindContentEvents($content)
|
||||
|
||||
handleEditComment = (elem) ->
|
||||
$local(".discussion-content-wrapper").hide()
|
||||
$editView = $local(".discussion-content-edit")
|
||||
if $editView.length
|
||||
$editView.show()
|
||||
else
|
||||
view = { id: id, body: $local(".comment-raw-body").html() }
|
||||
$discussionContent.append Mustache.render Discussion.editCommentTemplate, view
|
||||
Discussion.makeWmdEditor $content, $local, "comment-body-edit"
|
||||
$local(".discussion-submit-update").unbind("click").click -> handleSubmitEditComment(this)
|
||||
$local(".discussion-cancel-update").unbind("click").click -> handleCancelEdit(this)
|
||||
|
||||
handleSubmitEditComment= (elem) ->
|
||||
url = Discussion.urlFor('update_comment', id)
|
||||
body = Discussion.getWmdContent $content, $local, "comment-body-edit"
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {body: body}
|
||||
error: Discussion.formErrorHandler($local(".discussion-update-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".discussion-update-errors"))
|
||||
$discussionContent.replaceWith(response.html)
|
||||
Discussion.extendContentInfo response.content['id'], response['annotated_content_info']
|
||||
Discussion.initializeContent($content)
|
||||
Discussion.bindContentEvents($content)
|
||||
|
||||
handleEndorse = (elem, endorsed) ->
|
||||
url = Discussion.urlFor('endorse_comment', id)
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {endorsed: endorsed}
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
if endorsed
|
||||
$(content).addClass("endorsed")
|
||||
else
|
||||
$(content).removeClass("endorsed")
|
||||
|
||||
$(elem).unbind('click').click ->
|
||||
handleEndorse(elem, !endorsed)
|
||||
|
||||
handleOpenClose = (elem, text) ->
|
||||
url = Discussion.urlFor('openclose_thread', id)
|
||||
closed = undefined
|
||||
if text.match(/Close/)
|
||||
closed = true
|
||||
else if text.match(/[Oo]pen/)
|
||||
closed = false
|
||||
else
|
||||
console.log "Unexpected text " + text + "for open/close thread."
|
||||
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {closed: closed}
|
||||
success: (response, textStatus) =>
|
||||
if textStatus == "success"
|
||||
if closed
|
||||
$(content).addClass("closed")
|
||||
$(elem).text "Re-open Thread"
|
||||
else
|
||||
$(content).removeClass("closed")
|
||||
$(elem).text "Close Thread"
|
||||
error: (response, textStatus, e) ->
|
||||
console.log e
|
||||
|
||||
handleDelete = (elem) ->
|
||||
if $content.hasClass("thread")
|
||||
url = Discussion.urlFor('delete_thread', id)
|
||||
c = confirm "Are you sure to delete thread \"" + $content.find("a.thread-title").text() + "\"?"
|
||||
else
|
||||
url = Discussion.urlFor('delete_comment', id)
|
||||
c = confirm "Are you sure to delete this comment? "
|
||||
if c != true
|
||||
return
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {}
|
||||
success: (response, textStatus) =>
|
||||
if textStatus == "success"
|
||||
$(content).remove()
|
||||
error: (response, textStatus, e) ->
|
||||
console.log e
|
||||
|
||||
handleHideSingleThread = (elem) ->
|
||||
$threadTitle = $local(".thread-title")
|
||||
$hideComments = $local(".discussion-hide-comments")
|
||||
$hideComments.removeClass("discussion-hide-comments")
|
||||
.addClass("discussion-show-comments")
|
||||
$content.children(".comments").hide()
|
||||
$threadTitle.unbind('click').click handleShowSingleThread
|
||||
$hideComments.unbind('click').click handleShowSingleThread
|
||||
prevHtml = $hideComments.html()
|
||||
$hideComments.html prevHtml.replace "Hide", "Show"
|
||||
|
||||
handleShowSingleThread = ->
|
||||
$threadTitle = $local(".thread-title")
|
||||
$showComments = $local(".discussion-show-comments")
|
||||
|
||||
if not $showComments.hasClass("first-time") and (not $showComments.length or not $threadTitle.length)
|
||||
return
|
||||
|
||||
rebindHideEvents = ->
|
||||
$threadTitle.unbind('click').click handleHideSingleThread
|
||||
$showComments.unbind('click').click handleHideSingleThread
|
||||
$showComments.removeClass("discussion-show-comments")
|
||||
.addClass("discussion-hide-comments")
|
||||
prevHtml = $showComments.html()
|
||||
$showComments.html prevHtml.replace "Show", "Hide"
|
||||
|
||||
|
||||
if not $showComments.hasClass("first-time") and $content.children(".comments").length
|
||||
$content.children(".comments").show()
|
||||
rebindHideEvents()
|
||||
else
|
||||
discussion_id = $threadTitle.parents(".discussion").attr("_id")
|
||||
url = Discussion.urlFor('retrieve_single_thread', discussion_id, id)
|
||||
Discussion.safeAjax
|
||||
$elem: $.merge($threadTitle, $showComments)
|
||||
url: url
|
||||
type: "GET"
|
||||
dataType: 'json'
|
||||
success: (response, textStatus) ->
|
||||
Discussion.bulkExtendContentInfo response['annotated_content_info']
|
||||
$content.append(response['html'])
|
||||
$content.find(".comment").each (index, comment) ->
|
||||
Discussion.initializeContent(comment)
|
||||
Discussion.bindContentEvents(comment)
|
||||
$showComments.removeClass("first-time")
|
||||
rebindHideEvents()
|
||||
|
||||
Discussion.bindLocalEvents $local,
|
||||
|
||||
"click .thread-title": ->
|
||||
handleShowSingleThread(this)
|
||||
|
||||
"click .discussion-show-comments": ->
|
||||
handleShowSingleThread(this)
|
||||
|
||||
"click .discussion-hide-comments": ->
|
||||
handleHideSingleThread(this)
|
||||
|
||||
"click .discussion-reply-thread": ->
|
||||
handleShowSingleThread($local(".thread-title"))
|
||||
handleReply(this)
|
||||
|
||||
"click .discussion-reply-comment": ->
|
||||
handleReply(this)
|
||||
|
||||
"click .discussion-cancel-reply": ->
|
||||
handleCancelReply(this)
|
||||
|
||||
"click .discussion-vote-up": ->
|
||||
$elem = $(this)
|
||||
if $elem.hasClass("voted")
|
||||
handleUnvote($elem)
|
||||
else
|
||||
handleVote($elem, "up")
|
||||
|
||||
"click .discussion-vote-down": ->
|
||||
$elem = $(this)
|
||||
if $elem.hasClass("voted")
|
||||
handleUnvote($elem)
|
||||
else
|
||||
handleVote($elem, "down")
|
||||
|
||||
"click .admin-endorse": ->
|
||||
handleEndorse(this, not $content.hasClass("endorsed"))
|
||||
|
||||
"click .admin-openclose": ->
|
||||
handleOpenClose(this, $(this).text())
|
||||
|
||||
"click .admin-edit": ->
|
||||
if $content.hasClass("thread")
|
||||
handleEditThread(this)
|
||||
else
|
||||
handleEditComment(this)
|
||||
|
||||
"click .admin-delete": ->
|
||||
handleDelete(this)
|
||||
|
||||
initializeContent: (content) ->
|
||||
|
||||
unescapeHighlightTag = (text) ->
|
||||
text.replace(/\<\;highlight\>\;/g, "<span class='search-highlight'>")
|
||||
.replace(/\<\;\/highlight\>\;/g, "</span>")
|
||||
|
||||
stripHighlight = (text, type) ->
|
||||
text.replace(/\&(amp\;)?lt\;highlight\&(amp\;)?gt\;/g, "")
|
||||
.replace(/\&(amp\;)?lt\;\/highlight\&(amp\;)?gt\;/g, "")
|
||||
|
||||
|
||||
stripLatexHighlight = (text) ->
|
||||
Discussion.processEachMathAndCode text, stripHighlight
|
||||
|
||||
markdownWithHighlight = (text) ->
|
||||
converter = Markdown.getMathCompatibleConverter()
|
||||
unescapeHighlightTag stripLatexHighlight converter.makeHtml text
|
||||
|
||||
$content = $(content)
|
||||
initializeVote $content
|
||||
if $content.hasClass("thread")
|
||||
initializeFollowThread $content
|
||||
$local = Discussion.generateLocal($content.children(".discussion-content"))
|
||||
|
||||
$local("span.timeago").timeago()
|
||||
|
||||
$contentTitle = $local(".thread-title")
|
||||
|
||||
if $contentTitle.length
|
||||
$contentTitle.html unescapeHighlightTag stripLatexHighlight $contentTitle.html()
|
||||
|
||||
$contentBody = $local(".content-body")
|
||||
|
||||
$contentBody.html Discussion.postMathJaxProcessor markdownWithHighlight $contentBody.html()
|
||||
|
||||
MathJax.Hub.Queue ["Typeset", MathJax.Hub, $contentBody.attr("id")]
|
||||
id = $content.attr("_id")
|
||||
|
||||
if $content.hasClass("thread")
|
||||
discussion_id = $content.attr("_discussion_id")
|
||||
permalink = Discussion.urlFor("permanent_link_thread", discussion_id, id)
|
||||
else
|
||||
thread_id = $content.parents(".thread").attr("_id")
|
||||
discussion_id = $content.parents(".thread").attr("_discussion_id")
|
||||
permalink = Discussion.urlFor("permanent_link_comment", discussion_id, thread_id, id)
|
||||
$local(".discussion-permanent-link").attr "href", permalink
|
||||
|
||||
if not Discussion.getContentInfo id, 'editable'
|
||||
$local(".admin-edit").remove()
|
||||
if not Discussion.getContentInfo id, 'can_reply'
|
||||
$local(".discussion-reply").remove()
|
||||
if not Discussion.getContentInfo id, 'can_endorse'
|
||||
$local(".admin-endorse").remove()
|
||||
if not Discussion.getContentInfo id, 'can_delete'
|
||||
$local(".admin-delete").remove()
|
||||
if not Discussion.getContentInfo id, 'can_openclose'
|
||||
$local(".admin-openclose").remove()
|
||||
#if not Discussion.getContentInfo id, 'can_vote'
|
||||
# $local(".discussion-vote").css "visibility", "hidden"
|
||||
|
||||
@@ -1,31 +1,190 @@
|
||||
$ ->
|
||||
|
||||
class Discussion extends Backbone.Collection
|
||||
model: Thread
|
||||
initialize: ->
|
||||
this.bind "add", (item) =>
|
||||
item.collection = this
|
||||
if not @Discussion?
|
||||
@Discussion = {}
|
||||
|
||||
class DiscussionModuleView extends Backbone.View
|
||||
Discussion = @Discussion
|
||||
|
||||
class DiscussionView extends Backbone.View
|
||||
initializeFollowDiscussion = (discussion) ->
|
||||
$discussion = $(discussion)
|
||||
id = $following.attr("_id")
|
||||
$local = Discussion.generateLocal()
|
||||
$discussion.children(".discussion-non-content")
|
||||
.find(".discussion-title-wrapper")
|
||||
.append(Discussion.subscriptionLink('discussion', id))
|
||||
|
||||
$: (selector) ->
|
||||
@$local.find(selector)
|
||||
@Discussion = $.extend @Discussion,
|
||||
|
||||
initialize: ->
|
||||
@$local = @$el.children(".local")
|
||||
initializeDiscussion: (discussion) ->
|
||||
$discussion = $(discussion)
|
||||
$discussion.find(".thread").each (index, thread) ->
|
||||
Discussion.initializeContent(thread)
|
||||
Discussion.bindContentEvents(thread)
|
||||
$discussion.find(".comment").each (index, comment) ->
|
||||
Discussion.initializeContent(comment)
|
||||
Discussion.bindContentEvents(comment)
|
||||
|
||||
events:
|
||||
"submit .search-wrapper>.discussion-search-form": "search"
|
||||
"click .discussion-search-link": "search"
|
||||
"click .discussion-sort-link": "sort"
|
||||
"click .discussion-paginator>.discussion-page-link": "page"
|
||||
|
||||
$(".discussion-module").each (index, elem) ->
|
||||
view = new DiscussionModuleView(el: elem)
|
||||
#initializeFollowDiscussion(discussion) TODO move this somewhere else
|
||||
|
||||
$("section.discussion").each (index, elem) ->
|
||||
discussionData = DiscussionUtil.getDiscussionData(elem)
|
||||
discussion = new Discussion(discussionData)
|
||||
view = new DiscussionView(el: elem, model: discussion)
|
||||
bindDiscussionEvents: (discussion) ->
|
||||
|
||||
$discussion = $(discussion)
|
||||
$discussionNonContent = $discussion.children(".discussion-non-content")
|
||||
$local = Discussion.generateLocal($discussion.children(".discussion-local"))
|
||||
|
||||
id = $discussion.attr("_id")
|
||||
|
||||
handleSubmitNewPost = (elem) ->
|
||||
title = $local(".new-post-title").val()
|
||||
body = Discussion.getWmdContent $discussion, $local, "new-post-body"
|
||||
tags = $local(".new-post-tags").val()
|
||||
url = Discussion.urlFor('create_thread', id)
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: 'json'
|
||||
data:
|
||||
title: title
|
||||
body: body
|
||||
tags: tags
|
||||
error: Discussion.formErrorHandler($local(".new-post-form-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".new-post-form-errors"))
|
||||
$thread = $(response.html)
|
||||
$discussion.children(".threads").prepend($thread)
|
||||
$local(".new-post-title").val("")
|
||||
Discussion.setWmdContent $discussion, $local, "new-post-body", ""
|
||||
$local(".new-post-tags").val("")
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
$local(".new-post-form").addClass("collapsed")
|
||||
else if $discussion.hasClass("forum-discussion")
|
||||
$local(".new-post-form").hide()
|
||||
|
||||
handleCancelNewPost = (elem) ->
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
$local(".new-post-form").addClass("collapsed")
|
||||
else if $discussion.hasClass("forum-discussion")
|
||||
$local(".new-post-form").hide()
|
||||
|
||||
handleSimilarPost = (elem) ->
|
||||
$title = $local(".new-post-title")
|
||||
$wrapper = $local(".new-post-similar-posts-wrapper")
|
||||
$similarPosts = $local(".new-post-similar-posts")
|
||||
prevText = $title.attr("prev-text")
|
||||
text = $title.val()
|
||||
if text == prevText
|
||||
if $local(".similar-post").length
|
||||
$wrapper.show()
|
||||
else if $.trim(text).length
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: Discussion.urlFor 'search_similar_threads', id
|
||||
type: "GET"
|
||||
dateType: 'json'
|
||||
data:
|
||||
text: $local(".new-post-title").val()
|
||||
success: (response, textStatus) ->
|
||||
$similarPosts.empty()
|
||||
console.log response
|
||||
if $.type(response) == "array" and response.length
|
||||
$wrapper.show()
|
||||
for thread in response
|
||||
#singleThreadUrl = Discussion.urlFor 'retrieve_single_thread
|
||||
$similarPost = $("<a>").addClass("similar-post")
|
||||
.html(thread["title"])
|
||||
.attr("href", "javascript:void(0)") #TODO
|
||||
.appendTo($similarPosts)
|
||||
else
|
||||
$wrapper.hide()
|
||||
else
|
||||
$wrapper.hide()
|
||||
$title.attr("prev-text", text)
|
||||
|
||||
initializeNewPost = ->
|
||||
view = { discussion_id: id }
|
||||
$discussionNonContent = $discussion.children(".discussion-non-content")
|
||||
|
||||
if not $local(".wmd-panel").length
|
||||
$discussionNonContent.append Mustache.render Discussion.newPostTemplate, view
|
||||
$newPostBody = $local(".new-post-body")
|
||||
Discussion.makeWmdEditor $discussion, $local, "new-post-body"
|
||||
|
||||
$input = Discussion.getWmdInput($discussion, $local, "new-post-body")
|
||||
$input.attr("placeholder", "post a new topic...")
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
$input.bind 'focus', (e) ->
|
||||
$local(".new-post-form").removeClass('collapsed')
|
||||
else if $discussion.hasClass("forum-discussion")
|
||||
$local(".new-post-form").removeClass('collapsed')
|
||||
|
||||
$local(".new-post-tags").tagsInput Discussion.tagsInputOptions()
|
||||
|
||||
$local(".new-post-title").blur ->
|
||||
handleSimilarPost(this)
|
||||
|
||||
$local(".hide-similar-posts").click ->
|
||||
$local(".new-post-similar-posts-wrapper").hide()
|
||||
|
||||
$local(".discussion-submit-post").click ->
|
||||
handleSubmitNewPost(this)
|
||||
$local(".discussion-cancel-post").click ->
|
||||
handleCancelNewPost(this)
|
||||
|
||||
$local(".new-post-form").show()
|
||||
|
||||
handleAjaxReloadDiscussion = (elem, url) ->
|
||||
if not url then return
|
||||
$elem = $(elem)
|
||||
$discussion = $elem.parents("section.discussion")
|
||||
Discussion.safeAjax
|
||||
$elem: $elem
|
||||
url: url
|
||||
type: "GET"
|
||||
dataType: 'html'
|
||||
success: (data, textStatus) ->
|
||||
$data = $(data)
|
||||
$parent = $discussion.parent()
|
||||
$discussion.replaceWith($data)
|
||||
$discussion = $parent.children(".discussion")
|
||||
Discussion.initializeDiscussion($discussion)
|
||||
Discussion.bindDiscussionEvents($discussion)
|
||||
|
||||
handleAjaxSearch = (elem) ->
|
||||
$elem = $(elem)
|
||||
url = URI($elem.attr("action")).addSearch({text: $local(".search-input").val()})
|
||||
handleAjaxReloadDiscussion($elem, url)
|
||||
|
||||
handleAjaxSort = (elem) ->
|
||||
$elem = $(elem)
|
||||
url = $elem.attr("sort-url")
|
||||
handleAjaxReloadDiscussion($elem, url)
|
||||
|
||||
handleAjaxPage = (elem) ->
|
||||
$elem = $(elem)
|
||||
url = $elem.attr("page-url")
|
||||
handleAjaxReloadDiscussion($elem, url)
|
||||
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
initializeNewPost()
|
||||
|
||||
if $discussion.hasClass("forum-discussion")
|
||||
$discussionSidebar = $(".discussion-sidebar")
|
||||
if $discussionSidebar.length
|
||||
$sidebarLocal = Discussion.generateLocal($discussionSidebar)
|
||||
Discussion.bindLocalEvents $sidebarLocal,
|
||||
"click .sidebar-new-post-button": (event) ->
|
||||
initializeNewPost()
|
||||
|
||||
Discussion.bindLocalEvents $local,
|
||||
|
||||
"submit .search-wrapper>.discussion-search-form": (event) ->
|
||||
event.preventDefault()
|
||||
handleAjaxSearch(this)
|
||||
|
||||
"click .discussion-search-link": ->
|
||||
handleAjaxSearch($local(".search-wrapper>.discussion-search-form"))
|
||||
|
||||
"click .discussion-sort-link": ->
|
||||
handleAjaxSort(this)
|
||||
|
||||
$discussion.children(".discussion-paginator").find(".discussion-page-link").unbind('click').click ->
|
||||
handleAjaxPage(this)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
$ ->
|
||||
|
||||
#toggle = ->
|
||||
# $('.course-wrapper').toggleClass('closed')
|
||||
|
||||
#Discussion = window.Discussion
|
||||
#if $('#accordion').length
|
||||
# active = $('#accordion ul:has(li.active)').index('#accordion ul')
|
||||
# $('#accordion').bind('accordionchange', @log).accordion
|
||||
# active: if active >= 0 then active else 1
|
||||
# header: 'h3'
|
||||
# autoHeight: false
|
||||
# $('#open_close_accordion a').click toggle
|
||||
# $('#accordion').show()
|
||||
|
||||
#$(".discussion-module").each (index, elem) ->
|
||||
# Discussion.initializeDiscussionModule(elem)
|
||||
|
||||
#$("section.discussion").each (index, discussion) ->
|
||||
# Discussion.initializeDiscussion(discussion)
|
||||
# Discussion.bindDiscussionEvents(discussion)
|
||||
|
||||
#Discussion.initializeUserProfile($(".discussion-sidebar>.user-profile"))
|
||||
|
||||
@@ -1,7 +1,244 @@
|
||||
class @DiscussionUtil
|
||||
@getDiscussionData: (id) ->
|
||||
if id instanceof $
|
||||
id = id.attr("_id")
|
||||
else if typeof id == "object"
|
||||
id = $(id).attr("_id")
|
||||
return $$discussion_data[id]
|
||||
if not @Discussion?
|
||||
@Discussion = {}
|
||||
|
||||
Discussion = @Discussion
|
||||
|
||||
wmdEditors = {}
|
||||
|
||||
@Discussion = $.extend @Discussion,
|
||||
|
||||
generateLocal: (elem) ->
|
||||
(selector) -> $(elem).find(selector)
|
||||
|
||||
generateDiscussionLink: (cls, txt, handler) ->
|
||||
$("<a>").addClass("discussion-link")
|
||||
.attr("href", "javascript:void(0)")
|
||||
.addClass(cls).html(txt)
|
||||
.click -> handler(this)
|
||||
|
||||
urlFor: (name, param, param1, param2) ->
|
||||
{
|
||||
follow_discussion : "/courses/#{$$course_id}/discussion/#{param}/follow"
|
||||
unfollow_discussion : "/courses/#{$$course_id}/discussion/#{param}/unfollow"
|
||||
create_thread : "/courses/#{$$course_id}/discussion/#{param}/threads/create"
|
||||
search_similar_threads : "/courses/#{$$course_id}/discussion/#{param}/threads/search_similar"
|
||||
update_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/update"
|
||||
create_comment : "/courses/#{$$course_id}/discussion/threads/#{param}/reply"
|
||||
delete_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/delete"
|
||||
upvote_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/upvote"
|
||||
downvote_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/downvote"
|
||||
undo_vote_for_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/unvote"
|
||||
follow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/follow"
|
||||
unfollow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/unfollow"
|
||||
update_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/update"
|
||||
endorse_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/endorse"
|
||||
create_sub_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/reply"
|
||||
delete_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/delete"
|
||||
upvote_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/upvote"
|
||||
downvote_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/downvote"
|
||||
undo_vote_for_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/unvote"
|
||||
upload : "/courses/#{$$course_id}/discussion/upload"
|
||||
search : "/courses/#{$$course_id}/discussion/forum/search"
|
||||
tags_autocomplete : "/courses/#{$$course_id}/discussion/threads/tags/autocomplete"
|
||||
retrieve_discussion : "/courses/#{$$course_id}/discussion/forum/#{param}/inline"
|
||||
retrieve_single_thread : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}"
|
||||
update_moderator_status : "/courses/#{$$course_id}/discussion/users/#{param}/update_moderator_status"
|
||||
openclose_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/close"
|
||||
permanent_link_thread : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}"
|
||||
permanent_link_comment : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}##{param2}"
|
||||
}[name]
|
||||
|
||||
safeAjax: (params) ->
|
||||
$elem = params.$elem
|
||||
if $elem.attr("disabled")
|
||||
return
|
||||
$elem.attr("disabled", "disabled")
|
||||
$.ajax(params).always ->
|
||||
$elem.removeAttr("disabled")
|
||||
|
||||
handleAnchorAndReload: (response) ->
|
||||
#window.location = window.location.pathname + "#" + response['id']
|
||||
window.location.reload()
|
||||
|
||||
bindLocalEvents: ($local, eventsHandler) ->
|
||||
for eventSelector, handler of eventsHandler
|
||||
[event, selector] = eventSelector.split(' ')
|
||||
$local(selector).unbind(event)[event] handler
|
||||
|
||||
tagsInputOptions: ->
|
||||
autocomplete_url: Discussion.urlFor('tags_autocomplete')
|
||||
autocomplete:
|
||||
remoteDataType: 'json'
|
||||
interactive: true
|
||||
height: '30px'
|
||||
width: '100%'
|
||||
defaultText: "Tag your post: press enter after each tag"
|
||||
removeWithBackspace: true
|
||||
|
||||
isSubscribed: (id, type) ->
|
||||
$$user_info? and (
|
||||
if type == "thread"
|
||||
id in $$user_info.subscribed_thread_ids
|
||||
else if type == "commentable" or type == "discussion"
|
||||
id in $$user_info.subscribed_commentable_ids
|
||||
else
|
||||
id in $$user_info.subscribed_user_ids
|
||||
)
|
||||
|
||||
isUpvoted: (id) ->
|
||||
$$user_info? and (id in $$user_info.upvoted_ids)
|
||||
|
||||
isDownvoted: (id) ->
|
||||
$$user_info? and (id in $$user_info.downvoted_ids)
|
||||
|
||||
formErrorHandler: (errorsField) ->
|
||||
(xhr, textStatus, error) ->
|
||||
response = JSON.parse(xhr.responseText)
|
||||
if response.errors? and response.errors.length > 0
|
||||
errorsField.empty()
|
||||
for error in response.errors
|
||||
errorsField.append($("<li>").addClass("new-post-form-error").html(error))
|
||||
|
||||
clearFormErrors: (errorsField) ->
|
||||
errorsField.empty()
|
||||
|
||||
postMathJaxProcessor: (text) ->
|
||||
RE_INLINEMATH = /^\$([^\$]*)\$/g
|
||||
RE_DISPLAYMATH = /^\$\$([^\$]*)\$\$/g
|
||||
Discussion.processEachMathAndCode text, (s, type) ->
|
||||
if type == 'display'
|
||||
s.replace RE_DISPLAYMATH, ($0, $1) ->
|
||||
"\\[" + $1 + "\\]"
|
||||
else if type == 'inline'
|
||||
s.replace RE_INLINEMATH, ($0, $1) ->
|
||||
"\\(" + $1 + "\\)"
|
||||
else
|
||||
s
|
||||
|
||||
makeWmdEditor: ($content, $local, cls_identifier) ->
|
||||
elem = $local(".#{cls_identifier}")
|
||||
id = $content.attr("_id")
|
||||
appended_id = "-#{cls_identifier}-#{id}"
|
||||
imageUploadUrl = Discussion.urlFor('upload')
|
||||
editor = Markdown.makeWmdEditor elem, appended_id, imageUploadUrl, Discussion.postMathJaxProcessor
|
||||
wmdEditors["#{cls_identifier}-#{id}"] = editor
|
||||
editor
|
||||
|
||||
getWmdEditor: ($content, $local, cls_identifier) ->
|
||||
id = $content.attr("_id")
|
||||
wmdEditors["#{cls_identifier}-#{id}"]
|
||||
|
||||
getWmdInput: ($content, $local, cls_identifier) ->
|
||||
id = $content.attr("_id")
|
||||
$local("#wmd-input-#{cls_identifier}-#{id}")
|
||||
|
||||
getWmdContent: ($content, $local, cls_identifier) ->
|
||||
Discussion.getWmdInput($content, $local, cls_identifier).val()
|
||||
|
||||
setWmdContent: ($content, $local, cls_identifier, text) ->
|
||||
Discussion.getWmdInput($content, $local, cls_identifier).val(text)
|
||||
Discussion.getWmdEditor($content, $local, cls_identifier).refreshPreview()
|
||||
|
||||
getContentInfo: (id, attr) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
(window.$$annotated_content_info[id] || {})[attr]
|
||||
|
||||
setContentInfo: (id, attr, value) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
window.$$annotated_content_info[id] ||= {}
|
||||
window.$$annotated_content_info[id][attr] = value
|
||||
|
||||
extendContentInfo: (id, newInfo) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
window.$$annotated_content_info[id] = newInfo
|
||||
bulkExtendContentInfo: (newInfos) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
window.$$annotated_content_info = $.extend window.$$annotated_content_info, newInfos
|
||||
|
||||
subscriptionLink: (type, id) ->
|
||||
followLink = ->
|
||||
Discussion.generateDiscussionLink("discussion-follow-#{type}", "Follow", handleFollow)
|
||||
|
||||
unfollowLink = ->
|
||||
Discussion.generateDiscussionLink("discussion-unfollow-#{type}", "Unfollow", handleUnfollow)
|
||||
|
||||
handleFollow = (elem) ->
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: Discussion.urlFor("follow_#{type}", id)
|
||||
type: "POST"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$(elem).replaceWith unfollowLink()
|
||||
dataType: 'json'
|
||||
|
||||
handleUnfollow = (elem) ->
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: Discussion.urlFor("unfollow_#{type}", id)
|
||||
type: "POST"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$(elem).replaceWith followLink()
|
||||
dataType: 'json'
|
||||
|
||||
if Discussion.isSubscribed(id, type)
|
||||
unfollowLink()
|
||||
else
|
||||
followLink()
|
||||
|
||||
processEachMathAndCode: (text, processor) ->
|
||||
|
||||
codeArchive = []
|
||||
|
||||
RE_DISPLAYMATH = /^([^\$]*?)\$\$([^\$]*?)\$\$(.*)$/m
|
||||
RE_INLINEMATH = /^([^\$]*?)\$([^\$]+?)\$(.*)$/m
|
||||
|
||||
ESCAPED_DOLLAR = '@@ESCAPED_D@@'
|
||||
ESCAPED_BACKSLASH = '@@ESCAPED_B@@'
|
||||
|
||||
processedText = ""
|
||||
|
||||
$div = $("<div>").html(text)
|
||||
|
||||
$div.find("code").each (index, code) ->
|
||||
codeArchive.push $(code).html()
|
||||
$(code).html(codeArchive.length - 1)
|
||||
|
||||
text = $div.html()
|
||||
text = text.replace /\\\$/g, ESCAPED_DOLLAR
|
||||
|
||||
while true
|
||||
if RE_INLINEMATH.test(text)
|
||||
text = text.replace RE_INLINEMATH, ($0, $1, $2, $3) ->
|
||||
processedText += $1 + processor("$" + $2 + "$", 'inline')
|
||||
$3
|
||||
else if RE_DISPLAYMATH.test(text)
|
||||
text = text.replace RE_DISPLAYMATH, ($0, $1, $2, $3) ->
|
||||
processedText += $1 + processor("$$" + $2 + "$$", 'display')
|
||||
$3
|
||||
else
|
||||
processedText += text
|
||||
break
|
||||
|
||||
text = processedText
|
||||
text = text.replace(new RegExp(ESCAPED_DOLLAR, 'g'), '\\$')
|
||||
|
||||
text = text.replace /\\\\\\\\/g, ESCAPED_BACKSLASH
|
||||
text = text.replace /\\begin\{([a-z]*\*?)\}([\s\S]*?)\\end\{\1\}/img, ($0, $1, $2) ->
|
||||
processor("\\begin{#{$1}}" + $2 + "\\end{#{$1}}")
|
||||
text = text.replace(new RegExp(ESCAPED_BACKSLASH, 'g'), '\\\\\\\\')
|
||||
|
||||
$div = $("<div>").html(text)
|
||||
cnt = 0
|
||||
$div.find("code").each (index, code) ->
|
||||
$(code).html(processor(codeArchive[cnt], 'code'))
|
||||
cnt += 1
|
||||
|
||||
text = $div.html()
|
||||
|
||||
text
|
||||
|
||||
@@ -1,409 +0,0 @@
|
||||
if not @Discussion?
|
||||
@Discussion = {}
|
||||
|
||||
Discussion = @Discussion
|
||||
|
||||
initializeVote = (content) ->
|
||||
$content = $(content)
|
||||
$local = Discussion.generateLocal($content.children(".discussion-content"))
|
||||
id = $content.attr("_id")
|
||||
if Discussion.isUpvoted id
|
||||
$local(".discussion-vote-up").addClass("voted")
|
||||
else if Discussion.isDownvoted id
|
||||
$local(".discussion-vote-down").addClass("voted")
|
||||
|
||||
initializeFollowThread = (thread) ->
|
||||
$thread = $(thread)
|
||||
id = $thread.attr("_id")
|
||||
$thread.children(".discussion-content")
|
||||
.find(".follow-wrapper")
|
||||
.append(Discussion.subscriptionLink('thread', id))
|
||||
|
||||
@Discussion = $.extend @Discussion,
|
||||
|
||||
bindContentEvents: (content) ->
|
||||
|
||||
$content = $(content)
|
||||
$discussionContent = $content.children(".discussion-content")
|
||||
$local = Discussion.generateLocal($discussionContent)
|
||||
|
||||
id = $content.attr("_id")
|
||||
|
||||
handleReply = (elem) ->
|
||||
$replyView = $local(".discussion-reply-new")
|
||||
if $replyView.length
|
||||
$replyView.show()
|
||||
else
|
||||
thread_id = $discussionContent.parents(".thread").attr("_id")
|
||||
view =
|
||||
id: id
|
||||
showWatchCheckbox: not Discussion.isSubscribed(thread_id, "thread")
|
||||
$discussionContent.append Mustache.render Discussion.replyTemplate, view
|
||||
Discussion.makeWmdEditor $content, $local, "reply-body"
|
||||
$local(".discussion-submit-post").click -> handleSubmitReply(this)
|
||||
$local(".discussion-cancel-post").click -> handleCancelReply(this)
|
||||
$local(".discussion-reply").hide()
|
||||
$local(".discussion-edit").hide()
|
||||
|
||||
handleCancelReply = (elem) ->
|
||||
$replyView = $local(".discussion-reply-new")
|
||||
if $replyView.length
|
||||
$replyView.hide()
|
||||
$local(".discussion-reply").show()
|
||||
$local(".discussion-edit").show()
|
||||
|
||||
handleSubmitReply = (elem) ->
|
||||
if $content.hasClass("thread")
|
||||
url = Discussion.urlFor('create_comment', id)
|
||||
else if $content.hasClass("comment")
|
||||
url = Discussion.urlFor('create_sub_comment', id)
|
||||
else
|
||||
return
|
||||
|
||||
body = Discussion.getWmdContent $content, $local, "reply-body"
|
||||
|
||||
anonymous = false || $local(".discussion-post-anonymously").is(":checked")
|
||||
autowatch = false || $local(".discussion-auto-watch").is(":checked")
|
||||
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: 'json'
|
||||
data:
|
||||
body: body
|
||||
anonymous: anonymous
|
||||
autowatch: autowatch
|
||||
error: Discussion.formErrorHandler($local(".discussion-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".discussion-errors"))
|
||||
$comment = $(response.html)
|
||||
$content.children(".comments").prepend($comment)
|
||||
Discussion.setWmdContent $content, $local, "reply-body", ""
|
||||
Discussion.setContentInfo response.content['id'], 'can_reply', true
|
||||
Discussion.setContentInfo response.content['id'], 'editable', true
|
||||
Discussion.extendContentInfo response.content['id'], response['annotated_content_info']
|
||||
Discussion.initializeContent($comment)
|
||||
Discussion.bindContentEvents($comment)
|
||||
$local(".discussion-reply-new").hide()
|
||||
$local(".discussion-reply").show()
|
||||
$local(".discussion-edit").show()
|
||||
$discussionContent.attr("status", "normal")
|
||||
|
||||
handleVote = (elem, value) ->
|
||||
contentType = if $content.hasClass("thread") then "thread" else "comment"
|
||||
url = Discussion.urlFor("#{value}vote_#{contentType}", id)
|
||||
Discussion.safeAjax
|
||||
$elem: $local(".discussion-vote")
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$local(".discussion-vote").removeClass("voted")
|
||||
$local(".discussion-vote-#{value}").addClass("voted")
|
||||
$local(".discussion-votes-point").html response.votes.point
|
||||
|
||||
handleUnvote = (elem, value) ->
|
||||
contentType = if $content.hasClass("thread") then "thread" else "comment"
|
||||
url = Discussion.urlFor("undo_vote_for_#{contentType}", id)
|
||||
Discussion.safeAjax
|
||||
$elem: $local(".discussion-vote")
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$local(".discussion-vote").removeClass("voted")
|
||||
$local(".discussion-votes-point").html response.votes.point
|
||||
|
||||
handleCancelEdit = (elem) ->
|
||||
$local(".discussion-content-edit").hide()
|
||||
$local(".discussion-content-wrapper").show()
|
||||
|
||||
handleEditThread = (elem) ->
|
||||
$local(".discussion-content-wrapper").hide()
|
||||
$editView = $local(".discussion-content-edit")
|
||||
if $editView.length
|
||||
$editView.show()
|
||||
else
|
||||
view = {
|
||||
id: id
|
||||
title: $local(".thread-raw-title").html()
|
||||
body: $local(".thread-raw-body").html()
|
||||
tags: $local(".thread-raw-tags").html()
|
||||
}
|
||||
$discussionContent.append Mustache.render Discussion.editThreadTemplate, view
|
||||
Discussion.makeWmdEditor $content, $local, "thread-body-edit"
|
||||
$local(".thread-tags-edit").tagsInput Discussion.tagsInputOptions()
|
||||
$local(".discussion-submit-update").unbind("click").click -> handleSubmitEditThread(this)
|
||||
$local(".discussion-cancel-update").unbind("click").click -> handleCancelEdit(this)
|
||||
|
||||
handleSubmitEditThread = (elem) ->
|
||||
url = Discussion.urlFor('update_thread', id)
|
||||
title = $local(".thread-title-edit").val()
|
||||
body = Discussion.getWmdContent $content, $local, "thread-body-edit"
|
||||
tags = $local(".thread-tags-edit").val()
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: 'json'
|
||||
data: {title: title, body: body, tags: tags},
|
||||
error: Discussion.formErrorHandler($local(".discussion-update-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".discussion-update-errors"))
|
||||
$discussionContent.replaceWith(response.html)
|
||||
Discussion.extendContentInfo response.content['id'], response['annotated_content_info']
|
||||
Discussion.initializeContent($content)
|
||||
Discussion.bindContentEvents($content)
|
||||
|
||||
handleEditComment = (elem) ->
|
||||
$local(".discussion-content-wrapper").hide()
|
||||
$editView = $local(".discussion-content-edit")
|
||||
if $editView.length
|
||||
$editView.show()
|
||||
else
|
||||
view = { id: id, body: $local(".comment-raw-body").html() }
|
||||
$discussionContent.append Mustache.render Discussion.editCommentTemplate, view
|
||||
Discussion.makeWmdEditor $content, $local, "comment-body-edit"
|
||||
$local(".discussion-submit-update").unbind("click").click -> handleSubmitEditComment(this)
|
||||
$local(".discussion-cancel-update").unbind("click").click -> handleCancelEdit(this)
|
||||
|
||||
handleSubmitEditComment= (elem) ->
|
||||
url = Discussion.urlFor('update_comment', id)
|
||||
body = Discussion.getWmdContent $content, $local, "comment-body-edit"
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {body: body}
|
||||
error: Discussion.formErrorHandler($local(".discussion-update-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".discussion-update-errors"))
|
||||
$discussionContent.replaceWith(response.html)
|
||||
Discussion.extendContentInfo response.content['id'], response['annotated_content_info']
|
||||
Discussion.initializeContent($content)
|
||||
Discussion.bindContentEvents($content)
|
||||
|
||||
handleEndorse = (elem, endorsed) ->
|
||||
url = Discussion.urlFor('endorse_comment', id)
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {endorsed: endorsed}
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
if endorsed
|
||||
$(content).addClass("endorsed")
|
||||
else
|
||||
$(content).removeClass("endorsed")
|
||||
|
||||
$(elem).unbind('click').click ->
|
||||
handleEndorse(elem, !endorsed)
|
||||
|
||||
handleOpenClose = (elem, text) ->
|
||||
url = Discussion.urlFor('openclose_thread', id)
|
||||
closed = undefined
|
||||
if text.match(/Close/)
|
||||
closed = true
|
||||
else if text.match(/[Oo]pen/)
|
||||
closed = false
|
||||
else
|
||||
console.log "Unexpected text " + text + "for open/close thread."
|
||||
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {closed: closed}
|
||||
success: (response, textStatus) =>
|
||||
if textStatus == "success"
|
||||
if closed
|
||||
$(content).addClass("closed")
|
||||
$(elem).text "Re-open Thread"
|
||||
else
|
||||
$(content).removeClass("closed")
|
||||
$(elem).text "Close Thread"
|
||||
error: (response, textStatus, e) ->
|
||||
console.log e
|
||||
|
||||
handleDelete = (elem) ->
|
||||
if $content.hasClass("thread")
|
||||
url = Discussion.urlFor('delete_thread', id)
|
||||
c = confirm "Are you sure to delete thread \"" + $content.find("a.thread-title").text() + "\"?"
|
||||
else
|
||||
url = Discussion.urlFor('delete_comment', id)
|
||||
c = confirm "Are you sure to delete this comment? "
|
||||
if c != true
|
||||
return
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: "json"
|
||||
data: {}
|
||||
success: (response, textStatus) =>
|
||||
if textStatus == "success"
|
||||
$(content).remove()
|
||||
error: (response, textStatus, e) ->
|
||||
console.log e
|
||||
|
||||
handleHideSingleThread = (elem) ->
|
||||
$threadTitle = $local(".thread-title")
|
||||
$hideComments = $local(".discussion-hide-comments")
|
||||
$hideComments.removeClass("discussion-hide-comments")
|
||||
.addClass("discussion-show-comments")
|
||||
$content.children(".comments").hide()
|
||||
$threadTitle.unbind('click').click handleShowSingleThread
|
||||
$hideComments.unbind('click').click handleShowSingleThread
|
||||
prevHtml = $hideComments.html()
|
||||
$hideComments.html prevHtml.replace "Hide", "Show"
|
||||
|
||||
handleShowSingleThread = ->
|
||||
$threadTitle = $local(".thread-title")
|
||||
$showComments = $local(".discussion-show-comments")
|
||||
|
||||
if not $showComments.hasClass("first-time") and (not $showComments.length or not $threadTitle.length)
|
||||
return
|
||||
|
||||
rebindHideEvents = ->
|
||||
$threadTitle.unbind('click').click handleHideSingleThread
|
||||
$showComments.unbind('click').click handleHideSingleThread
|
||||
$showComments.removeClass("discussion-show-comments")
|
||||
.addClass("discussion-hide-comments")
|
||||
prevHtml = $showComments.html()
|
||||
$showComments.html prevHtml.replace "Show", "Hide"
|
||||
|
||||
|
||||
if not $showComments.hasClass("first-time") and $content.children(".comments").length
|
||||
$content.children(".comments").show()
|
||||
rebindHideEvents()
|
||||
else
|
||||
discussion_id = $threadTitle.parents(".discussion").attr("_id")
|
||||
url = Discussion.urlFor('retrieve_single_thread', discussion_id, id)
|
||||
Discussion.safeAjax
|
||||
$elem: $.merge($threadTitle, $showComments)
|
||||
url: url
|
||||
type: "GET"
|
||||
dataType: 'json'
|
||||
success: (response, textStatus) ->
|
||||
Discussion.bulkExtendContentInfo response['annotated_content_info']
|
||||
$content.append(response['html'])
|
||||
$content.find(".comment").each (index, comment) ->
|
||||
Discussion.initializeContent(comment)
|
||||
Discussion.bindContentEvents(comment)
|
||||
$showComments.removeClass("first-time")
|
||||
rebindHideEvents()
|
||||
|
||||
Discussion.bindLocalEvents $local,
|
||||
|
||||
"click .thread-title": ->
|
||||
handleShowSingleThread(this)
|
||||
|
||||
"click .discussion-show-comments": ->
|
||||
handleShowSingleThread(this)
|
||||
|
||||
"click .discussion-hide-comments": ->
|
||||
handleHideSingleThread(this)
|
||||
|
||||
"click .discussion-reply-thread": ->
|
||||
handleShowSingleThread($local(".thread-title"))
|
||||
handleReply(this)
|
||||
|
||||
"click .discussion-reply-comment": ->
|
||||
handleReply(this)
|
||||
|
||||
"click .discussion-cancel-reply": ->
|
||||
handleCancelReply(this)
|
||||
|
||||
"click .discussion-vote-up": ->
|
||||
$elem = $(this)
|
||||
if $elem.hasClass("voted")
|
||||
handleUnvote($elem)
|
||||
else
|
||||
handleVote($elem, "up")
|
||||
|
||||
"click .discussion-vote-down": ->
|
||||
$elem = $(this)
|
||||
if $elem.hasClass("voted")
|
||||
handleUnvote($elem)
|
||||
else
|
||||
handleVote($elem, "down")
|
||||
|
||||
"click .admin-endorse": ->
|
||||
handleEndorse(this, not $content.hasClass("endorsed"))
|
||||
|
||||
"click .admin-openclose": ->
|
||||
handleOpenClose(this, $(this).text())
|
||||
|
||||
"click .admin-edit": ->
|
||||
if $content.hasClass("thread")
|
||||
handleEditThread(this)
|
||||
else
|
||||
handleEditComment(this)
|
||||
|
||||
"click .admin-delete": ->
|
||||
handleDelete(this)
|
||||
|
||||
initializeContent: (content) ->
|
||||
|
||||
unescapeHighlightTag = (text) ->
|
||||
text.replace(/\<\;highlight\>\;/g, "<span class='search-highlight'>")
|
||||
.replace(/\<\;\/highlight\>\;/g, "</span>")
|
||||
|
||||
stripHighlight = (text, type) ->
|
||||
text.replace(/\&(amp\;)?lt\;highlight\&(amp\;)?gt\;/g, "")
|
||||
.replace(/\&(amp\;)?lt\;\/highlight\&(amp\;)?gt\;/g, "")
|
||||
|
||||
|
||||
stripLatexHighlight = (text) ->
|
||||
Discussion.processEachMathAndCode text, stripHighlight
|
||||
|
||||
markdownWithHighlight = (text) ->
|
||||
converter = Markdown.getMathCompatibleConverter()
|
||||
unescapeHighlightTag stripLatexHighlight converter.makeHtml text
|
||||
|
||||
$content = $(content)
|
||||
initializeVote $content
|
||||
if $content.hasClass("thread")
|
||||
initializeFollowThread $content
|
||||
$local = Discussion.generateLocal($content.children(".discussion-content"))
|
||||
|
||||
$contentTitle = $local(".thread-title")
|
||||
|
||||
if $contentTitle.length
|
||||
$contentTitle.html unescapeHighlightTag stripLatexHighlight $contentTitle.html()
|
||||
|
||||
$contentBody = $local(".content-body")
|
||||
|
||||
$contentBody.html Discussion.postMathJaxProcessor markdownWithHighlight $contentBody.html()
|
||||
|
||||
MathJax.Hub.Queue ["Typeset", MathJax.Hub, $contentBody.attr("id")]
|
||||
id = $content.attr("_id")
|
||||
|
||||
if $content.hasClass("thread")
|
||||
discussion_id = $content.attr("_discussion_id")
|
||||
permalink = Discussion.urlFor("permanent_link_thread", discussion_id, id)
|
||||
else
|
||||
thread_id = $content.parents(".thread").attr("_id")
|
||||
discussion_id = $content.parents(".thread").attr("_discussion_id")
|
||||
permalink = Discussion.urlFor("permanent_link_comment", discussion_id, thread_id, id)
|
||||
$local(".discussion-permanent-link").attr "href", permalink
|
||||
|
||||
if not Discussion.getContentInfo id, 'editable'
|
||||
$local(".admin-edit").remove()
|
||||
if not Discussion.getContentInfo id, 'can_reply'
|
||||
$local(".discussion-reply").remove()
|
||||
if not Discussion.getContentInfo id, 'can_endorse'
|
||||
$local(".admin-endorse").remove()
|
||||
if not Discussion.getContentInfo id, 'can_delete'
|
||||
$local(".admin-delete").remove()
|
||||
if not Discussion.getContentInfo id, 'can_openclose'
|
||||
$local(".admin-openclose").remove()
|
||||
#if not Discussion.getContentInfo id, 'can_vote'
|
||||
# $local(".discussion-vote").css "visibility", "hidden"
|
||||
@@ -1,190 +0,0 @@
|
||||
if not @Discussion?
|
||||
@Discussion = {}
|
||||
|
||||
Discussion = @Discussion
|
||||
|
||||
initializeFollowDiscussion = (discussion) ->
|
||||
$discussion = $(discussion)
|
||||
id = $following.attr("_id")
|
||||
$local = Discussion.generateLocal()
|
||||
$discussion.children(".discussion-non-content")
|
||||
.find(".discussion-title-wrapper")
|
||||
.append(Discussion.subscriptionLink('discussion', id))
|
||||
|
||||
@Discussion = $.extend @Discussion,
|
||||
|
||||
initializeDiscussion: (discussion) ->
|
||||
$discussion = $(discussion)
|
||||
$discussion.find(".thread").each (index, thread) ->
|
||||
Discussion.initializeContent(thread)
|
||||
Discussion.bindContentEvents(thread)
|
||||
$discussion.find(".comment").each (index, comment) ->
|
||||
Discussion.initializeContent(comment)
|
||||
Discussion.bindContentEvents(comment)
|
||||
|
||||
#initializeFollowDiscussion(discussion) TODO move this somewhere else
|
||||
|
||||
bindDiscussionEvents: (discussion) ->
|
||||
|
||||
$discussion = $(discussion)
|
||||
$discussionNonContent = $discussion.children(".discussion-non-content")
|
||||
$local = Discussion.generateLocal($discussion.children(".discussion-local"))
|
||||
|
||||
id = $discussion.attr("_id")
|
||||
|
||||
handleSubmitNewPost = (elem) ->
|
||||
title = $local(".new-post-title").val()
|
||||
body = Discussion.getWmdContent $discussion, $local, "new-post-body"
|
||||
tags = $local(".new-post-tags").val()
|
||||
url = Discussion.urlFor('create_thread', id)
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: url
|
||||
type: "POST"
|
||||
dataType: 'json'
|
||||
data:
|
||||
title: title
|
||||
body: body
|
||||
tags: tags
|
||||
error: Discussion.formErrorHandler($local(".new-post-form-errors"))
|
||||
success: (response, textStatus) ->
|
||||
Discussion.clearFormErrors($local(".new-post-form-errors"))
|
||||
$thread = $(response.html)
|
||||
$discussion.children(".threads").prepend($thread)
|
||||
$local(".new-post-title").val("")
|
||||
Discussion.setWmdContent $discussion, $local, "new-post-body", ""
|
||||
$local(".new-post-tags").val("")
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
$local(".new-post-form").addClass("collapsed")
|
||||
else if $discussion.hasClass("forum-discussion")
|
||||
$local(".new-post-form").hide()
|
||||
|
||||
handleCancelNewPost = (elem) ->
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
$local(".new-post-form").addClass("collapsed")
|
||||
else if $discussion.hasClass("forum-discussion")
|
||||
$local(".new-post-form").hide()
|
||||
|
||||
handleSimilarPost = (elem) ->
|
||||
$title = $local(".new-post-title")
|
||||
$wrapper = $local(".new-post-similar-posts-wrapper")
|
||||
$similarPosts = $local(".new-post-similar-posts")
|
||||
prevText = $title.attr("prev-text")
|
||||
text = $title.val()
|
||||
if text == prevText
|
||||
if $local(".similar-post").length
|
||||
$wrapper.show()
|
||||
else if $.trim(text).length
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: Discussion.urlFor 'search_similar_threads', id
|
||||
type: "GET"
|
||||
dateType: 'json'
|
||||
data:
|
||||
text: $local(".new-post-title").val()
|
||||
success: (response, textStatus) ->
|
||||
$similarPosts.empty()
|
||||
console.log response
|
||||
if $.type(response) == "array" and response.length
|
||||
$wrapper.show()
|
||||
for thread in response
|
||||
#singleThreadUrl = Discussion.urlFor 'retrieve_single_thread
|
||||
$similarPost = $("<a>").addClass("similar-post")
|
||||
.html(thread["title"])
|
||||
.attr("href", "javascript:void(0)") #TODO
|
||||
.appendTo($similarPosts)
|
||||
else
|
||||
$wrapper.hide()
|
||||
else
|
||||
$wrapper.hide()
|
||||
$title.attr("prev-text", text)
|
||||
|
||||
initializeNewPost = ->
|
||||
view = { discussion_id: id }
|
||||
$discussionNonContent = $discussion.children(".discussion-non-content")
|
||||
|
||||
if not $local(".wmd-panel").length
|
||||
$discussionNonContent.append Mustache.render Discussion.newPostTemplate, view
|
||||
$newPostBody = $local(".new-post-body")
|
||||
Discussion.makeWmdEditor $discussion, $local, "new-post-body"
|
||||
|
||||
$input = Discussion.getWmdInput($discussion, $local, "new-post-body")
|
||||
$input.attr("placeholder", "post a new topic...")
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
$input.bind 'focus', (e) ->
|
||||
$local(".new-post-form").removeClass('collapsed')
|
||||
else if $discussion.hasClass("forum-discussion")
|
||||
$local(".new-post-form").removeClass('collapsed')
|
||||
|
||||
$local(".new-post-tags").tagsInput Discussion.tagsInputOptions()
|
||||
|
||||
$local(".new-post-title").blur ->
|
||||
handleSimilarPost(this)
|
||||
|
||||
$local(".hide-similar-posts").click ->
|
||||
$local(".new-post-similar-posts-wrapper").hide()
|
||||
|
||||
$local(".discussion-submit-post").click ->
|
||||
handleSubmitNewPost(this)
|
||||
$local(".discussion-cancel-post").click ->
|
||||
handleCancelNewPost(this)
|
||||
|
||||
$local(".new-post-form").show()
|
||||
|
||||
handleAjaxReloadDiscussion = (elem, url) ->
|
||||
if not url then return
|
||||
$elem = $(elem)
|
||||
$discussion = $elem.parents("section.discussion")
|
||||
Discussion.safeAjax
|
||||
$elem: $elem
|
||||
url: url
|
||||
type: "GET"
|
||||
dataType: 'html'
|
||||
success: (data, textStatus) ->
|
||||
$data = $(data)
|
||||
$parent = $discussion.parent()
|
||||
$discussion.replaceWith($data)
|
||||
$discussion = $parent.children(".discussion")
|
||||
Discussion.initializeDiscussion($discussion)
|
||||
Discussion.bindDiscussionEvents($discussion)
|
||||
|
||||
handleAjaxSearch = (elem) ->
|
||||
$elem = $(elem)
|
||||
url = URI($elem.attr("action")).addSearch({text: $local(".search-input").val()})
|
||||
handleAjaxReloadDiscussion($elem, url)
|
||||
|
||||
handleAjaxSort = (elem) ->
|
||||
$elem = $(elem)
|
||||
url = $elem.attr("sort-url")
|
||||
handleAjaxReloadDiscussion($elem, url)
|
||||
|
||||
handleAjaxPage = (elem) ->
|
||||
$elem = $(elem)
|
||||
url = $elem.attr("page-url")
|
||||
handleAjaxReloadDiscussion($elem, url)
|
||||
|
||||
if $discussion.hasClass("inline-discussion")
|
||||
initializeNewPost()
|
||||
|
||||
if $discussion.hasClass("forum-discussion")
|
||||
$discussionSidebar = $(".discussion-sidebar")
|
||||
if $discussionSidebar.length
|
||||
$sidebarLocal = Discussion.generateLocal($discussionSidebar)
|
||||
Discussion.bindLocalEvents $sidebarLocal,
|
||||
"click .sidebar-new-post-button": (event) ->
|
||||
initializeNewPost()
|
||||
|
||||
Discussion.bindLocalEvents $local,
|
||||
|
||||
"submit .search-wrapper>.discussion-search-form": (event) ->
|
||||
event.preventDefault()
|
||||
handleAjaxSearch(this)
|
||||
|
||||
"click .discussion-search-link": ->
|
||||
handleAjaxSearch($local(".search-wrapper>.discussion-search-form"))
|
||||
|
||||
"click .discussion-sort-link": ->
|
||||
handleAjaxSort(this)
|
||||
|
||||
$discussion.children(".discussion-paginator").find(".discussion-page-link").unbind('click').click ->
|
||||
handleAjaxPage(this)
|
||||
@@ -1,23 +0,0 @@
|
||||
$ ->
|
||||
|
||||
#toggle = ->
|
||||
# $('.course-wrapper').toggleClass('closed')
|
||||
|
||||
#Discussion = window.Discussion
|
||||
#if $('#accordion').length
|
||||
# active = $('#accordion ul:has(li.active)').index('#accordion ul')
|
||||
# $('#accordion').bind('accordionchange', @log).accordion
|
||||
# active: if active >= 0 then active else 1
|
||||
# header: 'h3'
|
||||
# autoHeight: false
|
||||
# $('#open_close_accordion a').click toggle
|
||||
# $('#accordion').show()
|
||||
|
||||
#$(".discussion-module").each (index, elem) ->
|
||||
# Discussion.initializeDiscussionModule(elem)
|
||||
|
||||
#$("section.discussion").each (index, discussion) ->
|
||||
# Discussion.initializeDiscussion(discussion)
|
||||
# Discussion.bindDiscussionEvents(discussion)
|
||||
|
||||
#Discussion.initializeUserProfile($(".discussion-sidebar>.user-profile"))
|
||||
@@ -1,244 +0,0 @@
|
||||
if not @Discussion?
|
||||
@Discussion = {}
|
||||
|
||||
Discussion = @Discussion
|
||||
|
||||
wmdEditors = {}
|
||||
|
||||
@Discussion = $.extend @Discussion,
|
||||
|
||||
generateLocal: (elem) ->
|
||||
(selector) -> $(elem).find(selector)
|
||||
|
||||
generateDiscussionLink: (cls, txt, handler) ->
|
||||
$("<a>").addClass("discussion-link")
|
||||
.attr("href", "javascript:void(0)")
|
||||
.addClass(cls).html(txt)
|
||||
.click -> handler(this)
|
||||
|
||||
urlFor: (name, param, param1, param2) ->
|
||||
{
|
||||
follow_discussion : "/courses/#{$$course_id}/discussion/#{param}/follow"
|
||||
unfollow_discussion : "/courses/#{$$course_id}/discussion/#{param}/unfollow"
|
||||
create_thread : "/courses/#{$$course_id}/discussion/#{param}/threads/create"
|
||||
search_similar_threads : "/courses/#{$$course_id}/discussion/#{param}/threads/search_similar"
|
||||
update_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/update"
|
||||
create_comment : "/courses/#{$$course_id}/discussion/threads/#{param}/reply"
|
||||
delete_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/delete"
|
||||
upvote_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/upvote"
|
||||
downvote_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/downvote"
|
||||
undo_vote_for_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/unvote"
|
||||
follow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/follow"
|
||||
unfollow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/unfollow"
|
||||
update_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/update"
|
||||
endorse_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/endorse"
|
||||
create_sub_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/reply"
|
||||
delete_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/delete"
|
||||
upvote_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/upvote"
|
||||
downvote_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/downvote"
|
||||
undo_vote_for_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/unvote"
|
||||
upload : "/courses/#{$$course_id}/discussion/upload"
|
||||
search : "/courses/#{$$course_id}/discussion/forum/search"
|
||||
tags_autocomplete : "/courses/#{$$course_id}/discussion/threads/tags/autocomplete"
|
||||
retrieve_discussion : "/courses/#{$$course_id}/discussion/forum/#{param}/inline"
|
||||
retrieve_single_thread : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}"
|
||||
update_moderator_status : "/courses/#{$$course_id}/discussion/users/#{param}/update_moderator_status"
|
||||
openclose_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/close"
|
||||
permanent_link_thread : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}"
|
||||
permanent_link_comment : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}##{param2}"
|
||||
}[name]
|
||||
|
||||
safeAjax: (params) ->
|
||||
$elem = params.$elem
|
||||
if $elem.attr("disabled")
|
||||
return
|
||||
$elem.attr("disabled", "disabled")
|
||||
$.ajax(params).always ->
|
||||
$elem.removeAttr("disabled")
|
||||
|
||||
handleAnchorAndReload: (response) ->
|
||||
#window.location = window.location.pathname + "#" + response['id']
|
||||
window.location.reload()
|
||||
|
||||
bindLocalEvents: ($local, eventsHandler) ->
|
||||
for eventSelector, handler of eventsHandler
|
||||
[event, selector] = eventSelector.split(' ')
|
||||
$local(selector).unbind(event)[event] handler
|
||||
|
||||
tagsInputOptions: ->
|
||||
autocomplete_url: Discussion.urlFor('tags_autocomplete')
|
||||
autocomplete:
|
||||
remoteDataType: 'json'
|
||||
interactive: true
|
||||
height: '30px'
|
||||
width: '100%'
|
||||
defaultText: "Tag your post: press enter after each tag"
|
||||
removeWithBackspace: true
|
||||
|
||||
isSubscribed: (id, type) ->
|
||||
$$user_info? and (
|
||||
if type == "thread"
|
||||
id in $$user_info.subscribed_thread_ids
|
||||
else if type == "commentable" or type == "discussion"
|
||||
id in $$user_info.subscribed_commentable_ids
|
||||
else
|
||||
id in $$user_info.subscribed_user_ids
|
||||
)
|
||||
|
||||
isUpvoted: (id) ->
|
||||
$$user_info? and (id in $$user_info.upvoted_ids)
|
||||
|
||||
isDownvoted: (id) ->
|
||||
$$user_info? and (id in $$user_info.downvoted_ids)
|
||||
|
||||
formErrorHandler: (errorsField) ->
|
||||
(xhr, textStatus, error) ->
|
||||
response = JSON.parse(xhr.responseText)
|
||||
if response.errors? and response.errors.length > 0
|
||||
errorsField.empty()
|
||||
for error in response.errors
|
||||
errorsField.append($("<li>").addClass("new-post-form-error").html(error))
|
||||
|
||||
clearFormErrors: (errorsField) ->
|
||||
errorsField.empty()
|
||||
|
||||
postMathJaxProcessor: (text) ->
|
||||
RE_INLINEMATH = /^\$([^\$]*)\$/g
|
||||
RE_DISPLAYMATH = /^\$\$([^\$]*)\$\$/g
|
||||
Discussion.processEachMathAndCode text, (s, type) ->
|
||||
if type == 'display'
|
||||
s.replace RE_DISPLAYMATH, ($0, $1) ->
|
||||
"\\[" + $1 + "\\]"
|
||||
else if type == 'inline'
|
||||
s.replace RE_INLINEMATH, ($0, $1) ->
|
||||
"\\(" + $1 + "\\)"
|
||||
else
|
||||
s
|
||||
|
||||
makeWmdEditor: ($content, $local, cls_identifier) ->
|
||||
elem = $local(".#{cls_identifier}")
|
||||
id = $content.attr("_id")
|
||||
appended_id = "-#{cls_identifier}-#{id}"
|
||||
imageUploadUrl = Discussion.urlFor('upload')
|
||||
editor = Markdown.makeWmdEditor elem, appended_id, imageUploadUrl, Discussion.postMathJaxProcessor
|
||||
wmdEditors["#{cls_identifier}-#{id}"] = editor
|
||||
editor
|
||||
|
||||
getWmdEditor: ($content, $local, cls_identifier) ->
|
||||
id = $content.attr("_id")
|
||||
wmdEditors["#{cls_identifier}-#{id}"]
|
||||
|
||||
getWmdInput: ($content, $local, cls_identifier) ->
|
||||
id = $content.attr("_id")
|
||||
$local("#wmd-input-#{cls_identifier}-#{id}")
|
||||
|
||||
getWmdContent: ($content, $local, cls_identifier) ->
|
||||
Discussion.getWmdInput($content, $local, cls_identifier).val()
|
||||
|
||||
setWmdContent: ($content, $local, cls_identifier, text) ->
|
||||
Discussion.getWmdInput($content, $local, cls_identifier).val(text)
|
||||
Discussion.getWmdEditor($content, $local, cls_identifier).refreshPreview()
|
||||
|
||||
getContentInfo: (id, attr) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
(window.$$annotated_content_info[id] || {})[attr]
|
||||
|
||||
setContentInfo: (id, attr, value) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
window.$$annotated_content_info[id] ||= {}
|
||||
window.$$annotated_content_info[id][attr] = value
|
||||
|
||||
extendContentInfo: (id, newInfo) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
window.$$annotated_content_info[id] = newInfo
|
||||
bulkExtendContentInfo: (newInfos) ->
|
||||
if not window.$$annotated_content_info?
|
||||
window.$$annotated_content_info = {}
|
||||
window.$$annotated_content_info = $.extend window.$$annotated_content_info, newInfos
|
||||
|
||||
subscriptionLink: (type, id) ->
|
||||
followLink = ->
|
||||
Discussion.generateDiscussionLink("discussion-follow-#{type}", "Follow", handleFollow)
|
||||
|
||||
unfollowLink = ->
|
||||
Discussion.generateDiscussionLink("discussion-unfollow-#{type}", "Unfollow", handleUnfollow)
|
||||
|
||||
handleFollow = (elem) ->
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: Discussion.urlFor("follow_#{type}", id)
|
||||
type: "POST"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$(elem).replaceWith unfollowLink()
|
||||
dataType: 'json'
|
||||
|
||||
handleUnfollow = (elem) ->
|
||||
Discussion.safeAjax
|
||||
$elem: $(elem)
|
||||
url: Discussion.urlFor("unfollow_#{type}", id)
|
||||
type: "POST"
|
||||
success: (response, textStatus) ->
|
||||
if textStatus == "success"
|
||||
$(elem).replaceWith followLink()
|
||||
dataType: 'json'
|
||||
|
||||
if Discussion.isSubscribed(id, type)
|
||||
unfollowLink()
|
||||
else
|
||||
followLink()
|
||||
|
||||
processEachMathAndCode: (text, processor) ->
|
||||
|
||||
codeArchive = []
|
||||
|
||||
RE_DISPLAYMATH = /^([^\$]*?)\$\$([^\$]*?)\$\$(.*)$/m
|
||||
RE_INLINEMATH = /^([^\$]*?)\$([^\$]+?)\$(.*)$/m
|
||||
|
||||
ESCAPED_DOLLAR = '@@ESCAPED_D@@'
|
||||
ESCAPED_BACKSLASH = '@@ESCAPED_B@@'
|
||||
|
||||
processedText = ""
|
||||
|
||||
$div = $("<div>").html(text)
|
||||
|
||||
$div.find("code").each (index, code) ->
|
||||
codeArchive.push $(code).html()
|
||||
$(code).html(codeArchive.length - 1)
|
||||
|
||||
text = $div.html()
|
||||
text = text.replace /\\\$/g, ESCAPED_DOLLAR
|
||||
|
||||
while true
|
||||
if RE_INLINEMATH.test(text)
|
||||
text = text.replace RE_INLINEMATH, ($0, $1, $2, $3) ->
|
||||
processedText += $1 + processor("$" + $2 + "$", 'inline')
|
||||
$3
|
||||
else if RE_DISPLAYMATH.test(text)
|
||||
text = text.replace RE_DISPLAYMATH, ($0, $1, $2, $3) ->
|
||||
processedText += $1 + processor("$$" + $2 + "$$", 'display')
|
||||
$3
|
||||
else
|
||||
processedText += text
|
||||
break
|
||||
|
||||
text = processedText
|
||||
text = text.replace(new RegExp(ESCAPED_DOLLAR, 'g'), '\\$')
|
||||
|
||||
text = text.replace /\\\\\\\\/g, ESCAPED_BACKSLASH
|
||||
text = text.replace /\\begin\{([a-z]*\*?)\}([\s\S]*?)\\end\{\1\}/img, ($0, $1, $2) ->
|
||||
processor("\\begin{#{$1}}" + $2 + "\\end{#{$1}}")
|
||||
text = text.replace(new RegExp(ESCAPED_BACKSLASH, 'g'), '\\\\\\\\')
|
||||
|
||||
$div = $("<div>").html(text)
|
||||
cnt = 0
|
||||
$div.find("code").each (index, code) ->
|
||||
$(code).html(processor(codeArchive[cnt], 'code'))
|
||||
cnt += 1
|
||||
|
||||
text = $div.html()
|
||||
|
||||
text
|
||||
@@ -1,3450 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
/* HTML5 Boilerplate */
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
|
||||
display: block; }
|
||||
|
||||
audio, canvas, video {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1; }
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none; }
|
||||
|
||||
[hidden] {
|
||||
display: none; }
|
||||
|
||||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%; }
|
||||
|
||||
html, button, input, select, textarea {
|
||||
font-family: sans-serif;
|
||||
color: #222; }
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-size: 1em;
|
||||
line-height: 1.4; }
|
||||
|
||||
::-moz-selection {
|
||||
background: #fe57a1;
|
||||
color: #fff;
|
||||
text-shadow: none; }
|
||||
|
||||
::selection {
|
||||
background: #fe57a1;
|
||||
color: #fff;
|
||||
text-shadow: none; }
|
||||
|
||||
a {
|
||||
color: #00e; }
|
||||
|
||||
a:visited {
|
||||
color: #551a8b; }
|
||||
|
||||
a:hover {
|
||||
color: #06e; }
|
||||
|
||||
a:focus {
|
||||
outline: thin dotted; }
|
||||
|
||||
a:hover, a:active {
|
||||
outline: 0; }
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: 1px dotted; }
|
||||
|
||||
b, strong {
|
||||
font-weight: bold; }
|
||||
|
||||
blockquote {
|
||||
margin: 1em 40px; }
|
||||
|
||||
dfn {
|
||||
font-style: italic; }
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-top: 1px solid #ccc;
|
||||
margin: 1em 0;
|
||||
padding: 0; }
|
||||
|
||||
ins {
|
||||
background: #ff9;
|
||||
color: #000;
|
||||
text-decoration: none; }
|
||||
|
||||
mark {
|
||||
background: #ff0;
|
||||
color: #000;
|
||||
font-style: italic;
|
||||
font-weight: bold; }
|
||||
|
||||
pre, code, kbd, samp {
|
||||
font-family: monospace, serif;
|
||||
_font-family: 'courier new', monospace;
|
||||
font-size: 1em; }
|
||||
|
||||
pre {
|
||||
white-space: pre;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word; }
|
||||
|
||||
q {
|
||||
quotes: none; }
|
||||
|
||||
q:before, q:after {
|
||||
content: "";
|
||||
content: none; }
|
||||
|
||||
small {
|
||||
font-size: 85%; }
|
||||
|
||||
sub, sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline; }
|
||||
|
||||
sup {
|
||||
top: -0.5em; }
|
||||
|
||||
sub {
|
||||
bottom: -0.25em; }
|
||||
|
||||
ul, ol {
|
||||
margin: 1em 0;
|
||||
padding: 0 0 0 40px; }
|
||||
|
||||
dd {
|
||||
margin: 0 0 0 40px; }
|
||||
|
||||
nav ul, nav ol {
|
||||
list-style: none;
|
||||
list-style-image: none;
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
vertical-align: middle; }
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden; }
|
||||
|
||||
figure {
|
||||
margin: 0; }
|
||||
|
||||
form {
|
||||
margin: 0; }
|
||||
|
||||
fieldset {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
|
||||
label {
|
||||
cursor: pointer; }
|
||||
|
||||
legend {
|
||||
border: 0;
|
||||
*margin-left: -7px;
|
||||
padding: 0;
|
||||
white-space: normal; }
|
||||
|
||||
button, input, select, textarea {
|
||||
font-size: 100%;
|
||||
margin: 0;
|
||||
vertical-align: baseline;
|
||||
*vertical-align: middle; }
|
||||
|
||||
button, input {
|
||||
line-height: normal; }
|
||||
|
||||
button, input[type="button"], input[type="reset"], input[type="submit"] {
|
||||
cursor: pointer;
|
||||
-webkit-appearance: button;
|
||||
*overflow: visible; }
|
||||
|
||||
button[disabled], input[disabled] {
|
||||
cursor: default; }
|
||||
|
||||
input[type="checkbox"], input[type="radio"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
*width: 13px;
|
||||
*height: 13px; }
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
-moz-box-sizing: content-box;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box; }
|
||||
|
||||
input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none; }
|
||||
|
||||
button::-moz-focus-inner, input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0; }
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
vertical-align: top;
|
||||
resize: vertical; }
|
||||
|
||||
input:invalid, textarea:invalid {
|
||||
background-color: #f0dddd; }
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0; }
|
||||
|
||||
td {
|
||||
vertical-align: top; }
|
||||
|
||||
.chromeframe {
|
||||
margin: 0.2em 0;
|
||||
background: #ccc;
|
||||
color: black;
|
||||
padding: 0.2em 0; }
|
||||
|
||||
.ir {
|
||||
display: block;
|
||||
border: 0;
|
||||
text-indent: -999em;
|
||||
overflow: hidden;
|
||||
background-color: transparent;
|
||||
background-repeat: no-repeat;
|
||||
text-align: left;
|
||||
direction: ltr;
|
||||
*line-height: 0; }
|
||||
|
||||
.ir br {
|
||||
display: none; }
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
visibility: hidden; }
|
||||
|
||||
.visuallyhidden {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px; }
|
||||
|
||||
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto; }
|
||||
|
||||
.invisible {
|
||||
visibility: hidden; }
|
||||
|
||||
.clearfix:before, .topbar:before, nav.sequence-nav:before, div.course-wrapper section.course-content .problem-set:before, div.course-wrapper section.course-content section.problems-wrapper:before, div.course-wrapper section.course-content div#seq_content:before, div.course-wrapper section.course-content ol.vert-mod > li:before, section.course-content nav.sequence-bottom ul:before, section.course-content div.video article.video-wrapper section.video-controls:before, section.course-content div.video article.video-wrapper section.video-controls div.slider:before, section.tool-wrapper:before, section.tool-wrapper div#controlls-container:before, section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper:before, section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper:before, section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders:before, section.problem-set:before, section.problems-wrapper:before, .clearfix:after, .topbar:after, nav.sequence-nav:after, div.course-wrapper section.course-content .problem-set:after, div.course-wrapper section.course-content section.problems-wrapper:after, div.course-wrapper section.course-content div#seq_content:after, div.course-wrapper section.course-content ol.vert-mod > li:after, section.course-content nav.sequence-bottom ul:after, section.course-content div.video article.video-wrapper section.video-controls:after, section.course-content div.video article.video-wrapper section.video-controls div.slider:after, section.tool-wrapper:after, section.tool-wrapper div#controlls-container:after, section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper:after, section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper:after, section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders:after, section.problem-set:after, section.problems-wrapper:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
|
||||
.clearfix:after, .topbar:after, nav.sequence-nav:after, div.course-wrapper section.course-content .problem-set:after, div.course-wrapper section.course-content section.problems-wrapper:after, div.course-wrapper section.course-content div#seq_content:after, div.course-wrapper section.course-content ol.vert-mod > li:after, section.course-content nav.sequence-bottom ul:after, section.course-content div.video article.video-wrapper section.video-controls:after, section.course-content div.video article.video-wrapper section.video-controls div.slider:after, section.tool-wrapper:after, section.tool-wrapper div#controlls-container:after, section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper:after, section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper:after, section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders:after, section.problem-set:after, section.problems-wrapper:after {
|
||||
clear: both; }
|
||||
|
||||
.clearfix, .topbar, nav.sequence-nav, div.course-wrapper section.course-content .problem-set, div.course-wrapper section.course-content section.problems-wrapper, div.course-wrapper section.course-content div#seq_content, div.course-wrapper section.course-content ol.vert-mod > li, section.course-content nav.sequence-bottom ul, section.course-content div.video article.video-wrapper section.video-controls, section.course-content div.video article.video-wrapper section.video-controls div.slider, section.tool-wrapper, section.tool-wrapper div#controlls-container, section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper, section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper, section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders, section.problem-set, section.problems-wrapper {
|
||||
*zoom: 1; }
|
||||
|
||||
@media print {
|
||||
* {
|
||||
background: transparent !important;
|
||||
color: black !important;
|
||||
box-shadow: none !important;
|
||||
text-shadow: none !important;
|
||||
filter: none !important;
|
||||
-ms-filter: none !important; }
|
||||
|
||||
a, a:visited {
|
||||
text-decoration: underline; }
|
||||
|
||||
a[href]:after {
|
||||
content: " (" attr(href) ")"; }
|
||||
|
||||
abbr[title]:after {
|
||||
content: " (" attr(title) ")"; }
|
||||
|
||||
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
|
||||
content: ""; }
|
||||
|
||||
pre, blockquote {
|
||||
border: 1px solid #999;
|
||||
page-break-inside: avoid; }
|
||||
|
||||
thead {
|
||||
display: table-header-group; }
|
||||
|
||||
tr, img {
|
||||
page-break-inside: avoid; }
|
||||
|
||||
img {
|
||||
max-width: 100% !important; }
|
||||
|
||||
@page {
|
||||
margin: 0.5cm; }
|
||||
|
||||
p, h2, h3 {
|
||||
orphans: 3;
|
||||
widows: 3; }
|
||||
|
||||
h2, h3 {
|
||||
page-break-after: avoid; } }
|
||||
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on January 25, 2012 05:06:34 PM America/New_York */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-Light-webfont.eot");
|
||||
src: url("../fonts/OpenSans-Light-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Light-webfont.woff") format("woff"), url("../fonts/OpenSans-Light-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Light-webfont.svg#OpenSansLight") format("svg");
|
||||
font-weight: 300;
|
||||
font-style: normal; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-LightItalic-webfont.eot");
|
||||
src: url("../fonts/OpenSans-LightItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-LightItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-LightItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic") format("svg");
|
||||
font-weight: 300;
|
||||
font-style: italic; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-Regular-webfont.eot");
|
||||
src: url("../fonts/OpenSans-Regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Regular-webfont.woff") format("woff"), url("../fonts/OpenSans-Regular-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Regular-webfont.svg#OpenSansRegular") format("svg");
|
||||
font-weight: 400;
|
||||
font-style: normal; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-Italic-webfont.eot");
|
||||
src: url("../fonts/OpenSans-Italic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Italic-webfont.woff") format("woff"), url("../fonts/OpenSans-Italic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Italic-webfont.svg#OpenSansItalic") format("svg");
|
||||
font-weight: 400;
|
||||
font-style: italic; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-Bold-webfont.eot");
|
||||
src: url("../fonts/OpenSans-Bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Bold-webfont.woff") format("woff"), url("../fonts/OpenSans-Bold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Bold-webfont.svg#OpenSansBold") format("svg");
|
||||
font-weight: 700;
|
||||
font-style: normal; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-BoldItalic-webfont.eot");
|
||||
src: url("../fonts/OpenSans-BoldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-BoldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-BoldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic") format("svg");
|
||||
font-weight: 700;
|
||||
font-style: italic; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-ExtraBold-webfont.eot");
|
||||
src: url("../fonts/OpenSans-ExtraBold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-ExtraBold-webfont.woff") format("woff"), url("../fonts/OpenSans-ExtraBold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-ExtraBold-webfont.svg#OpenSansExtrabold") format("svg");
|
||||
font-weight: 800;
|
||||
font-style: normal; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-ExtraBoldItalic-webfont.eot");
|
||||
src: url("../fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.svg#OpenSansExtraboldItalic") format("svg");
|
||||
font-weight: 800;
|
||||
font-style: italic; }
|
||||
|
||||
html, body {
|
||||
background: #fafafa;
|
||||
font-family: "Open Sans", Verdana, Geneva, sans-serif;
|
||||
font-size: 1em;
|
||||
line-height: 1em; }
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #3c3c3c;
|
||||
font: normal 1.2em/1.2em Georgia, Cambria, "Times New Roman", Times, serif;
|
||||
margin: 0px; }
|
||||
|
||||
h1 {
|
||||
color: #3c3c3c;
|
||||
font: normal 2em/1.4em "Open Sans", Verdana, Geneva, sans-serif;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 30px;
|
||||
text-align: center; }
|
||||
|
||||
h2 {
|
||||
color: #a0a0a0;
|
||||
font: normal 1.2em/1.2em Georgia, Cambria, "Times New Roman", Times, serif;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 15px;
|
||||
text-transform: uppercase;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
|
||||
p + h2, ul + h2, ol + h2 {
|
||||
margin-top: 40px; }
|
||||
|
||||
p {
|
||||
color: #3c3c3c;
|
||||
font: normal 1em/1.6em Georgia, Cambria, "Times New Roman", Times, serif;
|
||||
margin: 0px; }
|
||||
|
||||
span {
|
||||
font: normal 1em/1.6em "Open Sans", Verdana, Geneva, sans-serif; }
|
||||
|
||||
p + p, ul + p, ol + p {
|
||||
margin-top: 20px; }
|
||||
|
||||
p a:link, p a:visited {
|
||||
color: #1d9dd9;
|
||||
font: normal 1em/1em Georgia, Cambria, "Times New Roman", Times, serif;
|
||||
text-decoration: none;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
p a:link:hover, p a:visited:hover {
|
||||
color: #1d9dd9;
|
||||
text-decoration: underline; }
|
||||
|
||||
a:link, a:visited {
|
||||
color: #1d9dd9;
|
||||
font: normal 1em/1em "Open Sans", Verdana, Geneva, sans-serif;
|
||||
text-decoration: none;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
a:link:hover, a:visited:hover {
|
||||
text-decoration: underline; }
|
||||
|
||||
.content-wrapper {
|
||||
background: white;
|
||||
margin: 0 auto 0;
|
||||
width: 100%; }
|
||||
|
||||
.container {
|
||||
zoom: 1;
|
||||
margin: 0 auto 0;
|
||||
padding: 0px 30px;
|
||||
max-width: 1180px;
|
||||
min-width: 760px; }
|
||||
.container:before, .container:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
.container:after {
|
||||
clear: both; }
|
||||
|
||||
span.edx {
|
||||
text-transform: none;
|
||||
font: inherit; }
|
||||
|
||||
.static-container {
|
||||
zoom: 1;
|
||||
margin: 0 auto 0;
|
||||
max-width: 1200px;
|
||||
padding: 60px 0px 120px;
|
||||
width: 100%; }
|
||||
.static-container:before, .static-container:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
.static-container:after {
|
||||
clear: both; }
|
||||
.static-container .inner-wrapper {
|
||||
margin: 0 auto 0;
|
||||
width: 83.051%; }
|
||||
.static-container ol, .static-container ul {
|
||||
list-style: disc; }
|
||||
.static-container ol li, .static-container ul li {
|
||||
color: #3c3c3c;
|
||||
font: normal 1em/1.4em Georgia, Cambria, "Times New Roman", Times, serif;
|
||||
margin: 0px; }
|
||||
.static-container h1 {
|
||||
margin-bottom: 30px; }
|
||||
.static-container h1 + hr {
|
||||
margin-bottom: 60px; }
|
||||
.static-container p + h2, .static-container ul + h2, .static-container ol + h2 {
|
||||
margin-top: 40px; }
|
||||
.static-container ul + p, .static-container ol + p {
|
||||
margin-top: 20px; }
|
||||
|
||||
.faded-hr-divider, .horizontal-divider {
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
height: 1px;
|
||||
width: 100%; }
|
||||
|
||||
.faded-hr-divider-medium {
|
||||
background-image: compact(linear, compact(180deg, rgba(240, 240, 240, 0) 0%, #f0f0f0 50%, rgba(240, 240, 240, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(240, 240, 240, 0) 0%, #f0f0f0 50%, rgba(240, 240, 240, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(240, 240, 240, 0) 0%, #f0f0f0 50%, rgba(240, 240, 240, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(240, 240, 240, 0) 0%, #f0f0f0 50%, rgba(240, 240, 240, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(240, 240, 240, 0) 0%, #f0f0f0 50%, rgba(240, 240, 240, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
height: 1px;
|
||||
width: 100%; }
|
||||
|
||||
.faded-hr-divider-light, .horizontal-divider::after {
|
||||
background-image: compact(linear, compact(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
height: 1px;
|
||||
width: 100%; }
|
||||
|
||||
.faded-vertical-divider, .vertical-divider {
|
||||
background-image: compact(linear, compact(90deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(200, 200, 200, 0) 0%, #c8c8c8 50%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
height: 100%;
|
||||
width: 1px; }
|
||||
|
||||
.faded-vertical-divider-light, .vertical-divider::after {
|
||||
background-image: compact(linear, compact(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0), false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
height: 100%;
|
||||
width: 1px; }
|
||||
|
||||
.vertical-divider {
|
||||
position: relative; }
|
||||
.vertical-divider::after {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 1px; }
|
||||
|
||||
.horizontal-divider {
|
||||
border: none;
|
||||
position: relative; }
|
||||
.horizontal-divider::after {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 1px; }
|
||||
|
||||
.fade-right-hr-divider {
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, rgba(200, 200, 200, 0) 0%, #c8c8c8, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
border: none; }
|
||||
|
||||
.fade-left-hr-divider {
|
||||
background-image: compact(linear, compact(180deg, #c8c8c8 0%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, #c8c8c8 0%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, #c8c8c8 0%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, #c8c8c8 0%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(180deg, #c8c8c8 0%, rgba(200, 200, 200, 0), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
border: none; }
|
||||
|
||||
.error-message-colors {
|
||||
background: #fd5757;
|
||||
border: 1px solid #ca1111;
|
||||
color: #8f0e0e; }
|
||||
|
||||
.success-message-colors {
|
||||
background: #139f3a;
|
||||
border: 1px solid #064112;
|
||||
color: white; }
|
||||
|
||||
.animation-home-header-pop-up {
|
||||
-webkit-animation: compact(home-header-pop-up 1.15s ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(home-header-pop-up 1.15s ease-in-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(home-header-pop-up 1.15s ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(1s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(1s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(1s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes home-header-pop-up {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 300px; }
|
||||
|
||||
45% {
|
||||
opacity: 1; }
|
||||
|
||||
65% {
|
||||
top: -40px; }
|
||||
|
||||
85% {
|
||||
top: 10px; }
|
||||
|
||||
100% {
|
||||
top: 0px; } }
|
||||
|
||||
@-moz-keyframes home-header-pop-up {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 300px; }
|
||||
|
||||
45% {
|
||||
opacity: 1; }
|
||||
|
||||
65% {
|
||||
top: -40px; }
|
||||
|
||||
85% {
|
||||
top: 10px; }
|
||||
|
||||
100% {
|
||||
top: 0px; } }
|
||||
|
||||
@keyframes home-header-pop-up {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 300px; }
|
||||
|
||||
45% {
|
||||
opacity: 1; }
|
||||
|
||||
65% {
|
||||
top: -40px; }
|
||||
|
||||
85% {
|
||||
top: 10px; }
|
||||
|
||||
100% {
|
||||
top: 0px; } }
|
||||
|
||||
.animation-title-appear {
|
||||
-webkit-animation: compact(title-appear 4.65s ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(title-appear 4.65s ease-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(title-appear 4.65s ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(1s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(1s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(1s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes title-appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
-o-transform: scale(0.9);
|
||||
transform: scale(0.9); }
|
||||
|
||||
20% {
|
||||
opacity: 1; }
|
||||
|
||||
27% {
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
90% {
|
||||
opacity: 1;
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
100% {
|
||||
top: 0px; } }
|
||||
|
||||
@-moz-keyframes title-appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
-o-transform: scale(0.9);
|
||||
transform: scale(0.9); }
|
||||
|
||||
20% {
|
||||
opacity: 1; }
|
||||
|
||||
27% {
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
90% {
|
||||
opacity: 1;
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
100% {
|
||||
top: 0px; } }
|
||||
|
||||
@keyframes title-appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
-o-transform: scale(0.9);
|
||||
transform: scale(0.9); }
|
||||
|
||||
20% {
|
||||
opacity: 1; }
|
||||
|
||||
27% {
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
90% {
|
||||
opacity: 1;
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
100% {
|
||||
top: 0px; } }
|
||||
|
||||
.animation-home-appear {
|
||||
-webkit-animation: compact(home-appear 4.25s ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(home-appear 4.25s ease-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(home-appear 4.25s ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(1s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(1s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(1s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes home-appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
-o-transform: scale(0.9);
|
||||
transform: scale(0.9); }
|
||||
|
||||
20% {
|
||||
opacity: 1; }
|
||||
|
||||
30% {
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
80% {
|
||||
opacity: 1;
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.7);
|
||||
-moz-transform: scale(0.7);
|
||||
-ms-transform: scale(0.7);
|
||||
-o-transform: scale(0.7);
|
||||
transform: scale(0.7); } }
|
||||
|
||||
@-moz-keyframes home-appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
-o-transform: scale(0.9);
|
||||
transform: scale(0.9); }
|
||||
|
||||
20% {
|
||||
opacity: 1; }
|
||||
|
||||
30% {
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
80% {
|
||||
opacity: 1;
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.7);
|
||||
-moz-transform: scale(0.7);
|
||||
-ms-transform: scale(0.7);
|
||||
-o-transform: scale(0.7);
|
||||
transform: scale(0.7); } }
|
||||
|
||||
@keyframes home-appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.9);
|
||||
-moz-transform: scale(0.9);
|
||||
-ms-transform: scale(0.9);
|
||||
-o-transform: scale(0.9);
|
||||
transform: scale(0.9); }
|
||||
|
||||
20% {
|
||||
opacity: 1; }
|
||||
|
||||
30% {
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
80% {
|
||||
opacity: 1;
|
||||
top: 40px;
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
top: 60px;
|
||||
-webkit-transform: scale(0.7);
|
||||
-moz-transform: scale(0.7);
|
||||
-ms-transform: scale(0.7);
|
||||
-o-transform: scale(0.7);
|
||||
transform: scale(0.7); } }
|
||||
|
||||
.animation-edx-appear {
|
||||
-webkit-animation: compact(edx-appear 1.25s ease-in, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(edx-appear 1.25s ease-in, false, false, false, false, false, false, false, false);
|
||||
animation: compact(edx-appear 1.25s ease-in, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(2.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(2.15s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(2.15s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes edx-appear {
|
||||
0% {
|
||||
opacity: 0; }
|
||||
|
||||
100% {
|
||||
opacity: 1; } }
|
||||
|
||||
@-moz-keyframes edx-appear {
|
||||
0% {
|
||||
opacity: 0; }
|
||||
|
||||
100% {
|
||||
opacity: 1; } }
|
||||
|
||||
@keyframes edx-appear {
|
||||
0% {
|
||||
opacity: 0; }
|
||||
|
||||
100% {
|
||||
opacity: 1; } }
|
||||
|
||||
.animation-mit-slide {
|
||||
-webkit-animation: compact(mit-slide 1.15s ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(mit-slide 1.15s ease-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(mit-slide 1.15s ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(2s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes mit-slide {
|
||||
0% {
|
||||
left: 80px; }
|
||||
|
||||
100% {
|
||||
left: 0px; } }
|
||||
|
||||
@-moz-keyframes mit-slide {
|
||||
0% {
|
||||
left: 80px; }
|
||||
|
||||
100% {
|
||||
left: 0px; } }
|
||||
|
||||
@keyframes mit-slide {
|
||||
0% {
|
||||
left: 80px; }
|
||||
|
||||
100% {
|
||||
left: 0px; } }
|
||||
|
||||
.animation-harvard-slide {
|
||||
-webkit-animation: compact(harvard-slide 1.15s ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(harvard-slide 1.15s ease-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(harvard-slide 1.15s ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(2s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes harvard-slide {
|
||||
0% {
|
||||
right: 80px; }
|
||||
|
||||
100% {
|
||||
right: 0px; } }
|
||||
|
||||
@-moz-keyframes harvard-slide {
|
||||
0% {
|
||||
right: 80px; }
|
||||
|
||||
100% {
|
||||
right: 0px; } }
|
||||
|
||||
@keyframes harvard-slide {
|
||||
0% {
|
||||
right: 80px; }
|
||||
|
||||
100% {
|
||||
right: 0px; } }
|
||||
|
||||
.animation-divider-left-slide {
|
||||
-webkit-animation: compact(divider-left-slide 1.1s ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(divider-left-slide 1.1s ease-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(divider-left-slide 1.1s ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(2s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes divider-left-slide {
|
||||
0% {
|
||||
left: 340px; }
|
||||
|
||||
100% {
|
||||
left: 200px; } }
|
||||
|
||||
@-moz-keyframes divider-left-slide {
|
||||
0% {
|
||||
left: 340px; }
|
||||
|
||||
100% {
|
||||
left: 200px; } }
|
||||
|
||||
@keyframes divider-left-slide {
|
||||
0% {
|
||||
left: 340px; }
|
||||
|
||||
100% {
|
||||
left: 200px; } }
|
||||
|
||||
.animation-divider-right-slide {
|
||||
-webkit-animation: compact(divider-right-slide 1.1s ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(divider-right-slide 1.1s ease-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(divider-right-slide 1.1s ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(2s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(2s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes divider-right-slide {
|
||||
0% {
|
||||
left: 340px; }
|
||||
|
||||
100% {
|
||||
left: 480px; } }
|
||||
|
||||
@-moz-keyframes divider-right-slide {
|
||||
0% {
|
||||
left: 340px; }
|
||||
|
||||
100% {
|
||||
left: 480px; } }
|
||||
|
||||
@keyframes divider-right-slide {
|
||||
0% {
|
||||
left: 340px; }
|
||||
|
||||
100% {
|
||||
left: 480px; } }
|
||||
|
||||
.animation-video-appear {
|
||||
-webkit-animation: compact(video-appear 1.25s ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-animation: compact(video-appear 1.25s ease-out, false, false, false, false, false, false, false, false);
|
||||
animation: compact(video-appear 1.25s ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
animation-fill-mode: compact(both, false, false, false, false, false, false, false, false);
|
||||
-webkit-animation-delay: compact(4.4s, false, false, false, false, false, false, false, false);
|
||||
-moz-animation-delay: compact(4.4s, false, false, false, false, false, false, false, false);
|
||||
animation-delay: compact(4.4s, false, false, false, false, false, false, false, false); }
|
||||
|
||||
@-webkit-keyframes video-appear {
|
||||
0% {
|
||||
bottom: -270px;
|
||||
opacity: 0.9; }
|
||||
|
||||
80% {
|
||||
opacity: 1; }
|
||||
|
||||
100% {
|
||||
bottom: 0px; } }
|
||||
|
||||
@-moz-keyframes video-appear {
|
||||
0% {
|
||||
bottom: -270px;
|
||||
opacity: 0.9; }
|
||||
|
||||
80% {
|
||||
opacity: 1; }
|
||||
|
||||
100% {
|
||||
bottom: 0px; } }
|
||||
|
||||
@keyframes video-appear {
|
||||
0% {
|
||||
bottom: -270px;
|
||||
opacity: 0.9; }
|
||||
|
||||
80% {
|
||||
opacity: 1; }
|
||||
|
||||
100% {
|
||||
bottom: 0px; } }
|
||||
|
||||
nav.course-material {
|
||||
background: #d2d2d2;
|
||||
zoom: 1;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-box-shadow: compact(inset 0 1px 5px 0 rgba(0, 0, 0, 0.05), false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 5px 0 rgba(0, 0, 0, 0.05), false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 5px 0 rgba(0, 0, 0, 0.05), false, false, false, false, false, false, false, false);
|
||||
border-bottom: 1px solid #bebebe;
|
||||
margin: 0px auto 0px;
|
||||
padding: 0px;
|
||||
width: 100%; }
|
||||
nav.course-material:before, nav.course-material:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
nav.course-material:after {
|
||||
clear: both; }
|
||||
nav.course-material .inner-wrapper {
|
||||
margin: 0 auto;
|
||||
max-width: 1200px;
|
||||
width: 100%; }
|
||||
nav.course-material ol.course-tabs {
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-moz-border-top-left-radius: 4px;
|
||||
-moz-border-radius-topleft: 4px;
|
||||
-ms-border-top-left-radius: 4px;
|
||||
-o-border-top-left-radius: 4px;
|
||||
border-top-left-radius: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-moz-border-top-right-radius: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-ms-border-top-right-radius: 4px;
|
||||
-o-border-top-right-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
zoom: 1;
|
||||
padding: 10px 0 0 0; }
|
||||
nav.course-material ol.course-tabs:before, nav.course-material ol.course-tabs:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
nav.course-material ol.course-tabs:after {
|
||||
clear: both; }
|
||||
nav.course-material ol.course-tabs li {
|
||||
float: left;
|
||||
list-style: none; }
|
||||
nav.course-material ol.course-tabs li a {
|
||||
color: #a0a0a0;
|
||||
display: block;
|
||||
text-align: center;
|
||||
padding: 5px 13px;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px rgba(255, 255, 255, 0.4); }
|
||||
nav.course-material ol.course-tabs li a:hover {
|
||||
color: #3c3c3c; }
|
||||
nav.course-material ol.course-tabs li a.active, nav.course-material nav.sequence-nav ol.course-tabs li a.seq_video_active, nav.sequence-nav nav.course-material ol.course-tabs li a.seq_video_active, nav.course-material nav.sequence-nav ol.course-tabs li a.seq_other_active, nav.sequence-nav nav.course-material ol.course-tabs li a.seq_other_active, nav.course-material nav.sequence-nav ol.course-tabs li a.seq_vertical_active, nav.sequence-nav nav.course-material ol.course-tabs li a.seq_vertical_active, nav.course-material nav.sequence-nav ol.course-tabs li a.seq_problem_active, nav.sequence-nav nav.course-material ol.course-tabs li a.seq_problem_active {
|
||||
background: white;
|
||||
border: 1px solid #c8c8c8;
|
||||
border-bottom: 0px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-moz-border-top-left-radius: 4px;
|
||||
-moz-border-radius-topleft: 4px;
|
||||
-ms-border-top-left-radius: 4px;
|
||||
-o-border-top-left-radius: 4px;
|
||||
border-top-left-radius: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-moz-border-top-right-radius: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-ms-border-top-right-radius: 4px;
|
||||
-o-border-top-right-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
-webkit-box-shadow: compact(0 2px 0 0 white, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 2px 0 0 white, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 2px 0 0 white, false, false, false, false, false, false, false, false);
|
||||
color: #3c3c3c; }
|
||||
|
||||
.course-content {
|
||||
margin-top: 30px; }
|
||||
.course-content .courseware {
|
||||
background: #f0f0f0;
|
||||
height: 600px; }
|
||||
|
||||
.clearfix:after, .topbar:after, nav.sequence-nav:after, div.course-wrapper section.course-content .problem-set:after, div.course-wrapper section.course-content section.problems-wrapper:after, div.course-wrapper section.course-content div#seq_content:after, div.course-wrapper section.course-content ol.vert-mod > li:after, section.course-content nav.sequence-bottom ul:after, section.course-content div.video article.video-wrapper section.video-controls:after, section.course-content div.video article.video-wrapper section.video-controls div.slider:after, section.tool-wrapper:after, section.tool-wrapper div#controlls-container:after, section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper:after, section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper:after, section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders:after, section.problem-set:after, section.problems-wrapper:after {
|
||||
clear: both;
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
visibility: hidden; }
|
||||
|
||||
.wrapper {
|
||||
margin: 0 auto;
|
||||
max-width: 1400px;
|
||||
min-width: 810px;
|
||||
text-align: left;
|
||||
width: 100%; }
|
||||
.wrapper div.table-wrapper, .wrapper div.course-wrapper {
|
||||
display: table;
|
||||
width: 100%;
|
||||
overflow: hidden; }
|
||||
@media screen and (min-width: 1400px) {
|
||||
.wrapper div.table-wrapper, .wrapper div.course-wrapper {
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-ms-border-radius: 4px;
|
||||
-o-border-radius: 4px;
|
||||
border-radius: 4px; } }
|
||||
|
||||
h1.top-header, div.course-wrapper section.course-content ol.vert-mod > li header {
|
||||
background: #f3f3f3;
|
||||
border-bottom: 1px solid #e3e3e3;
|
||||
margin: -lh() -lh() lh();
|
||||
padding: lh(); }
|
||||
|
||||
.button {
|
||||
border: 1px solid #6f6f6f;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #a2a2a2, 0 0 3px #cccccc, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #a2a2a2, 0 0 3px #cccccc, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #a2a2a2, 0 0 3px #cccccc, false, false, false, false, false, false, false);
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
font: bold 14px "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
|
||||
background-color: #959595;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#959595, #7b7b7b, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#959595, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#959595, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#959595, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#959595, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#959595, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
padding: 4px 8px;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
.button:hover, .button:focus {
|
||||
border: 1px solid #555555;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #bbbbbb, 0 0 3px #cccccc, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #bbbbbb, 0 0 3px #cccccc, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #bbbbbb, 0 0 3px #cccccc, false, false, false, false, false, false, false);
|
||||
background-color: #a2a2a2;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#a2a2a2, #7b7b7b, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#a2a2a2, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#a2a2a2, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#a2a2a2, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#a2a2a2, #7b7b7b, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#a2a2a2, #7b7b7b, false, false, false, false, false, false, false, false)); }
|
||||
|
||||
.light-button, a.light-button {
|
||||
border: 1px solid #ccc;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 white, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 white, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 white, false, false, false, false, false, false, false, false);
|
||||
color: #666;
|
||||
cursor: pointer;
|
||||
font: normal 14px "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
|
||||
background-color: white;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(white, #eeeeee, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(white, #eeeeee, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(white, #eeeeee, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(white, #eeeeee, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(white, #eeeeee, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(white, #eeeeee, false, false, false, false, false, false, false, false));
|
||||
padding: 4px 8px;
|
||||
text-decoration: none;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
.light-button:hover, .light-button:focus, a.light-button:hover, a.light-button:focus {
|
||||
border: 1px solid #ccc;
|
||||
background-color: white;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(white, #e6e6e6, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(white, #e6e6e6, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(white, #e6e6e6, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(white, #e6e6e6, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(white, #e6e6e6, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(white, #e6e6e6, false, false, false, false, false, false, false, false));
|
||||
text-decoration: none; }
|
||||
|
||||
.action-link a {
|
||||
color: #993333; }
|
||||
.action-link a:hover {
|
||||
color: #4d1919;
|
||||
text-decoration: none; }
|
||||
|
||||
.content, div.course-wrapper section.course-content {
|
||||
-webkit-box-shadow: compact(inset 0 0 2px 3px #f3f3f3, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 2px 3px #f3f3f3, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 2px 3px #f3f3f3, false, false, false, false, false, false, false, false);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table-cell;
|
||||
padding: lh();
|
||||
vertical-align: top;
|
||||
width: 76.518%;
|
||||
overflow: hidden; }
|
||||
@media print {
|
||||
.content, div.course-wrapper section.course-content {
|
||||
-webkit-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(none, false, false, false, false, false, false, false, false); } }
|
||||
|
||||
.sidebar, section.course-index {
|
||||
background: #e3e3e3;
|
||||
-webkit-border-radius: 4px 0 0 4px;
|
||||
-moz-border-radius: 4px 0 0 4px;
|
||||
-ms-border-radius: 4px 0 0 4px;
|
||||
-o-border-radius: 4px 0 0 4px;
|
||||
border-radius: 4px 0 0 4px;
|
||||
border-right: 1px solid #d3d3d3;
|
||||
-webkit-box-shadow: compact(inset 0 0 0 1px #f6f6f6, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 0 1px #f6f6f6, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 0 1px #f6f6f6, false, false, false, false, false, false, false, false);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table-cell;
|
||||
font-family: "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
|
||||
position: relative;
|
||||
text-shadow: 0 1px 0 #f1f1f1;
|
||||
vertical-align: top;
|
||||
width: 23.482%; }
|
||||
.sidebar h1, section.course-index h1, .sidebar h2, section.course-index h2 {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
letter-spacing: 0;
|
||||
text-transform: none; }
|
||||
.sidebar a, section.course-index a {
|
||||
border: none;
|
||||
font-style: normal; }
|
||||
.sidebar .bottom-border, section.course-index .bottom-border {
|
||||
border-bottom: 1px solid #d3d3d3;
|
||||
-webkit-box-shadow: compact(0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 #eeeeee, false, false, false, false, false, false, false, false); }
|
||||
@media print {
|
||||
.sidebar, section.course-index {
|
||||
display: none; } }
|
||||
.sidebar h3, section.course-index h3 {
|
||||
background: none;
|
||||
border: none;
|
||||
color: #000;
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
overflow: hidden; }
|
||||
.sidebar h3 a, section.course-index h3 a {
|
||||
color: #4d4d4d;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
padding: 7px 7px 7px 30px;
|
||||
text-decoration: none;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
.sidebar h3 span.ui-icon, section.course-index h3 span.ui-icon {
|
||||
background-image: url(../images/ui-icons_454545_256x240.png); }
|
||||
.sidebar h3.active, section.course-index h3.active, .sidebar section.course-index div#accordion h3.ui-accordion-header.ui-state-active, section.course-index div#accordion .sidebar h3.ui-accordion-header.ui-state-active, section.course-index div#accordion h3.ui-accordion-header.ui-state-active {
|
||||
background: none;
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
border-bottom: 1px solid #d3d3d3;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
color: #000;
|
||||
font-weight: bold; }
|
||||
.sidebar h3.active a, section.course-index h3.active a, .sidebar section.course-index div#accordion h3.ui-accordion-header.ui-state-active a, section.course-index div#accordion .sidebar h3.ui-accordion-header.ui-state-active a, section.course-index div#accordion h3.ui-accordion-header.ui-state-active a {
|
||||
color: #000; }
|
||||
.sidebar header#open_close_accordion, section.course-index header#open_close_accordion {
|
||||
border-bottom: 1px solid #d3d3d3;
|
||||
-webkit-box-shadow: compact(0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
padding: lh(0.5) lh();
|
||||
position: relative; }
|
||||
.sidebar header#open_close_accordion h2, section.course-index header#open_close_accordion h2 {
|
||||
margin: 0;
|
||||
padding-right: 20px; }
|
||||
.sidebar header#open_close_accordion a, section.course-index header#open_close_accordion a {
|
||||
background: #eeeeee url("../images/slide-left-icon.png") center center no-repeat;
|
||||
border: 1px solid #D3D3D3;
|
||||
-webkit-border-radius: 3px 0 0 3px;
|
||||
-moz-border-radius: 3px 0 0 3px;
|
||||
-ms-border-radius: 3px 0 0 3px;
|
||||
-o-border-radius: 3px 0 0 3px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
height: 16px;
|
||||
padding: 8px;
|
||||
position: absolute;
|
||||
right: -1px;
|
||||
text-indent: -9999px;
|
||||
top: 6px;
|
||||
width: 16px; }
|
||||
.sidebar header#open_close_accordion a:hover, section.course-index header#open_close_accordion a:hover {
|
||||
background-color: white; }
|
||||
.sidebar a.button, section.course-index a.button {
|
||||
text-decoration: none; }
|
||||
|
||||
.topbar, nav.sequence-nav {
|
||||
background: #f6efd4;
|
||||
border-bottom: 1px solid #eddfaa;
|
||||
border-top: 1px solid #fff;
|
||||
font-size: 12px;
|
||||
line-height: 46px;
|
||||
text-shadow: 0 1px 0 #fff; }
|
||||
@media print {
|
||||
.topbar, nav.sequence-nav {
|
||||
display: none; } }
|
||||
.topbar a, nav.sequence-nav a {
|
||||
line-height: 46px;
|
||||
border-bottom: 0;
|
||||
color: #292309; }
|
||||
.topbar a:hover, nav.sequence-nav a:hover {
|
||||
color: #7e691a;
|
||||
text-decoration: none; }
|
||||
.topbar a.block-link, nav.sequence-nav a.block-link, .topbar nav.sequence-nav ol a, nav.sequence-nav ol .topbar a, nav.sequence-nav ol a {
|
||||
border-left: 1px solid #e4d080;
|
||||
-webkit-box-shadow: compact(inset 1px 0 0 #faf7e9, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 1px 0 0 #faf7e9, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 1px 0 0 #faf7e9, false, false, false, false, false, false, false, false);
|
||||
display: block;
|
||||
text-transform: uppercase; }
|
||||
.topbar a.block-link:hover, nav.sequence-nav a.block-link:hover, .topbar nav.sequence-nav ol a:hover, nav.sequence-nav ol .topbar a:hover, nav.sequence-nav ol a:hover {
|
||||
background: none; }
|
||||
|
||||
.tran, section.course-index {
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
|
||||
p.ie-warning {
|
||||
background: yellow;
|
||||
display: block !important;
|
||||
line-height: 1.3em;
|
||||
margin-bottom: 0;
|
||||
padding: lh();
|
||||
text-align: left; }
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
max-height: 100%; }
|
||||
|
||||
body.courseware {
|
||||
height: 100%;
|
||||
max-height: 100%; }
|
||||
body.courseware .container {
|
||||
margin-bottom: 40px;
|
||||
margin-top: 20px; }
|
||||
body.courseware footer.fixed-bottom {
|
||||
Position: static; }
|
||||
|
||||
div.course-wrapper ul, div.course-wrapper ol {
|
||||
list-style: none; }
|
||||
div.course-wrapper section.course-content {
|
||||
-webkit-border-radius: 0 4px 4px 0;
|
||||
-moz-border-radius: 0 4px 4px 0;
|
||||
-ms-border-radius: 0 4px 4px 0;
|
||||
-o-border-radius: 0 4px 4px 0;
|
||||
border-radius: 0 4px 4px 0; }
|
||||
div.course-wrapper section.course-content h1 {
|
||||
margin: 0 0 22.652px; }
|
||||
div.course-wrapper section.course-content p {
|
||||
margin-bottom: 22.652px; }
|
||||
div.course-wrapper section.course-content p:empty {
|
||||
display: none;
|
||||
margin-bottom: 0; }
|
||||
div.course-wrapper section.course-content ul li {
|
||||
margin-bottom: 11.326px; }
|
||||
div.course-wrapper section.course-content .problem-set, div.course-wrapper section.course-content section.problems-wrapper, div.course-wrapper section.course-content div#seq_content, div.course-wrapper section.course-content ol.vert-mod > li, div.course-wrapper section.course-content section.problems-wrapper, div.course-wrapper section.course-content div#seq_content {
|
||||
position: relative; }
|
||||
div.course-wrapper section.course-content .problem-set h2, div.course-wrapper section.course-content section.problems-wrapper h2, div.course-wrapper section.course-content div#seq_content h2, div.course-wrapper section.course-content ol.vert-mod > li h2, div.course-wrapper section.course-content section.problems-wrapper h2, div.course-wrapper section.course-content div#seq_content h2 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 15px;
|
||||
width: 20.109%;
|
||||
padding-right: 2.717%;
|
||||
border-right: 1px dashed #ddd;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table-cell;
|
||||
vertical-align: top; }
|
||||
div.course-wrapper section.course-content .problem-set h2.problem-header section.staff, div.course-wrapper section.course-content section.problems-wrapper h2.problem-header section.staff, div.course-wrapper section.course-content div#seq_content h2.problem-header section.staff, div.course-wrapper section.course-content ol.vert-mod > li h2.problem-header section.staff, div.course-wrapper section.course-content section.problems-wrapper h2.problem-header section.staff, div.course-wrapper section.course-content div#seq_content h2.problem-header section.staff {
|
||||
margin-top: 30px;
|
||||
font-size: 80%; }
|
||||
@media screen and (max-width:1120px) {
|
||||
div.course-wrapper section.course-content .problem-set h2, div.course-wrapper section.course-content section.problems-wrapper h2, div.course-wrapper section.course-content div#seq_content h2, div.course-wrapper section.course-content ol.vert-mod > li h2, div.course-wrapper section.course-content section.problems-wrapper h2, div.course-wrapper section.course-content div#seq_content h2 {
|
||||
display: block;
|
||||
width: auto;
|
||||
border-right: 0; } }
|
||||
@media print {
|
||||
div.course-wrapper section.course-content .problem-set h2, div.course-wrapper section.course-content section.problems-wrapper h2, div.course-wrapper section.course-content div#seq_content h2, div.course-wrapper section.course-content ol.vert-mod > li h2, div.course-wrapper section.course-content section.problems-wrapper h2, div.course-wrapper section.course-content div#seq_content h2 {
|
||||
display: block;
|
||||
width: auto;
|
||||
border-right: 0; } }
|
||||
div.course-wrapper section.course-content .problem-set section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, div.course-wrapper section.course-content div#seq_content section.problem, div.course-wrapper section.course-content ol.vert-mod > li section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, div.course-wrapper section.course-content div#seq_content section.problem {
|
||||
display: table-cell;
|
||||
width: 77.174%;
|
||||
padding-left: 2.717%; }
|
||||
@media screen and (max-width:1120px) {
|
||||
div.course-wrapper section.course-content .problem-set section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, div.course-wrapper section.course-content div#seq_content section.problem, div.course-wrapper section.course-content ol.vert-mod > li section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, div.course-wrapper section.course-content div#seq_content section.problem {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding: 0; } }
|
||||
@media print {
|
||||
div.course-wrapper section.course-content .problem-set section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, div.course-wrapper section.course-content div#seq_content section.problem, div.course-wrapper section.course-content ol.vert-mod > li section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, div.course-wrapper section.course-content div#seq_content section.problem {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding: 0; }
|
||||
div.course-wrapper section.course-content .problem-set section.problem canvas, div.course-wrapper section.course-content section.problems-wrapper section.problem canvas, div.course-wrapper section.course-content div#seq_content section.problem canvas, div.course-wrapper section.course-content ol.vert-mod > li section.problem canvas, div.course-wrapper section.course-content section.problems-wrapper section.problem canvas, div.course-wrapper section.course-content div#seq_content section.problem canvas, div.course-wrapper section.course-content .problem-set section.problem img, div.course-wrapper section.course-content section.problems-wrapper section.problem img, div.course-wrapper section.course-content div#seq_content section.problem img, div.course-wrapper section.course-content ol.vert-mod > li section.problem img, div.course-wrapper section.course-content section.problems-wrapper section.problem img, div.course-wrapper section.course-content div#seq_content section.problem img {
|
||||
page-break-inside: avoid; } }
|
||||
div.course-wrapper section.course-content .problem-set section.problem span.unanswered, div.course-wrapper section.course-content section.problems-wrapper section.problem span.unanswered, div.course-wrapper section.course-content div#seq_content section.problem span.unanswered, div.course-wrapper section.course-content ol.vert-mod > li section.problem span.unanswered, div.course-wrapper section.course-content section.problems-wrapper section.problem span.unanswered, div.course-wrapper section.course-content div#seq_content section.problem span.unanswered, div.course-wrapper section.course-content .problem-set section.problem span.ui-icon-bullet, div.course-wrapper section.course-content section.problems-wrapper section.problem span.ui-icon-bullet, div.course-wrapper section.course-content div#seq_content section.problem span.ui-icon-bullet, div.course-wrapper section.course-content ol.vert-mod > li section.problem span.ui-icon-bullet, div.course-wrapper section.course-content section.problems-wrapper section.problem span.ui-icon-bullet, div.course-wrapper section.course-content div#seq_content section.problem span.ui-icon-bullet {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/unanswered-icon.png") center center no-repeat;
|
||||
height: 14px;
|
||||
position: relative;
|
||||
top: 4px;
|
||||
width: 14px; }
|
||||
div.course-wrapper section.course-content .problem-set section.problem span.correct, div.course-wrapper section.course-content section.problems-wrapper section.problem span.correct, div.course-wrapper section.course-content div#seq_content section.problem span.correct, div.course-wrapper section.course-content ol.vert-mod > li section.problem span.correct, div.course-wrapper section.course-content section.problems-wrapper section.problem span.correct, div.course-wrapper section.course-content div#seq_content section.problem span.correct, div.course-wrapper section.course-content .problem-set section.problem span.ui-icon-check, div.course-wrapper section.course-content section.problems-wrapper section.problem span.ui-icon-check, div.course-wrapper section.course-content div#seq_content section.problem span.ui-icon-check, div.course-wrapper section.course-content ol.vert-mod > li section.problem span.ui-icon-check, div.course-wrapper section.course-content section.problems-wrapper section.problem span.ui-icon-check, div.course-wrapper section.course-content div#seq_content section.problem span.ui-icon-check {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/correct-icon.png") center center no-repeat;
|
||||
height: 20px;
|
||||
position: relative;
|
||||
top: 6px;
|
||||
width: 25px; }
|
||||
div.course-wrapper section.course-content .problem-set section.problem span.incorrect, div.course-wrapper section.course-content section.problems-wrapper section.problem span.incorrect, div.course-wrapper section.course-content div#seq_content section.problem span.incorrect, div.course-wrapper section.course-content ol.vert-mod > li section.problem span.incorrect, div.course-wrapper section.course-content section.problems-wrapper section.problem span.incorrect, div.course-wrapper section.course-content div#seq_content section.problem span.incorrect, div.course-wrapper section.course-content .problem-set section.problem span.ui-icon-close, div.course-wrapper section.course-content section.problems-wrapper section.problem span.ui-icon-close, div.course-wrapper section.course-content div#seq_content section.problem span.ui-icon-close, div.course-wrapper section.course-content ol.vert-mod > li section.problem span.ui-icon-close, div.course-wrapper section.course-content section.problems-wrapper section.problem span.ui-icon-close, div.course-wrapper section.course-content div#seq_content section.problem span.ui-icon-close {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/incorrect-icon.png") center center no-repeat;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
position: relative;
|
||||
top: 6px; }
|
||||
div.course-wrapper section.course-content .problem-set div > span, div.course-wrapper section.course-content section.problems-wrapper div > span, div.course-wrapper section.course-content div#seq_content div > span, div.course-wrapper section.course-content ol.vert-mod > li div > span, div.course-wrapper section.course-content section.problems-wrapper div > span, div.course-wrapper section.course-content div#seq_content div > span {
|
||||
display: block;
|
||||
margin-bottom: 11.326px; }
|
||||
div.course-wrapper section.course-content .problem-set div > span[answer], div.course-wrapper section.course-content section.problems-wrapper div > span[answer], div.course-wrapper section.course-content div#seq_content div > span[answer], div.course-wrapper section.course-content ol.vert-mod > li div > span[answer], div.course-wrapper section.course-content section.problems-wrapper div > span[answer], div.course-wrapper section.course-content div#seq_content div > span[answer] {
|
||||
border-top: 1px solid #ededed;
|
||||
border-bottom: 1px solid #ededed;
|
||||
background: #f3f3f3;
|
||||
margin: 0 -22.652px;
|
||||
padding: 11.326px 22.652px; }
|
||||
div.course-wrapper section.course-content .problem-set input[type="text"], div.course-wrapper section.course-content section.problems-wrapper input[type="text"], div.course-wrapper section.course-content div#seq_content input[type="text"], div.course-wrapper section.course-content ol.vert-mod > li input[type="text"], div.course-wrapper section.course-content section.problems-wrapper input[type="text"], div.course-wrapper section.course-content div#seq_content input[type="text"] {
|
||||
display: inline-block;
|
||||
width: 50%; }
|
||||
div.course-wrapper section.course-content .problem-set center, div.course-wrapper section.course-content section.problems-wrapper center, div.course-wrapper section.course-content div#seq_content center, div.course-wrapper section.course-content ol.vert-mod > li center, div.course-wrapper section.course-content section.problems-wrapper center, div.course-wrapper section.course-content div#seq_content center {
|
||||
display: block;
|
||||
margin: 22.652px 0;
|
||||
border: 1px solid #ccc;
|
||||
padding: 22.652px; }
|
||||
div.course-wrapper section.course-content .problem-set section.action, div.course-wrapper section.course-content section.problems-wrapper section.action, div.course-wrapper section.course-content div#seq_content section.action, div.course-wrapper section.course-content ol.vert-mod > li section.action, div.course-wrapper section.course-content section.problems-wrapper section.action, div.course-wrapper section.course-content div#seq_content section.action {
|
||||
margin-top: 22.652px; }
|
||||
div.course-wrapper section.course-content .problem-set section.action input[type="button"], div.course-wrapper section.course-content section.problems-wrapper section.action input[type="button"], div.course-wrapper section.course-content div#seq_content section.action input[type="button"], div.course-wrapper section.course-content ol.vert-mod > li section.action input[type="button"], div.course-wrapper section.course-content section.problems-wrapper section.action input[type="button"], div.course-wrapper section.course-content div#seq_content section.action input[type="button"] {
|
||||
padding: 9.061px 22.652px;
|
||||
text-shadow: 0 -1px 0 #666666; }
|
||||
div.course-wrapper section.course-content section.problems-wrapper {
|
||||
display: table;
|
||||
width: 100%; }
|
||||
@media screen and (max-width:1120px) {
|
||||
div.course-wrapper section.course-content section.problems-wrapper {
|
||||
display: block;
|
||||
width: auto; } }
|
||||
div.course-wrapper section.course-content div#seq_content h1 {
|
||||
background: none;
|
||||
margin-bottom: 22.652px;
|
||||
padding-bottom: 0;
|
||||
border-bottom: none; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li {
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin-bottom: 15px;
|
||||
padding: 0 0 15px; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li header {
|
||||
-webkit-border-radius: 0 4px 0 0;
|
||||
-moz-border-radius: 0 4px 0 0;
|
||||
-ms-border-radius: 0 4px 0 0;
|
||||
-o-border-radius: 0 4px 0 0;
|
||||
border-radius: 0 4px 0 0;
|
||||
margin-bottom: -16px; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li header h1 {
|
||||
margin: 0; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li header h2 {
|
||||
float: right;
|
||||
margin-right: 0;
|
||||
margin-top: 8px;
|
||||
text-align: right;
|
||||
padding-right: 0;
|
||||
border-right: 0; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li .histogram {
|
||||
width: 200px;
|
||||
height: 150px; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li ul {
|
||||
list-style: disc outside none;
|
||||
padding-left: 1em; }
|
||||
div.course-wrapper section.course-content ol.vert-mod > li nav.sequence-bottom ul {
|
||||
list-style: none;
|
||||
padding: 0; }
|
||||
div.course-wrapper section.course-content section.tutorials h2 {
|
||||
margin-bottom: 22.652px; }
|
||||
div.course-wrapper section.course-content section.tutorials ul {
|
||||
margin: 0;
|
||||
zoom: 1; }
|
||||
div.course-wrapper section.course-content section.tutorials ul:before, div.course-wrapper section.course-content section.tutorials ul:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
div.course-wrapper section.course-content section.tutorials ul:after {
|
||||
clear: both; }
|
||||
div.course-wrapper section.course-content section.tutorials ul li {
|
||||
width: 31.522%;
|
||||
float: left;
|
||||
margin-right: 2.717%;
|
||||
margin-bottom: 22.652px; }
|
||||
div.course-wrapper section.course-content section.tutorials ul li:nth-child(3n) {
|
||||
margin-right: 0; }
|
||||
div.course-wrapper section.course-content section.tutorials ul li:nth-child(3n+1) {
|
||||
clear: both; }
|
||||
div.course-wrapper section.course-content section.tutorials ul li a {
|
||||
font-weight: bold; }
|
||||
div.course-wrapper section.course-content div.staff_info {
|
||||
zoom: 1;
|
||||
white-space: pre-wrap;
|
||||
border-top: 1px solid #ccc;
|
||||
padding-top: 22.652px;
|
||||
margin-top: 22.652px;
|
||||
line-height: 22.652px;
|
||||
font-family: Consolas, "Lucida Console", Monaco, "Courier New", Courier, monospace; }
|
||||
div.course-wrapper section.course-content div.staff_info:before, div.course-wrapper section.course-content div.staff_info:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
div.course-wrapper section.course-content div.staff_info:after {
|
||||
clear: both; }
|
||||
div.course-wrapper section.course-content div.ui-slider {
|
||||
border: 1px solid #aaa;
|
||||
background: #ddd;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0; }
|
||||
div.course-wrapper section.course-content div.ui-slider a.ui-slider-handle {
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
background: #993333 url(../images/slider-bars.png) center center no-repeat;
|
||||
border: 1px solid #4d1919;
|
||||
cursor: pointer; }
|
||||
div.course-wrapper section.course-content div.ui-slider a.ui-slider-handle:hover, div.course-wrapper section.course-content div.ui-slider a.ui-slider-handle:focus {
|
||||
background-color: #bf4040;
|
||||
outline: none; }
|
||||
div.course-wrapper section.course-content div.ui-tabs {
|
||||
border: 0;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
div.course-wrapper section.course-content div.ui-tabs .ui-tabs-nav {
|
||||
background: none;
|
||||
border: 0;
|
||||
margin-bottom: 11.326px; }
|
||||
div.course-wrapper section.course-content div.ui-tabs .ui-tabs-panel {
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
padding: 0; }
|
||||
div.course-wrapper.closed section.course-index {
|
||||
width: 3.077%;
|
||||
overflow: hidden; }
|
||||
div.course-wrapper.closed section.course-index header#open_close_accordion {
|
||||
padding: 0;
|
||||
min-height: 47px; }
|
||||
div.course-wrapper.closed section.course-index header#open_close_accordion a {
|
||||
background-image: url("../images/slide-right-icon.png"); }
|
||||
div.course-wrapper.closed section.course-index header#open_close_accordion h2 {
|
||||
visibility: hidden;
|
||||
width: 10px; }
|
||||
div.course-wrapper.closed section.course-index div#accordion {
|
||||
visibility: hidden;
|
||||
width: 10px;
|
||||
padding: 0; }
|
||||
div.course-wrapper.closed section.course-index div#accordion nav {
|
||||
white-space: pre;
|
||||
overflow: hidden; }
|
||||
div.course-wrapper.closed section.course-index div#accordion nav ul {
|
||||
overflow: hidden;
|
||||
white-space: nowrap; }
|
||||
div.course-wrapper.closed section.course-content {
|
||||
width: 97.773%; }
|
||||
|
||||
nav.sequence-nav {
|
||||
border-bottom: 1px solid #e4d080;
|
||||
margin-bottom: 22.652px;
|
||||
position: relative;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-moz-border-top-right-radius: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-ms-border-top-right-radius: 4px;
|
||||
-o-border-top-right-radius: 4px;
|
||||
border-top-right-radius: 4px; }
|
||||
nav.sequence-nav ol {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table;
|
||||
height: 100%;
|
||||
padding-right: 8.696%;
|
||||
width: 100%; }
|
||||
nav.sequence-nav ol li {
|
||||
border-left: 1px solid #e4d080;
|
||||
display: table-cell;
|
||||
min-width: 20px; }
|
||||
nav.sequence-nav ol li:first-child {
|
||||
border-left: none; }
|
||||
nav.sequence-nav ol li .inactive, nav.sequence-nav ol li a.seq_video_inactive, nav.sequence-nav ol li a.seq_other_inactive, nav.sequence-nav ol li a.seq_vertical_inactive, nav.sequence-nav ol li a.seq_problem_inactive {
|
||||
background-repeat: no-repeat; }
|
||||
nav.sequence-nav ol li .inactive:hover, nav.sequence-nav ol li a.seq_video_inactive:hover, nav.sequence-nav ol li a.seq_other_inactive:hover, nav.sequence-nav ol li a.seq_vertical_inactive:hover, nav.sequence-nav ol li a.seq_problem_inactive:hover {
|
||||
background-color: #f9f4e1; }
|
||||
nav.sequence-nav ol li .visited, nav.sequence-nav ol li a.seq_video_visited, nav.sequence-nav ol li a.seq_other_visited, nav.sequence-nav ol li a.seq_vertical_visited, nav.sequence-nav ol li a.seq_problem_visited {
|
||||
background-color: #DCCDA2;
|
||||
background-repeat: no-repeat;
|
||||
-webkit-box-shadow: compact(inset 0 0 3px #ceb97d, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 3px #ceb97d, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 3px #ceb97d, false, false, false, false, false, false, false, false); }
|
||||
nav.sequence-nav ol li .visited:hover, nav.sequence-nav ol li a.seq_video_visited:hover, nav.sequence-nav ol li a.seq_other_visited:hover, nav.sequence-nav ol li a.seq_vertical_visited:hover, nav.sequence-nav ol li a.seq_problem_visited:hover {
|
||||
background-color: #f6efd4;
|
||||
background-position: center center; }
|
||||
nav.sequence-nav ol li .active, nav.sequence-nav ol li a.seq_video_active, nav.sequence-nav ol li a.seq_other_active, nav.sequence-nav ol li a.seq_vertical_active, nav.sequence-nav ol li a.seq_problem_active, nav.sequence-nav ol li section.course-index div#accordion h3.ui-accordion-header.ui-state-active, section.course-index div#accordion nav.sequence-nav ol li h3.ui-accordion-header.ui-state-active {
|
||||
background-color: #fff;
|
||||
background-repeat: no-repeat;
|
||||
-webkit-box-shadow: compact(0 1px 0 white, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 white, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 white, false, false, false, false, false, false, false, false); }
|
||||
nav.sequence-nav ol li .active:hover, nav.sequence-nav ol li a.seq_video_active:hover, nav.sequence-nav ol li a.seq_other_active:hover, nav.sequence-nav ol li a.seq_vertical_active:hover, nav.sequence-nav ol li a.seq_problem_active:hover, nav.sequence-nav ol li section.course-index div#accordion h3.ui-accordion-header.ui-state-active:hover, section.course-index div#accordion nav.sequence-nav ol li h3.ui-accordion-header.ui-state-active:hover {
|
||||
background-color: #fff;
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a {
|
||||
background-position: center center;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 17px;
|
||||
padding: 15px 0 14px;
|
||||
position: relative;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.4s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.4s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.4s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.4s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.4s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
width: 100%; }
|
||||
nav.sequence-nav ol li a.progress, nav.sequence-nav ol li a.progress-none, nav.sequence-nav ol li a.progress-some, nav.sequence-nav ol li a.progress-done {
|
||||
border-bottom-style: solid;
|
||||
border-bottom-width: 4px; }
|
||||
nav.sequence-nav ol li a.progress-none {
|
||||
border-bottom-color: red; }
|
||||
nav.sequence-nav ol li a.progress-some {
|
||||
border-bottom-color: yellow; }
|
||||
nav.sequence-nav ol li a.progress-done {
|
||||
border-bottom-color: green; }
|
||||
nav.sequence-nav ol li a.seq_video_inactive {
|
||||
background-image: url("../images/sequence-nav/video-icon-normal.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_video_visited {
|
||||
background-image: url("../images/sequence-nav/video-icon-visited.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_video_active {
|
||||
background-image: url("../images/sequence-nav/video-icon-current.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_other_inactive {
|
||||
background-image: url("../images/sequence-nav/document-icon-normal.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_other_visited {
|
||||
background-image: url("../images/sequence-nav/document-icon-visited.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_other_active {
|
||||
background-image: url("../images/sequence-nav/document-icon-current.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_vertical_inactive, nav.sequence-nav ol li a.seq_problem_inactive {
|
||||
background-image: url("../images/sequence-nav/list-icon-normal.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_vertical_visited, nav.sequence-nav ol li a.seq_problem_visited {
|
||||
background-image: url("../images/sequence-nav/list-icon-visited.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a.seq_vertical_active, nav.sequence-nav ol li a.seq_problem_active {
|
||||
background-image: url("../images/sequence-nav/list-icon-current.png");
|
||||
background-position: center; }
|
||||
nav.sequence-nav ol li a p {
|
||||
background: #333;
|
||||
color: #fff;
|
||||
display: none;
|
||||
line-height: 22.652px;
|
||||
left: 0px;
|
||||
opacity: 0;
|
||||
padding: 6px;
|
||||
position: absolute;
|
||||
top: 48px;
|
||||
text-shadow: 0 -1px 0 black;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.1s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(cubic-bezier(0.77, 0, 0.175, 1), false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(cubic-bezier(0.77, 0, 0.175, 1), false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(cubic-bezier(0.77, 0, 0.175, 1), false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(cubic-bezier(0.77, 0, 0.175, 1), false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(cubic-bezier(0.77, 0, 0.175, 1), false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
white-space: pre;
|
||||
z-index: 99; }
|
||||
nav.sequence-nav ol li a p:empty {
|
||||
background: none; }
|
||||
nav.sequence-nav ol li a p:empty::after {
|
||||
display: none; }
|
||||
nav.sequence-nav ol li a p::after {
|
||||
background: #333;
|
||||
content: " ";
|
||||
display: block;
|
||||
height: 10px;
|
||||
left: 18px;
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
width: 10px; }
|
||||
nav.sequence-nav ol li a:hover p {
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
opacity: 1; }
|
||||
nav.sequence-nav ul {
|
||||
list-style: none;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 8.696%; }
|
||||
nav.sequence-nav ul li {
|
||||
float: left;
|
||||
width: 50%; }
|
||||
nav.sequence-nav ul li.prev a, nav.sequence-nav ul li.next a {
|
||||
background-color: #f2e7bf;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
border-left: 1px solid #e4d080;
|
||||
-webkit-box-shadow: compact(inset 1px 0 0 #faf7e9, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 1px 0 0 #faf7e9, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 1px 0 0 #faf7e9, false, false, false, false, false, false, false, false);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
text-indent: -9999px;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
nav.sequence-nav ul li.prev a:hover, nav.sequence-nav ul li.next a:hover {
|
||||
opacity: .5; }
|
||||
nav.sequence-nav ul li.prev a.disabled, nav.sequence-nav ul li.next a.disabled {
|
||||
cursor: normal;
|
||||
opacity: .4; }
|
||||
nav.sequence-nav ul li.prev a {
|
||||
background-image: url("../images/sequence-nav/previous-icon.png"); }
|
||||
nav.sequence-nav ul li.prev a:hover {
|
||||
background-color: #f6efd4; }
|
||||
nav.sequence-nav ul li.next a {
|
||||
background-image: url("../images/sequence-nav/next-icon.png"); }
|
||||
nav.sequence-nav ul li.next a:hover {
|
||||
background-color: #f6efd4; }
|
||||
body.touch-based-device nav.sequence-nav ol li a:hover p {
|
||||
display: none; }
|
||||
|
||||
section.course-content {
|
||||
position: relative; }
|
||||
section.course-content ol.vert-mod nav.sequence-nav {
|
||||
margin-top: -15px;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0; }
|
||||
section.course-content nav.sequence-bottom {
|
||||
margin: 45.304px 0 0;
|
||||
text-align: center; }
|
||||
section.course-content nav.sequence-bottom ul {
|
||||
background-color: #f2e7bf;
|
||||
background-color: #f2e7bf;
|
||||
border: 1px solid #e4d080;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-box-shadow: compact(inset 0 0 0 1px #faf7e9, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 0 1px #faf7e9, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 0 1px #faf7e9, false, false, false, false, false, false, false, false);
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto; }
|
||||
section.course-content nav.sequence-bottom ul li {
|
||||
float: left; }
|
||||
section.course-content nav.sequence-bottom ul li.prev, section.course-content nav.sequence-bottom ul li.next {
|
||||
margin-bottom: 0; }
|
||||
section.course-content nav.sequence-bottom ul li.prev a, section.course-content nav.sequence-bottom ul li.next a {
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
border-bottom: none;
|
||||
display: block;
|
||||
padding: 11.326px 4px;
|
||||
text-indent: -9999px;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(cubic-bezier(0.455, 0.03, 0.515, 0.955), false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
width: 45px; }
|
||||
section.course-content nav.sequence-bottom ul li.prev a:hover, section.course-content nav.sequence-bottom ul li.next a:hover {
|
||||
background-color: #f6efd4;
|
||||
color: #7e691a;
|
||||
opacity: .5;
|
||||
text-decoration: none; }
|
||||
section.course-content nav.sequence-bottom ul li.prev a.disabled, section.course-content nav.sequence-bottom ul li.next a.disabled {
|
||||
background-color: #fffffe;
|
||||
opacity: .4; }
|
||||
section.course-content nav.sequence-bottom ul li.prev a {
|
||||
background-image: url("../images/sequence-nav/previous-icon.png");
|
||||
border-right: 1px solid #e4d080; }
|
||||
section.course-content nav.sequence-bottom ul li.prev a:hover {
|
||||
background-color: none; }
|
||||
section.course-content nav.sequence-bottom ul li.next a {
|
||||
background-image: url("../images/sequence-nav/next-icon.png"); }
|
||||
section.course-content nav.sequence-bottom ul li.next a:hover {
|
||||
background-color: none; }
|
||||
|
||||
section.course-index header {
|
||||
max-height: 47px; }
|
||||
section.course-index header h2 {
|
||||
white-space: nowrap; }
|
||||
section.course-index div#accordion h3 {
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #eeeeee, false, false, false, false, false, false, false, false);
|
||||
border-top: 1px solid #d3d3d3;
|
||||
overflow: hidden;
|
||||
margin: 0; }
|
||||
section.course-index div#accordion h3:first-child {
|
||||
border: none; }
|
||||
section.course-index div#accordion h3:hover {
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false); }
|
||||
section.course-index div#accordion h3.ui-accordion-header {
|
||||
color: #000; }
|
||||
section.course-index div#accordion h3.ui-accordion-header a {
|
||||
font-size: 14px;
|
||||
color: #4d4d4d; }
|
||||
section.course-index div#accordion h3.ui-accordion-header.ui-state-active {
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e1e1e1, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
border-bottom: 1px solid #d3d3d3; }
|
||||
section.course-index div#accordion ul.ui-accordion-content {
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: compact(inset -1px 0 0 #e6e6e6, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset -1px 0 0 #e6e6e6, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset -1px 0 0 #e6e6e6, false, false, false, false, false, false, false, false);
|
||||
background: #dadada;
|
||||
border: none;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
padding: 1em 1.5em; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li {
|
||||
margin-bottom: 11.326px; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a {
|
||||
border: 1px solid transparent;
|
||||
background: transparent;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-ms-border-radius: 4px;
|
||||
-o-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
position: relative;
|
||||
padding: 5px 36px 5px 10px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
color: #666; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a p {
|
||||
font-weight: bold;
|
||||
margin-bottom: 0; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a p span.subtitle {
|
||||
color: #666;
|
||||
font-weight: normal;
|
||||
display: block; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a:after {
|
||||
background: transparent;
|
||||
border-top: 1px solid #b4b4b4;
|
||||
border-right: 1px solid #b4b4b4;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 12px;
|
||||
margin-top: -6px;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 30px;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
width: 12px; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a:hover {
|
||||
background-image: compact(linear, compact(-90deg, rgba(245, 245, 245, 0.4), rgba(230, 230, 230, 0.4), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, rgba(245, 245, 245, 0.4), rgba(230, 230, 230, 0.4), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, rgba(245, 245, 245, 0.4), rgba(230, 230, 230, 0.4), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, rgba(245, 245, 245, 0.4), rgba(230, 230, 230, 0.4), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, rgba(245, 245, 245, 0.4), rgba(230, 230, 230, 0.4), false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
border-color: #c8c8c8; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a:hover:after {
|
||||
opacity: 1;
|
||||
right: 15px;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.2s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(linear, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a:hover > a p {
|
||||
color: #333; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a:active {
|
||||
-webkit-box-shadow: compact(inset 0 1px 14px 0 rgba(0, 0, 0, 0.1), false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 14px 0 rgba(0, 0, 0, 0.1), false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 14px 0 rgba(0, 0, 0, 0.1), false, false, false, false, false, false, false, false); }
|
||||
section.course-index div#accordion ul.ui-accordion-content li a:active:after {
|
||||
opacity: 1;
|
||||
right: 15px; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li.active {
|
||||
font-weight: bold; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li.active > a {
|
||||
background: #f0f0f0;
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e6e6e6, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e6e6e6, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e6e6e6, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e6e6e6, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
background-image: compact(linear, compact(-90deg, #f5f5f5, #e6e6e6, false, false, false, false, false, false, false, false), false, false, false, false, false, false, false, false, false);
|
||||
border-color: #c8c8c8; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li.active > a:after {
|
||||
opacity: 1;
|
||||
right: 15px; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li.active > a p {
|
||||
color: #333; }
|
||||
section.course-index div#accordion ul.ui-accordion-content li.active span.subtitle {
|
||||
font-weight: normal; }
|
||||
|
||||
@-moz-document url-prefix() {
|
||||
a.add-fullscreen {
|
||||
display: none !important; } }
|
||||
|
||||
section.course-content .dullify, section.course-content div.video article.video-wrapper section.video-controls ul.vcr, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls {
|
||||
opacity: .4;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
section.course-content .dullify:hover, section.course-content div.video article.video-wrapper section.video-controls ul.vcr:hover, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls:hover {
|
||||
opacity: 1; }
|
||||
section.course-content div.video {
|
||||
zoom: 1;
|
||||
background: #f3f3f3;
|
||||
border-bottom: 1px solid #e1e1e1;
|
||||
border-top: 1px solid #e1e1e1;
|
||||
display: block;
|
||||
margin: 0 -22.652px;
|
||||
padding: 6px 22.652px; }
|
||||
section.course-content div.video:before, section.course-content div.video:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
section.course-content div.video:after {
|
||||
clear: both; }
|
||||
section.course-content div.video article.video-wrapper {
|
||||
float: left;
|
||||
margin-right: 2.717%;
|
||||
width: 65.761%; }
|
||||
section.course-content div.video article.video-wrapper section.video-player {
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
padding-bottom: 56.25%;
|
||||
padding-top: 30px;
|
||||
position: relative; }
|
||||
section.course-content div.video article.video-wrapper section.video-player object, section.course-content div.video article.video-wrapper section.video-player iframe {
|
||||
border: none;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls {
|
||||
background: #333;
|
||||
border: 1px solid #000;
|
||||
border-top: 0;
|
||||
color: #ccc;
|
||||
position: relative; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls:hover ul, section.course-content div.video article.video-wrapper section.video-controls:hover div {
|
||||
opacity: 1; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.slider {
|
||||
background: #c2c2c2;
|
||||
border: none;
|
||||
border-bottom: 1px solid #000;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
border-top: 1px solid #000;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #eeeeee, 0 1px 0 #555555, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #eeeeee, 0 1px 0 #555555, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #eeeeee, 0 1px 0 #555555, false, false, false, false, false, false, false);
|
||||
height: 7px;
|
||||
-webkit-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.slider div.ui-widget-header {
|
||||
background: #777;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #999999, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #999999, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #999999, false, false, false, false, false, false, false, false); }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.slider .ui-tooltip.qtip .ui-tooltip-content {
|
||||
background: #993333;
|
||||
border: 1px solid #4d1919;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-ms-border-radius: 2px;
|
||||
-o-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
color: #fff;
|
||||
font: bold 12px "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
|
||||
margin-bottom: 6px;
|
||||
margin-right: 0;
|
||||
overflow: visible;
|
||||
padding: 4px;
|
||||
text-align: center;
|
||||
text-shadow: 0 -1px 0 #732626;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.slider .ui-tooltip.qtip .ui-tooltip-content::after {
|
||||
background: #993333;
|
||||
border-bottom: 1px solid #4d1919;
|
||||
border-right: 1px solid #4d1919;
|
||||
bottom: -5px;
|
||||
content: " ";
|
||||
display: block;
|
||||
height: 7px;
|
||||
left: 50%;
|
||||
margin-left: -3px;
|
||||
position: absolute;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
width: 7px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.slider a.ui-slider-handle {
|
||||
background: #993333 url(../images/slider-handle.png) center center no-repeat;
|
||||
-webkit-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
-moz-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
-ms-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
-o-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
border: 1px solid #4d1919;
|
||||
-webkit-border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
-ms-border-radius: 15px;
|
||||
-o-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
cursor: pointer;
|
||||
height: 15px;
|
||||
margin-left: -7px;
|
||||
top: -4px;
|
||||
-webkit-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
width: 15px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.slider a.ui-slider-handle:focus, section.course-content div.video article.video-wrapper section.video-controls div.slider a.ui-slider-handle:hover {
|
||||
background-color: #bf4040;
|
||||
outline: none; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr {
|
||||
float: left;
|
||||
list-style: none;
|
||||
margin-right: 22.652px;
|
||||
padding: 0; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li {
|
||||
float: left;
|
||||
margin-bottom: 0; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li a {
|
||||
border-bottom: none;
|
||||
border-right: 1px solid #000;
|
||||
-webkit-box-shadow: compact(1px 0 0 #555555, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(1px 0 0 #555555, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(1px 0 0 #555555, false, false, false, false, false, false, false, false);
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
line-height: 46px;
|
||||
padding: 0 16.989px;
|
||||
text-indent: -9999px;
|
||||
-webkit-transition-property: compact(background-color, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(background-color, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(background-color, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(background-color, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(background-color, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(opacity, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(opacity, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(opacity, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(opacity, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(opacity, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
width: 14px;
|
||||
background: url("../images/vcr.png") 15px 15px no-repeat; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li a:empty {
|
||||
height: 46px;
|
||||
background: url("../images/vcr.png") 15px 15px no-repeat; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li a.play {
|
||||
background-position: 17px -114px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li a.play:hover {
|
||||
background-color: #444; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li a.pause {
|
||||
background-position: 16px -50px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li a.pause:hover {
|
||||
background-color: #444; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls ul.vcr li div.vidtime {
|
||||
padding-left: 16.989px;
|
||||
font-weight: bold;
|
||||
line-height: 46px;
|
||||
padding-left: 16.989px;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls {
|
||||
float: right; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds {
|
||||
float: left;
|
||||
position: relative; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds.open > a {
|
||||
background: url("../images/open-arrow.png") 10px center no-repeat; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds.open ol.video_speeds {
|
||||
display: block;
|
||||
opacity: 1; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a {
|
||||
background: url("../images/closed-arrow.png") 10px center no-repeat;
|
||||
border-left: 1px solid #000;
|
||||
border-right: 1px solid #000;
|
||||
-webkit-box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
zoom: 1;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
line-height: 46px;
|
||||
margin-right: 0;
|
||||
padding-left: 15px;
|
||||
position: relative;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
width: 110px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a:before, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a:after {
|
||||
clear: both; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a h3 {
|
||||
color: #999;
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
letter-spacing: 1px;
|
||||
padding: 0 5.663px 0 11.326px;
|
||||
text-transform: uppercase; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a p.active {
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0;
|
||||
padding: 0 11.326px 0 0; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a:hover, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a:active, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds > a:focus {
|
||||
opacity: 1;
|
||||
background-color: #444; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds ol.video_speeds {
|
||||
-webkit-box-shadow: compact(inset 1px 0 0 #555555, 0 3px 0 #444444, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 1px 0 0 #555555, 0 3px 0 #444444, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 1px 0 0 #555555, 0 3px 0 #444444, false, false, false, false, false, false, false);
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
background-color: #444;
|
||||
border: 1px solid #000;
|
||||
bottom: 46px;
|
||||
display: none;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 125px;
|
||||
z-index: 10; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds ol.video_speeds li {
|
||||
-webkit-box-shadow: compact(0 1px 0 #555555, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 #555555, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 #555555, false, false, false, false, false, false, false, false);
|
||||
border-bottom: 1px solid #000;
|
||||
color: #fff;
|
||||
cursor: pointer; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds ol.video_speeds li a {
|
||||
border: 0;
|
||||
color: #fff;
|
||||
display: block;
|
||||
padding: 11.326px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds ol.video_speeds li a:hover {
|
||||
background-color: #666;
|
||||
color: #aaa; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds ol.video_speeds li.active {
|
||||
font-weight: bold; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.speeds ol.video_speeds li:last-child {
|
||||
-webkit-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
border-bottom: 0;
|
||||
margin-top: 0; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume {
|
||||
float: left;
|
||||
position: relative; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume.open .volume-slider-container {
|
||||
display: block;
|
||||
opacity: 1; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume.muted > a {
|
||||
background: url("../images/mute.png") 10px center no-repeat; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume > a {
|
||||
background: url("../images/volume.png") 10px center no-repeat;
|
||||
border-right: 1px solid #000;
|
||||
-webkit-box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
zoom: 1;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
height: 46px;
|
||||
margin-right: 0;
|
||||
padding-left: 15px;
|
||||
position: relative;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
width: 30px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume > a:before, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume > a:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume > a:after {
|
||||
clear: both; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume > a:hover, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume > a:active, section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume > a:focus {
|
||||
background-color: #444; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume .volume-slider-container {
|
||||
-webkit-box-shadow: compact(inset 1px 0 0 #555555, 0 3px 0 #444444, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 1px 0 0 #555555, 0 3px 0 #444444, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 1px 0 0 #555555, 0 3px 0 #444444, false, false, false, false, false, false, false);
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
background-color: #444;
|
||||
border: 1px solid #000;
|
||||
bottom: 46px;
|
||||
display: none;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
width: 45px;
|
||||
height: 125px;
|
||||
margin-left: -1px;
|
||||
z-index: 10; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume .volume-slider-container .volume-slider {
|
||||
height: 100px;
|
||||
border: 0;
|
||||
width: 5px;
|
||||
margin: 14px auto;
|
||||
background: #666;
|
||||
border: 1px solid #000;
|
||||
-webkit-box-shadow: compact(0 1px 0 #333333, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 #333333, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 #333333, false, false, false, false, false, false, false, false); }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume .volume-slider-container .volume-slider a.ui-slider-handle {
|
||||
background: #993333 url(../images/slider-handle.png) center center no-repeat;
|
||||
-webkit-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
-moz-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
-ms-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
-o-background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
background-size: compact(50%, false, false, false, false, false, false, false, false);
|
||||
border: 1px solid #4d1919;
|
||||
-webkit-border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
-ms-border-radius: 15px;
|
||||
-o-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #bf4040, false, false, false, false, false, false, false, false);
|
||||
cursor: pointer;
|
||||
height: 15px;
|
||||
left: -6px;
|
||||
-webkit-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(height, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(width, 2s, ease-in-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
width: 15px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls div.volume .volume-slider-container .volume-slider .ui-slider-range {
|
||||
background: #ddd; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls a.add-fullscreen {
|
||||
background: url(../images/fullscreen.png) center no-repeat;
|
||||
border-right: 1px solid #000;
|
||||
-webkit-box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(1px 0 0 #555555, inset 1px 0 0 #555555, false, false, false, false, false, false, false);
|
||||
color: #797979;
|
||||
display: block;
|
||||
float: left;
|
||||
line-height: 46px;
|
||||
margin-left: 0;
|
||||
padding: 0 11.326px;
|
||||
text-indent: -9999px;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
width: 30px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls a.add-fullscreen:hover {
|
||||
background-color: #444;
|
||||
color: #fff;
|
||||
text-decoration: none; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls a.hide-subtitles {
|
||||
background: url("../images/cc.png") center no-repeat;
|
||||
color: #797979;
|
||||
display: block;
|
||||
float: left;
|
||||
font-weight: 800;
|
||||
line-height: 46px;
|
||||
margin-left: 0;
|
||||
opacity: 1;
|
||||
padding: 0 11.326px;
|
||||
position: relative;
|
||||
text-indent: -9999px;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
width: 30px; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls a.hide-subtitles:hover {
|
||||
background-color: #444;
|
||||
color: #fff;
|
||||
text-decoration: none; }
|
||||
section.course-content div.video article.video-wrapper section.video-controls div.secondary-controls a.hide-subtitles.off {
|
||||
opacity: .7; }
|
||||
section.course-content div.video article.video-wrapper:hover section.video-controls ul, section.course-content div.video article.video-wrapper:hover section.video-controls div {
|
||||
opacity: 1; }
|
||||
section.course-content div.video article.video-wrapper:hover section.video-controls div.slider {
|
||||
height: 14px;
|
||||
margin-top: -7px; }
|
||||
section.course-content div.video article.video-wrapper:hover section.video-controls div.slider a.ui-slider-handle {
|
||||
-webkit-border-radius: 20px;
|
||||
-moz-border-radius: 20px;
|
||||
-ms-border-radius: 20px;
|
||||
-o-border-radius: 20px;
|
||||
border-radius: 20px;
|
||||
height: 20px;
|
||||
margin-left: -10px;
|
||||
top: -4px;
|
||||
width: 20px; }
|
||||
section.course-content div.video ol.subtitles {
|
||||
float: left;
|
||||
max-height: 460px;
|
||||
overflow: auto;
|
||||
width: 31.522%; }
|
||||
section.course-content div.video ol.subtitles li {
|
||||
border: 0;
|
||||
color: #666;
|
||||
cursor: pointer;
|
||||
margin-bottom: 8px;
|
||||
padding: 0; }
|
||||
section.course-content div.video ol.subtitles li.current {
|
||||
color: #333;
|
||||
font-weight: 700; }
|
||||
section.course-content div.video ol.subtitles li:hover {
|
||||
color: #993333; }
|
||||
section.course-content div.video ol.subtitles li:empty {
|
||||
margin-bottom: 0px; }
|
||||
section.course-content div.video.closed article.video-wrapper {
|
||||
width: 100%; }
|
||||
section.course-content div.video.closed ol.subtitles {
|
||||
width: 0px; }
|
||||
section.course-content div.video.fullscreen {
|
||||
background: rgba(0, 0, 0, 0.95);
|
||||
border: 0;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
max-height: 100%;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
z-index: 999; }
|
||||
section.course-content div.video.fullscreen.closed ol.subtitles {
|
||||
right: -31.984%;
|
||||
width: auto; }
|
||||
section.course-content div.video.fullscreen a.exit {
|
||||
color: #aaa;
|
||||
display: none;
|
||||
font-style: 12px;
|
||||
left: 20px;
|
||||
letter-spacing: 1px;
|
||||
position: absolute;
|
||||
text-transform: uppercase;
|
||||
top: 20px; }
|
||||
section.course-content div.video.fullscreen a.exit::after {
|
||||
content: "✖";
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
padding-left: 6px; }
|
||||
section.course-content div.video.fullscreen a.exit:hover {
|
||||
color: #993333; }
|
||||
section.course-content div.video.fullscreen div.tc-wrapper article.video-wrapper {
|
||||
width: 100%; }
|
||||
section.course-content div.video.fullscreen div.tc-wrapper object, section.course-content div.video.fullscreen div.tc-wrapper iframe {
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 0; }
|
||||
section.course-content div.video.fullscreen div.tc-wrapper section.video-controls {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
z-index: 9999; }
|
||||
section.course-content div.video.fullscreen ol.subtitles {
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
max-width: 23.482%;
|
||||
padding: 22.652px;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
section.course-content div.video.fullscreen ol.subtitles li {
|
||||
color: #aaa; }
|
||||
section.course-content div.video.fullscreen ol.subtitles li.current {
|
||||
color: #fff; }
|
||||
|
||||
div.course-wrapper.closed section.course-content div.video ol.subtitles {
|
||||
max-height: 577px; }
|
||||
|
||||
section.tool-wrapper {
|
||||
background: #073642;
|
||||
border-bottom: 1px solid #000203;
|
||||
border-top: 1px solid #000203;
|
||||
-webkit-box-shadow: compact(inset 0 0 0 4px #084150, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 0 4px #084150, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 0 4px #084150, false, false, false, false, false, false, false, false);
|
||||
color: #839496;
|
||||
display: table;
|
||||
margin: 22.652px -22.652px 0; }
|
||||
section.tool-wrapper div#graph-container {
|
||||
background: none;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table-cell;
|
||||
padding: 22.652px;
|
||||
vertical-align: top;
|
||||
width: 51.359%; }
|
||||
section.tool-wrapper div#graph-container .ui-widget-content {
|
||||
background: none;
|
||||
border: none;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0; }
|
||||
section.tool-wrapper div#graph-container canvas {
|
||||
width: 100%; }
|
||||
section.tool-wrapper div#graph-container ul.ui-tabs-nav {
|
||||
background: #062e39;
|
||||
border-bottom: 1px solid #03181d;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
margin: -22.652px -22.652px 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
width: 110%; }
|
||||
section.tool-wrapper div#graph-container ul.ui-tabs-nav li {
|
||||
background: none;
|
||||
border: none;
|
||||
-webkit-border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-ms-border-radius: 0;
|
||||
-o-border-radius: 0;
|
||||
border-radius: 0;
|
||||
color: #fff;
|
||||
margin-bottom: 0; }
|
||||
section.tool-wrapper div#graph-container ul.ui-tabs-nav li.ui-tabs-selected {
|
||||
background-color: #073642;
|
||||
border-left: 1px solid #03181d;
|
||||
border-right: 1px solid #03181d; }
|
||||
section.tool-wrapper div#graph-container ul.ui-tabs-nav li.ui-tabs-selected:first-child {
|
||||
border-left: none; }
|
||||
section.tool-wrapper div#graph-container ul.ui-tabs-nav li.ui-tabs-selected a {
|
||||
color: #eee8d5; }
|
||||
section.tool-wrapper div#graph-container ul.ui-tabs-nav li a {
|
||||
border: none;
|
||||
color: #839496;
|
||||
font: bold 12px "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
|
||||
letter-spacing: 1px;
|
||||
text-transform: uppercase; }
|
||||
section.tool-wrapper div#graph-container ul.ui-tabs-nav li a:hover {
|
||||
color: #eee8d5; }
|
||||
section.tool-wrapper div#controlls-container {
|
||||
background: #062e39;
|
||||
border-right: 1px solid #001317;
|
||||
-webkit-box-shadow: compact(1px 0 0 #004355, inset 0 0 0 4px #06323d, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(1px 0 0 #004355, inset 0 0 0 4px #06323d, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(1px 0 0 #004355, inset 0 0 0 4px #06323d, false, false, false, false, false, false, false);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table-cell;
|
||||
padding: 22.652px;
|
||||
vertical-align: top;
|
||||
width: 48.641%; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper {
|
||||
border-bottom: 1px solid #021014;
|
||||
-webkit-box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
margin-bottom: 22.652px;
|
||||
padding: 0 0 22.652px; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton {
|
||||
border-color: #001317;
|
||||
border: 1px solid #3d5962;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #939da0, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #939da0, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #939da0, false, false, false, false, false, false, false, false);
|
||||
color: white;
|
||||
display: inline;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
background-color: #637c84;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#637c84, #43626b, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#637c84, #43626b, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#637c84, #43626b, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#637c84, #43626b, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#637c84, #43626b, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#637c84, #43626b, false, false, false, false, false, false, false, false));
|
||||
padding: 6px 18px 7px;
|
||||
text-shadow: 0 1px 0 #31505a;
|
||||
-webkit-background-clip: padding-box;
|
||||
display: block;
|
||||
float: right;
|
||||
font: bold 14px "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton:hover {
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #778589, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #778589, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #778589, false, false, false, false, false, false, false, false);
|
||||
cursor: pointer;
|
||||
background-color: #5c6c71;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#5c6c71, #3e5961, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#5c6c71, #3e5961, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#5c6c71, #3e5961, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#5c6c71, #3e5961, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#5c6c71, #3e5961, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#5c6c71, #3e5961, false, false, false, false, false, false, false, false)); }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton:active {
|
||||
border: 1px solid #3d5962;
|
||||
-webkit-box-shadow: compact(inset 0 0 8px 4px #395057, inset 0 0 8px 4px #395057, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 8px 4px #395057, inset 0 0 8px 4px #395057, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 8px 4px #395057, inset 0 0 8px 4px #395057, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false); }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton:active {
|
||||
-webkit-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(none, false, false, false, false, false, false, false, false); }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton[value="Stop"] {
|
||||
border: 1px solid #030d15;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #215f8a, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #215f8a, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #215f8a, false, false, false, false, false, false, false, false);
|
||||
color: white;
|
||||
display: inline;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
background-color: #0f3550;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#0f3550, #041623, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#0f3550, #041623, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#0f3550, #041623, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#0f3550, #041623, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#0f3550, #041623, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#0f3550, #041623, false, false, false, false, false, false, false, false));
|
||||
padding: 6px 18px 7px;
|
||||
text-shadow: 0 1px 0 #000203;
|
||||
-webkit-background-clip: padding-box;
|
||||
font: bold 14px "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton[value="Stop"]:hover {
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #174362, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #174362, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #174362, false, false, false, false, false, false, false, false);
|
||||
cursor: pointer;
|
||||
background-color: #0c2739;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#0c2739, #030d15, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#0c2739, #030d15, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#0c2739, #030d15, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#0c2739, #030d15, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#0c2739, #030d15, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#0c2739, #030d15, false, false, false, false, false, false, false, false)); }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton[value="Stop"]:active {
|
||||
border: 1px solid #030d15;
|
||||
-webkit-box-shadow: compact(inset 0 0 8px 4px #010507, inset 0 0 8px 4px #010507, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 8px 4px #010507, inset 0 0 8px 4px #010507, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 8px 4px #010507, inset 0 0 8px 4px #010507, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false); }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.music-wrapper input#playButton[value="Stop"]:active {
|
||||
-webkit-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(none, false, false, false, false, false, false, false, false); }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper {
|
||||
border-bottom: 1px solid #021014;
|
||||
-webkit-box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
zoom: 1;
|
||||
margin-bottom: 22.652px;
|
||||
margin-bottom: 22.652px;
|
||||
padding: 0 0 22.652px; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper:before, section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper:after {
|
||||
content: "";
|
||||
display: table; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div.inputs-wrapper:after {
|
||||
clear: both; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls p {
|
||||
font-weight: bold;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin: 0;
|
||||
text-shadow: 0 -1px 0 #021014;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls ul {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-bottom: 0; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls ul li {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-bottom: 0; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls ul li input {
|
||||
margin-right: 5px; }
|
||||
section.tool-wrapper div#controlls-container div.graph-controls div#graph-listen {
|
||||
display: block;
|
||||
float: left;
|
||||
margin-bottom: 0;
|
||||
margin-right: 20px;
|
||||
margin-top: 8px;
|
||||
text-align: right; }
|
||||
section.tool-wrapper div#controlls-container label {
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-ms-border-radius: 2px;
|
||||
-o-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
padding: 3px;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
section.tool-wrapper div#controlls-container label[for="vinCheckbox"], section.tool-wrapper div#controlls-container label[for="vinRadioButton"] {
|
||||
color: #409fbf; }
|
||||
section.tool-wrapper div#controlls-container label[for="voutCheckbox"], section.tool-wrapper div#controlls-container label[for="voutRadioButton"] {
|
||||
color: #e1a600; }
|
||||
section.tool-wrapper div#controlls-container label[for="vrCheckbox"], section.tool-wrapper div#controlls-container label[for="vrRadioButton"] {
|
||||
color: #49c944; }
|
||||
section.tool-wrapper div#controlls-container label[for="vcCheckbox"], section.tool-wrapper div#controlls-container label[for="vcRadioButton"] {
|
||||
color: #e1a600; }
|
||||
section.tool-wrapper div#controlls-container label[for="vlCheckbox"], section.tool-wrapper div#controlls-container label[for="vlRadioButton"] {
|
||||
color: #a26784; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders {
|
||||
border-bottom: 1px solid #021014;
|
||||
-webkit-box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 1px 0 #083e4b, false, false, false, false, false, false, false, false);
|
||||
margin-bottom: 22.652px;
|
||||
padding: 0 0 22.652px; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders select#musicTypeSelect {
|
||||
font: 16px "Open Sans", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-bottom: 0; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.top-sliders p {
|
||||
font-weight: bold;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin: 0 11.326px 22.652px 0;
|
||||
text-shadow: 0 -1px 0 #021014;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.slider-label {
|
||||
font-weight: bold;
|
||||
margin-bottom: 11.326px;
|
||||
text-shadow: 0 -1px 0 #021014;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.slider {
|
||||
margin-bottom: 22.652px; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.slider.ui-slider-horizontal {
|
||||
background: #00232c;
|
||||
border: 1px solid #000b0d;
|
||||
-webkit-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(none, false, false, false, false, false, false, false, false);
|
||||
height: 0.4em; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.slider .ui-slider-handle {
|
||||
background: #637c84 url("../images/amplifier-slider-handle.png") center no-repeat;
|
||||
border: 1px solid #000b0d;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #8ba1a8, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #8ba1a8, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #8ba1a8, false, false, false, false, false, false, false, false);
|
||||
margin-top: -0.3em; }
|
||||
section.tool-wrapper div#controlls-container div.schematic-sliders div.slider .ui-slider-handle:hover, section.tool-wrapper div#controlls-container div.schematic-sliders div.slider .ui-slider-handle:active {
|
||||
background-color: #6e8992; }
|
||||
|
||||
section.problem-set, div.course-wrapper section.course-content section.problems-wrapper, section.problems-wrapper {
|
||||
position: relative; }
|
||||
section.problem-set h2, div.course-wrapper section.course-content section.problems-wrapper h2, section.problems-wrapper h2 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 15px;
|
||||
width: 20.109%;
|
||||
padding-right: 2.717%;
|
||||
border-right: 1px dashed #ddd;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: table-cell;
|
||||
vertical-align: top; }
|
||||
section.problem-set h2.problem-header section.staff, div.course-wrapper section.course-content section.problems-wrapper h2.problem-header section.staff, section.problems-wrapper h2.problem-header section.staff {
|
||||
margin-top: 30px;
|
||||
font-size: 80%; }
|
||||
@media screen and (max-width:1120px) {
|
||||
section.problem-set h2, div.course-wrapper section.course-content section.problems-wrapper h2, section.problems-wrapper h2 {
|
||||
display: block;
|
||||
width: auto;
|
||||
border-right: 0; } }
|
||||
@media print {
|
||||
section.problem-set h2, div.course-wrapper section.course-content section.problems-wrapper h2, section.problems-wrapper h2 {
|
||||
display: block;
|
||||
width: auto;
|
||||
border-right: 0; } }
|
||||
section.problem-set section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, section.problems-wrapper section.problem {
|
||||
display: table-cell;
|
||||
width: 77.174%;
|
||||
padding-left: 2.717%; }
|
||||
@media screen and (max-width:1120px) {
|
||||
section.problem-set section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, section.problems-wrapper section.problem {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding: 0; } }
|
||||
@media print {
|
||||
section.problem-set section.problem, div.course-wrapper section.course-content section.problems-wrapper section.problem, section.problems-wrapper section.problem {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding: 0; }
|
||||
section.problem-set section.problem canvas, div.course-wrapper section.course-content section.problems-wrapper section.problem canvas, section.problems-wrapper section.problem canvas, section.problem-set section.problem img, div.course-wrapper section.course-content section.problems-wrapper section.problem img, section.problems-wrapper section.problem img {
|
||||
page-break-inside: avoid; } }
|
||||
section.problem-set section.problem div p.status, div.course-wrapper section.course-content section.problems-wrapper section.problem div p.status, section.problems-wrapper section.problem div p.status {
|
||||
text-indent: -9999px;
|
||||
margin: -1px 0 0 10px; }
|
||||
section.problem-set section.problem div.unanswered p.status, div.course-wrapper section.course-content section.problems-wrapper section.problem div.unanswered p.status, section.problems-wrapper section.problem div.unanswered p.status {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/unanswered-icon.png") center center no-repeat;
|
||||
height: 14px;
|
||||
width: 14px; }
|
||||
section.problem-set section.problem div.correct p.status, div.course-wrapper section.course-content section.problems-wrapper section.problem div.correct p.status, section.problems-wrapper section.problem div.correct p.status, section.problem-set section.problem div.ui-icon-check p.status, div.course-wrapper section.course-content section.problems-wrapper section.problem div.ui-icon-check p.status, section.problems-wrapper section.problem div.ui-icon-check p.status {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/correct-icon.png") center center no-repeat;
|
||||
height: 20px;
|
||||
width: 25px; }
|
||||
section.problem-set section.problem div.correct input, div.course-wrapper section.course-content section.problems-wrapper section.problem div.correct input, section.problems-wrapper section.problem div.correct input, section.problem-set section.problem div.ui-icon-check input, div.course-wrapper section.course-content section.problems-wrapper section.problem div.ui-icon-check input, section.problems-wrapper section.problem div.ui-icon-check input {
|
||||
border-color: green; }
|
||||
section.problem-set section.problem div.incorrect p.status, div.course-wrapper section.course-content section.problems-wrapper section.problem div.incorrect p.status, section.problems-wrapper section.problem div.incorrect p.status, section.problem-set section.problem div.ui-icon-close p.status, div.course-wrapper section.course-content section.problems-wrapper section.problem div.ui-icon-close p.status, section.problems-wrapper section.problem div.ui-icon-close p.status {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/incorrect-icon.png") center center no-repeat;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
text-indent: -9999px; }
|
||||
section.problem-set section.problem div.incorrect input, div.course-wrapper section.course-content section.problems-wrapper section.problem div.incorrect input, section.problems-wrapper section.problem div.incorrect input, section.problem-set section.problem div.ui-icon-close input, div.course-wrapper section.course-content section.problems-wrapper section.problem div.ui-icon-close input, section.problems-wrapper section.problem div.ui-icon-close input {
|
||||
border-color: red; }
|
||||
section.problem-set section.problem div > span, div.course-wrapper section.course-content section.problems-wrapper section.problem div > span, section.problems-wrapper section.problem div > span {
|
||||
display: block;
|
||||
margin-bottom: 11.326px; }
|
||||
section.problem-set section.problem div p.answer, div.course-wrapper section.course-content section.problems-wrapper section.problem div p.answer, section.problems-wrapper section.problem div p.answer {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-bottom: 0;
|
||||
margin-left: 10px; }
|
||||
section.problem-set section.problem div p.answer:before, div.course-wrapper section.course-content section.problems-wrapper section.problem div p.answer:before, section.problems-wrapper section.problem div p.answer:before {
|
||||
content: "Answer: ";
|
||||
font-weight: bold;
|
||||
display: inline; }
|
||||
section.problem-set section.problem div p.answer:empty:before, div.course-wrapper section.course-content section.problems-wrapper section.problem div p.answer:empty:before, section.problems-wrapper section.problem div p.answer:empty:before {
|
||||
display: none; }
|
||||
section.problem-set section.problem div div.equation, div.course-wrapper section.course-content section.problems-wrapper section.problem div div.equation, section.problems-wrapper section.problem div div.equation {
|
||||
clear: both;
|
||||
padding: 6px;
|
||||
background: #eee; }
|
||||
section.problem-set section.problem div div.equation span, div.course-wrapper section.course-content section.problems-wrapper section.problem div div.equation span, section.problems-wrapper section.problem div div.equation span {
|
||||
margin-bottom: 0; }
|
||||
section.problem-set section.problem div span.unanswered, div.course-wrapper section.course-content section.problems-wrapper section.problem div span.unanswered, section.problems-wrapper section.problem div span.unanswered, section.problem-set section.problem div span.ui-icon-bullet, div.course-wrapper section.course-content section.problems-wrapper section.problem div span.ui-icon-bullet, section.problems-wrapper section.problem div span.ui-icon-bullet {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/unanswered-icon.png") center center no-repeat;
|
||||
height: 14px;
|
||||
position: relative;
|
||||
top: 4px;
|
||||
width: 14px; }
|
||||
section.problem-set section.problem div span.correct, div.course-wrapper section.course-content section.problems-wrapper section.problem div span.correct, section.problems-wrapper section.problem div span.correct, section.problem-set section.problem div span.ui-icon-check, div.course-wrapper section.course-content section.problems-wrapper section.problem div span.ui-icon-check, section.problems-wrapper section.problem div span.ui-icon-check {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/correct-icon.png") center center no-repeat;
|
||||
height: 20px;
|
||||
position: relative;
|
||||
top: 6px;
|
||||
width: 25px; }
|
||||
section.problem-set section.problem div span.incorrect, div.course-wrapper section.course-content section.problems-wrapper section.problem div span.incorrect, section.problems-wrapper section.problem div span.incorrect, section.problem-set section.problem div span.ui-icon-close, div.course-wrapper section.course-content section.problems-wrapper section.problem div span.ui-icon-close, section.problems-wrapper section.problem div span.ui-icon-close {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
background: url("../images/incorrect-icon.png") center center no-repeat;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
position: relative;
|
||||
top: 6px; }
|
||||
section.problem-set section.problem ul, div.course-wrapper section.course-content section.problems-wrapper section.problem ul, section.problems-wrapper section.problem ul {
|
||||
list-style: disc outside none;
|
||||
margin-bottom: 22.652px;
|
||||
margin-left: .75em;
|
||||
margin-left: .75rem; }
|
||||
section.problem-set section.problem ol, div.course-wrapper section.course-content section.problems-wrapper section.problem ol, section.problems-wrapper section.problem ol {
|
||||
list-style: decimal outside none;
|
||||
margin-bottom: 22.652px;
|
||||
margin-left: .75em;
|
||||
margin-left: .75rem; }
|
||||
section.problem-set section.problem dl, div.course-wrapper section.course-content section.problems-wrapper section.problem dl, section.problems-wrapper section.problem dl {
|
||||
line-height: 1.4em; }
|
||||
section.problem-set section.problem dl dt, div.course-wrapper section.course-content section.problems-wrapper section.problem dl dt, section.problems-wrapper section.problem dl dt {
|
||||
font-weight: bold; }
|
||||
section.problem-set section.problem dl dd, div.course-wrapper section.course-content section.problems-wrapper section.problem dl dd, section.problems-wrapper section.problem dl dd {
|
||||
margin-bottom: 0; }
|
||||
section.problem-set section.problem dd, div.course-wrapper section.course-content section.problems-wrapper section.problem dd, section.problems-wrapper section.problem dd {
|
||||
margin-left: .5em;
|
||||
margin-left: .5rem; }
|
||||
section.problem-set section.problem li, div.course-wrapper section.course-content section.problems-wrapper section.problem li, section.problems-wrapper section.problem li {
|
||||
line-height: 1.4em;
|
||||
margin-bottom: 11.326px; }
|
||||
section.problem-set section.problem li:last-child, div.course-wrapper section.course-content section.problems-wrapper section.problem li:last-child, section.problems-wrapper section.problem li:last-child {
|
||||
margin-bottom: 0; }
|
||||
section.problem-set section.problem p, div.course-wrapper section.course-content section.problems-wrapper section.problem p, section.problems-wrapper section.problem p {
|
||||
margin-bottom: 22.652px; }
|
||||
section.problem-set section.problem table, div.course-wrapper section.course-content section.problems-wrapper section.problem table, section.problems-wrapper section.problem table {
|
||||
margin-bottom: 22.652px;
|
||||
width: 100%;
|
||||
border-collapse: collapse; }
|
||||
section.problem-set section.problem table th, div.course-wrapper section.course-content section.problems-wrapper section.problem table th, section.problems-wrapper section.problem table th {
|
||||
font-weight: bold;
|
||||
text-align: left; }
|
||||
section.problem-set section.problem table caption, div.course-wrapper section.course-content section.problems-wrapper section.problem table caption, section.problems-wrapper section.problem table caption, section.problem-set section.problem table th, div.course-wrapper section.course-content section.problems-wrapper section.problem table th, section.problems-wrapper section.problem table th, section.problem-set section.problem table td, div.course-wrapper section.course-content section.problems-wrapper section.problem table td, section.problems-wrapper section.problem table td {
|
||||
padding: .25em .75em .25em 0;
|
||||
padding: .25rem .75rem .25rem 0; }
|
||||
section.problem-set section.problem table caption, div.course-wrapper section.course-content section.problems-wrapper section.problem table caption, section.problems-wrapper section.problem table caption {
|
||||
background: #f1f1f1;
|
||||
margin-bottom: .75em;
|
||||
margin-bottom: .75rem;
|
||||
padding: .75em 0;
|
||||
padding: .75rem 0; }
|
||||
section.problem-set section.problem table tr, div.course-wrapper section.course-content section.problems-wrapper section.problem table tr, section.problems-wrapper section.problem table tr, section.problem-set section.problem table td, div.course-wrapper section.course-content section.problems-wrapper section.problem table td, section.problems-wrapper section.problem table td, section.problem-set section.problem table th, div.course-wrapper section.course-content section.problems-wrapper section.problem table th, section.problems-wrapper section.problem table th {
|
||||
vertical-align: middle; }
|
||||
section.problem-set section.problem hr, div.course-wrapper section.course-content section.problems-wrapper section.problem hr, section.problems-wrapper section.problem hr {
|
||||
background: #ddd;
|
||||
border: none;
|
||||
clear: both;
|
||||
color: #ddd;
|
||||
float: none;
|
||||
height: 1px;
|
||||
margin: 0 0 .75rem;
|
||||
width: 100%; }
|
||||
section.problem-set section.problem .hidden, div.course-wrapper section.course-content section.problems-wrapper section.problem .hidden, section.problems-wrapper section.problem .hidden {
|
||||
display: none;
|
||||
visibility: hidden; }
|
||||
section.problem-set section.problem input[type="email"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="email"], section.problems-wrapper section.problem input[type="email"], section.problem-set section.problem input[type="number"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="number"], section.problems-wrapper section.problem input[type="number"], section.problem-set section.problem input[type="password"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="password"], section.problems-wrapper section.problem input[type="password"], section.problem-set section.problem input[type="search"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="search"], section.problems-wrapper section.problem input[type="search"], section.problem-set section.problem input[type="tel"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="tel"], section.problems-wrapper section.problem input[type="tel"], section.problem-set section.problem input[type="text"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="text"], section.problems-wrapper section.problem input[type="text"], section.problem-set section.problem input[type="url"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="url"], section.problems-wrapper section.problem input[type="url"], section.problem-set section.problem input[type="color"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="color"], section.problems-wrapper section.problem input[type="color"], section.problem-set section.problem input[type="date"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="date"], section.problems-wrapper section.problem input[type="date"], section.problem-set section.problem input[type="datetime"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="datetime"], section.problems-wrapper section.problem input[type="datetime"], section.problem-set section.problem input[type="datetime-local"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="datetime-local"], section.problems-wrapper section.problem input[type="datetime-local"], section.problem-set section.problem input[type="month"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="month"], section.problems-wrapper section.problem input[type="month"], section.problem-set section.problem input[type="time"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="time"], section.problems-wrapper section.problem input[type="time"], section.problem-set section.problem input[type="week"], div.course-wrapper section.course-content section.problems-wrapper section.problem input[type="week"], section.problems-wrapper section.problem input[type="week"] {
|
||||
display: inline;
|
||||
width: auto; }
|
||||
section.problem-set section.problem center, div.course-wrapper section.course-content section.problems-wrapper section.problem center, section.problems-wrapper section.problem center {
|
||||
display: block;
|
||||
margin: 22.652px 0;
|
||||
border: 1px solid #ccc;
|
||||
padding: 22.652px; }
|
||||
section.problem-set section.action, div.course-wrapper section.course-content section.problems-wrapper section.action, section.problems-wrapper section.action {
|
||||
margin-top: 11.326px; }
|
||||
section.problem-set section.action input[type="button"], div.course-wrapper section.course-content section.problems-wrapper section.action input[type="button"], section.problems-wrapper section.action input[type="button"] {
|
||||
padding: 9.061px 22.652px;
|
||||
text-shadow: 0 -1px 0 #666666; }
|
||||
|
||||
section.problems-wrapper {
|
||||
display: table;
|
||||
width: 100%; }
|
||||
@media screen and (max-width:1120px) {
|
||||
section.problems-wrapper {
|
||||
display: block;
|
||||
width: auto; } }
|
||||
@@ -1,10 +0,0 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
|
||||
.wrapper, .subpage, section.copyright, section.tos, section.privacy-policy, section.honor-code, header.announcement div, section.index-content, footer {
|
||||
margin: 0;
|
||||
overflow: hidden; }
|
||||
|
||||
div#enroll form {
|
||||
display: none; }
|
||||
@@ -1,1017 +0,0 @@
|
||||
/*
|
||||
html5doctor.com Reset Stylesheet
|
||||
v1.6.1
|
||||
Last Updated: 2010-09-17
|
||||
Author: Richard Clark - http://richclarkdesign.com
|
||||
Twitter: @rich_clark
|
||||
*/
|
||||
html, body, div, span, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
abbr, address, cite, code,
|
||||
del, dfn, em, img, ins, kbd, q, samp,
|
||||
small, strong, var,
|
||||
b, i,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: baseline;
|
||||
background: transparent; }
|
||||
|
||||
body {
|
||||
line-height: 1; }
|
||||
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block; }
|
||||
|
||||
nav ul {
|
||||
list-style: none; }
|
||||
|
||||
blockquote, q {
|
||||
quotes: none; }
|
||||
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none; }
|
||||
|
||||
a {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: baseline;
|
||||
background: transparent; }
|
||||
|
||||
/* change colours to suit your needs */
|
||||
ins {
|
||||
background-color: #ff9;
|
||||
color: #000;
|
||||
text-decoration: none; }
|
||||
|
||||
/* change colours to suit your needs */
|
||||
mark {
|
||||
background-color: #ff9;
|
||||
color: #000;
|
||||
font-style: italic;
|
||||
font-weight: bold; }
|
||||
|
||||
del {
|
||||
text-decoration: line-through; }
|
||||
|
||||
abbr[title], dfn[title] {
|
||||
border-bottom: 1px dotted;
|
||||
cursor: help; }
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0; }
|
||||
|
||||
/* change border colour to suit your needs */
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
border-top: 1px solid #cccccc;
|
||||
margin: 1em 0;
|
||||
padding: 0; }
|
||||
|
||||
input, select {
|
||||
vertical-align: middle; }
|
||||
|
||||
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on January 25, 2012 05:06:34 PM America/New_York */
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-Regular-webfont.eot");
|
||||
src: url("../fonts/OpenSans-Regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Regular-webfont.woff") format("woff"), url("../fonts/OpenSans-Regular-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Regular-webfont.svg#OpenSansRegular") format("svg");
|
||||
font-weight: 600;
|
||||
font-style: normal; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-Italic-webfont.eot");
|
||||
src: url("../fonts/OpenSans-Italic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Italic-webfont.woff") format("woff"), url("../fonts/OpenSans-Italic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Italic-webfont.svg#OpenSansItalic") format("svg");
|
||||
font-weight: 400;
|
||||
font-style: italic; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-Bold-webfont.eot");
|
||||
src: url("../fonts/OpenSans-Bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Bold-webfont.woff") format("woff"), url("../fonts/OpenSans-Bold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Bold-webfont.svg#OpenSansBold") format("svg");
|
||||
font-weight: 700;
|
||||
font-style: normal; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-BoldItalic-webfont.eot");
|
||||
src: url("../fonts/OpenSans-BoldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-BoldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-BoldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic") format("svg");
|
||||
font-weight: 700;
|
||||
font-style: italic; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-ExtraBold-webfont.eot");
|
||||
src: url("../fonts/OpenSans-ExtraBold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-ExtraBold-webfont.woff") format("woff"), url("../fonts/OpenSans-ExtraBold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-ExtraBold-webfont.svg#OpenSansExtrabold") format("svg");
|
||||
font-weight: 800;
|
||||
font-style: normal; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'Open Sans';
|
||||
src: url("../fonts/OpenSans-ExtraBoldItalic-webfont.eot");
|
||||
src: url("../fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-ExtraBoldItalic-webfont.svg#OpenSansExtraboldItalic") format("svg");
|
||||
font-weight: 800;
|
||||
font-style: italic; }
|
||||
|
||||
.wrapper, .subpage, section.copyright, section.tos, section.privacy-policy, section.honor-code, header.announcement div, footer, section.index-content {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
margin: 0 auto;
|
||||
max-width: 1400px;
|
||||
padding: 25.888px;
|
||||
width: 100%; }
|
||||
|
||||
.subpage > div, section.copyright > div, section.tos > div, section.privacy-policy > div, section.honor-code > div {
|
||||
padding-left: 34.171%; }
|
||||
@media screen and (max-width: 940px) {
|
||||
.subpage > div, section.copyright > div, section.tos > div, section.privacy-policy > div, section.honor-code > div {
|
||||
padding-left: 0; } }
|
||||
.subpage > div p, section.copyright > div p, section.tos > div p, section.privacy-policy > div p, section.honor-code > div p {
|
||||
margin-bottom: 25.888px;
|
||||
line-height: 25.888px; }
|
||||
.subpage > div h1, section.copyright > div h1, section.tos > div h1, section.privacy-policy > div h1, section.honor-code > div h1 {
|
||||
margin-bottom: 12.944px; }
|
||||
.subpage > div h2, section.copyright > div h2, section.tos > div h2, section.privacy-policy > div h2, section.honor-code > div h2 {
|
||||
font: 18px "Open Sans", Helvetica, Arial, sans-serif;
|
||||
color: #000;
|
||||
margin-bottom: 12.944px; }
|
||||
.subpage > div ul, section.copyright > div ul, section.tos > div ul, section.privacy-policy > div ul, section.honor-code > div ul {
|
||||
list-style: disc outside none; }
|
||||
.subpage > div ul li, section.copyright > div ul li, section.tos > div ul li, section.privacy-policy > div ul li, section.honor-code > div ul li {
|
||||
list-style: disc outside none;
|
||||
line-height: 25.888px; }
|
||||
.subpage > div dl, section.copyright > div dl, section.tos > div dl, section.privacy-policy > div dl, section.honor-code > div dl {
|
||||
margin-bottom: 25.888px; }
|
||||
.subpage > div dl dd, section.copyright > div dl dd, section.tos > div dl dd, section.privacy-policy > div dl dd, section.honor-code > div dl dd {
|
||||
margin-bottom: 12.944px; }
|
||||
|
||||
.clearfix:after, .subpage:after, section.copyright:after, section.tos:after, section.privacy-policy:after, section.honor-code:after, header.announcement div section:after, footer:after, section.index-content:after, section.index-content section:after, section.index-content section.about section:after, div.leanModal_box#enroll ol:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden; }
|
||||
|
||||
.button, header.announcement div section.course section a, section.index-content section.course a, section.index-content section.staff a, section.index-content section.about-course section.cta a.enroll {
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
background-color: #993333;
|
||||
border: 1px solid #732626;
|
||||
color: #fff;
|
||||
margin: 25.888px 0 12.944px;
|
||||
padding: 6.472px 12.944px;
|
||||
text-decoration: none;
|
||||
font-style: normal;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #b83d3d, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #b83d3d, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #b83d3d, false, false, false, false, false, false, false, false);
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
.button:hover, header.announcement div section.course section a:hover, section.index-content section.course a:hover, section.index-content section.staff a:hover, section.index-content section.about-course section.cta a.enroll:hover {
|
||||
background-color: #732626;
|
||||
border-color: #4d1919; }
|
||||
.button span, header.announcement div section.course section a span, section.index-content section.course a span, section.index-content section.staff a span, section.index-content section.about-course section.cta a.enroll span {
|
||||
font-family: Garamond, Baskerville, "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif;
|
||||
font-style: italic; }
|
||||
|
||||
p.ie-warning {
|
||||
display: block !important;
|
||||
line-height: 1.3em;
|
||||
background: yellow;
|
||||
margin-bottom: 25.888px;
|
||||
padding: 25.888px; }
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #444;
|
||||
font: 16px Georgia, serif; }
|
||||
body :focus {
|
||||
outline-color: #ccc; }
|
||||
body h1 {
|
||||
font: 800 24px "Open Sans", Helvetica, Arial, sans-serif; }
|
||||
body li {
|
||||
margin-bottom: 25.888px; }
|
||||
body em {
|
||||
font-style: italic; }
|
||||
body a {
|
||||
color: #993333;
|
||||
font-style: italic;
|
||||
text-decoration: none; }
|
||||
body a:hover, body a:focus {
|
||||
color: #732626; }
|
||||
body input[type="email"], body input[type="number"], body input[type="password"], body input[type="search"], body input[type="tel"], body input[type="text"], body input[type="url"], body input[type="color"], body input[type="date"], body input[type="datetime"], body input[type="datetime-local"], body input[type="month"], body input[type="time"], body input[type="week"], body textarea {
|
||||
-webkit-box-shadow: compact(0 -1px 0 white, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 -1px 0 white, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 -1px 0 white, false, false, false, false, false, false, false, false);
|
||||
background-color: #eeeeee;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#eeeeee, white, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#eeeeee, white, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#eeeeee, white, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#eeeeee, white, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#eeeeee, white, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#eeeeee, white, false, false, false, false, false, false, false, false));
|
||||
border: 1px solid #999;
|
||||
font: 16px Georgia, serif;
|
||||
padding: 4px;
|
||||
width: 100%; }
|
||||
body input[type="email"]:focus, body input[type="number"]:focus, body input[type="password"]:focus, body input[type="search"]:focus, body input[type="tel"]:focus, body input[type="text"]:focus, body input[type="url"]:focus, body input[type="color"]:focus, body input[type="date"]:focus, body input[type="datetime"]:focus, body input[type="datetime-local"]:focus, body input[type="month"]:focus, body input[type="time"]:focus, body input[type="week"]:focus, body textarea:focus {
|
||||
border-color: #993333; }
|
||||
|
||||
header.announcement {
|
||||
-webkit-background-size: compact(cover, false, false, false, false, false, false, false, false);
|
||||
-moz-background-size: compact(cover, false, false, false, false, false, false, false, false);
|
||||
-ms-background-size: compact(cover, false, false, false, false, false, false, false, false);
|
||||
-o-background-size: compact(cover, false, false, false, false, false, false, false, false);
|
||||
background-size: compact(cover, false, false, false, false, false, false, false, false);
|
||||
background: #333;
|
||||
border-bottom: 1px solid #000;
|
||||
color: #fff;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
header.announcement.home {
|
||||
background: #e3e3e3 url("../images/marketing/shot-5-medium.jpg"); }
|
||||
@media screen and (min-width: 1200px) {
|
||||
header.announcement.home {
|
||||
background: #e3e3e3 url("../images/marketing/shot-5-large.jpg"); } }
|
||||
header.announcement.home div {
|
||||
padding: 258.88px 25.888px 77.664px; }
|
||||
@media screen and (max-width:780px) {
|
||||
header.announcement.home div {
|
||||
padding: 64.72px 25.888px 51.776px; } }
|
||||
header.announcement.home div nav h1 {
|
||||
margin-right: 0; }
|
||||
header.announcement.home div nav a.login {
|
||||
display: none; }
|
||||
header.announcement.course {
|
||||
background: #e3e3e3 url("../images/marketing/course-bg-small.jpg"); }
|
||||
@media screen and (min-width: 1200px) {
|
||||
header.announcement.course {
|
||||
background: #e3e3e3 url("../images/marketing/course-bg-large.jpg"); } }
|
||||
@media screen and (max-width: 1199px) and (min-width: 700px) {
|
||||
header.announcement.course {
|
||||
background: #e3e3e3 url("../images/marketing/course-bg-medium.jpg"); } }
|
||||
header.announcement.course div {
|
||||
padding: 103.552px 25.888px 51.776px; }
|
||||
@media screen and (max-width:780px) {
|
||||
header.announcement.course div {
|
||||
padding: 64.72px 25.888px 51.776px; } }
|
||||
header.announcement div {
|
||||
position: relative; }
|
||||
header.announcement div nav {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 25.888px;
|
||||
-webkit-border-radius: 0 0 3px 3px;
|
||||
-moz-border-radius: 0 0 3px 3px;
|
||||
-ms-border-radius: 0 0 3px 3px;
|
||||
-o-border-radius: 0 0 3px 3px;
|
||||
border-radius: 0 0 3px 3px;
|
||||
background: #333;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
padding: 12.944px 25.888px; }
|
||||
header.announcement div nav h1 {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-right: 12.944px; }
|
||||
header.announcement div nav h1 a {
|
||||
font: italic 800 18px "Open Sans", Helvetica, Arial, sans-serif;
|
||||
color: #fff;
|
||||
text-decoration: none; }
|
||||
header.announcement div nav h1 a:hover, header.announcement div nav h1 a:focus {
|
||||
color: #999; }
|
||||
header.announcement div nav a.login {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
font-style: normal;
|
||||
font-family: "Open Sans", Helvetica, Arial, sans-serif; }
|
||||
header.announcement div nav a.login:hover, header.announcement div nav a.login:focus {
|
||||
color: #999; }
|
||||
header.announcement div section {
|
||||
background: #993333;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-left: 34.171%;
|
||||
padding: 25.888px 38.832px; }
|
||||
@media screen and (max-width: 780px) {
|
||||
header.announcement div section {
|
||||
margin-left: 0; } }
|
||||
header.announcement div section h1 {
|
||||
font-family: "Open Sans";
|
||||
font-size: 30px;
|
||||
font-weight: 800;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
line-height: 1.2em;
|
||||
margin: 0 25.888px 0 0; }
|
||||
header.announcement div section h2 {
|
||||
font-family: "Open Sans";
|
||||
font-size: 24px;
|
||||
font-weight: 400;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
line-height: 1.2em; }
|
||||
header.announcement div section.course section {
|
||||
float: left;
|
||||
margin-left: 0;
|
||||
margin-right: 3.817%;
|
||||
padding: 0;
|
||||
width: 48.092%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
header.announcement div section.course section {
|
||||
float: none;
|
||||
width: 100%;
|
||||
margin-right: 0; } }
|
||||
header.announcement div section.course section a {
|
||||
background-color: #4d1919;
|
||||
border-color: #260d0d;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 #732626, 0 1px 0 #ac3939, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 #732626, 0 1px 0 #ac3939, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 #732626, 0 1px 0 #ac3939, false, false, false, false, false, false, false);
|
||||
display: block;
|
||||
padding: 12.944px 25.888px;
|
||||
text-align: center; }
|
||||
header.announcement div section.course section a:hover {
|
||||
background-color: #732626;
|
||||
border-color: #4d1919; }
|
||||
header.announcement div section.course p {
|
||||
width: 48.092%;
|
||||
line-height: 25.888px;
|
||||
float: left; }
|
||||
@media screen and (max-width: 780px) {
|
||||
header.announcement div section.course p {
|
||||
float: none;
|
||||
width: 100%; } }
|
||||
|
||||
footer {
|
||||
padding-top: 0; }
|
||||
footer div.footer-wrapper {
|
||||
border-top: 1px solid #e5e5e5;
|
||||
padding: 25.888px 0;
|
||||
background: url("../images/marketing/mit-logo.png") right center no-repeat; }
|
||||
@media screen and (max-width: 780px) {
|
||||
footer div.footer-wrapper {
|
||||
background-position: left bottom;
|
||||
padding-bottom: 77.664px; } }
|
||||
footer div.footer-wrapper a {
|
||||
color: #888;
|
||||
text-decoration: none;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
footer div.footer-wrapper a:hover, footer div.footer-wrapper a:focus {
|
||||
color: #666; }
|
||||
footer div.footer-wrapper p {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-right: 25.888px; }
|
||||
footer div.footer-wrapper ul {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto; }
|
||||
@media screen and (max-width: 780px) {
|
||||
footer div.footer-wrapper ul {
|
||||
margin-top: 25.888px; } }
|
||||
footer div.footer-wrapper ul li {
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
margin-bottom: 0; }
|
||||
footer div.footer-wrapper ul li:after {
|
||||
content: ' |';
|
||||
display: inline;
|
||||
color: #ccc; }
|
||||
footer div.footer-wrapper ul li:last-child:after {
|
||||
content: none; }
|
||||
footer div.footer-wrapper ul.social {
|
||||
float: right;
|
||||
margin-right: 60px;
|
||||
position: relative;
|
||||
top: -5px; }
|
||||
@media screen and (max-width: 780px) {
|
||||
footer div.footer-wrapper ul.social {
|
||||
float: none; } }
|
||||
footer div.footer-wrapper ul.social li {
|
||||
float: left;
|
||||
margin-right: 12.944px; }
|
||||
footer div.footer-wrapper ul.social li:after {
|
||||
content: none;
|
||||
display: none; }
|
||||
footer div.footer-wrapper ul.social li a {
|
||||
display: block;
|
||||
height: 29px;
|
||||
width: 28px;
|
||||
text-indent: -9999px; }
|
||||
footer div.footer-wrapper ul.social li a:hover {
|
||||
opacity: .8; }
|
||||
footer div.footer-wrapper ul.social li.twitter a {
|
||||
background: url("../images/marketing/twitter.png") 0 0 no-repeat; }
|
||||
footer div.footer-wrapper ul.social li.facebook a {
|
||||
background: url("../images/marketing/facebook.png") 0 0 no-repeat; }
|
||||
footer div.footer-wrapper ul.social li.linkedin a {
|
||||
background: url("../images/marketing/linkedin.png") 0 0 no-repeat; }
|
||||
|
||||
section.index-content section {
|
||||
float: left; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section {
|
||||
float: none;
|
||||
width: auto;
|
||||
margin-right: 0; } }
|
||||
section.index-content section h1 {
|
||||
font-size: 800 24px "Open Sans";
|
||||
margin-bottom: 25.888px; }
|
||||
section.index-content section p {
|
||||
line-height: 25.888px;
|
||||
margin-bottom: 25.888px; }
|
||||
section.index-content section ul {
|
||||
margin: 0; }
|
||||
section.index-content section.about {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
border-right: 1px solid #e5e5e5;
|
||||
margin-right: 2.513%;
|
||||
padding-right: 1.256%;
|
||||
width: 65.829%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about {
|
||||
width: 100%;
|
||||
border-right: 0;
|
||||
margin-right: 0;
|
||||
padding-right: 0; } }
|
||||
section.index-content section.about section {
|
||||
margin-bottom: 25.888px; }
|
||||
section.index-content section.about section p {
|
||||
width: 48.092%;
|
||||
float: left; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about section p {
|
||||
float: none;
|
||||
width: auto; } }
|
||||
section.index-content section.about section p:nth-child(odd) {
|
||||
margin-right: 3.817%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about section p:nth-child(odd) {
|
||||
margin-right: 0; } }
|
||||
section.index-content section.about section.intro section {
|
||||
margin-bottom: 0; }
|
||||
section.index-content section.about section.intro section.intro-text {
|
||||
margin-right: 3.817%;
|
||||
width: 48.092%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about section.intro section.intro-text {
|
||||
margin-right: 0;
|
||||
width: auto; } }
|
||||
section.index-content section.about section.intro section.intro-text p {
|
||||
margin-right: 0;
|
||||
width: auto;
|
||||
float: none; }
|
||||
section.index-content section.about section.intro section.intro-video {
|
||||
width: 48.092%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about section.intro section.intro-video {
|
||||
width: auto; } }
|
||||
section.index-content section.about section.intro section.intro-video a {
|
||||
display: block;
|
||||
width: 100%; }
|
||||
section.index-content section.about section.intro section.intro-video a img {
|
||||
width: 100%; }
|
||||
section.index-content section.about section.intro section.intro-video a span {
|
||||
display: none; }
|
||||
section.index-content section.about section.features {
|
||||
border-top: 1px solid #E5E5E5;
|
||||
padding-top: 25.888px;
|
||||
margin-bottom: 0; }
|
||||
section.index-content section.about section.features h2 {
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
color: #888;
|
||||
margin-bottom: 25.888px;
|
||||
font-weight: normal;
|
||||
font-size: 14px; }
|
||||
section.index-content section.about section.features h2 span {
|
||||
text-transform: none; }
|
||||
section.index-content section.about section.features p {
|
||||
width: auto;
|
||||
clear: both; }
|
||||
section.index-content section.about section.features p strong {
|
||||
font-family: "Open sans";
|
||||
font-weight: 800; }
|
||||
section.index-content section.about section.features p a {
|
||||
color: #993333;
|
||||
text-decoration: none;
|
||||
-webkit-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-o-transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
transition-property: compact(all, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-o-transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
transition-duration: compact(0.15s, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-o-transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
transition-timing-function: compact(ease-out, false, false, false, false, false, false, false, false);
|
||||
-webkit-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-moz-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-ms-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
-o-transition-delay: compact(0, false, false, false, false, false, false, false, false);
|
||||
transition-delay: compact(0, false, false, false, false, false, false, false, false); }
|
||||
section.index-content section.about section.features p a:hover, section.index-content section.about section.features p a:focus {
|
||||
color: #602020; }
|
||||
section.index-content section.about section.features ul {
|
||||
margin-bottom: 0; }
|
||||
section.index-content section.about section.features ul li {
|
||||
line-height: 25.888px;
|
||||
width: 48.092%;
|
||||
float: left;
|
||||
margin-bottom: 12.944px; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about section.features ul li {
|
||||
width: auto;
|
||||
float: none; } }
|
||||
section.index-content section.about section.features ul li:nth-child(odd) {
|
||||
margin-right: 3.817%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about section.features ul li:nth-child(odd) {
|
||||
margin-right: 0; } }
|
||||
section.index-content section.course, section.index-content section.staff {
|
||||
width: 31.658%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.course, section.index-content section.staff {
|
||||
width: auto; } }
|
||||
section.index-content section.course h1, section.index-content section.staff h1 {
|
||||
color: #888;
|
||||
font: normal 16px Georgia, serif;
|
||||
font-size: 14px;
|
||||
letter-spacing: 1px;
|
||||
margin-bottom: 25.888px;
|
||||
text-transform: uppercase; }
|
||||
section.index-content section.course h2, section.index-content section.staff h2 {
|
||||
font: 800 24px "Open Sans", Helvetica, Arial, sans-serif; }
|
||||
section.index-content section.course h3, section.index-content section.staff h3 {
|
||||
font: 400 18px "Open Sans", Helvetica, Arial, sans-serif; }
|
||||
section.index-content section.course a span.arrow, section.index-content section.staff a span.arrow {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-style: normal;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
padding-left: 10px; }
|
||||
section.index-content section.course ul, section.index-content section.staff ul {
|
||||
list-style: none; }
|
||||
section.index-content section.course ul li img, section.index-content section.staff ul li img {
|
||||
float: left;
|
||||
margin-right: 12.944px; }
|
||||
section.index-content section.course h2 {
|
||||
padding-top: 129.44px;
|
||||
background: url("../images/marketing/circuits-bg.jpg") 0 0 no-repeat;
|
||||
-webkit-background-size: compact(contain, false, false, false, false, false, false, false, false);
|
||||
-moz-background-size: compact(contain, false, false, false, false, false, false, false, false);
|
||||
-ms-background-size: compact(contain, false, false, false, false, false, false, false, false);
|
||||
-o-background-size: compact(contain, false, false, false, false, false, false, false, false);
|
||||
background-size: compact(contain, false, false, false, false, false, false, false, false); }
|
||||
@media screen and (max-width: 998px) and (min-width: 781px) {
|
||||
section.index-content section.course h2 {
|
||||
background: url("../images/marketing/circuits-medium-bg.jpg") 0 0 no-repeat; } }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.course h2 {
|
||||
padding-top: 129.44px;
|
||||
background: url("../images/marketing/circuits-bg.jpg") 0 0 no-repeat; } }
|
||||
@media screen and (min-width: 500px) and (max-width: 781px) {
|
||||
section.index-content section.course h2 {
|
||||
padding-top: 207.104px; } }
|
||||
section.index-content section.course div.announcement p.announcement-button a {
|
||||
margin-top: 0; }
|
||||
section.index-content section.course div.announcement img {
|
||||
max-width: 100%;
|
||||
margin-bottom: 25.888px; }
|
||||
section.index-content section.about-course {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
border-right: 1px solid #e5e5e5;
|
||||
margin-right: 2.513%;
|
||||
padding-right: 1.256%;
|
||||
width: 65.829%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about-course {
|
||||
width: auto;
|
||||
border-right: 0;
|
||||
margin-right: 0;
|
||||
padding-right: 0; } }
|
||||
section.index-content section.about-course section {
|
||||
width: 48.092%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about-course section {
|
||||
width: auto; } }
|
||||
section.index-content section.about-course section.about-info {
|
||||
margin-right: 3.817%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about-course section.about-info {
|
||||
margin-right: 0; } }
|
||||
section.index-content section.about-course section.requirements {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
border-top: 1px solid #E5E5E5;
|
||||
padding-top: 25.888px;
|
||||
margin-bottom: 0; }
|
||||
section.index-content section.about-course section.requirements p {
|
||||
float: left;
|
||||
width: 48.092%;
|
||||
margin-right: 3.817%; }
|
||||
@media screen and (max-width: 780px) {
|
||||
section.index-content section.about-course section.requirements p {
|
||||
margin-right: 0;
|
||||
float: none;
|
||||
width: auto; } }
|
||||
section.index-content section.about-course section.requirements p:nth-child(odd) {
|
||||
margin-right: 0; }
|
||||
section.index-content section.about-course section.cta {
|
||||
width: 100%;
|
||||
text-align: center; }
|
||||
section.index-content section.about-course section.cta a.enroll {
|
||||
padding: 12.944px 51.776px;
|
||||
display: -moz-inline-box;
|
||||
-moz-box-orient: vertical;
|
||||
display: inline-block;
|
||||
vertical-align: baseline;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
*vertical-align: auto;
|
||||
text-align: center;
|
||||
font: 800 18px "Open Sans", Helvetica, Arial, sans-serif; }
|
||||
section.index-content section.staff h1 {
|
||||
margin-top: 25.888px; }
|
||||
|
||||
#lean_overlay {
|
||||
background: #000;
|
||||
display: none;
|
||||
height: 100%;
|
||||
left: 0px;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
width: 100%;
|
||||
z-index: 100; }
|
||||
|
||||
div.leanModal_box {
|
||||
background: #fff;
|
||||
border: none;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-box-shadow: compact(0 0 6px black, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(0 0 6px black, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(0 0 6px black, false, false, false, false, false, false, false, false);
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: none;
|
||||
padding: 51.776px;
|
||||
text-align: left; }
|
||||
div.leanModal_box a.modal_close {
|
||||
color: #aaa;
|
||||
display: block;
|
||||
font-style: normal;
|
||||
height: 14px;
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 12px;
|
||||
width: 14px;
|
||||
z-index: 2; }
|
||||
div.leanModal_box a.modal_close:hover {
|
||||
color: #993333;
|
||||
text-decoration: none; }
|
||||
div.leanModal_box h1 {
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 24px;
|
||||
margin-bottom: 25.888px;
|
||||
margin-top: 0;
|
||||
padding-bottom: 25.888px;
|
||||
text-align: left; }
|
||||
div.leanModal_box#enroll {
|
||||
max-width: 600px; }
|
||||
div.leanModal_box#enroll ol {
|
||||
padding-top: 25.888px; }
|
||||
div.leanModal_box#enroll ol li.terms, div.leanModal_box#enroll ol li.honor-code {
|
||||
float: none;
|
||||
width: auto; }
|
||||
div.leanModal_box#enroll ol li div.tip {
|
||||
display: none; }
|
||||
div.leanModal_box#enroll ol li:hover div.tip {
|
||||
background: #333;
|
||||
color: #fff;
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
line-height: 25.888px;
|
||||
margin: 0 0 0 -10px;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
width: 500px; }
|
||||
div.leanModal_box form {
|
||||
text-align: left; }
|
||||
div.leanModal_box form div#register_error, div.leanModal_box form div#login_error, div.leanModal_box form div#pwd_error {
|
||||
background-color: #333333;
|
||||
border: black;
|
||||
color: #fff;
|
||||
font-family: "Open sans";
|
||||
font-weight: bold;
|
||||
letter-spacing: 1px;
|
||||
margin: -25.888px -25.888px 25.888px;
|
||||
padding: 12.944px;
|
||||
text-shadow: 0 1px 0 #1a1a1a;
|
||||
-webkit-font-smoothing: antialiased; }
|
||||
div.leanModal_box form div#register_error:empty, div.leanModal_box form div#login_error:empty, div.leanModal_box form div#pwd_error:empty {
|
||||
padding: 0; }
|
||||
div.leanModal_box form ol {
|
||||
list-style: none;
|
||||
margin-bottom: 25.888px; }
|
||||
div.leanModal_box form ol li {
|
||||
margin-bottom: 12.944px; }
|
||||
div.leanModal_box form ol li.terms, div.leanModal_box form ol li.remember {
|
||||
border-top: 1px solid #eee;
|
||||
clear: both;
|
||||
float: none;
|
||||
padding-top: 25.888px;
|
||||
width: auto; }
|
||||
div.leanModal_box form ol li.honor-code {
|
||||
float: none;
|
||||
width: auto; }
|
||||
div.leanModal_box form ol li label {
|
||||
display: block;
|
||||
font-weight: bold; }
|
||||
div.leanModal_box form ol li input[type="email"], div.leanModal_box form ol li input[type="number"], div.leanModal_box form ol li input[type="password"], div.leanModal_box form ol li input[type="search"], div.leanModal_box form ol li input[type="tel"], div.leanModal_box form ol li input[type="text"], div.leanModal_box form ol li input[type="url"], div.leanModal_box form ol li input[type="color"], div.leanModal_box form ol li input[type="date"], div.leanModal_box form ol li input[type="datetime"], div.leanModal_box form ol li input[type="datetime-local"], div.leanModal_box form ol li input[type="month"], div.leanModal_box form ol li input[type="time"], div.leanModal_box form ol li input[type="week"], div.leanModal_box form ol li textarea {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%; }
|
||||
div.leanModal_box form ol li input[type="checkbox"] {
|
||||
margin-right: 10px; }
|
||||
div.leanModal_box form ol li ul {
|
||||
list-style: disc outside none;
|
||||
margin: 12.944px 0 25.888px 25.888px; }
|
||||
div.leanModal_box form ol li ul li {
|
||||
color: #666;
|
||||
float: none;
|
||||
font-size: 14px;
|
||||
list-style: disc outside none;
|
||||
margin-bottom: 12.944px; }
|
||||
div.leanModal_box form input[type="button"], div.leanModal_box form input[type="submit"] {
|
||||
border: 1px solid #691b1b;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #bc5c5c, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #bc5c5c, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #bc5c5c, false, false, false, false, false, false, false, false);
|
||||
color: white;
|
||||
display: inline;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
background-color: #993333;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#993333, #761e1e, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#993333, #761e1e, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#993333, #761e1e, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#993333, #761e1e, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#993333, #761e1e, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#993333, #761e1e, false, false, false, false, false, false, false, false));
|
||||
padding: 6px 18px 7px;
|
||||
text-shadow: 0 1px 0 #5d1414;
|
||||
-webkit-background-clip: padding-box;
|
||||
font-size: 18px;
|
||||
padding: 12.944px; }
|
||||
div.leanModal_box form input[type="button"]:hover, div.leanModal_box form input[type="submit"]:hover {
|
||||
-webkit-box-shadow: compact(inset 0 1px 0 0 #a44141, false, false, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 1px 0 0 #a44141, false, false, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 1px 0 0 #a44141, false, false, false, false, false, false, false, false);
|
||||
cursor: pointer;
|
||||
background-color: #823030;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(100%, compact(#823030, #691c1c, false, false, false, false, false, false, false, false)));
|
||||
background-image: -webkit-linear-gradient(top, compact(#823030, #691c1c, false, false, false, false, false, false, false, false));
|
||||
background-image: -moz-linear-gradient(top, compact(#823030, #691c1c, false, false, false, false, false, false, false, false));
|
||||
background-image: -ms-linear-gradient(top, compact(#823030, #691c1c, false, false, false, false, false, false, false, false));
|
||||
background-image: -o-linear-gradient(top, compact(#823030, #691c1c, false, false, false, false, false, false, false, false));
|
||||
background-image: linear-gradient(top, compact(#823030, #691c1c, false, false, false, false, false, false, false, false)); }
|
||||
div.leanModal_box form input[type="button"]:active, div.leanModal_box form input[type="submit"]:active {
|
||||
border: 1px solid #691b1b;
|
||||
-webkit-box-shadow: compact(inset 0 0 8px 4px #5c1919, inset 0 0 8px 4px #5c1919, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false);
|
||||
-moz-box-shadow: compact(inset 0 0 8px 4px #5c1919, inset 0 0 8px 4px #5c1919, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false);
|
||||
box-shadow: compact(inset 0 0 8px 4px #5c1919, inset 0 0 8px 4px #5c1919, 0 1px 1px 0 #eeeeee, false, false, false, false, false, false); }
|
||||
|
||||
div#login {
|
||||
min-width: 400px; }
|
||||
div#login header {
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin-bottom: 25.888px;
|
||||
padding-bottom: 25.888px; }
|
||||
div#login header h1 {
|
||||
border-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 6.472px; }
|
||||
div#login ol li {
|
||||
float: none;
|
||||
width: auto; }
|
||||
|
||||
div.lost-password {
|
||||
margin-top: 25.888px;
|
||||
text-align: left; }
|
||||
div.lost-password a {
|
||||
color: #999; }
|
||||
div.lost-password a:hover {
|
||||
color: #444; }
|
||||
|
||||
div#pwd_reset p {
|
||||
margin-bottom: 25.888px; }
|
||||
div#pwd_reset input[type="email"] {
|
||||
margin-bottom: 25.888px; }
|
||||
|
||||
div#apply_name_change,
|
||||
div#change_email,
|
||||
div#unenroll,
|
||||
div#deactivate-account {
|
||||
max-width: 700px; }
|
||||
div#apply_name_change ul,
|
||||
div#change_email ul,
|
||||
div#unenroll ul,
|
||||
div#deactivate-account ul {
|
||||
list-style: none; }
|
||||
div#apply_name_change ul li,
|
||||
div#change_email ul li,
|
||||
div#unenroll ul li,
|
||||
div#deactivate-account ul li {
|
||||
margin-bottom: 12.944px; }
|
||||
div#apply_name_change ul li textarea, div#apply_name_change ul li input[type="email"], div#apply_name_change ul li input[type="number"], div#apply_name_change ul li input[type="password"], div#apply_name_change ul li input[type="search"], div#apply_name_change ul li input[type="tel"], div#apply_name_change ul li input[type="text"], div#apply_name_change ul li input[type="url"], div#apply_name_change ul li input[type="color"], div#apply_name_change ul li input[type="date"], div#apply_name_change ul li input[type="datetime"], div#apply_name_change ul li input[type="datetime-local"], div#apply_name_change ul li input[type="month"], div#apply_name_change ul li input[type="time"], div#apply_name_change ul li input[type="week"],
|
||||
div#change_email ul li textarea,
|
||||
div#change_email ul li input[type="email"],
|
||||
div#change_email ul li input[type="number"],
|
||||
div#change_email ul li input[type="password"],
|
||||
div#change_email ul li input[type="search"],
|
||||
div#change_email ul li input[type="tel"],
|
||||
div#change_email ul li input[type="text"],
|
||||
div#change_email ul li input[type="url"],
|
||||
div#change_email ul li input[type="color"],
|
||||
div#change_email ul li input[type="date"],
|
||||
div#change_email ul li input[type="datetime"],
|
||||
div#change_email ul li input[type="datetime-local"],
|
||||
div#change_email ul li input[type="month"],
|
||||
div#change_email ul li input[type="time"],
|
||||
div#change_email ul li input[type="week"],
|
||||
div#unenroll ul li textarea,
|
||||
div#unenroll ul li input[type="email"],
|
||||
div#unenroll ul li input[type="number"],
|
||||
div#unenroll ul li input[type="password"],
|
||||
div#unenroll ul li input[type="search"],
|
||||
div#unenroll ul li input[type="tel"],
|
||||
div#unenroll ul li input[type="text"],
|
||||
div#unenroll ul li input[type="url"],
|
||||
div#unenroll ul li input[type="color"],
|
||||
div#unenroll ul li input[type="date"],
|
||||
div#unenroll ul li input[type="datetime"],
|
||||
div#unenroll ul li input[type="datetime-local"],
|
||||
div#unenroll ul li input[type="month"],
|
||||
div#unenroll ul li input[type="time"],
|
||||
div#unenroll ul li input[type="week"],
|
||||
div#deactivate-account ul li textarea,
|
||||
div#deactivate-account ul li input[type="email"],
|
||||
div#deactivate-account ul li input[type="number"],
|
||||
div#deactivate-account ul li input[type="password"],
|
||||
div#deactivate-account ul li input[type="search"],
|
||||
div#deactivate-account ul li input[type="tel"],
|
||||
div#deactivate-account ul li input[type="text"],
|
||||
div#deactivate-account ul li input[type="url"],
|
||||
div#deactivate-account ul li input[type="color"],
|
||||
div#deactivate-account ul li input[type="date"],
|
||||
div#deactivate-account ul li input[type="datetime"],
|
||||
div#deactivate-account ul li input[type="datetime-local"],
|
||||
div#deactivate-account ul li input[type="month"],
|
||||
div#deactivate-account ul li input[type="time"],
|
||||
div#deactivate-account ul li input[type="week"] {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
width: 100%; }
|
||||
div#apply_name_change ul li textarea,
|
||||
div#change_email ul li textarea,
|
||||
div#unenroll ul li textarea,
|
||||
div#deactivate-account ul li textarea {
|
||||
height: 60px; }
|
||||
div#apply_name_change ul li input[type="submit"],
|
||||
div#change_email ul li input[type="submit"],
|
||||
div#unenroll ul li input[type="submit"],
|
||||
div#deactivate-account ul li input[type="submit"] {
|
||||
white-space: normal; }
|
||||
|
||||
div#feedback_div form ol li {
|
||||
float: none;
|
||||
width: 100%; }
|
||||
div#feedback_div form ol li textarea#feedback_message {
|
||||
height: 100px; }
|
||||
BIN
lms/static/css/vendor/indicator.gif
vendored
Executable file
BIN
lms/static/css/vendor/indicator.gif
vendored
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
152
lms/static/js/jquery.timeago.js
Normal file
152
lms/static/js/jquery.timeago.js
Normal file
@@ -0,0 +1,152 @@
|
||||
/**
|
||||
* Timeago is a jQuery plugin that makes it easy to support automatically
|
||||
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
|
||||
*
|
||||
* @name timeago
|
||||
* @version 0.11.4
|
||||
* @requires jQuery v1.2.3+
|
||||
* @author Ryan McGeary
|
||||
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* For usage and examples, visit:
|
||||
* http://timeago.yarp.com/
|
||||
*
|
||||
* Copyright (c) 2008-2012, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
|
||||
*/
|
||||
(function($) {
|
||||
$.timeago = function(timestamp) {
|
||||
if (timestamp instanceof Date) {
|
||||
return inWords(timestamp);
|
||||
} else if (typeof timestamp === "string") {
|
||||
return inWords($.timeago.parse(timestamp));
|
||||
} else if (typeof timestamp === "number") {
|
||||
return inWords(new Date(timestamp));
|
||||
} else {
|
||||
return inWords($.timeago.datetime(timestamp));
|
||||
}
|
||||
};
|
||||
var $t = $.timeago;
|
||||
|
||||
$.extend($.timeago, {
|
||||
settings: {
|
||||
refreshMillis: 60000,
|
||||
allowFuture: false,
|
||||
strings: {
|
||||
prefixAgo: null,
|
||||
prefixFromNow: null,
|
||||
suffixAgo: "ago",
|
||||
suffixFromNow: "from now",
|
||||
seconds: "less than a minute",
|
||||
minute: "about a minute",
|
||||
minutes: "%d minutes",
|
||||
hour: "about an hour",
|
||||
hours: "about %d hours",
|
||||
day: "a day",
|
||||
days: "%d days",
|
||||
month: "about a month",
|
||||
months: "%d months",
|
||||
year: "about a year",
|
||||
years: "%d years",
|
||||
wordSeparator: " ",
|
||||
numbers: []
|
||||
}
|
||||
},
|
||||
inWords: function(distanceMillis) {
|
||||
var $l = this.settings.strings;
|
||||
var prefix = $l.prefixAgo;
|
||||
var suffix = $l.suffixAgo;
|
||||
if (this.settings.allowFuture) {
|
||||
if (distanceMillis < 0) {
|
||||
prefix = $l.prefixFromNow;
|
||||
suffix = $l.suffixFromNow;
|
||||
}
|
||||
}
|
||||
|
||||
var seconds = Math.abs(distanceMillis) / 1000;
|
||||
var minutes = seconds / 60;
|
||||
var hours = minutes / 60;
|
||||
var days = hours / 24;
|
||||
var years = days / 365;
|
||||
|
||||
function substitute(stringOrFunction, number) {
|
||||
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
|
||||
var value = ($l.numbers && $l.numbers[number]) || number;
|
||||
return string.replace(/%d/i, value);
|
||||
}
|
||||
|
||||
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
|
||||
seconds < 90 && substitute($l.minute, 1) ||
|
||||
minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
|
||||
minutes < 90 && substitute($l.hour, 1) ||
|
||||
hours < 24 && substitute($l.hours, Math.round(hours)) ||
|
||||
hours < 42 && substitute($l.day, 1) ||
|
||||
days < 30 && substitute($l.days, Math.round(days)) ||
|
||||
days < 45 && substitute($l.month, 1) ||
|
||||
days < 365 && substitute($l.months, Math.round(days / 30)) ||
|
||||
years < 1.5 && substitute($l.year, 1) ||
|
||||
substitute($l.years, Math.round(years));
|
||||
|
||||
var separator = $l.wordSeparator === undefined ? " " : $l.wordSeparator;
|
||||
return $.trim([prefix, words, suffix].join(separator));
|
||||
},
|
||||
parse: function(iso8601) {
|
||||
var s = $.trim(iso8601);
|
||||
s = s.replace(/\.\d+/,""); // remove milliseconds
|
||||
s = s.replace(/-/,"/").replace(/-/,"/");
|
||||
s = s.replace(/T/," ").replace(/Z/," UTC");
|
||||
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
|
||||
return new Date(s);
|
||||
},
|
||||
datetime: function(elem) {
|
||||
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
|
||||
return $t.parse(iso8601);
|
||||
},
|
||||
isTime: function(elem) {
|
||||
// jQuery's `is()` doesn't play well with HTML5 in IE
|
||||
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
|
||||
}
|
||||
});
|
||||
|
||||
$.fn.timeago = function() {
|
||||
var self = this;
|
||||
self.each(refresh);
|
||||
|
||||
var $s = $t.settings;
|
||||
if ($s.refreshMillis > 0) {
|
||||
setInterval(function() { self.each(refresh); }, $s.refreshMillis);
|
||||
}
|
||||
return self;
|
||||
};
|
||||
|
||||
function refresh() {
|
||||
var data = prepareData(this);
|
||||
if (!isNaN(data.datetime)) {
|
||||
$(this).text(inWords(data.datetime));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
function prepareData(element) {
|
||||
element = $(element);
|
||||
if (!element.data("timeago")) {
|
||||
element.data("timeago", { datetime: $t.datetime(element) });
|
||||
var text = $.trim(element.text());
|
||||
if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
|
||||
element.attr("title", text);
|
||||
}
|
||||
}
|
||||
return element.data("timeago");
|
||||
}
|
||||
|
||||
function inWords(date) {
|
||||
return $t.inWords(distance(date));
|
||||
}
|
||||
|
||||
function distance(date) {
|
||||
return (new Date().getTime() - date.getTime());
|
||||
}
|
||||
|
||||
// fix for IE6 suckage
|
||||
document.createElement("abbr");
|
||||
document.createElement("time");
|
||||
}(jQuery));
|
||||
@@ -1,71 +0,0 @@
|
||||
<%! from django_comment_client.helpers import url_for_tags, url_for_user %>
|
||||
<%! from datehelper import time_ago_in_words %>
|
||||
<%! from dateutil.parser import parse %>
|
||||
<%! from django_comment_client.helpers import close_thread_text, \
|
||||
url_for_tags, \
|
||||
url_for_user, \
|
||||
pluralize
|
||||
%>
|
||||
|
||||
<div class="discussion-content">
|
||||
<div class="discussion-content-wrapper">
|
||||
<div class="discussion-votes">
|
||||
<a class="discussion-vote discussion-vote-up" href="javascript:void(0)">▲</a>
|
||||
<div class="discussion-votes-point">${content['votes']['point']}</div>
|
||||
<a class="discussion-vote discussion-vote-down" href="javascript:void(0)">▼</a>
|
||||
</div>
|
||||
<div class="discussion-right-wrapper">
|
||||
<ul class="admin-actions">
|
||||
% if content['type'] == 'comment':
|
||||
<li><a href="javascript:void(0)" class="admin-endorse">Endorse</a></li>
|
||||
% endif
|
||||
<li><a href="javascript:void(0)" class="admin-edit">Edit</a></li>
|
||||
<li><a href="javascript:void(0)" class="admin-delete">Delete</a></li>
|
||||
% if content['type'] == "thread":
|
||||
<li><a class="admin-openclose" href="javascript:void(0);">${close_thread_text(content)}</a></li>
|
||||
% endif
|
||||
</ul>
|
||||
% if content['type'] == "thread":
|
||||
<a class="thread-title" name="${content['id']}" href="javascript:void(0)">${(content.get('highlighted_title') or content['title']) | h}</a>
|
||||
<div class="thread-raw-title" style="display: none">${content['title']}</div>
|
||||
% endif
|
||||
<div class="discussion-content-view">
|
||||
<a name="${content['id']}" style="width: 0; height: 0; padding: 0; border: none;"></a>
|
||||
<div class="content-body">${(content.get('highlighted_body') or content['body']) | h}</div>
|
||||
<div class="content-raw-body" style="display: none">${content['body'] | h}</div>
|
||||
% if content['type'] == "thread":
|
||||
<div class="thread-tags">
|
||||
% for tag in content['tags']:
|
||||
<a class="thread-tag" href="${url_for_tags(content['course_id'], [tag])}">${tag | h}</a>
|
||||
% endfor
|
||||
</div>
|
||||
<div class="thread-raw-tags" style="display: none">${",".join(content['tags']) | h}</div>
|
||||
% endif
|
||||
<div class="info">
|
||||
<div class="comment-time">
|
||||
${time_ago_in_words(parse(content['updated_at']))} ago by
|
||||
% if content['anonymous']:
|
||||
anonymous
|
||||
% else:
|
||||
<a href="${url_for_user(content['course_id'], content['user_id'])}">${content['username']}</a>
|
||||
% endif
|
||||
</div>
|
||||
<div class="comment-count">
|
||||
% if content.get('comments_count', -1) >= 0:
|
||||
% if discussion_type == 'user':
|
||||
<a href="javascript:void(0)" class="discussion-show-comments first-time">Show all comments (${content['comments_count']} total)</a>
|
||||
% else:
|
||||
<a href="javascript:void(0)" class="discussion-show-comments">Show ${content['comments_count']} ${pluralize('comment', content['comments_count'])}</a>
|
||||
% endif
|
||||
% endif
|
||||
</div>
|
||||
<ul class="discussion-actions">
|
||||
<li><a class="discussion-link discussion-reply discussion-reply-${content['type']}" href="javascript:void(0)">Reply</a></li>
|
||||
<li><div class="follow-wrapper"></div></li>
|
||||
<li><a class="discussion-link discussion-permanent-link" href="javascript:void(0)">Permanent Link</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -32,7 +32,7 @@
|
||||
{{/thread}}
|
||||
<div class="info">
|
||||
<div class="comment-time">
|
||||
<span class="time-ago">{{content.updated_at}}</span> ago by
|
||||
<span class="timeago" title="{{content.updated_at}}">sometime</span> by
|
||||
{{#content.anonymous}}
|
||||
anonymous
|
||||
{{/content.anonymous}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<script type="text/javascript" src="${static.url('js/Markdown.Sanitizer.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/Markdown.Editor.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/jquery.autocomplete.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/jquery.timeago.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/jquery.tagsinput.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/mustache.js')}"></script>
|
||||
<script type="text/javascript" src="${static.url('js/URI.min.js')}"></script>
|
||||
|
||||
@@ -42,7 +42,7 @@ django-ses
|
||||
django-storages
|
||||
django-threaded-multihost
|
||||
django-sekizai<0.7
|
||||
git+git://github.com/benjaoming/django-wiki.git@97f8413
|
||||
git+git://github.com/dementrock/pystache_custom.git
|
||||
-e git://github.com/benjaoming/django-wiki.git@c145596#egg=django-wiki
|
||||
-e git://github.com/dementrock/pystache_custom.git#egg=pystache_custom
|
||||
networkx
|
||||
-r repo-requirements.txt
|
||||
|
||||
Reference in New Issue
Block a user