├── .gitignore
├── config.yml
├── config.ru
├── public
└── javascripts
│ ├── glow
│ └── widgets
│ │ ├── images
│ │ ├── t.gif
│ │ ├── darkpanel
│ │ │ ├── ab.png
│ │ │ ├── al.png
│ │ │ ├── ar.png
│ │ │ ├── at.png
│ │ │ ├── bg.gif
│ │ │ ├── cbl.png
│ │ │ ├── cbr.png
│ │ │ ├── ctl.png
│ │ │ ├── ctr.png
│ │ │ ├── close.png
│ │ │ └── transbg.png
│ │ ├── lightpanel
│ │ │ ├── ab.png
│ │ │ ├── al.png
│ │ │ ├── ar.png
│ │ │ ├── at.png
│ │ │ ├── bg.gif
│ │ │ ├── cbl.png
│ │ │ ├── cbr.png
│ │ │ ├── close.png
│ │ │ ├── ctl.png
│ │ │ ├── ctr.png
│ │ │ └── transbg.png
│ │ ├── slider
│ │ │ ├── darkh.png
│ │ │ ├── darkv.png
│ │ │ ├── lighth.png
│ │ │ └── lightv.png
│ │ ├── carousel
│ │ │ ├── darkh.png
│ │ │ ├── darkv.png
│ │ │ ├── lighth.png
│ │ │ ├── lightv.png
│ │ │ ├── darkdots.png
│ │ │ ├── darkdotsv.png
│ │ │ ├── lightdots.png
│ │ │ └── lightdotsv.png
│ │ ├── editor
│ │ │ ├── menuarrow.png
│ │ │ ├── button-bold.png
│ │ │ ├── button-italics.png
│ │ │ ├── button-strike.png
│ │ │ ├── dark-button-bold.png
│ │ │ ├── button-blockquote.png
│ │ │ ├── button-orderedlist.png
│ │ │ ├── dark-button-italics.png
│ │ │ ├── dark-button-strike.png
│ │ │ ├── light-button-bold.png
│ │ │ ├── light-button-strike.png
│ │ │ ├── button-unorderedlist.png
│ │ │ ├── light-button-italics.png
│ │ │ ├── dark-button-blockquote.png
│ │ │ ├── dark-button-orderedlist.png
│ │ │ ├── light-button-blockquote.png
│ │ │ └── dark-button-unorderedlist.png
│ │ └── timetable
│ │ │ ├── darkh.png
│ │ │ ├── darkv.png
│ │ │ ├── lighth.png
│ │ │ └── lightv.png
│ │ ├── widgets.css
│ │ └── widgets.debug.css
│ └── application.js
├── Rakefile
├── lib
├── settings.rb
├── gobbler.rb
├── bot.rb
├── bots.rb
└── daemon.rb
├── bin
└── twitter-server
├── test
├── settings_test.rb
├── fixtures
│ └── twitter
│ │ ├── empty.json
│ │ └── example.json
├── bot_test.rb
├── riot_macros.rb
├── test_helper.rb
├── app_test.rb
└── daemon_test.rb
├── README.textile
└── app.rb
/.gitignore:
--------------------------------------------------------------------------------
1 | *.swp
2 | *.swo
3 | tmp/
4 | log/
5 |
--------------------------------------------------------------------------------
/config.yml:
--------------------------------------------------------------------------------
1 | sections:
2 | - Halloween
3 | - Ruby
4 | - Love
5 |
--------------------------------------------------------------------------------
/config.ru:
--------------------------------------------------------------------------------
1 | require 'app'
2 |
3 | use Rack::ShowExceptions
4 | run Sinatra::Application
5 |
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/t.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/t.gif
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/ab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/ab.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/al.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/al.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/ar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/ar.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/at.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/at.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/bg.gif
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/cbl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/cbl.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/cbr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/cbr.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/ctl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/ctl.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/ctr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/ctr.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/ab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/ab.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/al.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/al.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/ar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/ar.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/at.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/at.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/bg.gif
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/slider/darkh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/slider/darkh.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/slider/darkv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/slider/darkv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/slider/lighth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/slider/lighth.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/slider/lightv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/slider/lightv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/darkh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/darkh.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/darkv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/darkv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/lighth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/lighth.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/lightv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/lightv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/close.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/menuarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/menuarrow.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/cbl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/cbl.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/cbr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/cbr.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/close.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/ctl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/ctl.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/ctr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/ctr.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/timetable/darkh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/timetable/darkh.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/timetable/darkv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/timetable/darkv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/timetable/lighth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/timetable/lighth.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/timetable/lightv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/timetable/lightv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/darkdots.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/darkdots.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/darkdotsv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/darkdotsv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/lightdots.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/lightdots.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/darkpanel/transbg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/darkpanel/transbg.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/button-bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/button-bold.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/lightpanel/transbg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/lightpanel/transbg.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/carousel/lightdotsv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/carousel/lightdotsv.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/button-italics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/button-italics.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/button-strike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/button-strike.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/dark-button-bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/dark-button-bold.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/button-blockquote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/button-blockquote.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/button-orderedlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/button-orderedlist.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/dark-button-italics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/dark-button-italics.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/dark-button-strike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/dark-button-strike.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/light-button-bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/light-button-bold.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/light-button-strike.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/light-button-strike.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/button-unorderedlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/button-unorderedlist.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/light-button-italics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/light-button-italics.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/dark-button-blockquote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/dark-button-blockquote.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/dark-button-orderedlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/dark-button-orderedlist.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/light-button-blockquote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/light-button-blockquote.png
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/images/editor/dark-button-unorderedlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexyoung/gobbler/master/public/javascripts/glow/widgets/images/editor/dark-button-unorderedlist.png
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | require 'rake/testtask'
2 |
3 | Rake::TestTask.new :test do |test|
4 | test.libs << 'lib' << 'test'
5 | test.pattern = 'test/**/*_test.rb'
6 | test.verbose = true
7 | end
8 |
9 | task :default => :test
10 |
--------------------------------------------------------------------------------
/lib/settings.rb:
--------------------------------------------------------------------------------
1 | class Settings
2 | CONFIG_FILE = File.dirname(__FILE__) / '..' / 'config.yml'
3 |
4 | def self.[](key)
5 | @@config ||= YAML.load(File.open(CONFIG_FILE))
6 | @@config[key]
7 | end
8 |
9 | def self.[]=(key, value)
10 | @@config[key] = value
11 | end
12 | end
13 |
--------------------------------------------------------------------------------
/bin/twitter-server:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | require File.join(File.expand_path(File.dirname(__FILE__)), '..', 'lib', 'gobbler')
3 |
4 | case ARGV.last
5 | when 'start'
6 | Gobbler::Daemon.start
7 | when 'stop'
8 | Gobbler::Daemon.stop
9 | when 'restart'
10 | Gobbler::Daemon.stop
11 | Gobbler::Daemon.start
12 | else
13 | puts "Run with start, stop or restart"
14 | exit 1
15 | end
16 |
--------------------------------------------------------------------------------
/test/settings_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | context 'The Settings class' do
4 |
5 | context 'reads settings' do
6 | asserts('returns a list of search terms') { Settings['sections'] }.any?
7 | end
8 |
9 | context 'writes settings' do
10 | setup { Settings['sections'] = %w(iphone windows7) }
11 | asserts('expected sections') { Settings['sections'] }.equals(%w(iphone windows7))
12 | end
13 |
14 | end
15 |
--------------------------------------------------------------------------------
/README.textile:
--------------------------------------------------------------------------------
1 | Gobble loads tweets in a scrolling view. It's similar to "Twistori":http://twistori.com/
2 |
3 | h3. Installation
4 |
5 | # Download the source
6 | # Edit the config.yml file to watch topics that you're interested in
7 | # Set up a suitable rack-friendly web server (Passenger) or just run it locally
8 |
9 | h3. Info
10 |
11 | * It uses a background daemon to regularly fetch tweets from the twitter search API
12 | * It's zero-conf, so the web app will automatically launch the daemon as required
13 | * It uses "Sinatra":http://www.sinatrarb.com/ and the BBC's "glow framework":http://www.bbc.co.uk/glow/
14 |
15 | h3. Todo
16 |
17 | * Multiple searches
18 |
--------------------------------------------------------------------------------
/test/fixtures/twitter/empty.json:
--------------------------------------------------------------------------------
1 | HTTP/1.1 200 OK
2 | Date: Sun, 11 Oct 2009 10:43:10 GMT
3 | Server: hi
4 | Status: 200 OK
5 | X-Served-From: searchdb006
6 | Content-Type: application/json; charset=utf-8
7 | X-Served-By: searchweb006.twitter.com
8 | X-Timeline-Cache-Hit: Miss
9 | Cache-Control: max-age=15, must-revalidate, max-age=300
10 | Expires: Sun, 11 Oct 2009 10:48:10 GMT
11 | Content-Length: 9514
12 | Vary: Accept-Encoding
13 | X-Varnish: 2074177752
14 | Age: 0
15 | Via: 1.1 varnish
16 | X-Cache-Svr: searchweb006.twitter.com
17 | X-Cache: MISS
18 | Connection: close
19 |
20 | {"results":[],"max_id":-1,"since_id":0,"results_per_page":15,"page":1,"completed_in":0.003348,"query":"xkxclscaaaaaaaaaaaa"}
21 |
--------------------------------------------------------------------------------
/test/bot_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | context 'Twitter Bot' do
4 |
5 | context 'Search results are available' do
6 | setup do
7 | mock_query('example', 'example.json')
8 | end
9 |
10 | asserts('returns tweets') { topic.new_tweets }.any?
11 | end
12 |
13 | context 'Search results are not available' do
14 | setup do
15 | mock_query('example', 'empty.json')
16 | end
17 |
18 | asserts('returns array') { topic.new_tweets }.empty?
19 | end
20 |
21 | context 'Fetches updates "since" ID' do
22 | setup do
23 | mock_query('example', 'example.json')
24 | end
25 |
26 | asserts('returns expected messages') { topic.update ; topic.tweets_since(4781718128) }.any?
27 | end
28 |
29 | end
30 |
--------------------------------------------------------------------------------
/test/riot_macros.rb:
--------------------------------------------------------------------------------
1 | module Custom
2 | module AssertionMacros
3 | def empty?
4 | length == 0 || fail("expected an empty collection, but got a #{actual.class.name} with #{actual.length rescue 0} items")
5 | end
6 |
7 | def any?
8 | length > 0 || fail("expected an array of items")
9 | end
10 |
11 | def length
12 | actual.respond_to?(:length) && actual.length || fail("#{actual.class.name} does not respond to length")
13 | end
14 | end
15 |
16 | module Macros
17 | def asserts_response_status(expected)
18 | asserts("response status is #{expected}") do
19 | last_response.status
20 | end.equals(expected)
21 | end
22 | end
23 | end
24 |
25 | Riot::Assertion.instance_eval { include Custom::AssertionMacros }
26 | Riot::Context.instance_eval { include Custom::Macros }
27 |
--------------------------------------------------------------------------------
/test/test_helper.rb:
--------------------------------------------------------------------------------
1 | %w(rubygems riot fakeweb mocha rack/test).each do |lib|
2 | require lib
3 | end
4 | require 'lib/gobbler'
5 | require 'riot_macros'
6 |
7 | # TODO: This should be in Riot::Context
8 | include Mocha::API
9 |
10 | class File
11 | def self.here
12 | dirname(__FILE__)
13 | end
14 | end
15 |
16 | def fake_query(query, file_name)
17 | sanitized_query = TwitterSearch::Client.new.sanitize_query query
18 | uri = "#{TwitterSearch::Client::TWITTER_SEARCH_API_URL}?#{sanitized_query}&rpp=20"
19 | FakeWeb.register_uri(:get, uri, :response => File.here / 'fixtures' / 'twitter' / file_name)
20 | end
21 |
22 | def mock_query(query, json_file)
23 | query = { :q => query }
24 | fake_query query, json_file
25 | Gobbler::Bot.new query[:q]
26 | end
27 |
28 | Gobbler.logger = Logger.new STDOUT
29 | Gobbler.logger.level = Logger::WARN
30 | FakeWeb.allow_net_connect = false
31 |
--------------------------------------------------------------------------------
/test/app_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 | require 'rack/test'
3 | require 'app'
4 |
5 | # TODO: these lines should be in Riot::Context, but this isn't working
6 | def app; @app; end
7 | def session ; last_request.env['rack.session'] ; end
8 | include Rack::Test::Methods
9 |
10 | context 'Web App' do
11 | setup { @app = Sinatra::Application }
12 |
13 | context '/' do
14 | setup { get '/' }
15 | asserts_response_status 200
16 | asserts('last_tweet_id is nil') { session[:last_tweet_id] }.nil
17 | end
18 |
19 | context '/updates.json' do
20 | setup do
21 | tweets = [{ 'from_user' => '@alex_young',
22 | 'text' => 'This is a message' }]
23 | Sinatra::Application.any_instance.expects(:start_server_if_required).returns true
24 | Sinatra::Application.any_instance.expects(:tweets).returns(tweets)
25 | get '/updates.json'
26 | end
27 | asserts_response_status 200
28 | end
29 | end
30 |
--------------------------------------------------------------------------------
/lib/gobbler.rb:
--------------------------------------------------------------------------------
1 | require 'rubygems'
2 | require 'yaml'
3 | require 'twitter_search'
4 | require 'drb'
5 | require 'fileutils'
6 | require 'logger'
7 | require 'timeout'
8 |
9 | class String
10 | def /(other)
11 | File.join(self, other)
12 | end
13 | end
14 |
15 | module Gobbler
16 | LOG_DIR = File.dirname(__FILE__) / '..' / 'log'
17 |
18 | def self.logger
19 | @logger ||= enable_logging
20 | end
21 |
22 | def self.logger=(logger)
23 | @logger.close if @logger
24 | @logger = logger
25 | end
26 |
27 | def self.enable_logging
28 | FileUtils.mkdir_p LOG_DIR
29 | Logger.new(LOG_DIR / 'twitter-bot.log')
30 | rescue => exception
31 | puts "Error opening log file: #{exception}"
32 | Logger.new STDOUT
33 | end
34 | end
35 |
36 | require File.join(File.dirname(__FILE__), 'settings')
37 | require File.join(File.dirname(__FILE__), 'bot')
38 | require File.join(File.dirname(__FILE__), 'bots')
39 | require File.join(File.dirname(__FILE__), 'daemon')
40 |
--------------------------------------------------------------------------------
/public/javascripts/application.js:
--------------------------------------------------------------------------------
1 | $ = glow.dom.get;
2 | observe = glow.events.addListener;
3 |
4 | glow.ready(function() {
5 | var updating = false;
6 |
7 | observe(window, 'resize', function() {
8 | window.scrollTo(0, 1);
9 | });
10 |
11 | function render_tweet(tweet) {
12 | return '
' + tweet['from_user'] + ' ' + tweet['text'] + '';
13 | }
14 |
15 | function limit_list() {
16 | var items = $('#updates li');
17 | if (items.length > 25) {
18 | items.slice(0, items.length - 25).destroy();
19 | }
20 | }
21 |
22 | function run_update() {
23 | if (updating) return;
24 | updating = true;
25 |
26 | glow.net.get('/updates.json', { onLoad: function(response) {
27 | var tweets = response.json(),
28 | element = $('#updates');
29 |
30 | for (var key in tweets) {
31 | try {
32 | var tweet = glow.dom.create(render_tweet(tweets[key])),
33 | last_height = element[0].scrollHeight;
34 | element.append(tweet);
35 | element[0].style.bottom = '-' + (element[0].scrollHeight - last_height) + 'px';
36 | tweet[0].style.opacity = 0.0;
37 | glow.anim.fadeIn(tweet, 1);
38 | glow.anim.css(element, 0.5, { 'bottom': { to: 0 } }).start();
39 | } catch (exception) {
40 | console.log(exception);
41 | }
42 |
43 | limit_list();
44 | }
45 | updating = false;
46 | }});
47 | }
48 |
49 | run_update();
50 | setInterval(run_update, 3000);
51 | });
52 |
--------------------------------------------------------------------------------
/test/daemon_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | def mock_drb_file_handling
4 | Gobbler.stubs(:current_drb_handle).returns('test_file')
5 | File.stubs('exists?').returns(true)
6 | File.stubs(:read).returns('druby://blah:9999')
7 | File.stubs(:delete).returns(true)
8 | end
9 |
10 | def mock_launch_daemon
11 | Gobbler::Daemon.stubs(:sleep).returns(true)
12 | Gobbler::Daemon.stubs(:install_at_exit_handler).returns(true)
13 | Gobbler::Daemon.expects(:system).with(Gobbler::Daemon::SERVER_COMMAND)
14 | end
15 |
16 | context 'Daemon' do
17 |
18 | context 'launching the daemon' do
19 | setup do
20 | mock_drb_file_handling
21 | end
22 |
23 | asserts 'launching the daemon calls system' do
24 | mock_launch_daemon.returns(true)
25 | Gobbler::Daemon.launch_daemon
26 | end
27 |
28 | asserts 'launching the daemon fails' do
29 | mock_launch_daemon.returns(false)
30 | Gobbler.expects(:logger).returns(mock :error => true)
31 | Gobbler::Daemon.launch_daemon
32 | end.nil?
33 |
34 | asserts('drb handle is expected value') { Gobbler::Daemon.current_drb_handle }.equals('druby://blah:9999')
35 | end
36 |
37 | context 'context stopping the daemon' do
38 | setup do
39 | mock_drb_file_handling
40 | end
41 |
42 | asserts 'stopping the daemon calls @server stop' do
43 | server = mock :alive => true
44 | server.expects :stop
45 | Gobbler::Daemon.expects(:connect_to_drb).returns(true)
46 | Gobbler::Daemon.instance_variable_set('@server', server)
47 | Gobbler::Daemon.stop
48 | end
49 | end
50 |
51 | end
52 |
53 |
--------------------------------------------------------------------------------
/lib/bot.rb:
--------------------------------------------------------------------------------
1 | class Gobbler::Bot
2 | STORAGE_LIMIT = 25
3 |
4 | def initialize(watch, &block)
5 | @watch = watch
6 | @tweets = []
7 | main_loop(block) if block
8 | end
9 |
10 | def search
11 | client = TwitterSearch::Client.new 'gobbler'
12 | client.query :q => @watch, :rpp => '20'
13 | rescue => exception
14 | Gobbler.logger.error "Exception in Bot#search for #{@watch}: #{exception}"
15 | []
16 | end
17 |
18 | def update
19 | Gobbler.logger.info "Checking twitter for updates"
20 | tweets = search.reverse
21 | tweets.delete_if { |t| t.id < @last_tweet.id or t.id == @last_tweet.id } if @last_tweet
22 | @last_tweet = tweets.last if tweets.length > 0
23 |
24 | @tweets += tweets.clone
25 | @tweets.slice!(0, @tweets.size - STORAGE_LIMIT) if @tweets.size > STORAGE_LIMIT
26 |
27 | Gobbler.logger.info "Update found #{tweets.length} tweets. @tweets now has #{@tweets.length} items"
28 |
29 | tweets
30 | rescue => exception
31 | Gobbler.logger.error "Exception in Bot#update for #{@watch}: #{exception}"
32 | []
33 | rescue Exception => exception
34 | Gobbler.logger.error "Fatal exception in Bot#update for #{@watch}: #{exception}"
35 | exit 99
36 | end
37 |
38 | def new_tweets
39 | update
40 | end
41 |
42 | def tweets_since(tweet_id)
43 | if tweet_id
44 | @tweets.reject { |t| t.id <= tweet_id }
45 | else
46 | @tweets
47 | end
48 | end
49 |
50 | def main_loop(block)
51 | while true
52 | tweets = new_tweets
53 | block.call(tweets) if tweets.length > 0
54 | sleep 5
55 | end
56 | end
57 | end
58 |
--------------------------------------------------------------------------------
/lib/bots.rb:
--------------------------------------------------------------------------------
1 | class Gobbler::Bots
2 | attr_reader :bots
3 |
4 | def initialize
5 | @bots = {}
6 | end
7 |
8 | def start
9 | init_bots
10 | run_update_loop
11 | end
12 |
13 | def stop
14 | Gobbler.logger.info "Stopping bots"
15 | DRb.stop_service
16 | exit
17 | end
18 |
19 | def run_update_loop
20 | DRb.start_service nil, self
21 | Gobbler::Daemon.write_drb_handle DRb.uri
22 | Thread.new do
23 | while true do
24 | begin
25 | get_updates
26 | rescue => exception
27 | Gobbler.logger.error "Exception in main Bots loop thread: #{exception}"
28 | end
29 |
30 | sleep 5
31 | end
32 | end
33 | DRb.thread.join
34 | end
35 |
36 | def init_bots
37 | Settings['sections'].each do |section|
38 | @bots[section] = init_bot section
39 | end
40 | end
41 |
42 | def init_bot(query)
43 | Gobbler::Bot.new query
44 | end
45 |
46 | def alive
47 | "I'm alive"
48 | end
49 |
50 | def bot_names
51 | @bots.collect do |query, bot|
52 | query
53 | end
54 | end
55 |
56 | def get_updates
57 | results = {}
58 | @bots.each do |query, bot|
59 | results[query] = bot.new_tweets
60 | end
61 | results
62 | end
63 |
64 | def tweets_since(tweet_id, section = nil)
65 | if section
66 | tweets_since_for_section tweet_id, section
67 | else
68 | all_tweets_since tweet_id
69 | end
70 | end
71 |
72 | def all_tweets_since(tweet_id)
73 | @bots.collect do |query, bot|
74 | bot.tweets_since(tweet_id)
75 | end
76 | end
77 |
78 | def tweets_since_for_section(tweet_id, section = nil)
79 | @bots[section].tweets_since tweet_id
80 | end
81 | end
82 |
--------------------------------------------------------------------------------
/lib/daemon.rb:
--------------------------------------------------------------------------------
1 | class File
2 | def self.here
3 | expand_path dirname(__FILE__)
4 | end
5 | end
6 |
7 | module Gobbler::Daemon
8 | TMP_DIR = File.here / '..' / 'tmp'
9 | DRB_FILE_NAME = TMP_DIR / 'drb-handle'
10 | SERVER_COMMAND = "#{File.here / '..' / 'bin' / 'twitter-server'} start &"
11 |
12 | def self.running?
13 | if current_drb_handle
14 | connect_to_drb unless server
15 | server.alive
16 | true
17 | else
18 | false
19 | end
20 | rescue DRb::DRbConnError
21 | false
22 | end
23 |
24 | def self.start_drb_if_required
25 | DRb.start_service unless DRb.primary_server
26 | end
27 |
28 | def self.connect_to_drb
29 | start_drb_if_required
30 | @server = DRbObject.new nil, current_drb_handle
31 | end
32 |
33 | def self.server ; @server ; end
34 |
35 | def self.tweets_since(tweet_id, section = nil)
36 | server.tweets_since(tweet_id, section)
37 | end
38 |
39 | def self.write_drb_handle(drb_handle)
40 | FileUtils.mkdir_p TMP_DIR
41 | File.open(DRB_FILE_NAME, 'w') do |f|
42 | puts "Running: #{drb_handle}"
43 | f.write drb_handle
44 | end
45 | end
46 |
47 | def self.current_drb_handle
48 | if File.exists? DRB_FILE_NAME
49 | File.read DRB_FILE_NAME
50 | end
51 | end
52 |
53 | def self.remove_drb_handle
54 | if File.exists? DRB_FILE_NAME
55 | File.delete DRB_FILE_NAME
56 | end
57 | end
58 |
59 | def self.install_at_exit_handler
60 | at_exit { stop }
61 | end
62 |
63 | def self.launch_daemon
64 | server_launched = system SERVER_COMMAND
65 |
66 | sleep 3
67 |
68 | if server_launched
69 | connect_to_drb
70 | install_at_exit_handler
71 | true
72 | else
73 | Gobbler.logger.error "bin/twitter-server binary could not be launched"
74 | end
75 | end
76 |
77 | def self.start
78 | return if running?
79 |
80 | start_drb_if_required
81 | bot_service = Gobbler::Bots.new
82 | bot_service.start
83 | end
84 |
85 | def self.stop
86 | connect_to_drb
87 | server.stop
88 | remove_drb_handle
89 | true
90 | rescue DRb::DRbConnError
91 | puts "Server down"
92 | end
93 | end
94 |
--------------------------------------------------------------------------------
/app.rb:
--------------------------------------------------------------------------------
1 | %w(rubygems sinatra mustache/sinatra sass htmlentities json).each do |lib|
2 | begin
3 | require lib
4 | rescue LoadError
5 | puts "Please install #{lib}"
6 | exit 1
7 | end
8 | end
9 | require 'lib/gobbler'
10 |
11 | set :sessions, true
12 |
13 | helpers do
14 | def start_server_if_required
15 | Gobbler::Daemon.launch_daemon unless Gobbler::Daemon.running?
16 | end
17 |
18 | def newest_tweet_id(tweets)
19 | tweets.map(&:id).sort.last
20 | end
21 |
22 | def save_newest_tweet_to_session(tweets)
23 | tweet_id = newest_tweet_id(tweets)
24 | session[:last_tweet_id] = tweet_id if tweet_id
25 | end
26 |
27 | def tweets
28 | tweets = Gobbler::Daemon.tweets_since(session[:last_tweet_id], session[:current_section])
29 | save_newest_tweet_to_session tweets
30 | tweets.map { |t| { :from_user => t.from_user, :text => t.text } }
31 | end
32 |
33 | def show_sections
34 | Settings['sections'].size != 1
35 | end
36 |
37 | def sections
38 | Settings['sections'].map do |s|
39 | class_name = s == session[:current_section] ? 'selected' : ''
40 | '%s' % [class_name, s, s]
41 | end.join("\n")
42 | end
43 | end
44 |
45 | get '/' do
46 | session[:last_tweet_id] = nil
47 | session[:current_section] = Settings['sections'].first
48 | mustache :index, :locals => { :sections => sections, :show_sections => show_sections }
49 | end
50 |
51 | get '/section/:section' do
52 | session[:last_tweet_id] = nil
53 | session[:current_section] = params[:section]
54 | mustache :index, :locals => { :sections => sections, :show_sections => show_sections }
55 | end
56 |
57 | get '/updates.json' do
58 | start_server_if_required
59 | tweets.to_json
60 | end
61 |
62 | get '/stylesheets/screen.css' do
63 | headers 'Content-Type' => 'text/css; charset=utf-8'
64 | sass :stylesheet
65 | end
66 |
67 | __END__
68 |
69 | @@layout
70 |
71 |
72 |
73 | Gobble
74 |
75 |
76 |
77 |
78 |
79 | {{{ yield }}}
80 |
81 |
82 |
83 | @@index
84 |
85 | {{#show_sections}}
86 |
87 | {{/show_sections}}
88 |
89 | @@stylesheet
90 | body
91 | :font-family helvetica, sans-serif
92 | :background-color #fff
93 | :overflow hidden
94 |
95 | a
96 | :color #ffc
97 |
98 | #updates
99 | :position absolute
100 | :bottom 0
101 | :left 0
102 | :background-color #000
103 | :color #ccc
104 | :font-size 28px
105 | :list-style-type none
106 | :margin 0
107 | :padding 0
108 | :width 100%
109 |
110 | #updates li
111 | :overflow hidden
112 | :margin 10px
113 |
114 | #sections
115 | :position absolute
116 | :top 0
117 | :background-color #ffc
118 | :color #333
119 | :margin 10px
120 | :padding 10px
121 | :list-style-type none
122 | :opacity 0.8
123 |
124 | #sections a
125 | :color #333
126 | :width 100%
127 | :display block
128 | :font-size 22px
129 | :text-decoration none
130 |
131 | #sections a:hover
132 | :background #fff
133 | :color #111
134 |
135 | #sections li.selected a
136 | :color #990000
137 |
--------------------------------------------------------------------------------
/test/fixtures/twitter/example.json:
--------------------------------------------------------------------------------
1 | HTTP/1.1 200 OK
2 | Date: Sun, 11 Oct 2009 10:19:42 GMT
3 | Server: hi
4 | Status: 200 OK
5 | X-Served-From: b031
6 | Content-Type: application/json; charset=utf-8
7 | X-Served-By: c088.twitter.com
8 | X-Timeline-Cache-Hit: Hit
9 | Cache-Control: max-age=15, must-revalidate, max-age=300
10 | Expires: Sun, 11 Oct 2009 10:24:42 GMT
11 | Content-Length: 9391
12 | Vary: Accept-Encoding
13 | X-Varnish: 743435818
14 | Age: 0
15 | Via: 1.1 varnish
16 | X-Cache-Svr: c088.twitter.com
17 | X-Cache: MISS
18 | Connection: close
19 |
20 | {"results":[{"profile_image_url":"http://a1.twimg.com/profile_images/371963600/06082009_normal.jpg","created_at":"Sun, 11 Oct 2009 10:18:39 +0000","from_user":"artisbimo","to_user_id":null,"text":"kasihan =pRT @sophisticatedme: Kl nyusul ksni tnpa bw dwit cm dpt cape, for example: ME!RT @riariu: Weekend with assignments :( .Pengen ...","id":4781749270,"from_user_id":49590182,"iso_language_code":"en","source":"<a href="http://m.tweete.net/" rel="nofollow">Mobile Tweete</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/449281703/babemum_normal.jpg","created_at":"Sun, 11 Oct 2009 10:17:26 +0000","from_user":"ZucchiniBikini","to_user_id":null,"text":"To give just one example - a free french fries voucher for Maccas. A voucher that'll save, what $1.50?","id":4781737136,"from_user_id":8799268,"iso_language_code":"en","source":"<a href="http://twitter.com/">web</a>"},{"profile_image_url":"http://s.twimg.com/a/1255039715/images/default_profile_3_normal.png","created_at":"Sun, 11 Oct 2009 10:15:46 +0000","from_user":"meteoaalten","to_user_id":null,"text":"Example twitter weather data 12:15 13.4?C 93 pct 6.1 km/h SSE #wdisplay","id":4781720405,"from_user_id":28818258,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/123259033/Gary_s_picture_normal.jpg","created_at":"Sun, 11 Oct 2009 10:15:32 +0000","from_user":"GaryPriceOmaha","to_user_id":null,"text":"Example twitter weather data 05:15 AM 32.2?F 51 pct 0.0 mph SSE","id":4781718128,"from_user_id":10135302,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://a1.twimg.com/profile_images/453327434/DSCI0811_normal.png","created_at":"Sun, 11 Oct 2009 10:15:26 +0000","from_user":"Guccii06","to_user_id":null,"text":"Niggas stop tellings girls shyt dey wanna hear jus 2 keep dem around! Dat shyt gon backfire example: thin line between love and hate","id":4781716913,"from_user_id":13580385,"iso_language_code":"en","source":"<a href="http://twitter.com/">web</a>"},{"profile_image_url":"http://s.twimg.com/a/1255039715/images/default_profile_5_normal.png","created_at":"Sun, 11 Oct 2009 10:15:13 +0000","from_user":"jmogorunr","to_user_id":null,"text":"Example twitter weather data 06:15 AM 37.6\u00b0F 91 pct 0.0 mph WNW #wdisplay","id":4781714691,"from_user_id":49059695,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/443529517/Orchard_fruit_06_048_normal.jpg","created_at":"Sun, 11 Oct 2009 10:15:12 +0000","from_user":"Sappertoo","to_user_id":null,"text":"Example twitter weather data 11:15 13.8\u00b0C 84 pct 0.1 mph NW #wdisplay","id":4781714474,"from_user_id":64594993,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://s.twimg.com/a/1254953317/images/default_profile_4_normal.png","created_at":"Sun, 11 Oct 2009 10:15:07 +0000","from_user":"LU9EV","to_user_id":null,"text":"Example twitter weather data 07:15 AM 10.4?C 79 pct 5.0 km/h N #wdisplay","id":4781713444,"from_user_id":54284038,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/94892271/twerminology_normal.PNG","created_at":"Sun, 11 Oct 2009 10:15:04 +0000","from_user":"twerminology","to_user_id":null,"text":"Twerrorism \u2013 Used instead of terrorism when Twitter is under a hack attack, example: Fight twerrorism, change password","id":4781712892,"from_user_id":7036408,"iso_language_code":"en","source":"<a href="http://echofon.com/" rel="nofollow">Echofon</a>"},{"profile_image_url":"http://a1.twimg.com/profile_images/340661572/IMG_0143_normal.JPG","created_at":"Sun, 11 Oct 2009 10:14:39 +0000","from_user":"jallen285","to_user_id":null,"text":"My most favorite person passed. Lead by the best example.","id":4781708954,"from_user_id":605738,"iso_language_code":"en","source":"<a href="http://www.atebits.com/" rel="nofollow">Tweetie</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/447494747/Sudesh_Profile_photo_normal.jpg","created_at":"Sun, 11 Oct 2009 10:14:28 +0000","from_user":"sudeshjog","to_user_id":null,"text":"Great example of transactional fun driving behaviour here http://bit.ly/bmXEL .. any marketing examples?","id":4781707199,"from_user_id":70089828,"iso_language_code":"en","source":"<a href="http://twitter.com/">web</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/429367029/Jesper.Twitter.Avatar.4_normal.jpg","created_at":"Sun, 11 Oct 2009 10:13:48 +0000","from_user":"JesperBylund","to_user_id":62312,"text":"@nylander Not really. English, like any language, is a living form of expression and best learned from example, not from rules.","id":4781700979,"from_user_id":68291,"to_user":"nylander","iso_language_code":"en","source":"<a href="http://www.atebits.com/" rel="nofollow">Tweetie</a>"},{"profile_image_url":"http://a1.twimg.com/profile_images/287889766/IMGP4750_normal.JPG","created_at":"Sun, 11 Oct 2009 10:13:22 +0000","from_user":"Mal_Asian","to_user_id":6531720,"text":"@leonacraig I always thought it'd be a great idea to produce a TV show based on expats in Beijing, for example.","id":4781696968,"from_user_id":52285273,"to_user":"leonacraig","iso_language_code":"en","source":"<a href="http://itweet.net/" rel="nofollow">iTweet</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/460968507/IMG_6659_normal.jpg","created_at":"Sun, 11 Oct 2009 10:10:31 +0000","from_user":"kojobaffoe","to_user_id":null,"text":"RT @DaveDuarte: Just posted on my blog: "Fort Knox: a Stunning Example of South African Artistic Talent" http://bit.ly/39pzL","id":4781670246,"from_user_id":1963014,"iso_language_code":"en","source":"<a href="http://www.tweetdeck.com/" rel="nofollow">TweetDeck</a>"},{"profile_image_url":"http://s.twimg.com/a/1255039715/images/default_profile_5_normal.png","created_at":"Sun, 11 Oct 2009 10:10:11 +0000","from_user":"jmogorunr","to_user_id":null,"text":"Example twitter weather data 06:10 AM 37.5?F 91 pct 0.0 mph WNW #wdisplay","id":4781666943,"from_user_id":49059695,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/463248273/bridget_strass_normal.jpg","created_at":"Sun, 11 Oct 2009 10:08:53 +0000","from_user":"funmsdrebirth","to_user_id":null,"text":"My dad just said "you kiss someone u love" as an example in his sermon in church. He looked at me as he was saying it!","id":4781654744,"from_user_id":6459198,"iso_language_code":"en","source":"<a href="http://ubertwitter.com" rel="nofollow">UberTwitter</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/60391999/daveduarte_normal.jpg","created_at":"Sun, 11 Oct 2009 10:06:49 +0000","from_user":"DaveDuarte","to_user_id":null,"text":"Just posted on my blog: "Fort Knox: a Stunning Example of South African Artistic Talent" http://bit.ly/39pzL","id":4781635910,"from_user_id":157371,"iso_language_code":"en","source":"<a href="http://www.tweetdeck.com/" rel="nofollow">TweetDeck</a>"},{"profile_image_url":"http://s.twimg.com/a/1255039715/images/default_profile_5_normal.png","created_at":"Sun, 11 Oct 2009 10:05:21 +0000","from_user":"jmogorunr","to_user_id":null,"text":"Example twitter weather data 06:05 AM 37.5?F 91 pct 0.0 mph WNW #wdisplay","id":4781621631,"from_user_id":49059695,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/339234247/fanchecker-logo_normal.jpg","created_at":"Sun, 11 Oct 2009 10:04:10 +0000","from_user":"FanCheckerAlert","to_user_id":null,"text":"Sorry to disturb you, I was thinking you could be interested to earn money with your FaceBook Page. Here is an example http://bit.ly/ZZ5L7","id":4781609874,"from_user_id":32093559,"iso_language_code":"en","source":"<a href="http://apiwiki.twitter.com/" rel="nofollow">API</a>"},{"profile_image_url":"http://a3.twimg.com/profile_images/321196837/twitterProfilePhoto_normal.jpg","created_at":"Sun, 11 Oct 2009 10:02:25 +0000","from_user":"nicoleschu","to_user_id":null,"text":"Am fascinated by the concept of equifinality - student suggested death as a good example!","id":4781592870,"from_user_id":1831854,"iso_language_code":"en","source":"<a href="http://twitter.com/">web</a>"}],"max_id":4781749270,"since_id":0,"refresh_url":"?since_id=4781749270&q=example","next_page":"?page=2&max_id=4781749270&rpp=20&q=example","results_per_page":20,"page":1,"completed_in":0.022255,"query":"example"}
21 |
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/widgets.css:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2009 British Broadcasting Corporation
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | .glow170-cssTest{background:url(images/darkpanel/ctr.png);z-index:1234;}.glow170-panel-preload{height:1px;overflow:hidden;position:absolute;top:-10px;width:1px;left:-5px;}.glow170-panel-preload .panel-close{display:none;visibility:hidden;}.glow170-panel-preload .infoPanel-pointerT,.glow170-panel-preload .infoPanel-pointerR,.glow170-panel-preload .infoPanel-pointerB,.glow170-panel-preload .infoPanel-pointerL{display:block;}.glow170-overlay{visibility:hidden;display:none;overflow:hidden;position:absolute;}.glow170-overlay .overlay-focalPoint:focus{outline:none;}.glow170-overlay .overlay-focalPoint{overflow:hidden;width:0;height:0;position:absolute;}.glow170-overlay .panelAccess{position:absolute;overflow:hidden;height:0;width:0;top:-5000px;left:-5000px;}.glow170-panel .c{background:#57585A url(images/darkpanel/bg.gif) repeat-x bottom;color:#fff;margin:0 10px;}.glow170-panel .tr,.glow170-panel .tl,.glow170-panel .br,.glow170-panel .bl{height:14px;overflow:hidden;}.glow170-panel .tr,.glow170-panel .br{float:right;width:14px;}.glow170-panel .tr{background:url(images/darkpanel/ctr.png);}.glow170-panel .tl{background:url(images/darkpanel/ctl.png);}.glow170-panel .bl{background:url(images/darkpanel/cbl.png);}.glow170-panel .br{background:url(images/darkpanel/cbr.png);}.glow170-panel .tl,.glow170-panel .bl{width:14px;float:left;}.glow170-panel .tb,.glow170-panel .bb{border:4px solid #57585A;border-width:0 0 4px 0;overflow:hidden;font-size:0;}.glow170-panel .tb div,.glow170-panel .bb div{height:10px;background:#fff;opacity:.5;font-size:0;}.glow170-panel .bb{border-width:4px 0 0 0;border-color:#424243;}.glow170-panel .tc{overflow:hidden;position:relative;zoom:1;}.glow170-panel .bars{position:absolute;width:100%;padding-left:10px;height:100%;background:#fff;opacity:.5;margin-left:-10px;_height:2000px;*padding-left:0;}html .glow170-gecko .glow170-panel .bars{background:url(images/darkpanel/transbg.png);opacity:1;}.glow170-panel .c{position:relative;min-height:50px;overflow:hidden;}.glow170-panel .panel-hd{border-bottom:1px solid #B0B0B0;padding:5px 10px 10px;font-weight:bold;}.glow170-panel .panel-hd *{margin:0;padding:0;}.glow170-panel .panel-bd,.glow170-panel .panel-ft{margin:0 10px;}.glow170-panel .panel-close{background:url(images/darkpanel/close.png);height:20px;width:20px;float:right;position:relative;margin:5px 10px 0 0;text-indent:-5000px;}.glow170-overlay .panel-noHeader .panel-hd{display:none;}.glow170-basic .glow170-panel .panel-close{text-indent:0;color:#fff;border:1px solid #fff;text-align:center;}.glow170-basic .glow170-panel .tb,.glow170-basic .glow170-panel .bb,.glow170-basic .glow170-panel .bars{visibility:hidden;}.glow170-ie .glow170-panel .bars,.glow170-ie .glow170-panel .tb div,.glow170-ie .glow170-panel .bb div{opacity:1;filter:alpha(opacity=50);}.glow170-ie .glow170-panel .tb,.glow170-ie .glow170-panel .bb{zoom:1;z-index:-1;position:relative;}.glow170-ie .glow170-panel .c{filter:alpha(opacity=100);}.glow170-ielt7 .glow170-panel .tr,.glow170-ielt7 .glow170-panel .br{margin-left:-3px;}.glow170-ielt7 .glow170-panel .tl,.glow170-ielt7 .glow170-panel .bl{margin-right:-3px;}.glow170-ielt7 .glow170-panel .c{height:50px;overflow:visible;}.glow170-ielt7 .glow170-panel .panel-bd{overflow:hidden;}.glow170-overlay .panel-light .c{background:#fff url(images/lightpanel/bg.gif) repeat-x bottom;color:#000;}.glow170-overlay .panel-light .tb{border-color:#fff;}.glow170-overlay .panel-light .bb{border-color:#E7E8E9;}.glow170-overlay .panel-light .bars,.glow170-overlay .panel-light .tb div,.glow170-overlay .panel-light .bb div{background:#000;opacity:.26;}.glow170-overlay .panel-light .tr{background:url(images/lightpanel/ctr.png);}.glow170-overlay .panel-light .tl{background:url(images/lightpanel/ctl.png);}.glow170-overlay .panel-light .bl{background:url(images/lightpanel/cbl.png);}.glow170-overlay .panel-light .br{background:url(images/lightpanel/cbr.png);}html .glow170-overlay .panel-light .infoPanel-pointerT{background:url(images/lightpanel/at.png);}html .glow170-overlay .panel-light .infoPanel-pointerR{background:url(images/lightpanel/ar.png);}html .glow170-overlay .panel-light .infoPanel-pointerB{background:url(images/lightpanel/ab.png);}html .glow170-overlay .panel-light .infoPanel-pointerL{background:url(images/lightpanel/al.png);}.glow170-overlay .panel-light .panel-close{background:url(images/lightpanel/close.png);}.glow170-gecko .glow170-overlay .panel-light .bars{background:url(images/lightpanel/transbg.png);}.glow170-ie .glow170-overlay .panel-light .bars,.glow170-ie .glow170-overlay .panel-light .tb div,.glow170-ie .glow170-overlay .panel-light .bb div{opacity:1;filter:alpha(opacity=26);}.glow170-infoPanel .c{min-height:125px;}.glow170-panel .infoPanel-pointerT,.glow170-panel .infoPanel-pointerB,.glow170-panel .infoPanel-pointerL,.glow170-panel .infoPanel-pointerR{display:none;}.glow170-infoPanel-pointT .defaultSkin .infoPanel-pointerT,.glow170-infoPanel-pointL .defaultSkin .infoPanel-pointerL,.glow170-infoPanel-pointR .defaultSkin .infoPanel-pointerR,.glow170-infoPanel-pointB .defaultSkin .infoPanel-pointerB{width:48px;height:34px;overflow:hidden;position:relative;display:block;}.glow170-infoPanel-pointL .defaultSkin .infoPanel-pointerL,.glow170-infoPanel-pointR .defaultSkin .infoPanel-pointerR{width:34px;height:47px;left:0;z-index:1;}.glow170-infoPanel-pointL .defaultSkin .infoPanel-pointerL{position:absolute;}.glow170-panel .infoPanel-pointerT{margin:0 0 -10px 45px;z-index:1000;background:url(images/darkpanel/at.png);}.glow170-panel .infoPanel-pointerB{margin:-10px 0 0 45px;background:url(images/darkpanel/ab.png);}.glow170-panel .infoPanel-pointerL{margin:54px 0 0 0;background:url(images/darkpanel/al.png);}.glow170-infoPanel-pointL .defaultSkin .pc{margin-left:24px;}.glow170-panel .infoPanel-pointerR{float:right;position:relative;margin:54px 0 0 -34px;background:url(images/darkpanel/ar.png);}.glow170-infoPanel-pointR .defaultSkin .pc{margin-right:24px;}.glow170-ielt7 .glow170-infoPanel .c{height:125px;}.glow170-panel-noHeader .defaultSkin .infoPanel-pointerL,.glow170-panel-noHeader .defaultSkin .infoPanel-pointerR{margin-top:33px;}.glow170-autoSuggest ul{margin:0;padding:0;list-style:none;color:#000;background-color:#FFF;border:1px solid #333;}.glow170-autoSuggest .autosuggest-dark{background-color:#000;color:#fff;}.glow170-autoSuggest li{padding:1px 9px;margin:0;zoom:1;cursor:pointer;}.glow170-autoSuggest li.odd{background-color:#D3D3D3;}.glow170-autoSuggest li.even{background-color:#FFF;}.glow170-autoSuggest li.active{background-color:#A9A9A9;}.glow170-autoSuggest .autosuggest-dark li.odd{background-color:#333;}.glow170-autoSuggest .autosuggest-dark li.even{background-color:#000;}.glow170-autoSuggest .autosuggest-dark li.active{background-color:#999;}.glow170-carousel,.glow170-vCarousel{position:relative;overflow:hidden;zoom:1;}.glow170-carousel .carousel-window,.glow170-vCarousel .carousel-window{position:relative;overflow:hidden;}.glow170-carousel .carousel-content,.glow170-vCarousel .carousel-content{position:relative;list-style-type:none;padding-left:0;margin:0;top:0;left:0;overflow:hidden!important;float:none!important;}.glow170-carousel .carousel-item,.glow170-vCarousel .carousel-item{float:left;display:inline;}.glow170-carousel .carousel-nav,.glow170-vCarousel .carousel-nav{position:relative;display:block;width:30px;height:100%;cursor:pointer;z-index:1;}.glow170-carousel .carousel-nav span,.glow170-vCarousel .carousel-nav span{position:absolute;top:0;left:0;display:block;width:100%;height:100%;}.glow170-carousel .carousel-light .carousel-window{background:#f0f0f0;}.glow170-carousel .carousel-light .carousel-nav span{background-image:url(images/carousel/lighth.png);}.glow170-carousel .carousel-light .carousel-nav{background:#f0f0f0;color:#000;}.glow170-carousel .carousel-dark .carousel-window{background:#282828;}.glow170-carousel .carousel-dark .carousel-nav{background:#282828;color:#fff;}.glow170-carousel .carousel-dark .carousel-nav span{background-image:url(images/carousel/darkh.png);}.glow170-carousel .carousel-window{float:left;}.glow170-carousel .carousel-nav{float:left;overflow:hidden;}.glow170-carousel .carousel-nav span,.glow170-vCarousel .carousel-nav span{background-repeat:no-repeat;text-indent:-5000px;}.glow170-basic .glow170-carousel .carousel-nav span,.glow170-basic .glow170-vCarousel .carousel-nav span{text-indent:0;}.glow170-carousel .carousel-nav .carousel-background{top:0;background-position:-60px 0;background-repeat:repeat-y;}.glow170-carousel .carousel-nav .carousel-top{top:0;background-position:0 0;}.glow170-carousel .carousel-nav .carousel-bottom{bottom:0;background-position:-30px bottom;}.glow170-carousel .carousel-nav .carousel-arrow{width:10px;top:0;left:10px;background-repeat:no-repeat;}.glow170-carousel .carousel-prev .carousel-arrow{background-position:-90px center;}.glow170-carousel .carousel-next .carousel-arrow{background-position:-101px center;}.glow170-carousel .carousel-prev-disabled,.glow170-carousel .carousel-next-disabled,.glow170-vCarousel .carousel-prev-disabled,.glow170-vCarousel .carousel-next-disabled,.glow170-carousel .carousel-prev-disabled a,.glow170-carousel .carousel-next-disabled a,.glow170-vCarousel .carousel-prev-disabled a,.glow170-vCarousel .carousel-next-disabled a{cursor:default;}.glow170-carousel .carousel-prev-disabled .carousel-arrow{background-position:-112px center;}.glow170-carousel .carousel-next-disabled .carousel-arrow{background-position:-123px center;}.glow170-vCarousel .carousel-light .carousel-window{background:#f0f0f0;}.glow170-vCarousel .carousel-light .carousel-nav{background:#f0f0f0;color:#000;height:30px;}.glow170-vCarousel .carousel-light .carousel-nav span{background-image:url(images/carousel/lightv.png);}.glow170-vCarousel .carousel-dark .carousel-window{background:#282828;}.glow170-vCarousel .carousel-dark .carousel-nav{background:#282828;color:#fff;height:30px;}.glow170-vCarousel .carousel-dark .carousel-nav span{background-image:url(images/carousel/darkv.png);}.glow170-vCarousel .carousel-nav span{background-repeat:no-repeat;overflow:hidden;}.glow170-vCarousel .carousel-nav .carousel-background{background-position:0 -60px;background-repeat:repeat-x;}.glow170-vCarousel .carousel-nav .carousel-top{background-position:right 0;}.glow170-vCarousel .carousel-nav .carousel-bottom{background-position:left -30px;}.glow170-vCarousel .carousel-nav .carousel-arrow{top:10px;height:10px;}.glow170-vCarousel .carousel-prev .carousel-arrow{background-position:center -90px;}.glow170-vCarousel .carousel-next .carousel-arrow{background-position:center -101px;}.glow170-vCarousel .carousel-prev-disabled .carousel-arrow{background-position:center -112px;}.glow170-vCarousel .carousel-next-disabled .carousel-arrow{background-position:center -123px;}.glow170-vCarousel .carousel-window.paged{float:left;}.glow170-carousel .pageNav,.glow170-vCarousel .pageNav{display:block;padding:0;height:20px;width:auto;clear:both;margin:0 auto;}.glow170-vCarousel .pageNav{height:auto;float:left;width:20px;clear:none;margin:auto 0;}.glow170-carousel .dotLabel,.glow170-vCarousel .dotLabel{width:20px;height:20px;overflow:hidden;text-indent:-5000px;padding:0;margin:0;display:block;}.glow170-basic .glow170-carousel .dot .dotLabel,.glow170-basic .glow170-vCarousel .dot .dotLabel{overflow:visible;text-indent:0;}.glow170-carousel .pageNav li,.glow170-vCarousel .pageNav li{width:20px;height:20px;padding:0;margin:0;float:left;list-style-type:none;color:#000;background-image:url(images/carousel/lightdots.png);background-repeat:no-repeat;background-position:-20px 0;}.glow170-carousel .pageNav .dot{cursor:pointer;}.glow170-carousel .carousel-dark .pageNav li,.glow170-vCarousel .carousel-dark .pageNav li{color:#fff;background-image:url(images/carousel/darkdots.png);}.glow170-vCarousel .pageNav li{background-image:url(images/carousel/lightdotsv.png);float:none;}.glow170-vCarousel .carousel-dark .pageNav li{background-image:url(images/carousel/darkdotsv.png);}.glow170-carousel .pageNav li.dotActive,.glow170-vCarousel .pageNav li.dotActive{background-position:-20px -20px;}.glow170-basic .glow170-carousel .pageNav li.dotActive,.glow170-basic .glow170-vCarousel .pageNav li.dotActive{text-decoration:underline;}.glow170-carousel .pageNav li#rightarrow,.glow170-vCarousel .pageNav li#rightarrow{background-position:-40px -20px;}.glow170-basic .glow170-carousel .pageNav li#rightarrow .dotLabel{width:0;height:0;border-top:8px solid #fff;border-right:8px solid #fff;border-bottom:8px solid #fff;border-left:8px solid #000;}.glow170-basic .glow170-vCarousel .pageNav li#rightarrow .dotLabel{width:0;height:0;border-top:8px solid #000;border-right:8px solid #fff;border-bottom:8px solid #fff;border-left:8px solid #fff;}.glow170-carousel .pageNav li.carousel-next-disabled#rightarrow,.glow170-vCarousel .pageNav li.carousel-next-disabled#rightarrow{background-position:-40px 0;}.glow170-basic .glow170-carousel .pageNav li.carousel-next-disabled#rightarrow .dotLabel,.glow170-basic .glow170-vCarousel .pageNav li.carousel-next-disabled#rightarrow .dotLabel{width:0;height:0;border-top:8px solid #fff;border-right:8px solid #fff;border-bottom:8px solid #fff;border-left:8px solid #ccc;}.glow170-basic .glow170-vCarousel .pageNav li.carousel-next-disabled#rightarrow .dotLabel{width:0;height:0;border-top:8px solid #ccc;border-right:8px solid #fff;border-bottom:8px solid #fff;border-left:8px solid #fff;}.glow170-carousel .pageNav li#leftarrow,.glow170-vCarousel .pageNav li#leftarrow{background-position:0 -20px;}.glow170-basic .glow170-carousel .pageNav li#leftarrow .dotLabel{width:0;height:0;border-top:8px solid #fff;border-right:8px solid #000;border-bottom:8px solid #fff;border-left:8px solid #fff;}.glow170-basic .glow170-vCarousel .pageNav li#leftarrow .dotLabel{width:0;height:0;border-top:8px solid #fff;border-right:8px solid #fff;border-bottom:8px solid #000;border-left:8px solid #fff;}.glow170-carousel .pageNav li.carousel-prev-disabled#leftarrow,.glow170-vCarousel .pageNav li.carousel-prev-disabled#leftarrow{background-position:0 0;}.glow170-basic .glow170-carousel .pageNav li.carousel-prev-disabled#leftarrow .dotLabel{width:0;height:0;border-top:8px solid #fff;border-right:8px solid #ccc;border-bottom:8px solid #fff;border-left:8px solid #fff;}.glow170-basic .glow170-vCarousel .pageNav li.carousel-prev-disabled#leftarrow .dotLabel{width:0;height:0;border-top:8px solid #fff;border-right:8px solid #fff;border-bottom:8px solid #ccc;border-left:8px solid #fff;}.glow170-slider,.glow170-vSlider{position:relative;zoom:1;}.glow170-slider .slider-container,.glow170-vSlider .slider-container{position:relative;zoom:1;padding:4px 17px 6px 17px;}.glow170-slider:focus,.glow170-vSlider:focus{outline:none;border:none;}.glow170-slider .slider-track,.glow170-vSlider .slider-track{position:relative;font-size:0;zoom:1;}.glow170-slider .slider-trackOff,.glow170-vSlider .slider-trackOff{height:8px;background:url(images/slider/lighth.png) 100% 0;margin-left:2px;font-size:0;}.glow170-slider .slider-trackOn,.glow170-vSlider .slider-trackOn{position:absolute;height:8px;top:0;left:0;background:url(images/slider/lighth.png) -2px -8px;z-index:2;overflow:hidden;}.glow170-slider .slider-handle,.glow170-vSlider .slider-handle{position:absolute;top:-4px;width:17px;height:18px;background:url(images/slider/lighth.png) 0 -16px;z-index:3;cursor:pointer;}.glow170-slider .slider-btn-bk,.glow170-slider .slider-btn-fwd,.glow170-vSlider .slider-btn-bk,.glow170-vSlider .slider-btn-fwd{position:absolute;width:12px;height:12px;top:2px;left:0;background:url(images/slider/lighth.png) 0 -34px;font-size:0;cursor:pointer;}.glow170-slider .slider-btn-fwd{background-position:-12px -34px;left:100%;margin-left:-12px;}.glow170-slider .slider-active .slider-handle{background-position:-17px -16px;}.glow170-slider .slider-disabled .slider-handle{background-position:-34px -16px;}.glow170-slider .slider-disabled .slider-btn-bk{background-position:-24px -34px;}.glow170-slider .slider-disabled .slider-btn-fwd{background-position:-36px -34px;}.glow170-slider .slider-disabled .slider-trackOn{background-position:-2px 0;}.glow170-slider .slider-disabled .slider-btn-bk,.glow170-slider .slider-disabled .slider-btn-fwd,.glow170-slider .slider-disabled .slider-handle,.glow170-vSlider .slider-disabled .slider-btn-bk,.glow170-vSlider .slider-disabled .slider-btn-fwd,.glow170-vSlider .slider-disabled .slider-handle{cursor:auto;}.glow170-slider .slider-noButtons .slider-container{padding-left:0;padding-right:0;}.glow170-slider .slider-noButtons .slider-btn-bk,.glow170-slider .slider-noButtons .slider-btn-fwd,.glow170-vSlider .slider-noButtons .slider-btn-bk,.glow170-vSlider .slider-noButtons .slider-btn-fwd{display:none;}.glow170-slider .slider-labels{margin:10px 8px 0;}.glow170-vSlider .slider-labels{position:absolute;left:22px;top:25px;}.glow170-vSlider .slider-noButtons .slider-labels{top:8px;}.glow170-slider .slider-labels .ruler-tickMajor,.glow170-slider .slider-labels .ruler-tickMinor,.glow170-vSlider .slider-labels .ruler-tickMajor,.glow170-vSlider .slider-labels .ruler-tickMinor{background:#6e6e6e;}.glow170-slider .slider-labels .ruler-label,.glow170-vSlider .slider-labels .ruler-label{color:#6e6e6e;cursor:pointer;}.glow170-vSlider .slider-trackOff,.glow170-vSlider .slider-trackOn,.glow170-vSlider .slider-handle,.glow170-vSlider .slider-btn-bk,.glow170-vSlider .slider-btn-fwd{background-image:url(images/slider/lightv.png);}.glow170-vSlider .slider-container{padding:17px 0;}.glow170-vSlider .slider-track{margin:0;overflow:hidden;zoom:1;width:20px;}.glow170-vSlider .slider-trackOff{width:8px;height:auto;background-position:0 0;position:absolute;margin:0;left:4px;top:0;z-index:2;}.glow170-vSlider .slider-trackOn{width:8px;height:0;position:relative;margin:0 0 0 4px;background-position:-8px 100%;top:2px;left:0;z-index:1;}.glow170-vSlider .slider-handle{top:0;left:0;width:18px;height:17px;background-position:-16px 100%;}.glow170-vSlider .slider-btn-bk,.glow170-vSlider .slider-btn-fwd{top:0;left:2px;background-position:-34px -1976px;}.glow170-vSlider .slider-btn-bk{background-position:-34px 100%;left:2px;top:100%;margin:-12px 0 0 0;}.glow170-vSlider .slider-active .slider-handle{background-position:-16px -1966px;}.glow170-vSlider .slider-disabled .slider-handle{background-position:-16px -1949px;}.glow170-vSlider .slider-disabled .slider-btn-bk{background-position:-34px -1964px;}.glow170-vSlider .slider-disabled .slider-btn-fwd{background-position:-34px -1952px;}.glow170-vSlider .slider-disabled .slider-trackOn{background-position:0 100%;}.glow170-vSlider .slider-noButtons .slider-container{padding-top:0;padding-bottom:0;}.glow170-slider .slider-dark .slider-trackOff,.glow170-slider .slider-dark .slider-trackOn,.glow170-slider .slider-dark .slider-handle,.glow170-slider .slider-dark .slider-btn-bk,.glow170-slider .slider-dark .slider-btn-fwd{background-image:url(images/slider/darkh.png);}.glow170-vSlider .slider-dark .slider-trackOff,.glow170-vSlider .slider-dark .slider-trackOn,.glow170-vSlider .slider-dark .slider-handle,.glow170-vSlider .slider-dark .slider-btn-bk,.glow170-vSlider .slider-dark .slider-btn-fwd{background-image:url(images/slider/darkv.png);}.glow170-slider .slider-dark .slider-labels .ruler-tickMajor,.glow170-slider .slider-dark .slider-labels .ruler-tickMinor,.glow170-vSlider .slider-dark .slider-labels .ruler-tickMajor,.glow170-vSlider .slider-dark .slider-labels .ruler-tickMinor{background:#e2e2e2;}.glow170-slider .slider-dark .slider-labels .ruler-label,.glow170-vSlider .slider-dark .slider-labels .ruler-label{color:#e2e2e2;}.glow170-basic .glow170-slider .slider-handle,.glow170-basic .glow170-vSlider .slider-handle{border-style:solid;border-color:#777 #fff;border-width:18px 8px 0 9px;width:0;height:0;font-size:0;}.glow170-basic .glow170-vSlider .slider-handle{border-width:8px 0 9px 18px;border-color:#fff #777;}.glow170-basic .glow170-slider .slider-trackOff,.glow170-basic .glow170-vSlider .slider-trackOff{background:#d6d6d6;}.glow170-basic .glow170-slider .slider-trackOn,.glow170-basic .glow170-vSlider .slider-trackOn{background:#777;}.glow170-basic .glow170-slider .slider-btn-bk,.glow170-basic .glow170-slider .slider-btn-fwd,.glow170-basic .glow170-vSlider .slider-btn-bk,.glow170-basic .glow170-vSlider .slider-btn-fwd{border-style:solid;border-color:#fff #777;border-width:6px 0 6px 12px;width:0;height:0;}.glow170-basic .glow170-slider .slider-btn-bk{border-width:6px 12px 6px 0;}.glow170-basic .glow170-vSlider .slider-btn-bk{border-color:#666 #fff;border-width:12px 6px 0 6px;}.glow170-basic .glow170-vSlider .slider-btn-fwd{border-color:#666 #fff;border-width:0 6px 12px 6px;}.glow170-basic .glow170-slider .slider-active .slider-handle{border-color:#000 #fff;}.glow170-basic .glow170-vSlider .slider-active .slider-handle{border-color:#fff #000;}.glow170-basic .glow170-slider .slider-disabled .slider-trackOn,.glow170-basic .glow170-vSlider .slider-disabled .slider-trackOn{background:#d6d6d6;}.glow170-basic .glow170-slider .slider-disabled .slider-handle{border-color:#d6d6d6 #fff;}.glow170-basic .glow170-vSlider .slider-disabled .slider-handle{border-color:#fff #d6d6d6;}.glow170-basic .glow170-slider .slider-disabled .slider-btn-bk,.glow170-basic .glow170-slider .slider-disabled .slider-btn-fwd{border-color:#fff #d6d6d6;}.glow170-basic .glow170-vSlider .slider-disabled .slider-btn-bk,.glow170-basic .glow170-vSlider .slider-disabled .slider-btn-fwd{border-color:#d6d6d6 #fff;}.glow170-basic .glow170-slider .slider-dark .slider-handle{border-color:#ccc #000;}.glow170-basic .glow170-vSlider .slider-dark .slider-handle{border-color:#000 #ccc;}.glow170-basic .glow170-slider .slider-dark .slider-trackOff,.glow170-basic .glow170-vSlider .slider-dark .slider-trackOff{background:#555;}.glow170-basic .glow170-slider .slider-dark .slider-trackOn,.glow170-basic .glow170-vSlider .slider-dark .slider-trackOn{background:#ccc;}.glow170-basic .glow170-slider .slider-dark .slider-btn-bk,.glow170-basic .glow170-slider .slider-dark .slider-btn-fwd{border-color:#000 #ccc;}.glow170-basic .glow170-vSlider .slider-dark .slider-btn-bk,.glow170-basic .glow170-vSlider .slider-dark .slider-btn-fwd{border-color:#ccc #000;}.glow170-basic .glow170-slider .slider-dark .slider-active .slider-handle{border-color:#fff #000;}.glow170-basic .glow170-vSlider .slider-dark .slider-active .slider-handle{border-color:#000 #fff;}.glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-trackOn,.glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-trackOn{background:#555;}.glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-handle{border-color:#555 #000;}.glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-handle{border-color:#000 #555;}.glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-btn-bk,.glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-btn-fwd{border-color:#000 #555;}.glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-btn-bk,.glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-btn-fwd{border-color:#555 #000;}.glow170-ruler,.glow170-vRuler{position:relative;zoom:1;}.glow170-ruler .ruler-tickMajor,.glow170-ruler .ruler-tickMinor,.glow170-vRuler .ruler-tickMajor,.glow170-vRuler .ruler-tickMinor{position:absolute;background:#000;width:1px;height:1px;top:0;left:0;overflow:hidden;}.glow170-ruler .ruler-tickMajor,.glow170-ruler .ruler-spacer{height:10px;}.glow170-ruler .ruler-tickMinor{height:2px;}.glow170-vRuler .ruler-tickMajor{width:10px;}.glow170-vRuler .ruler-tickMinor{width:2px;}.glow170-ruler .ruler-labels{position:relative;height:1.2em;}.glow170-vRuler .ruler-labels{position:absolute;top:0;left:15px;height:100%;}.glow170-ruler .ruler-label,.glow170-vRuler .ruler-label{position:absolute;top:0;left:0;}.glow170-ruler .ruler-label{text-align:center;}.glow170-ruler .ruler-label span{position:relative;left:-50%;}.glow170-vRuler .ruler-label{margin-top:-0.56em;}.glow170-vTimetable .timetable-container,.glow170-Timetable .timetable-container{overflow:hidden;position:relative;zoom:1;}.glow170-vTimetable .timetable-innerView,.glow170-Timetable .timetable-innerView{background:#fff;overflow:hidden;position:relative;zoom:1;}.glow170-vTimetable .timetable-innerView{float:left;}.glow170-vTimetable .timetable-dragArea,.glow170-vTimetable .timetable-track,.glow170-vTimetable .timetable-item,.glow170-vTimetable .timetable-bandOdd,.glow170-vTimetable .timetable-bandEven,.glow170-vTimetable .timetable-scale,.glow170-vTimetable .timetable-scaleItem,.glow170-Timetable .timetable-dragArea,.glow170-Timetable .timetable-track,.glow170-Timetable .timetable-item,.glow170-Timetable .timetable-bandOdd,.glow170-Timetable .timetable-bandEven,.glow170-Timetable .timetable-scale,.glow170-Timetable .timetable-scaleItem{position:absolute;top:0;left:0;overflow:hidden;width:100%;height:100%;z-index:2;}.glow170-vTimetable .timetable-dragRange,.glow170-Timetable .timetable-dragRange{height:100%;width:100%;}.glow170-vTimetable .timetable-track,.glow170-Timetable .timetable-track{border:1px solid #a0a0a0;border-width:0 1px;margin-right:2px;}.glow170-vTimetable .timetable-track{border-width:0 1px;margin-right:1px;}.glow170-Timetable .timetable-track{border-width:1px 0;margin-bottom:1px;}.glow170-vTimetable .timetable-scale,.glow170-Timetable .timetable-scale{color:#a0a0a0;font-size:x-large;border:1px solid #ccc;}.glow170-vTimetable .timetable-scale{text-align:center;}.glow170-vTimetable .timetable-scalePrimary{border-width:0 0 0 1px;}.glow170-vTimetable .timetable-scaleSecondary{border-width:0 1px 0 0;}.glow170-Timetable .timetable-scalePrimary{border-width:1px 0 0 0;}.glow170-Timetable .timetable-scaleSecondary{border-width:0 0 1px 0;}.glow170-vTimetable .timetable-track-footers{clear:both;}.glow170-vTimetable .timetable-accessibility-navigation,.glow170-Timetable .timetable-accessibility-navigation,.glow170-vTimetable .timetable-accessibility-hidden,.glow170-Timetable .timetable-accessibility-hidden{position:absolute;height:1px;width:1px;overflow:hidden;}.glow170-vTimetable .timetable-track-headers,.glow170-vTimetable .timetable-track-footers,.glow170-Timetable .timetable-track-headers,.glow170-Timetable .timetable-track-footers{position:relative;}.glow170-vTimetable .timetable-header-holder,.glow170-vTimetable .timetable-footer-holder,.glow170-Timetable .timetable-header-holder,.glow170-Timetable .timetable-footer-holder{position:absolute;top:0;left:0;overflow:hidden;color:#fff;background:#424242;text-align:center;}.glow170-Timetable .timetable-track-headers,.glow170-Timetable .timetable-track-footers,.glow170-Timetable .timetable-scrollView{float:left;}.glow170-Timetable .timetable-header-holder,.glow170-Timetable .timetable-footer-holder{width:100px;}.glow170-vTimetable .timetable-track-headers,.glow170-vTimetable .timetable-track-footers,.glow170-Timetable .timetable-track-headers,.glow170-Timetable .timetable-track-footers{background:#fff;border:1px solid #ccc;}.glow170-vTimetable .timetable-track-headers{border-bottom-width:0;}.glow170-vTimetable .timetable-track-footers{border-top-width:0;}.glow170-Timetable .timetable-track-headers{border-right-width:0;}.glow170-Timetable .timetable-track-footers{border-left-width:0;}.glow170-vTimetable .timetable-track-headers div.timetable-header-content,.glow170-vTimetable .timetable-track-footers div.timetable-footer-content,.glow170-Timetable .timetable-track-headers div.timetable-header-content,.glow170-Timetable .timetable-track-footers div.timetable-footer-content{padding:9px 0;}.glow170-Timetable .timetable-track-headers div.timetable-header-content,.glow170-Timetable .timetable-track-footers div.timetable-footer-content{padding:4px 5px;text-align:left;}.glow170-vTimetable .timetable-trackList,.glow170-Timetable .timetable-trackList{margin:0!important;padding:0!important;list-style:none;}.glow170-vTimetable .timetable-item,.glow170-Timetable .timetable-item{border:1px solid #ccc;margin:0!important;padding:0!important;display:block;}.glow170-vTimetable .timetable-item{border-width:1px 0;}.glow170-Timetable .timetable-item{border-width:0 1px;}.glow170-vTimetable .timetable-itemHangingOffStart .timetable-itemContent,.glow170-Timetable .timetable-itemHangingOffStart .timetable-itemContent{opacity:.3;filter:alpha(opacity=30);zoom:1;}.glow170-vTimetable .timetable-itemHangingClipping .timetable-itemContent,.glow170-Timetable .timetable-itemHangingClipping .timetable-itemContent{height:1px;overflow:hidden;}.glow170-vTimetable .timetable-hideitems .timetable-item{display:none;}.glow170-vTimetable .timetable-bandOdd,.glow170-vTimetable .timetable-bandEven,.glow170-Timetable .timetable-bandOdd,.glow170-Timetable .timetable-bandEven{z-index:1;}.glow170-vTimetable .timetable-bandOdd,.glow170-Timetable .timetable-bandOdd{background:#ebebeb;}.glow170-vTimetable .timetable-default-track-header{position:absolute;height:1px;width:1px;overflow:hidden;}.glow170-vTimetable .timetable-scrollbar1,.glow170-vTimetable .timetable-scrollbar2,.glow170-Timetable .timetable-scrollbar1,.glow170-Timetable .timetable-scrollbar2{display:none;}.glow170-vTimetable .timetable-scrollbar1,.glow170-vTimetable .timetable-scrollbar2{float:left;_width:0;}.glow170-vTimetable .timetable-scrollbar .slider-container,.glow170-Timetable .timetable-scrollbar .slider-container{padding:21px 0;border:1px solid #a0a0a0;}.glow170-Timetable .timetable-scrollbar .slider-container{padding:0 21px;}.glow170-vTimetable .timetable-scrollbar2 .slider-container{border-left-width:0;}.glow170-vTimetable .timetable-scrollbar1 .slider-container{border-right-width:0;}.glow170-Timetable .timetable-scrollbar2 .slider-container{border-top-width:0;}.glow170-Timetable .timetable-scrollbar1 .slider-container{border-bottom-width:0;}.glow170-vTimetable .timetable-scrollbar .slider-handle,.glow170-Timetable .timetable-scrollbar .slider-handle{width:100%;height:100%;background:#fff;opacity:0;filter:alpha(opacity=0);top:0;}.glow170-vTimetable .timetable-scrollbar .slider-track,.glow170-Timetable .timetable-scrollbar .slider-track{background:none;}.glow170-vTimetable .timetable-scrollbarLabels,.glow170-Timetable .timetable-scrollbarLabels{position:absolute;width:100%;height:100%;background:#fff;color:#227db7;font-size:small;text-align:center;top:0;left:0;overflow:hidden;}.glow170-vTimetable .slider-labels,.glow170-Timetable .slider-labels{display:none;}.glow170-vTimetable .timetable-scrollbarLabelsHighlight,.glow170-Timetable .timetable-scrollbarLabelsHighlight{background:#424242;color:#fff;z-index:1;overflow:hidden;}.glow170-vTimetable .timetable-scrollbar .slider-trackOn,.glow170-vTimetable .timetable-scrollbar .slider-trackOff,.glow170-Timetable .timetable-scrollbar .slider-trackOn,.glow170-Timetable .timetable-scrollbar .slider-trackOff{background:none;}.glow170-vTimetable .timetable-scrollbarItem,.glow170-Timetable .timetable-scrollbarItem{width:100%;height:100%;position:absolute;top:0;left:0;}.glow170-vTimetable .timetable-scrollbar .slider-btn-bk,.glow170-vTimetable .timetable-scrollbar .slider-btn-fwd,.glow170-Timetable .timetable-scrollbar .slider-btn-bk,.glow170-Timetable .timetable-scrollbar .slider-btn-fwd{background:url(images/timetable/lightv.png) top center;border:1px solid #a0a0a0;}.glow170-vTimetable .timetable-scrollbar .slider-btn-bk,.glow170-vTimetable .timetable-scrollbar .slider-btn-fwd{height:20px;left:0;border-width:0 0 1px 0;}.glow170-Timetable .timetable-scrollbar .slider-btn-bk,.glow170-Timetable .timetable-scrollbar .slider-btn-fwd{background:url(images/timetable/lighth.png) right center;width:20px;top:0;border-width:0 0 0 1px;}.glow170-vTimetable .timetable-scrollbar .slider-btn-bk{background-position:center bottom;border-width:1px 0 0 0;margin:-21px 0 0;}.glow170-Timetable .timetable-scrollbar .slider-btn-bk{background-position:left center;border-width:0 1px 0 0;z-index:1;}.glow170-Timetable .timetable-scrollbar .slider-btn-fwd{margin-left:-21px;}.glow170-vTimetable .timetable-dark .timetable-scrollbarLabels,.glow170-Timetable .timetable-dark .timetable-scrollbarLabels{background-color:#333;}.glow170-vTimetable .timetable-dark .timetable-header-holder,.glow170-vTimetable .timetable-dark .timetable-footer-holder,.glow170-Timetable .timetable-dark .timetable-header-holder,.glow170-Timetable .timetable-dark .timetable-footer-holder,.glow170-vTimetable .timetable-dark .timetable-scrollbarLabelsHighlight,.glow170-Timetable .timetable-dark .timetable-scrollbarLabelsHighlight{background:#121212;}.glow170-vTimetable .timetable-dark .timetable-innerView,.glow170-Timetable .timetable-dark .timetable-innerView{background:#333;color:#ccc;}.glow170-vTimetable .timetable-dark .timetable-scale,.glow170-Timetable .timetable-dark .timetable-scale{color:#ccc;}.glow170-vTimetable .timetable-dark .timetable-item,.glow170-Timetable .timetable-dark .timetable-item,.glow170-vTimetable .timetable-dark .timetable-track,.glow170-Timetable .timetable-dark .timetable-track,.glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-bk,.glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-fwd,.glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-bk,.glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-fwd,.glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-container,.glow170-Timetable .timetable-dark .timetable-scrollbar .slider-container,.glow170-vTimetable .timetable-dark .timetable-scale,.glow170-Timetable .timetable-dark .timetable-scale{border-color:#141414;}.glow170-vTimetable .timetable-dark .timetable-bandOdd,.glow170-Timetable .timetable-dark .timetable-bandOdd{background-color:#242424;}.glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-bk,.glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-fwd{background-image:url(images/timetable/darkv.png);}.glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-bk,.glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-fwd{background-image:url(images/timetable/darkh.png);}.glow170-vTimetable .timetable-dark .timetable-track-headers,.glow170-vTimetable .timetable-dark .timetable-track-footers,.glow170-Timetable .timetable-dark .timetable-track-headers,.glow170-Timetable .timetable-dark .timetable-track-footers{border:none;background:#333;}.glow170-editor{border:1px solid #000;font-size:medium;}.glow170-editor .editor-toolbar{border:none;display:block;margin:0;padding:0;background-color:#EFEFEF;}.glow170-editor .editor-toolbar legend{display:none;}.glow170-editor .editor-toolbar-tools h3{display:none;}.glow170-editor ul.editor-toolbar-tools{display:block;margin:0!important;padding:9px!important;overflow:hidden;zoom:1;}.glow170-editor ul.editor-toolbar-tools li{list-style:none;float:left;display:block;margin:0!important;padding:0!important;}.glow170-editor .editor-toolbar-button{display:block;margin:0;padding:0;overflow:hidden;}.glow170-editor .editor-toolbar-button a{outline:none;text-decoration:none;}.glow170-editor .editor-toolbar-button img{border:none;}.glow170-editor .editor-toolbar-icon{display:block;width:26px;height:24px;}.glow170-editor .editor-toolbar-icon span{display:block;height:1px;overflow:hidden;width:1px;}.glow170-editor .editor-toolbar-icon span{display:block;height:1px;overflow:hidden;width:1px;}.glow170-editor .editor-toolbar-item .bold-button{background-image:url(images/editor/button-bold.png);}.glow170-editor .editor-toolbar-item .italics-button{background-image:url(images/editor/button-italics.png);}.glow170-editor .editor-toolbar-item .strike-button{background-image:url(images/editor/button-strike.png);}.glow170-editor .editor-toolbar-item .blockquote-button{background-image:url(images/editor/button-blockquote.png);}.glow170-editor .editor-toolbar-item .unorderedlist-button{background-image:url(images/editor/button-unorderedlist.png);}.glow170-editor .editor-toolbar-item .orderedlist-button{background-image:url(images/editor/button-orderedlist.png);}.glow170-editor .editor-toolbar-item .default .editor-toolbar-icon{background-position:0 0;}.glow170-editor .editor-toolbar-item .disabled .editor-toolbar-icon{background-position:0 -28px;}.glow170-editor .editor-toolbar-item .active .editor-toolbar-icon{background-position:0 -85px;}.glow170-editor .editor-toolbar-item .hover .editor-toolbar-icon{background-position:0 -56px;}.glow170-editor .editor-toolbar-dropdown{display:block;width:84px;margin:0 3px 0 3px;}.glow170-editor .editor-toolbar-dropdown a{color:black;text-decoration:none;font:.75em arial;}.glow170-editor .editor-toolbar-dropdown span span{display:block;padding:1px 16px 1px 4px;border:1px solid #ccc;height:16px;line-height:16px;margin:3px 0 0 2px;background:#fff url(images/editor/menuarrow.png) no-repeat right 8px;overflow:hidden;}.glow170-editor .editor-toolbar-dropdown .disabled span{background:#aaa url(images/editor/menuarrow.png) no-repeat right -10px;}.glow170-editor .editor-toolbar-dropdown .hover span{background:#fff url(images/editor/menuarrow.png) no-repeat right 8px;}.glow170-editor .editor-toolbar-dropdown .active span span{border:1px solid #aaa;}.glow170-editor .editor-toolbar-dropdown .active span{background:#ccc url(images/editor/menuarrow.png) no-repeat right 8px;}.glow170-overlay.overlayMenu{background:#ccc;border:1px solid #b1b1b1;font-family:Arial,Helvetica,sans-serif;font-size:medium;}.glow170-overlay.overlayMenu ul{list-style:none;margin:0;padding:0;}.glow170-overlay.overlayMenu ul li{padding:2px 4px 2px 4px;outline:none;}.glow170-overlay.overlayMenu li.highlighted{background:#999;cursor:pointer;}.glow170-overlay.overlayMenu .heading1{font-size:1.2em;}.glow170-overlay.overlayMenu .heading2{font-size:1.1em;}.glow170-overlay.overlayMenu .heading3{font-size:1.0em;}.glow170-overlay.overlayMenu .normal{font-size:.9em;}.glow170-editor .editor-dark .editor-toolbar-dropdown span span{border:1px solid #666;background:transparent url(images/editor/menuarrow.png) no-repeat scroll right -12px;color:#fff;}.glow170-editor .editor-dark .editor-toolbar-dropdown .hover span span{border:1px solid #ccc;}.glow170-editor .editor-toolbar-dropdown .hover span span{border:1px solid #999;}.glow170-overlay.overlayMenu-dark{background:#333;border:1px solid #ccc;color:#fff;}.glow170-overlay.overlayMenu-dark ul li.highlighted{background:#000;}.glow170-editor .glow170-hidden{position:absolute;left:-2500px;width:1px;}.glow170-basic .glow170-editor .editor-toolbar-icon span{border:none;height:auto;overflow:hidden;width:auto;}.glow170-basic .glow170-editor .editor-toolbar-item .hover span span{border:1px solid #000;}.glow170-editor iframe{border:0;margin:0;padding:0;width:100%;}.glow170-editor .editor-dark .editor-toolbar{background:#333;color:#fff;}.glow170-editor .editor-dark .editor-toolbar-item .bold-button{background-image:url(images/editor/dark-button-bold.png);}.glow170-editor .editor-dark .editor-toolbar-item .italics-button{background-image:url(images/editor/dark-button-italics.png);}.glow170-editor .editor-dark .editor-toolbar-item .strike-button{background-image:url(images/editor/dark-button-strike.png);}.glow170-editor .editor-dark .editor-toolbar-item .blockquote-button{background-image:url(images/editor/dark-button-blockquote.png);}.glow170-editor .editor-dark .editor-toolbar-item .blockquote-button{background-image:url(images/editor/dark-button-blockquote.png);}.glow170-editor .editor-dark .editor-toolbar-item .unorderedlist-button{background-image:url(images/editor/dark-button-unorderedlist.png);}.glow170-editor .editor-dark .editor-toolbar-item .orderedlist-button{background-image:url(images/editor/dark-button-orderedlist.png);}
--------------------------------------------------------------------------------
/public/javascripts/glow/widgets/widgets.debug.css:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2009 British Broadcasting Corporation
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 | .glow170-cssTest {
17 | background: url(images/darkpanel/ctr.png);
18 | z-index: 1234;
19 | }
20 |
21 | /* preloader */
22 | .glow170-panel-preload {
23 | height: 1px;
24 | overflow: hidden;
25 | position: absolute;
26 | top: -10px;
27 | width: 1px;
28 | left: -5px;
29 | }
30 | .glow170-panel-preload .panel-close {
31 | display: none;
32 | visibility: hidden;
33 | }
34 | .glow170-panel-preload .infoPanel-pointerT,
35 | .glow170-panel-preload .infoPanel-pointerR,
36 | .glow170-panel-preload .infoPanel-pointerB,
37 | .glow170-panel-preload .infoPanel-pointerL {
38 | display: block;
39 | }
40 | /*end */
41 | .glow170-overlay {
42 | visibility: hidden;
43 | display: none;
44 | overflow: hidden;
45 | position: absolute;
46 | }
47 |
48 | /* stop the dotted line around the overlay focal point when it has focus */
49 | .glow170-overlay .overlay-focalPoint:focus {
50 | outline: none;
51 | }
52 | .glow170-overlay .overlay-focalPoint {
53 | overflow: hidden;
54 | width: 0;
55 | height: 0;
56 | position: absolute;
57 | }
58 |
59 | /*hide stuff offscreen*/
60 | .glow170-overlay .panelAccess {
61 | position: absolute;
62 | overflow: hidden;
63 | height: 0;
64 | width: 0;
65 | top: -5000px;
66 | left: -5000px;
67 | }
68 | /*PANEL*/
69 | .glow170-panel .c {
70 | background: #57585A url(images/darkpanel/bg.gif) repeat-x bottom;
71 | color: #fff;
72 | margin: 0 10px;
73 | }
74 | .glow170-panel .tr, .glow170-panel .tl, .glow170-panel .br, .glow170-panel .bl {
75 | height: 14px;
76 | overflow: hidden;
77 | }
78 | .glow170-panel .tr, .glow170-panel .br {
79 | float: right;
80 | width: 14px;
81 | }
82 | /* we couldn't sprite these because of IE being a pain */
83 | .glow170-panel .tr { background: url(images/darkpanel/ctr.png); }
84 | .glow170-panel .tl { background: url(images/darkpanel/ctl.png); }
85 | .glow170-panel .bl { background: url(images/darkpanel/cbl.png); }
86 | .glow170-panel .br { background: url(images/darkpanel/cbr.png); }
87 |
88 | .glow170-panel .tl, .glow170-panel .bl {
89 | width: 14px;
90 | float: left;
91 | }
92 | .glow170-panel .tb, .glow170-panel .bb {
93 | border: 4px solid #57585A;
94 | border-width: 0 0 4px 0;
95 | overflow: hidden;
96 | font-size: 0;
97 | }
98 | .glow170-panel .tb div, .glow170-panel .bb div {
99 | height: 10px;
100 | background: #fff;
101 | opacity: 0.5;
102 | font-size: 0;
103 | }
104 | .glow170-panel .bb {
105 | border-width: 4px 0 0 0;
106 | border-color: #424243;
107 | }
108 | .glow170-panel .tc {
109 | overflow: hidden;
110 | position: relative;
111 | zoom: 1;
112 | }
113 | .glow170-panel .bars {
114 | position: absolute;
115 | width: 100%;
116 | padding-left: 10px;
117 | height: 100%;
118 | background: #fff;
119 | opacity: 0.5;
120 | margin-left: -10px;
121 | /* the following rule hits IE6 only */
122 | _height: 2000px;
123 | /* the following rule hits IE6 & IE7 */
124 | *padding-left: 0;
125 | }
126 | /*
127 | annoying firefox bug - it sometimes doesn't obey the overflow by one px if
128 | the opacity isn't 1. Firefox users get an extra http request. Oh well. -J
129 | */
130 | html .glow170-gecko .glow170-panel .bars {
131 | background: url(images/darkpanel/transbg.png);
132 | opacity: 1;
133 | }
134 | .glow170-panel .c {
135 | position: relative;
136 | min-height: 50px;
137 | overflow: hidden;
138 | }
139 |
140 | .glow170-panel .panel-hd {
141 | border-bottom: 1px solid #B0B0B0;
142 | padding: 5px 10px 10px;
143 | font-weight: bold;
144 | }
145 | .glow170-panel .panel-hd * {
146 | margin: 0; padding: 0;
147 | }
148 |
149 | .glow170-panel .panel-bd, .glow170-panel .panel-ft {
150 | margin: 0 10px;
151 | }
152 |
153 | .glow170-panel .panel-close {
154 | background: url(images/darkpanel/close.png);
155 | height: 20px;
156 | width: 20px;
157 | float: right;
158 | position: relative;
159 | margin: 5px 10px 0 0;
160 | text-indent: -5000px;
161 | }
162 |
163 | /*without header*/
164 | .glow170-overlay .panel-noHeader .panel-hd {
165 | display: none;
166 | }
167 | /*end*/
168 |
169 |
170 | /*without images*/
171 | .glow170-basic .glow170-panel .panel-close {
172 | text-indent: 0;
173 | color: #fff;
174 | border: 1px solid #fff;
175 | text-align: center;
176 | }
177 | .glow170-basic .glow170-panel .tb,
178 | .glow170-basic .glow170-panel .bb,
179 | .glow170-basic .glow170-panel .bars {
180 | visibility: hidden;
181 | }
182 | /*end*/
183 |
184 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
185 | This block of CSS rules for IE only has been moved to panel.js to be output directly to
186 | the page. It is there so that the path to the PNGs can be deduced from the location of
187 | the widgets css file.
188 | It is acceptable because this design will not be altered before version 2 of glow, and
189 | at that point it will be modified to avoid the use of PNGs.
190 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
191 |
192 | .glow170-ie .glow170-panel .tr {
193 | background:none;
194 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/ctr.png', sizingMethod='crop');
195 | }
196 | .glow170-ie .glow170-panel .tl {
197 | background:none;
198 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/ctl.png', sizingMethod='crop');
199 | }
200 | .glow170-ie .glow170-panel .bl {
201 | background:none;
202 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/cbl.png', sizingMethod='crop');
203 | }
204 | .glow170-ie .glow170-panel .br {
205 | background:none;
206 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/cbr.png', sizingMethod='crop');
207 | }
208 | .glow170-ie .glow170-panel .infoPanel-pointerT {
209 | background:none;
210 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/at.png', sizingMethod='crop');
211 | }
212 | .glow170-ie .glow170-panel .infoPanel-pointerR {
213 | background:none;
214 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/ar.png', sizingMethod='crop');
215 | }
216 | .glow170-ie .glow170-panel .infoPanel-pointerB {
217 | background:none;
218 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/ab.png', sizingMethod='crop');
219 | }
220 | .glow170-ie .glow170-panel .infoPanel-pointerL {
221 | background:none;
222 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/darkpanel/al.png', sizingMethod='crop');
223 | }
224 |
225 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
226 |
227 | .glow170-ie .glow170-panel .bars,
228 | .glow170-ie .glow170-panel .tb div,
229 | .glow170-ie .glow170-panel .bb div {
230 | opacity: 1;
231 | filter: alpha(opacity=50);
232 | }
233 |
234 | .glow170-ie .glow170-panel .tb,
235 | .glow170-ie .glow170-panel .bb {
236 | zoom: 1;
237 | z-index: -1;
238 | position: relative;
239 | }
240 |
241 | /*
242 | this solves a weird IE bug where the content vanishes if the panel is given an
243 | opacity value
244 | */
245 | .glow170-ie .glow170-panel .c {
246 | filter: alpha(opacity=100);
247 | }
248 |
249 | .glow170-ielt7 .glow170-panel .tr,
250 | .glow170-ielt7 .glow170-panel .br {
251 | margin-left: -3px;
252 | }
253 | .glow170-ielt7 .glow170-panel .tl,
254 | .glow170-ielt7 .glow170-panel .bl {
255 | margin-right: -3px;
256 | }
257 | .glow170-ielt7 .glow170-panel .c {
258 | height: 50px;
259 | overflow: visible;
260 | }
261 | .glow170-ielt7 .glow170-panel .panel-bd {
262 | overflow: hidden;
263 | }
264 | /*DARK THEME*/
265 | /*Dark is the default*/
266 | /*LIGHT THEME*/
267 | .glow170-overlay .panel-light .c {
268 | background: #fff url(images/lightpanel/bg.gif) repeat-x bottom;
269 | color: #000;
270 | }
271 | .glow170-overlay .panel-light .tb {
272 | border-color: #fff;
273 | }
274 | .glow170-overlay .panel-light .bb {
275 | border-color: #E7E8E9;
276 | }
277 | .glow170-overlay .panel-light .bars,
278 | .glow170-overlay .panel-light .tb div,
279 | .glow170-overlay .panel-light .bb div {
280 | background: #000;
281 | opacity: 0.26;
282 | }
283 | .glow170-overlay .panel-light .tr { background: url(images/lightpanel/ctr.png); }
284 | .glow170-overlay .panel-light .tl { background: url(images/lightpanel/ctl.png); }
285 | .glow170-overlay .panel-light .bl { background: url(images/lightpanel/cbl.png); }
286 | .glow170-overlay .panel-light .br { background: url(images/lightpanel/cbr.png); }
287 | html .glow170-overlay .panel-light .infoPanel-pointerT { background: url(images/lightpanel/at.png); }
288 | html .glow170-overlay .panel-light .infoPanel-pointerR { background: url(images/lightpanel/ar.png); }
289 | html .glow170-overlay .panel-light .infoPanel-pointerB { background: url(images/lightpanel/ab.png); }
290 | html .glow170-overlay .panel-light .infoPanel-pointerL { background: url(images/lightpanel/al.png); }
291 |
292 | .glow170-overlay .panel-light .panel-close {
293 | background: url(images/lightpanel/close.png);
294 | }
295 | .glow170-gecko .glow170-overlay .panel-light .bars {
296 | background: url(images/lightpanel/transbg.png);
297 | }
298 |
299 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
300 | This block of CSS rules for IE only has been moved to panel.js to be output directly to
301 | the page. It is there so that the path to the PNGs can be deduced from the location of
302 | the widgets css file.
303 | It is acceptable because this design will not be altered before version 2 of glow, and
304 | at that point it will be modified to avoid the use of PNGs.
305 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
306 |
307 | .glow170-ie .glow170-overlay .panel-light .tr {
308 | background:none;
309 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/ctr.png', sizingMethod='crop');
310 | }
311 | .glow170-ie .glow170-overlay .panel-light .tl {
312 | background:none;
313 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/ctl.png', sizingMethod='crop');
314 | }
315 | .glow170-ie .glow170-overlay .panel-light .bl {
316 | background:none;
317 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/cbl.png', sizingMethod='crop');
318 | }
319 | .glow170-ie .glow170-overlay .panel-light .br {
320 | background:none;
321 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/cbr.png', sizingMethod='crop');
322 | }
323 | .glow170-ie .glow170-overlay .panel-light .infoPanel-pointerT {
324 | background:none;
325 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/at.png', sizingMethod='crop');
326 | }
327 | .glow170-ie .glow170-overlay .panel-light .infoPanel-pointerR {
328 | background:none;
329 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/ar.png', sizingMethod='crop');
330 | }
331 | .glow170-ie .glow170-overlay .panel-light .infoPanel-pointerB {
332 | background:none;
333 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/ab.png', sizingMethod='crop');
334 | }
335 | .glow170-ie .glow170-overlay .panel-light .infoPanel-pointerL {
336 | background:none;
337 | filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='//www.bbc.co.uk/glow/1.1.0/widgets/images/lightpanel/al.png', sizingMethod='crop');
338 | }
339 |
340 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
341 |
342 | .glow170-ie .glow170-overlay .panel-light .bars,
343 | .glow170-ie .glow170-overlay .panel-light .tb div,
344 | .glow170-ie .glow170-overlay .panel-light .bb div {
345 | opacity: 1;
346 | filter: alpha(opacity=26);
347 | }
348 | /*END*/
349 | /* info panel */
350 | .glow170-infoPanel .c {
351 | min-height: 125px
352 | }
353 |
354 | .glow170-panel .infoPanel-pointerT,
355 | .glow170-panel .infoPanel-pointerB,
356 | .glow170-panel .infoPanel-pointerL,
357 | .glow170-panel .infoPanel-pointerR {
358 | display: none;
359 | }
360 | .glow170-infoPanel-pointT .defaultSkin .infoPanel-pointerT,
361 | .glow170-infoPanel-pointL .defaultSkin .infoPanel-pointerL,
362 | .glow170-infoPanel-pointR .defaultSkin .infoPanel-pointerR,
363 | .glow170-infoPanel-pointB .defaultSkin .infoPanel-pointerB {
364 | width: 48px;
365 | height: 34px;
366 | overflow: hidden;
367 | position: relative;
368 | display: block;
369 | }
370 | .glow170-infoPanel-pointL .defaultSkin .infoPanel-pointerL,
371 | .glow170-infoPanel-pointR .defaultSkin .infoPanel-pointerR {
372 | width: 34px;
373 | height: 47px;
374 | left: 0;
375 | z-index: 1;
376 | }
377 | .glow170-infoPanel-pointL .defaultSkin .infoPanel-pointerL {
378 | position: absolute;
379 | }
380 | .glow170-panel .infoPanel-pointerT {
381 | margin: 0 0 -10px 45px;
382 | z-index: 1000;
383 | background: url(images/darkpanel/at.png);
384 | }
385 | .glow170-panel .infoPanel-pointerB {
386 | margin: -10px 0 0 45px;
387 | background: url(images/darkpanel/ab.png);
388 | }
389 | .glow170-panel .infoPanel-pointerL {
390 | margin: 54px 0 0 0;
391 | background: url(images/darkpanel/al.png);
392 | }
393 | .glow170-infoPanel-pointL .defaultSkin .pc {
394 | margin-left: 24px;
395 | }
396 | .glow170-panel .infoPanel-pointerR {
397 | float: right;
398 | position: relative;
399 | margin: 54px 0 0 -34px;
400 | background: url(images/darkpanel/ar.png);
401 | }
402 | .glow170-infoPanel-pointR .defaultSkin .pc {
403 | margin-right: 24px;
404 | }
405 | .glow170-ielt7 .glow170-infoPanel .c {
406 | height: 125px;
407 | }
408 | /*without header*/
409 | .glow170-panel-noHeader .defaultSkin .infoPanel-pointerL,
410 | .glow170-panel-noHeader .defaultSkin .infoPanel-pointerR {
411 | margin-top: 33px;
412 | }
413 | /*end*/
414 | /* AutoSuggest */
415 | .glow170-autoSuggest ul { /*TODO: handle embedded ul */
416 | margin: 0;
417 | padding: 0;
418 | list-style: none;
419 | color: #000;
420 | background-color: #FFF;
421 | border: 1px solid #333;
422 | }
423 |
424 | .glow170-autoSuggest .autosuggest-dark {
425 | background-color: #000;
426 | color: #fff;
427 | }
428 |
429 | .glow170-autoSuggest li { /*TODO: handle embedded ul */
430 | padding: 1px 9px;
431 | margin: 0;
432 | zoom: 1;
433 | cursor: pointer;
434 | }
435 |
436 | .glow170-autoSuggest li.odd {
437 | background-color: #D3D3D3;
438 | }
439 |
440 | .glow170-autoSuggest li.even {
441 | background-color: #FFF;
442 | }
443 |
444 | .glow170-autoSuggest li.active {
445 | background-color: #A9A9A9;
446 | }
447 |
448 | .glow170-autoSuggest .autosuggest-dark li.odd {
449 | background-color: #333;
450 | }
451 |
452 | .glow170-autoSuggest .autosuggest-dark li.even {
453 | background-color: #000;
454 | }
455 |
456 | .glow170-autoSuggest .autosuggest-dark li.active {
457 | background-color: #999;
458 | }
459 |
460 | /* Carousel */
461 |
462 | .glow170-carousel, .glow170-vCarousel {
463 | position:relative;
464 | overflow:hidden;
465 | zoom:1;
466 | }
467 |
468 | .glow170-carousel .carousel-window, .glow170-vCarousel .carousel-window {
469 | position:relative;
470 | overflow:hidden;
471 | }
472 |
473 | .glow170-carousel .carousel-content, .glow170-vCarousel .carousel-content {
474 | position:relative;
475 | list-style-type:none;
476 | padding-left:0;
477 | margin:0;
478 | top:0;
479 | left:0;
480 | overflow: hidden !important;
481 | /* If the inner element is floated it creates positioning issues in IE */
482 | float: none !important;
483 | }
484 |
485 | .glow170-carousel .carousel-item, .glow170-vCarousel .carousel-item {
486 | float:left;
487 | /*_overflow:hidden;*/
488 | display: inline;
489 | }
490 |
491 | .glow170-carousel .carousel-nav, .glow170-vCarousel .carousel-nav {
492 | position:relative;
493 | display:block;
494 | width:30px;
495 | height:100%;
496 | cursor:pointer;
497 | z-index:1;
498 | }
499 |
500 | .glow170-carousel .carousel-nav span, .glow170-vCarousel .carousel-nav span {
501 | position:absolute;
502 | top:0;
503 | left:0;
504 | display:block;
505 | width:100%;
506 | height:100%;
507 | }
508 |
509 | /* Light Theme */
510 | .glow170-carousel .carousel-light .carousel-window {
511 | background:#f0f0f0;
512 | }
513 |
514 | .glow170-carousel .carousel-light .carousel-nav span {
515 | background-image:url(images/carousel/lighth.png);
516 | }
517 |
518 | .glow170-carousel .carousel-light .carousel-nav {
519 | background:#f0f0f0;
520 | color:#000;
521 | }
522 |
523 | /* Dark Theme */
524 |
525 | .glow170-carousel .carousel-dark .carousel-window {
526 | background:#282828;
527 | }
528 |
529 | .glow170-carousel .carousel-dark .carousel-nav {
530 | background:#282828;
531 | color:#fff;
532 | }
533 |
534 | .glow170-carousel .carousel-dark .carousel-nav span {
535 | background-image:url(images/carousel/darkh.png);
536 | }
537 |
538 | .glow170-carousel .carousel-window {
539 | float:left;
540 | }
541 |
542 | .glow170-carousel .carousel-nav {
543 | float:left;
544 | overflow:hidden;
545 | }
546 |
547 | .glow170-carousel .carousel-nav span,
548 | .glow170-vCarousel .carousel-nav span {
549 | background-repeat:no-repeat;
550 | text-indent: -5000px; /* move text away when images are enabled */
551 | }
552 |
553 | .glow170-basic .glow170-carousel .carousel-nav span,
554 | .glow170-basic .glow170-vCarousel .carousel-nav span {
555 | text-indent: 0px; /* move text back when images are not enabled */
556 | }
557 |
558 | .glow170-carousel .carousel-nav .carousel-background {
559 | top:0;
560 | background-position:-60px 0;
561 | background-repeat:repeat-y;
562 | }
563 |
564 | .glow170-carousel .carousel-nav .carousel-top {
565 | top:0;
566 | background-position:0 0;
567 | }
568 |
569 | .glow170-carousel .carousel-nav .carousel-bottom {
570 | bottom:0;
571 | background-position:-30px bottom;
572 | }
573 |
574 | .glow170-carousel .carousel-nav .carousel-arrow {
575 | width:10px;
576 | top:0;
577 | left:10px;
578 | background-repeat:no-repeat;
579 | }
580 |
581 | .glow170-carousel .carousel-prev .carousel-arrow {
582 | background-position:-90px center;
583 | }
584 |
585 | .glow170-carousel .carousel-next .carousel-arrow {
586 | background-position:-101px center;
587 | }
588 |
589 | .glow170-carousel .carousel-prev-disabled,
590 | .glow170-carousel .carousel-next-disabled,
591 | .glow170-vCarousel .carousel-prev-disabled,
592 | .glow170-vCarousel .carousel-next-disabled,
593 | .glow170-carousel .carousel-prev-disabled a,
594 | .glow170-carousel .carousel-next-disabled a,
595 | .glow170-vCarousel .carousel-prev-disabled a,
596 | .glow170-vCarousel .carousel-next-disabled a {
597 | cursor: default;
598 | }
599 |
600 | .glow170-carousel .carousel-prev-disabled .carousel-arrow {
601 | background-position:-112px center;
602 | }
603 |
604 | .glow170-carousel .carousel-next-disabled .carousel-arrow {
605 | background-position:-123px center;
606 | }
607 |
608 | /* Vertical Themes */
609 |
610 | /* Light Theme - Vertical */
611 |
612 | .glow170-vCarousel .carousel-light .carousel-window {
613 | background:#f0f0f0;
614 | }
615 |
616 | .glow170-vCarousel .carousel-light .carousel-nav {
617 | background:#f0f0f0;
618 | color:#000;
619 | height:30px;
620 | }
621 |
622 | .glow170-vCarousel .carousel-light .carousel-nav span {
623 | background-image:url(images/carousel/lightv.png);
624 | }
625 |
626 | /* Dark Theme - Vertical */
627 | .glow170-vCarousel .carousel-dark .carousel-window {
628 | background:#282828;
629 | }
630 |
631 | .glow170-vCarousel .carousel-dark .carousel-nav {
632 | background:#282828;
633 | color:#fff;
634 | height:30px;
635 | }
636 |
637 | .glow170-vCarousel .carousel-dark .carousel-nav span {
638 | background-image:url(images/carousel/darkv.png);
639 | }
640 |
641 | .glow170-vCarousel .carousel-nav span {
642 | background-repeat:no-repeat;
643 | overflow:hidden;
644 | }
645 |
646 | .glow170-vCarousel .carousel-nav .carousel-background {
647 | background-position:0 -60px;
648 | background-repeat:repeat-x;
649 | }
650 |
651 | .glow170-vCarousel .carousel-nav .carousel-top {
652 | background-position:right 0;
653 | }
654 |
655 | .glow170-vCarousel .carousel-nav .carousel-bottom {
656 | background-position:left -30px;
657 | }
658 |
659 | .glow170-vCarousel .carousel-nav .carousel-arrow {
660 | top:10px;
661 | height:10px;
662 | }
663 |
664 | .glow170-vCarousel .carousel-prev .carousel-arrow {
665 | background-position:center -90px;
666 | }
667 |
668 | .glow170-vCarousel .carousel-next .carousel-arrow {
669 | background-position:center -101px;
670 | }
671 |
672 | .glow170-vCarousel .carousel-prev-disabled .carousel-arrow {
673 | background-position:center -112px;
674 | }
675 |
676 | .glow170-vCarousel .carousel-next-disabled .carousel-arrow {
677 | background-position:center -123px;
678 | }
679 |
680 | /* Paged Carousel */
681 | .glow170-vCarousel .carousel-window.paged { float: left; }
682 |
683 | .glow170-carousel .pageNav,
684 | .glow170-vCarousel .pageNav {
685 | display: block;
686 | padding: 0px;
687 | height: 20px;
688 | width: auto;
689 | clear: both;
690 | margin: 0 auto;
691 | }
692 |
693 | .glow170-vCarousel .pageNav {
694 | height: auto;
695 | float: left;
696 | width: 20px;
697 | clear: none;
698 | margin: auto 0;
699 | }
700 |
701 | .glow170-carousel .dotLabel,
702 | .glow170-vCarousel .dotLabel {
703 | width: 20px;
704 | height: 20px;
705 | overflow: hidden;
706 | text-indent: -5000px; /* move text away when images are enabled */
707 | padding: 0;
708 | margin: 0;
709 | display: block;
710 | }
711 |
712 | .glow170-basic .glow170-carousel .dot .dotLabel,
713 | .glow170-basic .glow170-vCarousel .dot .dotLabel {
714 | overflow: visible;
715 | text-indent: 0; /* images are disabled, so move text back, but not for arrows */
716 | }
717 |
718 | .glow170-carousel .pageNav li,
719 | .glow170-vCarousel .pageNav li {
720 | width: 20px;
721 | height: 20px;
722 | padding: 0px;
723 | margin: 0px;
724 | float: left;
725 | list-style-type: none;
726 | color: #000;
727 | background-image: url(images/carousel/lightdots.png);
728 | background-repeat: no-repeat;
729 | background-position: -20px 0;
730 | }
731 |
732 | .glow170-carousel .pageNav .dot {
733 | cursor: pointer;
734 | }
735 |
736 | .glow170-carousel .carousel-dark .pageNav li,
737 | .glow170-vCarousel .carousel-dark .pageNav li {
738 | color: #fff;
739 | background-image: url(images/carousel/darkdots.png);
740 | }
741 |
742 | .glow170-vCarousel .pageNav li {
743 | background-image: url(images/carousel/lightdotsv.png);
744 | float: none;
745 | }
746 |
747 | .glow170-vCarousel .carousel-dark .pageNav li { background-image: url(images/carousel/darkdotsv.png); }
748 | .glow170-carousel .pageNav li.dotActive,
749 | .glow170-vCarousel .pageNav li.dotActive { background-position: -20px -20px; }
750 | .glow170-basic .glow170-carousel .pageNav li.dotActive,
751 | .glow170-basic .glow170-vCarousel .pageNav li.dotActive { text-decoration: underline; }
752 | .glow170-carousel .pageNav li#rightarrow,
753 | .glow170-vCarousel .pageNav li#rightarrow { background-position: -40px -20px; }
754 |
755 | .glow170-basic .glow170-carousel .pageNav li#rightarrow .dotLabel {
756 | width: 0;
757 | height: 0;
758 | border-top: 8px solid #fff;
759 | border-right: 8px solid #fff;
760 | border-bottom: 8px solid #fff;
761 | border-left: 8px solid #000;
762 | }
763 |
764 | .glow170-basic .glow170-vCarousel .pageNav li#rightarrow .dotLabel {
765 | width: 0;
766 | height: 0;
767 | border-top: 8px solid #000;
768 | border-right: 8px solid #fff;
769 | border-bottom: 8px solid #fff;
770 | border-left: 8px solid #fff;
771 | }
772 |
773 | .glow170-carousel .pageNav li.carousel-next-disabled#rightarrow,
774 | .glow170-vCarousel .pageNav li.carousel-next-disabled#rightarrow { background-position: -40px 0; }
775 |
776 | .glow170-basic .glow170-carousel .pageNav li.carousel-next-disabled#rightarrow .dotLabel,
777 | .glow170-basic .glow170-vCarousel .pageNav li.carousel-next-disabled#rightarrow .dotLabel {
778 | width: 0;
779 | height: 0;
780 | border-top: 8px solid #fff;
781 | border-right: 8px solid #fff;
782 | border-bottom: 8px solid #fff;
783 | border-left: 8px solid #ccc;
784 | }
785 |
786 | .glow170-basic .glow170-vCarousel .pageNav li.carousel-next-disabled#rightarrow .dotLabel {
787 | width: 0;
788 | height: 0;
789 | border-top: 8px solid #ccc;
790 | border-right: 8px solid #fff;
791 | border-bottom: 8px solid #fff;
792 | border-left: 8px solid #fff;
793 | }
794 |
795 | .glow170-carousel .pageNav li#leftarrow,
796 | .glow170-vCarousel .pageNav li#leftarrow { background-position: 0 -20px; }
797 |
798 | .glow170-basic .glow170-carousel .pageNav li#leftarrow .dotLabel {
799 | width: 0;
800 | height: 0;
801 | border-top: 8px solid #fff;
802 | border-right: 8px solid #000;
803 | border-bottom: 8px solid #fff;
804 | border-left: 8px solid #fff;
805 | }
806 |
807 | .glow170-basic .glow170-vCarousel .pageNav li#leftarrow .dotLabel {
808 | width: 0;
809 | height: 0;
810 | border-top: 8px solid #fff;
811 | border-right: 8px solid #fff;
812 | border-bottom: 8px solid #000;
813 | border-left: 8px solid #fff;
814 | }
815 |
816 | .glow170-carousel .pageNav li.carousel-prev-disabled#leftarrow,
817 | .glow170-vCarousel .pageNav li.carousel-prev-disabled#leftarrow { background-position: 0 0; }
818 |
819 | .glow170-basic .glow170-carousel .pageNav li.carousel-prev-disabled#leftarrow .dotLabel {
820 | width: 0;
821 | height: 0;
822 | border-top: 8px solid #fff;
823 | border-right: 8px solid #ccc;
824 | border-bottom: 8px solid #fff;
825 | border-left: 8px solid #fff;
826 | }
827 |
828 | .glow170-basic .glow170-vCarousel .pageNav li.carousel-prev-disabled#leftarrow .dotLabel {
829 | width: 0;
830 | height: 0;
831 | border-top: 8px solid #fff;
832 | border-right: 8px solid #fff;
833 | border-bottom: 8px solid #ccc;
834 | border-left: 8px solid #fff;
835 | }
836 | /* SLIDER */
837 |
838 | .glow170-slider,
839 | .glow170-vSlider {
840 | position: relative;
841 | zoom: 1;
842 | }
843 |
844 | .glow170-slider .slider-container,
845 | .glow170-vSlider .slider-container {
846 | position: relative;
847 | zoom: 1;
848 | padding: 4px 17px 6px 17px;
849 | }
850 |
851 | .glow170-slider:focus,
852 | .glow170-vSlider:focus {
853 | outline: none;
854 | border: none;
855 | }
856 |
857 | /* track */
858 | .glow170-slider .slider-track,
859 | .glow170-vSlider .slider-track {
860 | position: relative;
861 | /* for IE */
862 | font-size: 0;
863 | zoom: 1;
864 | }
865 | .glow170-slider .slider-trackOff,
866 | .glow170-vSlider .slider-trackOff {
867 | height: 8px;
868 | background: url(images/slider/lighth.png) 100% 0;
869 | margin-left: 2px;
870 | /* for IE */
871 | font-size: 0;
872 | }
873 | .glow170-slider .slider-trackOn,
874 | .glow170-vSlider .slider-trackOn {
875 | /* width of this is set via js */
876 | position: absolute;
877 | height: 8px;
878 | top: 0; left: 0;
879 | background: url(images/slider/lighth.png) -2px -8px;
880 | z-index: 2;
881 | overflow: hidden;
882 | }
883 |
884 | .glow170-slider .slider-handle,
885 | .glow170-vSlider .slider-handle {
886 | /* left position of this is set via js */
887 | position: absolute;
888 | top: -4px;
889 | width: 17px; height: 18px;
890 | background: url(images/slider/lighth.png) 0px -16px;
891 | z-index: 3;
892 | cursor: pointer;
893 | }
894 |
895 | /* buttons */
896 |
897 | .glow170-slider .slider-btn-bk,
898 | .glow170-slider .slider-btn-fwd,
899 | .glow170-vSlider .slider-btn-bk,
900 | .glow170-vSlider .slider-btn-fwd {
901 | position: absolute;
902 | width: 12px; height: 12px;
903 | top: 2px; left: 0;
904 | background: url(images/slider/lighth.png) 0px -34px;
905 | font-size: 0;
906 | cursor: pointer;
907 | }
908 | .glow170-slider .slider-btn-fwd {
909 | background-position: -12px -34px;
910 | left: 100%;
911 | margin-left: -12px;
912 | }
913 |
914 | /* active state */
915 |
916 | .glow170-slider .slider-active .slider-handle {
917 | background-position: -17px -16px;
918 | }
919 |
920 | /* disabled state */
921 |
922 | .glow170-slider .slider-disabled .slider-handle {
923 | background-position: -34px -16px;
924 | }
925 | .glow170-slider .slider-disabled .slider-btn-bk {
926 | background-position: -24px -34px;
927 | }
928 | .glow170-slider .slider-disabled .slider-btn-fwd {
929 | background-position: -36px -34px;
930 | }
931 | .glow170-slider .slider-disabled .slider-trackOn {
932 | background-position: -2px 0;
933 | }
934 |
935 | .glow170-slider .slider-disabled .slider-btn-bk,
936 | .glow170-slider .slider-disabled .slider-btn-fwd,
937 | .glow170-slider .slider-disabled .slider-handle,
938 | .glow170-vSlider .slider-disabled .slider-btn-bk,
939 | .glow170-vSlider .slider-disabled .slider-btn-fwd,
940 | .glow170-vSlider .slider-disabled .slider-handle {
941 | cursor: auto;
942 | }
943 |
944 | /* no buttons */
945 | .glow170-slider .slider-noButtons .slider-container {
946 | padding-left: 0;
947 | padding-right: 0;
948 | }
949 | .glow170-slider .slider-noButtons .slider-btn-bk,
950 | .glow170-slider .slider-noButtons .slider-btn-fwd,
951 | .glow170-vSlider .slider-noButtons .slider-btn-bk,
952 | .glow170-vSlider .slider-noButtons .slider-btn-fwd {
953 | display: none;
954 | }
955 |
956 | /* labels */
957 | .glow170-slider .slider-labels {
958 | margin: 10px 8px 0;
959 | }
960 | .glow170-vSlider .slider-labels {
961 | position: absolute;
962 | left: 22px; top: 25px;
963 | }
964 |
965 | .glow170-vSlider .slider-noButtons .slider-labels {
966 | top: 8px;
967 | }
968 |
969 | .glow170-slider .slider-labels .ruler-tickMajor,
970 | .glow170-slider .slider-labels .ruler-tickMinor,
971 | .glow170-vSlider .slider-labels .ruler-tickMajor,
972 | .glow170-vSlider .slider-labels .ruler-tickMinor {
973 | background: #6e6e6e;
974 | }
975 | .glow170-slider .slider-labels .ruler-label,
976 | .glow170-vSlider .slider-labels .ruler-label {
977 | color: #6e6e6e;
978 | cursor: pointer;
979 | }
980 |
981 |
982 | /* vertical */
983 | .glow170-vSlider .slider-trackOff,
984 | .glow170-vSlider .slider-trackOn,
985 | .glow170-vSlider .slider-handle,
986 | .glow170-vSlider .slider-btn-bk,
987 | .glow170-vSlider .slider-btn-fwd {
988 | background-image: url(images/slider/lightv.png);
989 | }
990 |
991 | .glow170-vSlider .slider-container {
992 | padding: 17px 0;
993 | }
994 |
995 | .glow170-vSlider .slider-track {
996 | margin: 0;
997 | overflow: hidden;
998 | zoom: 1;
999 | width: 20px;
1000 | }
1001 |
1002 | .glow170-vSlider .slider-trackOff {
1003 | width: 8px;
1004 | height: auto;
1005 | background-position: 0 0;
1006 | position: absolute;
1007 | margin: 0;
1008 | left: 4px; top: 0;
1009 | z-index: 2;
1010 | }
1011 |
1012 | .glow170-vSlider .slider-trackOn {
1013 | width: 8px;
1014 | height: 0;
1015 | position: relative;
1016 | margin: 0 0 0 4px;
1017 | background-position: -8px 100%;
1018 | top: 2px; left: 0;
1019 | z-index: 1;
1020 | }
1021 |
1022 | .glow170-vSlider .slider-handle {
1023 | top: 0; left: 0;
1024 | width: 18px; height: 17px;
1025 | background-position: -16px 100%;
1026 | }
1027 |
1028 | .glow170-vSlider .slider-btn-bk,
1029 | .glow170-vSlider .slider-btn-fwd {
1030 | top: 0; left: 2px;
1031 | background-position: -34px -1976px;
1032 | }
1033 |
1034 | .glow170-vSlider .slider-btn-bk {
1035 | background-position: -34px 100%;
1036 | left: 2px; top: 100%;
1037 | margin: -12px 0 0 0;
1038 | }
1039 |
1040 | .glow170-vSlider .slider-active .slider-handle {
1041 | background-position: -16px -1966px;
1042 | }
1043 | .glow170-vSlider .slider-disabled .slider-handle {
1044 | background-position: -16px -1949px;
1045 | }
1046 | .glow170-vSlider .slider-disabled .slider-btn-bk {
1047 | background-position: -34px -1964px;
1048 | }
1049 | .glow170-vSlider .slider-disabled .slider-btn-fwd {
1050 | background-position: -34px -1952px;
1051 | }
1052 | .glow170-vSlider .slider-disabled .slider-trackOn {
1053 | background-position: 0 100%;
1054 | }
1055 |
1056 | .glow170-vSlider .slider-noButtons .slider-container {
1057 | padding-top: 0;
1058 | padding-bottom: 0;
1059 | }
1060 |
1061 | /* Dark theme */
1062 | .glow170-slider .slider-dark .slider-trackOff,
1063 | .glow170-slider .slider-dark .slider-trackOn,
1064 | .glow170-slider .slider-dark .slider-handle,
1065 | .glow170-slider .slider-dark .slider-btn-bk,
1066 | .glow170-slider .slider-dark .slider-btn-fwd {
1067 | background-image: url(images/slider/darkh.png);
1068 | }
1069 |
1070 | .glow170-vSlider .slider-dark .slider-trackOff,
1071 | .glow170-vSlider .slider-dark .slider-trackOn,
1072 | .glow170-vSlider .slider-dark .slider-handle,
1073 | .glow170-vSlider .slider-dark .slider-btn-bk,
1074 | .glow170-vSlider .slider-dark .slider-btn-fwd {
1075 | background-image: url(images/slider/darkv.png);
1076 | }
1077 |
1078 | .glow170-slider .slider-dark .slider-labels .ruler-tickMajor,
1079 | .glow170-slider .slider-dark .slider-labels .ruler-tickMinor,
1080 | .glow170-vSlider .slider-dark .slider-labels .ruler-tickMajor,
1081 | .glow170-vSlider .slider-dark .slider-labels .ruler-tickMinor {
1082 | background: #e2e2e2;
1083 | }
1084 | .glow170-slider .slider-dark .slider-labels .ruler-label,
1085 | .glow170-vSlider .slider-dark .slider-labels .ruler-label {
1086 | color: #e2e2e2;
1087 | }
1088 |
1089 | /* Gosh! No Images! */
1090 |
1091 | .glow170-basic .glow170-slider .slider-handle,
1092 | .glow170-basic .glow170-vSlider .slider-handle {
1093 | border-style: solid;
1094 | border-color: #777 #fff;
1095 | border-width: 18px 8px 0 9px;
1096 | width: 0;
1097 | height: 0;
1098 | font-size: 0;
1099 | }
1100 |
1101 | .glow170-basic .glow170-vSlider .slider-handle {
1102 | border-width: 8px 0 9px 18px;
1103 | border-color: #fff #777;
1104 | }
1105 |
1106 | .glow170-basic .glow170-slider .slider-trackOff,
1107 | .glow170-basic .glow170-vSlider .slider-trackOff {
1108 | background: #d6d6d6;
1109 | }
1110 | .glow170-basic .glow170-slider .slider-trackOn,
1111 | .glow170-basic .glow170-vSlider .slider-trackOn {
1112 | background: #777;
1113 | }
1114 |
1115 | .glow170-basic .glow170-slider .slider-btn-bk,
1116 | .glow170-basic .glow170-slider .slider-btn-fwd,
1117 | .glow170-basic .glow170-vSlider .slider-btn-bk,
1118 | .glow170-basic .glow170-vSlider .slider-btn-fwd {
1119 | border-style: solid;
1120 | border-color: #fff #777;
1121 | border-width: 6px 0 6px 12px;
1122 | width: 0; height: 0;
1123 | }
1124 |
1125 | .glow170-basic .glow170-slider .slider-btn-bk {
1126 | border-width: 6px 12px 6px 0;
1127 | }
1128 |
1129 | .glow170-basic .glow170-vSlider .slider-btn-bk {
1130 | border-color: #666 #fff;
1131 | border-width: 12px 6px 0 6px;
1132 | }
1133 |
1134 | .glow170-basic .glow170-vSlider .slider-btn-fwd {
1135 | border-color: #666 #fff;
1136 | border-width: 0 6px 12px 6px;
1137 | }
1138 |
1139 | /* active */
1140 | .glow170-basic .glow170-slider .slider-active .slider-handle {
1141 | border-color: #000 #fff;
1142 | }
1143 | .glow170-basic .glow170-vSlider .slider-active .slider-handle {
1144 | border-color: #fff #000;
1145 | }
1146 |
1147 | /* disabled */
1148 | .glow170-basic .glow170-slider .slider-disabled .slider-trackOn,
1149 | .glow170-basic .glow170-vSlider .slider-disabled .slider-trackOn {
1150 | background: #d6d6d6;
1151 | }
1152 | .glow170-basic .glow170-slider .slider-disabled .slider-handle {
1153 | border-color: #d6d6d6 #fff;
1154 | }
1155 | .glow170-basic .glow170-vSlider .slider-disabled .slider-handle {
1156 | border-color: #fff #d6d6d6;
1157 | }
1158 | .glow170-basic .glow170-slider .slider-disabled .slider-btn-bk,
1159 | .glow170-basic .glow170-slider .slider-disabled .slider-btn-fwd {
1160 | border-color: #fff #d6d6d6;
1161 | }
1162 | .glow170-basic .glow170-vSlider .slider-disabled .slider-btn-bk,
1163 | .glow170-basic .glow170-vSlider .slider-disabled .slider-btn-fwd {
1164 | border-color: #d6d6d6 #fff;
1165 | }
1166 |
1167 | /* no images - dark */
1168 | .glow170-basic .glow170-slider .slider-dark .slider-handle {
1169 | border-color: #ccc #000;
1170 | }
1171 |
1172 | .glow170-basic .glow170-vSlider .slider-dark .slider-handle {
1173 | border-color: #000 #ccc;
1174 | }
1175 |
1176 | .glow170-basic .glow170-slider .slider-dark .slider-trackOff,
1177 | .glow170-basic .glow170-vSlider .slider-dark .slider-trackOff {
1178 | background: #555;
1179 | }
1180 | .glow170-basic .glow170-slider .slider-dark .slider-trackOn,
1181 | .glow170-basic .glow170-vSlider .slider-dark .slider-trackOn {
1182 | background: #ccc;
1183 | }
1184 |
1185 | .glow170-basic .glow170-slider .slider-dark .slider-btn-bk,
1186 | .glow170-basic .glow170-slider .slider-dark .slider-btn-fwd {
1187 | border-color: #000 #ccc;
1188 | }
1189 |
1190 | .glow170-basic .glow170-vSlider .slider-dark .slider-btn-bk,
1191 | .glow170-basic .glow170-vSlider .slider-dark .slider-btn-fwd {
1192 | border-color: #ccc #000;
1193 | }
1194 |
1195 | /* active */
1196 | .glow170-basic .glow170-slider .slider-dark .slider-active .slider-handle {
1197 | border-color: #fff #000;
1198 | }
1199 | .glow170-basic .glow170-vSlider .slider-dark .slider-active .slider-handle {
1200 | border-color: #000 #fff;
1201 | }
1202 |
1203 | /* disabled */
1204 | .glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-trackOn,
1205 | .glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-trackOn {
1206 | background: #555;
1207 | }
1208 | .glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-handle {
1209 | border-color: #555 #000;
1210 | }
1211 | .glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-handle {
1212 | border-color: #000 #555;
1213 | }
1214 | .glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-btn-bk,
1215 | .glow170-basic .glow170-slider .slider-dark .slider-disabled .slider-btn-fwd {
1216 | border-color: #000 #555;
1217 | }
1218 | .glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-btn-bk,
1219 | .glow170-basic .glow170-vSlider .slider-dark .slider-disabled .slider-btn-fwd {
1220 | border-color: #555 #000;
1221 | }
1222 |
1223 | /* RULER */
1224 |
1225 | .glow170-ruler,
1226 | .glow170-vRuler {
1227 | position: relative;
1228 | zoom: 1;
1229 | }
1230 |
1231 | .glow170-ruler .ruler-tickMajor,
1232 | .glow170-ruler .ruler-tickMinor,
1233 | .glow170-vRuler .ruler-tickMajor,
1234 | .glow170-vRuler .ruler-tickMinor {
1235 | position: absolute;
1236 | background: #000;
1237 | width: 1px; height: 1px;
1238 | top: 0; left: 0;
1239 | overflow: hidden;
1240 | }
1241 |
1242 | .glow170-ruler .ruler-tickMajor,
1243 | .glow170-ruler .ruler-spacer {
1244 | height: 10px;
1245 | }
1246 | .glow170-ruler .ruler-tickMinor {
1247 | height: 2px;
1248 | }
1249 | .glow170-vRuler .ruler-tickMajor {
1250 | width: 10px;
1251 | }
1252 | .glow170-vRuler .ruler-tickMinor {
1253 | width: 2px;
1254 | }
1255 |
1256 | .glow170-ruler .ruler-labels {
1257 | position: relative;
1258 | height: 1.2em;
1259 | }
1260 | .glow170-vRuler .ruler-labels {
1261 | position: absolute;
1262 | top: 0; left: 15px;
1263 | height: 100%;
1264 | }
1265 |
1266 | .glow170-ruler .ruler-label,
1267 | .glow170-vRuler .ruler-label {
1268 | position: absolute;
1269 | top: 0; left: 0;
1270 | }
1271 | .glow170-ruler .ruler-label {
1272 | text-align: center;
1273 | }
1274 | .glow170-ruler .ruler-label span {
1275 | position: relative;
1276 | left: -50%;
1277 | }
1278 | .glow170-vRuler .ruler-label {
1279 | /*line-height: 0;*/
1280 | margin-top: -0.56em;
1281 | }
1282 | /* TIMETABLE */
1283 | .glow170-vTimetable .timetable-container,
1284 | .glow170-Timetable .timetable-container {
1285 | overflow: hidden;
1286 | position: relative;
1287 | zoom: 1;
1288 | }
1289 | .glow170-vTimetable .timetable-innerView,
1290 | .glow170-Timetable .timetable-innerView {
1291 | /*border: 2px solid #000;*/
1292 | background: #fff;
1293 | overflow: hidden;
1294 | position: relative;
1295 | zoom: 1;
1296 | }
1297 | .glow170-vTimetable .timetable-innerView {
1298 | float: left;
1299 | }
1300 | .glow170-vTimetable .timetable-dragArea,
1301 | .glow170-vTimetable .timetable-track,
1302 | .glow170-vTimetable .timetable-item,
1303 | .glow170-vTimetable .timetable-bandOdd,
1304 | .glow170-vTimetable .timetable-bandEven,
1305 | .glow170-vTimetable .timetable-scale,
1306 | .glow170-vTimetable .timetable-scaleItem,
1307 | .glow170-Timetable .timetable-dragArea,
1308 | .glow170-Timetable .timetable-track,
1309 | .glow170-Timetable .timetable-item,
1310 | .glow170-Timetable .timetable-bandOdd,
1311 | .glow170-Timetable .timetable-bandEven,
1312 | .glow170-Timetable .timetable-scale,
1313 | .glow170-Timetable .timetable-scaleItem {
1314 | position: absolute;
1315 | top: 0; left: 0;
1316 | overflow: hidden;
1317 | width: 100%;
1318 | height: 100%;
1319 | z-index: 2;
1320 | }
1321 |
1322 | .glow170-vTimetable .timetable-dragRange,
1323 | .glow170-Timetable .timetable-dragRange {
1324 | height: 100%;
1325 | width: 100%;
1326 | }
1327 |
1328 |
1329 | .glow170-vTimetable .timetable-track,
1330 | .glow170-Timetable .timetable-track {
1331 | border: 1px solid #a0a0a0;
1332 | border-width: 0 1px;
1333 | margin-right: 2px;
1334 | }
1335 | .glow170-vTimetable .timetable-track {
1336 | border-width: 0 1px;
1337 | margin-right: 1px;
1338 | }
1339 | .glow170-Timetable .timetable-track {
1340 | border-width: 1px 0;
1341 | margin-bottom: 1px;
1342 | }
1343 | .glow170-vTimetable .timetable-scale,
1344 | .glow170-Timetable .timetable-scale {
1345 | color: #a0a0a0;
1346 | font-size: x-large;
1347 | border: 1px solid #ccc;
1348 | }
1349 | .glow170-vTimetable .timetable-scale {
1350 | text-align: center;
1351 | }
1352 |
1353 | .glow170-vTimetable .timetable-scalePrimary {
1354 | border-width: 0 0 0 1px;
1355 | }
1356 | .glow170-vTimetable .timetable-scaleSecondary {
1357 | border-width: 0 1px 0 0;
1358 | }
1359 | .glow170-Timetable .timetable-scalePrimary {
1360 | border-width: 1px 0 0 0;
1361 | }
1362 | .glow170-Timetable .timetable-scaleSecondary {
1363 | border-width: 0 0 1px 0;
1364 | }
1365 |
1366 | .glow170-vTimetable .timetable-track-footers {
1367 | clear: both;
1368 | }
1369 |
1370 | /* temporary values to make it visible but out of the way during dev
1371 | .glow170-vTimetable .timetable-accessibility-navigation,
1372 | .glow170-Timetable .timetable-accessibility-navigation {
1373 | position: absolute;
1374 | top: 0;
1375 | right: 0;
1376 | }*/
1377 |
1378 | .glow170-vTimetable .timetable-accessibility-navigation,
1379 | .glow170-Timetable .timetable-accessibility-navigation,
1380 | .glow170-vTimetable .timetable-accessibility-hidden,
1381 | .glow170-Timetable .timetable-accessibility-hidden {
1382 | position: absolute;
1383 | height: 1px;
1384 | width: 1px;
1385 | overflow: hidden;
1386 | }
1387 |
1388 | .glow170-vTimetable .timetable-track-headers,
1389 | .glow170-vTimetable .timetable-track-footers,
1390 | .glow170-Timetable .timetable-track-headers,
1391 | .glow170-Timetable .timetable-track-footers {
1392 | position: relative;
1393 | }
1394 |
1395 | .glow170-vTimetable .timetable-header-holder,
1396 | .glow170-vTimetable .timetable-footer-holder,
1397 | .glow170-Timetable .timetable-header-holder,
1398 | .glow170-Timetable .timetable-footer-holder {
1399 | position: absolute;
1400 | top: 0;
1401 | left: 0;
1402 | overflow: hidden;
1403 | color: #fff;
1404 | background: #424242;
1405 | text-align: center;
1406 | }
1407 | .glow170-Timetable .timetable-track-headers,
1408 | .glow170-Timetable .timetable-track-footers,
1409 | .glow170-Timetable .timetable-scrollView {
1410 | float: left;
1411 | }
1412 | .glow170-Timetable .timetable-header-holder,
1413 | .glow170-Timetable .timetable-footer-holder {
1414 | width: 100px;
1415 | }
1416 |
1417 | .glow170-vTimetable .timetable-track-headers,
1418 | .glow170-vTimetable .timetable-track-footers,
1419 | .glow170-Timetable .timetable-track-headers,
1420 | .glow170-Timetable .timetable-track-footers {
1421 | background: #fff;
1422 | border: 1px solid #ccc;
1423 | }
1424 | .glow170-vTimetable .timetable-track-headers {
1425 | border-bottom-width: 0
1426 | }
1427 | .glow170-vTimetable .timetable-track-footers {
1428 | border-top-width: 0
1429 | }
1430 | .glow170-Timetable .timetable-track-headers {
1431 | border-right-width: 0
1432 | }
1433 | .glow170-Timetable .timetable-track-footers {
1434 | border-left-width: 0
1435 | }
1436 |
1437 | .glow170-vTimetable .timetable-track-headers div.timetable-header-content,
1438 | .glow170-vTimetable .timetable-track-footers div.timetable-footer-content,
1439 | .glow170-Timetable .timetable-track-headers div.timetable-header-content,
1440 | .glow170-Timetable .timetable-track-footers div.timetable-footer-content {
1441 | padding: 9px 0;
1442 | }
1443 |
1444 | .glow170-Timetable .timetable-track-headers div.timetable-header-content,
1445 | .glow170-Timetable .timetable-track-footers div.timetable-footer-content {
1446 | padding: 4px 5px;
1447 | text-align: left;
1448 | }
1449 | /* we use !important beacuse it's impoartant these items aren't affected by margins or padding */
1450 | .glow170-vTimetable .timetable-trackList,
1451 | .glow170-Timetable .timetable-trackList {
1452 | margin: 0 !important;
1453 | padding: 0 !important;
1454 | list-style: none;
1455 | }
1456 | .glow170-vTimetable .timetable-item,
1457 | .glow170-Timetable .timetable-item {
1458 | border: 1px solid #ccc;
1459 | margin: 0 !important;
1460 | padding: 0 !important;
1461 | display: block;
1462 | }
1463 | .glow170-vTimetable .timetable-item {
1464 | border-width: 1px 0;
1465 | }
1466 | .glow170-Timetable .timetable-item {
1467 | border-width: 0 1px;
1468 | }
1469 | .glow170-vTimetable .timetable-itemHangingOffStart .timetable-itemContent,
1470 | .glow170-Timetable .timetable-itemHangingOffStart .timetable-itemContent {
1471 | opacity: 0.3;
1472 | filter: alpha(opacity=30);
1473 | zoom: 1;
1474 | }
1475 | .glow170-vTimetable .timetable-itemHangingClipping .timetable-itemContent,
1476 | .glow170-Timetable .timetable-itemHangingClipping .timetable-itemContent {
1477 | height: 1px;
1478 | overflow: hidden;
1479 | }
1480 | .glow170-vTimetable .timetable-hideitems .timetable-item {
1481 | display: none;
1482 | }
1483 | /* banding */
1484 | .glow170-vTimetable .timetable-bandOdd,
1485 | .glow170-vTimetable .timetable-bandEven,
1486 | .glow170-Timetable .timetable-bandOdd,
1487 | .glow170-Timetable .timetable-bandEven {
1488 | z-index: 1;
1489 | }
1490 | .glow170-vTimetable .timetable-bandOdd,
1491 | .glow170-Timetable .timetable-bandOdd {
1492 | background: #ebebeb;
1493 | }
1494 | /* end banding */
1495 |
1496 | .glow170-vTimetable .timetable-default-track-header {
1497 | position: absolute;
1498 | height: 1px;
1499 | width: 1px;
1500 | overflow: hidden;
1501 | }
1502 |
1503 | /* scrollbar nav */
1504 | .glow170-vTimetable .timetable-scrollbar1,
1505 | .glow170-vTimetable .timetable-scrollbar2,
1506 | .glow170-Timetable .timetable-scrollbar1,
1507 | .glow170-Timetable .timetable-scrollbar2 {
1508 | display: none;
1509 | }
1510 |
1511 | .glow170-vTimetable .timetable-scrollbar1,
1512 | .glow170-vTimetable .timetable-scrollbar2 {
1513 | float: left;
1514 | /* this foces IE6 to make the scrollbars shrink to fit */
1515 | _width: 0;
1516 | }
1517 |
1518 | .glow170-vTimetable .timetable-scrollbar .slider-container,
1519 | .glow170-Timetable .timetable-scrollbar .slider-container {
1520 | padding: 21px 0;
1521 | border: 1px solid #a0a0a0;
1522 | }
1523 | .glow170-Timetable .timetable-scrollbar .slider-container {
1524 | padding: 0 21px;
1525 | }
1526 | .glow170-vTimetable .timetable-scrollbar2 .slider-container {
1527 | border-left-width: 0;
1528 | }
1529 | .glow170-vTimetable .timetable-scrollbar1 .slider-container {
1530 | border-right-width: 0;
1531 | }
1532 | .glow170-Timetable .timetable-scrollbar2 .slider-container {
1533 | border-top-width: 0;
1534 | }
1535 | .glow170-Timetable .timetable-scrollbar1 .slider-container {
1536 | border-bottom-width: 0;
1537 | }
1538 | .glow170-vTimetable .timetable-scrollbar .slider-handle,
1539 | .glow170-Timetable .timetable-scrollbar .slider-handle {
1540 | /* using opacity because IE6 lets you click 'through' elements with a transparent bg */
1541 | width: 100%;
1542 | height: 100%;
1543 | background: #fff;
1544 | opacity: 0;
1545 | filter: alpha(opacity=0);
1546 | top: 0;
1547 | }
1548 | .glow170-vTimetable .timetable-scrollbar .slider-track,
1549 | .glow170-Timetable .timetable-scrollbar .slider-track {
1550 | background: none;
1551 | }
1552 | .glow170-vTimetable .timetable-scrollbarLabels,
1553 | .glow170-Timetable .timetable-scrollbarLabels {
1554 | position: absolute;
1555 | width: 100%;
1556 | height: 100%;
1557 | background: #fff;
1558 | color: #227db7;
1559 | font-size: small;
1560 | text-align: center;
1561 | top: 0; left: 0;
1562 | overflow: hidden;
1563 | }
1564 |
1565 | .glow170-vTimetable .slider-labels,
1566 | .glow170-Timetable .slider-labels {
1567 | display: none;
1568 | }
1569 |
1570 | .glow170-vTimetable .timetable-scrollbarLabelsHighlight,
1571 | .glow170-Timetable .timetable-scrollbarLabelsHighlight {
1572 | background: #424242;
1573 | color: #fff;
1574 | z-index: 1;
1575 | overflow: hidden;
1576 | }
1577 |
1578 | .glow170-vTimetable .timetable-scrollbar .slider-trackOn,
1579 | .glow170-vTimetable .timetable-scrollbar .slider-trackOff,
1580 | .glow170-Timetable .timetable-scrollbar .slider-trackOn,
1581 | .glow170-Timetable .timetable-scrollbar .slider-trackOff {
1582 | background: none;
1583 | }
1584 |
1585 | .glow170-vTimetable .timetable-scrollbarItem,
1586 | .glow170-Timetable .timetable-scrollbarItem {
1587 | width: 100%;
1588 | height: 100%;
1589 | position: absolute;
1590 | top: 0; left: 0;
1591 | }
1592 |
1593 | .glow170-vTimetable .timetable-scrollbar .slider-btn-bk,
1594 | .glow170-vTimetable .timetable-scrollbar .slider-btn-fwd,
1595 | .glow170-Timetable .timetable-scrollbar .slider-btn-bk,
1596 | .glow170-Timetable .timetable-scrollbar .slider-btn-fwd {
1597 | background: url(images/timetable/lightv.png) top center;
1598 | border: 1px solid #a0a0a0;
1599 | }
1600 |
1601 | .glow170-vTimetable .timetable-scrollbar .slider-btn-bk,
1602 | .glow170-vTimetable .timetable-scrollbar .slider-btn-fwd {
1603 | height: 20px;
1604 | left: 0;
1605 | border-width: 0 0 1px 0;
1606 | }
1607 | .glow170-Timetable .timetable-scrollbar .slider-btn-bk,
1608 | .glow170-Timetable .timetable-scrollbar .slider-btn-fwd {
1609 | background: url(images/timetable/lighth.png) right center;
1610 | width: 20px;
1611 | top: 0;
1612 | border-width: 0 0 0 1px;
1613 | }
1614 | .glow170-vTimetable .timetable-scrollbar .slider-btn-bk {
1615 | background-position: center bottom;
1616 | border-width: 1px 0 0 0;
1617 | margin: -21px 0 0;
1618 | }
1619 | .glow170-Timetable .timetable-scrollbar .slider-btn-bk {
1620 | background-position: left center;
1621 | border-width: 0 1px 0 0;
1622 | z-index: 1;
1623 | }
1624 | .glow170-Timetable .timetable-scrollbar .slider-btn-fwd {
1625 | margin-left: -21px;
1626 | }
1627 | /* scrollbar nav end */
1628 |
1629 | /* dark theme */
1630 | .glow170-vTimetable .timetable-dark .timetable-scrollbarLabels,
1631 | .glow170-Timetable .timetable-dark .timetable-scrollbarLabels {
1632 | background-color: #333;
1633 | }
1634 |
1635 | .glow170-vTimetable .timetable-dark .timetable-header-holder,
1636 | .glow170-vTimetable .timetable-dark .timetable-footer-holder,
1637 | .glow170-Timetable .timetable-dark .timetable-header-holder,
1638 | .glow170-Timetable .timetable-dark .timetable-footer-holder,
1639 | .glow170-vTimetable .timetable-dark .timetable-scrollbarLabelsHighlight,
1640 | .glow170-Timetable .timetable-dark .timetable-scrollbarLabelsHighlight {
1641 | background: #121212;
1642 | }
1643 |
1644 | .glow170-vTimetable .timetable-dark .timetable-innerView,
1645 | .glow170-Timetable .timetable-dark .timetable-innerView {
1646 | background: #333333;
1647 | color: #ccc;
1648 | }
1649 |
1650 | .glow170-vTimetable .timetable-dark .timetable-scale,
1651 | .glow170-Timetable .timetable-dark .timetable-scale {
1652 | color: #ccc;
1653 | }
1654 |
1655 | .glow170-vTimetable .timetable-dark .timetable-item,
1656 | .glow170-Timetable .timetable-dark .timetable-item,
1657 | .glow170-vTimetable .timetable-dark .timetable-track,
1658 | .glow170-Timetable .timetable-dark .timetable-track,
1659 | .glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-bk,
1660 | .glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-fwd,
1661 | .glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-bk,
1662 | .glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-fwd,
1663 | .glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-container,
1664 | .glow170-Timetable .timetable-dark .timetable-scrollbar .slider-container,
1665 | .glow170-vTimetable .timetable-dark .timetable-scale,
1666 | .glow170-Timetable .timetable-dark .timetable-scale {
1667 | border-color: #141414;
1668 | }
1669 |
1670 | .glow170-vTimetable .timetable-dark .timetable-bandOdd,
1671 | .glow170-Timetable .timetable-dark .timetable-bandOdd {
1672 | background-color: #242424;
1673 | }
1674 |
1675 | .glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-bk,
1676 | .glow170-vTimetable .timetable-dark .timetable-scrollbar .slider-btn-fwd {
1677 | background-image: url(images/timetable/darkv.png);
1678 | }
1679 | .glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-bk,
1680 | .glow170-Timetable .timetable-dark .timetable-scrollbar .slider-btn-fwd {
1681 | background-image: url(images/timetable/darkh.png);
1682 | }
1683 | .glow170-vTimetable .timetable-dark .timetable-track-headers,
1684 | .glow170-vTimetable .timetable-dark .timetable-track-footers,
1685 | .glow170-Timetable .timetable-dark .timetable-track-headers,
1686 | .glow170-Timetable .timetable-dark .timetable-track-footers {
1687 | border: none;
1688 | background: #333;
1689 | }
1690 | /* dark theme end */
1691 | /* END TIMETABLE */
1692 | /* EDITOR */
1693 | .glow170-editor {
1694 | border: 1px solid #000;
1695 | font-size: medium;
1696 | }
1697 |
1698 | .glow170-editor .editor-toolbar
1699 | {
1700 | border: none;
1701 | display: block;
1702 | margin: 0;
1703 | padding: 0;
1704 | background-color: #EFEFEF;
1705 | }
1706 |
1707 | .glow170-editor .editor-toolbar legend { display: none; }
1708 | .glow170-editor .editor-toolbar-tools h3 { display: none; }
1709 |
1710 | .glow170-editor ul.editor-toolbar-tools
1711 | {
1712 | display: block;
1713 | margin: 0 !important;
1714 | padding: 9px !important;
1715 | overflow: hidden;
1716 | zoom: 1;
1717 | }
1718 |
1719 | .glow170-editor ul.editor-toolbar-tools li
1720 | {
1721 | list-style: none;
1722 | float: left;
1723 | display: block;
1724 | margin: 0 !important;
1725 | padding: 0 !important;
1726 | }
1727 |
1728 | .glow170-editor .editor-toolbar-button
1729 | {
1730 | display: block;
1731 | margin: 0;
1732 | padding: 0;
1733 | overflow: hidden;
1734 | }
1735 |
1736 | .glow170-editor .editor-toolbar-button a { outline: none; text-decoration: none; }
1737 | .glow170-editor .editor-toolbar-button img { border: none; }
1738 |
1739 | /* with images */
1740 | .glow170-editor .editor-toolbar-icon
1741 | {
1742 | display: block;
1743 | width: 26px;
1744 | height: 24px;
1745 | }
1746 |
1747 | .glow170-editor .editor-toolbar-icon span
1748 | {
1749 | display: block;
1750 | height: 1px;
1751 | overflow: hidden;
1752 | width: 1px;
1753 | }
1754 |
1755 | .glow170-editor .editor-toolbar-icon span { display: block; height: 1px; overflow: hidden; width: 1px; }
1756 |
1757 | .glow170-editor .editor-toolbar-item .bold-button { background-image: url(images/editor/button-bold.png); }
1758 | .glow170-editor .editor-toolbar-item .italics-button { background-image: url(images/editor/button-italics.png); }
1759 | .glow170-editor .editor-toolbar-item .strike-button { background-image: url(images/editor/button-strike.png); }
1760 | .glow170-editor .editor-toolbar-item .blockquote-button { background-image: url(images/editor/button-blockquote.png); }
1761 | .glow170-editor .editor-toolbar-item .unorderedlist-button { background-image: url(images/editor/button-unorderedlist.png); }
1762 | .glow170-editor .editor-toolbar-item .orderedlist-button { background-image: url(images/editor/button-orderedlist.png); }
1763 |
1764 | .glow170-editor .editor-toolbar-item .default .editor-toolbar-icon { background-position: 0px 0px; }
1765 | .glow170-editor .editor-toolbar-item .disabled .editor-toolbar-icon { background-position: 0px -28px; }
1766 | .glow170-editor .editor-toolbar-item .active .editor-toolbar-icon { background-position: 0px -85px; }
1767 | .glow170-editor .editor-toolbar-item .hover .editor-toolbar-icon { background-position: 0px -56px; }
1768 |
1769 | /* DROPDOWN */
1770 |
1771 | .glow170-editor .editor-toolbar-dropdown {
1772 | display: block;
1773 | width: 84px;
1774 | margin: 0 3px 0 3px;
1775 | }
1776 |
1777 | .glow170-editor .editor-toolbar-dropdown a {
1778 | color: black;
1779 | text-decoration: none;
1780 | font: 0.75em arial;
1781 | }
1782 | .glow170-editor .editor-toolbar-dropdown span span {
1783 | display: block;
1784 | padding: 1px 16px 1px 4px;
1785 | border: 1px solid #ccc;
1786 | height: 16px;
1787 | line-height: 16px;
1788 | margin: 3px 0 0 2px;
1789 | background: #fff url(images/editor/menuarrow.png) no-repeat right 8px;
1790 |
1791 | overflow: hidden;
1792 | }
1793 | .glow170-editor .editor-toolbar-dropdown .disabled span {
1794 | background: #aaa url(images/editor/menuarrow.png) no-repeat right -10px;
1795 | }
1796 | .glow170-editor .editor-toolbar-dropdown .hover span {
1797 | background: #fff url(images/editor/menuarrow.png) no-repeat right 8px;
1798 | }
1799 | .glow170-editor .editor-toolbar-dropdown .active span span {
1800 | border: 1px solid #aaa;
1801 | }
1802 | .glow170-editor .editor-toolbar-dropdown .active span {
1803 | background: #ccc url(images/editor/menuarrow.png) no-repeat right 8px;
1804 | }
1805 |
1806 | .glow170-overlay.overlayMenu {
1807 | background: #ccc; border: 1px solid #b1b1b1;
1808 | font-family: Arial, Helvetica, sans-serif;
1809 | font-size: medium;
1810 | }
1811 |
1812 | .glow170-overlay.overlayMenu ul {
1813 | list-style: none;
1814 | margin: 0;
1815 | padding: 0;
1816 | }
1817 |
1818 | .glow170-overlay.overlayMenu ul li {
1819 | padding: 2px 4px 2px 4px;
1820 | outline: none;
1821 | }
1822 |
1823 | .glow170-overlay.overlayMenu li.highlighted { background: #999; cursor: pointer; }
1824 | .glow170-overlay.overlayMenu .heading1 { font-size: 1.2em; }
1825 | .glow170-overlay.overlayMenu .heading2 { font-size: 1.1em; }
1826 | .glow170-overlay.overlayMenu .heading3 { font-size: 1.0em; }
1827 | .glow170-overlay.overlayMenu .normal { font-size: 0.9em; }
1828 |
1829 | /* DROPDOWN DARK */
1830 |
1831 | .glow170-editor .editor-dark .editor-toolbar-dropdown span span {
1832 | border: 1px solid #666;
1833 | background: transparent url(images/editor/menuarrow.png) no-repeat scroll right -12px;
1834 | color: #fff;
1835 | }
1836 |
1837 | .glow170-editor .editor-dark .editor-toolbar-dropdown .hover span span {
1838 | border: 1px solid #ccc;
1839 | }
1840 |
1841 | .glow170-editor .editor-toolbar-dropdown .hover span span {
1842 | border: 1px solid #999;
1843 | }
1844 |
1845 | .glow170-overlay.overlayMenu-dark {
1846 | background: #333; border: 1px solid #ccc;
1847 | color: #fff;
1848 | }
1849 | .glow170-overlay.overlayMenu-dark ul li.highlighted { background: #000; }
1850 |
1851 | .glow170-editor .glow170-hidden { position: absolute; left: -2500px; width: 1px; }
1852 |
1853 | /* without images */
1854 | .glow170-basic .glow170-editor .editor-toolbar-icon span { border: none; height: auto; overflow: hidden; width: auto; }
1855 | .glow170-basic .glow170-editor .editor-toolbar-item .hover span span { border: 1px solid #000; }
1856 |
1857 | .glow170-editor iframe { border: 0; margin: 0; padding: 0; width: 100%; }
1858 |
1859 | /* dark theme */
1860 | .glow170-editor .editor-dark .editor-toolbar { background: #333; color: #fff; }
1861 | .glow170-editor .editor-dark .editor-toolbar-item .bold-button { background-image: url(images/editor/dark-button-bold.png); }
1862 | .glow170-editor .editor-dark .editor-toolbar-item .italics-button { background-image: url(images/editor/dark-button-italics.png); }
1863 | .glow170-editor .editor-dark .editor-toolbar-item .strike-button { background-image: url(images/editor/dark-button-strike.png); }
1864 | .glow170-editor .editor-dark .editor-toolbar-item .blockquote-button { background-image: url(images/editor/dark-button-blockquote.png); }
1865 | .glow170-editor .editor-dark .editor-toolbar-item .blockquote-button { background-image: url(images/editor/dark-button-blockquote.png); }
1866 | .glow170-editor .editor-dark .editor-toolbar-item .unorderedlist-button { background-image: url(images/editor/dark-button-unorderedlist.png); }
1867 | .glow170-editor .editor-dark .editor-toolbar-item .orderedlist-button { background-image: url(images/editor/dark-button-orderedlist.png); }
1868 |
1869 | /* END EDITOR */
1870 |
--------------------------------------------------------------------------------