From 087d91602445a14ffc5b137132513f782a25fbc7 Mon Sep 17 00:00:00 2001 From: Dinesh Matta <dineshdm7@gmail.com> Date: Fri, 18 Jan 2013 23:22:54 +0530 Subject: [PATCH 1/2] Configured for deployment to Heroku --- Gemfile | 14 +++- Gemfile.lock | 151 +++++++++++++++++----------------- app/models/user.rb | 19 ++++- config/initializers/resque.rb | 2 +- config/mongoid.yml | 112 ++++++++++++++++++++++--- public/assets/manifest.yml | 144 +++++++++++++++----------------- 6 files changed, 275 insertions(+), 167 deletions(-) diff --git a/Gemfile b/Gemfile index 92b1ed1..f7605a1 100644 --- a/Gemfile +++ b/Gemfile @@ -1,13 +1,13 @@ source 'http://rubygems.org' -gem 'rails', '3.1.0' +gem 'rails', '3.1.10' gem 'rake', '0.8.7' gem 'json', '1.4.6' gem 'jquery-rails' # Database gem "mongo" -gem "mongoid" +gem "mongoid", "2.5.1" gem "bson_ext" gem "kaminari" # for paging @@ -22,6 +22,8 @@ end gem "devise" gem "cancan" +gem "devise-encryptable" + # Server gem "powify", '0.8.5' gem "foreman" @@ -57,7 +59,8 @@ gem "resque-status" gem "resque-scheduler" # Game mechanics -gem "badgeable" +gem "badgeable", "0.4.0" + # Search gem "sunspot", "1.2.1" @@ -81,13 +84,18 @@ gem "airbrake" # Email gem "sendgrid" +gem "crack" + # Gems used only for assets and not required # in production environments by default. group :assets do + gem 'sass', "3.2.0.alpha.244" gem 'sass-rails', " ~> 3.1.0" gem 'coffee-rails', "~> 3.1.0" gem 'uglifier' gem 'bourbon' + # See https://github.com/sstephenson/execjs#readme for more supported runtimes + gem 'therubyracer', :platforms => :ruby end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 8b7ad74..2a43572 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,53 +1,50 @@ GEM remote: http://rubygems.org/ specs: - actionmailer (3.1.0) - actionpack (= 3.1.0) - mail (~> 2.3.0) - actionpack (3.1.0) - activemodel (= 3.1.0) - activesupport (= 3.1.0) + actionmailer (3.1.10) + actionpack (= 3.1.10) + mail (~> 2.3.3) + actionpack (3.1.10) + activemodel (= 3.1.10) + activesupport (= 3.1.10) builder (~> 3.0.0) erubis (~> 2.7.0) i18n (~> 0.6) - rack (~> 1.3.2) - rack-cache (~> 1.0.3) + rack (~> 1.3.6) + rack-cache (~> 1.2) rack-mount (~> 0.8.2) rack-test (~> 0.6.1) - sprockets (~> 2.0.0) - activemodel (3.1.0) - activesupport (= 3.1.0) - bcrypt-ruby (~> 3.0.0) + sprockets (~> 2.0.4) + activemodel (3.1.10) + activesupport (= 3.1.10) builder (~> 3.0.0) i18n (~> 0.6) - activerecord (3.1.0) - activemodel (= 3.1.0) - activesupport (= 3.1.0) - arel (~> 2.2.1) + activerecord (3.1.10) + activemodel (= 3.1.10) + activesupport (= 3.1.10) + arel (~> 2.2.3) tzinfo (~> 0.3.29) - activeresource (3.1.0) - activemodel (= 3.1.0) - activesupport (= 3.1.0) - activesupport (3.1.0) - multi_json (~> 1.0) + activeresource (3.1.10) + activemodel (= 3.1.10) + activesupport (= 3.1.10) + activesupport (3.1.10) + multi_json (>= 1.0, < 1.3) addressable (2.3.2) airbrake (3.1.6) builder girl_friday arel (2.2.3) - badgeable (0.5.1) + badgeable (0.4.0) bcrypt-ruby (3.0.1) bitbucket_api (0.0.1) - bourbon (3.0.1) - sass (>= 3.2.0) - thor - bson (1.8.0) - activesupport - bson_ext (1.8.0) - bson (~> 1.8.0) + bourbon (2.1.1) + sass (>= 3.1) + bson (1.8.2) + bson_ext (1.8.2) + bson (~> 1.8.2) builder (3.0.4) cancan (1.6.8) - capybara (2.0.1) + capybara (2.0.2) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) @@ -68,7 +65,8 @@ GEM coffee-script-source execjs coffee-script-source (1.4.0) - connection_pool (0.9.3) + connection_pool (1.0.0) + crack (0.3.2) css3buttons (1.0.1) actionpack (>= 3.0.0) cucumber (1.0.3) @@ -83,11 +81,13 @@ GEM nokogiri (>= 1.4.6) daemons (1.1.9) database_cleaner (0.9.1) - devise (2.1.2) + devise (2.2.2) bcrypt-ruby (~> 3.0) orm_adapter (~> 0.1) railties (~> 3.1) warden (~> 1.2.1) + devise-encryptable (0.1.1) + devise (>= 2.1.0.rc) diff-lcs (1.1.3) erubis (2.7.0) escape (0.0.4) @@ -104,7 +104,7 @@ GEM fakeweb (1.3.0) faraday (0.8.4) multipart-post (~> 1.1) - ffi (1.2.0) + ffi (1.3.1) fog (0.11.0) builder excon (~> 0.6.5) @@ -115,7 +115,7 @@ GEM net-ssh (~> 2.1.4) nokogiri (~> 1.5.0) ruby-hmac - foreman (0.60.2) + foreman (0.61.0) thor (>= 0.13.6) formatador (0.2.4) formtastic (1.2.4) @@ -126,15 +126,15 @@ GEM multi_json gherkin (2.4.21) json (>= 1.4.6) - girl_friday (0.11.1) - connection_pool (~> 0.9.0) + girl_friday (0.11.2) + connection_pool (~> 1.0) rubinius-actor gravtastic (3.2.6) haml (3.1.7) has_permalink (0.1.4) hashie (1.2.0) hike (1.2.1) - httparty (0.9.0) + httparty (0.10.0) multi_json (~> 1.0) multi_xml i18n (0.6.1) @@ -147,6 +147,7 @@ GEM activesupport (>= 3.0.0) launchy (2.1.2) addressable (~> 2.3) + libv8 (3.11.8.13) libwebsocket (0.1.7.1) addressable websocket @@ -160,23 +161,20 @@ GEM treetop (~> 1.4.8) mime-types (1.19) mocha (0.9.12) - mongo (1.8.0) - bson (~> 1.8.0) - mongoid (3.0.15) + mongo (1.8.2) + bson (~> 1.8.2) + mongoid (2.5.1) activemodel (~> 3.1) - moped (~> 1.1) - origin (~> 1.0) + mongo (~> 1.7) tzinfo (~> 0.3.22) - moped (1.3.1) multi_json (1.0.4) - multi_xml (0.5.1) + multi_xml (0.5.2) multipart-post (1.1.5) net-scp (1.0.4) net-ssh (>= 1.99.1) net-ssh (2.1.4) nokogiri (1.5.6) oauth (0.4.7) - origin (1.0.11) orm_adapter (0.4.0) pg (0.14.1) polyglot (0.3.3) @@ -185,8 +183,8 @@ GEM pr_geohash (1.0.0) rabl (0.3.0) multi_json (~> 1.0.3) - rack (1.3.6) - rack-cache (1.0.3) + rack (1.3.9) + rack-cache (1.2) rack (>= 0.4) rack-mount (0.8.3) rack (>= 1.0.0) @@ -196,17 +194,17 @@ GEM rack rack-test (0.6.2) rack (>= 1.0) - rails (3.1.0) - actionmailer (= 3.1.0) - actionpack (= 3.1.0) - activerecord (= 3.1.0) - activeresource (= 3.1.0) - activesupport (= 3.1.0) + rails (3.1.10) + actionmailer (= 3.1.10) + actionpack (= 3.1.10) + activerecord (= 3.1.10) + activeresource (= 3.1.10) + activesupport (= 3.1.10) bundler (~> 1.0) - railties (= 3.1.0) - railties (3.1.0) - actionpack (= 3.1.0) - activesupport (= 3.1.0) + railties (= 3.1.10) + railties (3.1.10) + actionpack (= 3.1.10) + activesupport (= 3.1.10) rack-ssl (~> 1.3.2) rake (>= 0.8.7) rdoc (~> 3.4) @@ -217,6 +215,7 @@ GEM redis (3.0.2) redis-namespace (1.2.1) redis (~> 3.0.0) + ref (1.0.2) resque (1.23.0) multi_json (~> 1.0) redis-namespace (~> 1.0) @@ -234,8 +233,8 @@ GEM rspec-core (2.12.2) rspec-expectations (2.12.1) diff-lcs (~> 1.1.3) - rspec-mocks (2.12.0) - rspec-rails (2.12.0) + rspec-mocks (2.12.1) + rspec-rails (2.12.2) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) @@ -249,8 +248,8 @@ GEM rubyzip (0.9.9) rufus-scheduler (2.0.17) tzinfo (>= 0.3.23) - sass (3.2.3) - sass-rails (3.1.6) + sass (3.2.0.alpha.244) + sass-rails (3.1.7) actionpack (~> 3.1.0) railties (~> 3.1.0) sass (>= 3.1.10) @@ -275,7 +274,7 @@ GEM hike (~> 1.2) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) - sqlite3 (1.3.6) + sqlite3 (1.3.7) sqlite3-ruby (1.3.3) sqlite3 (>= 1.3.3) stack_overflow (0.0.9) @@ -287,6 +286,9 @@ GEM nokogiri sunspot (= 1.2.1) term-ansicolor (1.0.7) + therubyracer (0.11.3) + libv8 (~> 3.11.8.12) + ref thin (1.5.0) daemons (>= 1.0.9) eventmachine (>= 0.12.6) @@ -296,25 +298,20 @@ GEM treetop (1.4.12) polyglot polyglot (>= 0.3.1) - twitter (2.2.1) - activesupport (>= 2.3.9, < 4) - activesupport (>= 2.3.9, < 4) - faraday (~> 0.7) - faraday (~> 0.7) - multi_json (~> 1.0) + twitter (4.4.4) + faraday (~> 0.8, < 0.10) multi_json (~> 1.0) - simple_oauth (~> 0.1) - simple_oauth (~> 0.1) + simple_oauth (~> 0.2) tzinfo (0.3.35) uglifier (1.3.0) execjs (>= 0.3.0) multi_json (~> 1.0, >= 1.0.2) - vcr (2.3.0) + vcr (2.4.0) vegas (0.1.11) rack (>= 1.0.0) warden (1.2.1) rack (>= 1.0) - websocket (1.0.5) + websocket (1.0.6) xpath (1.0.0) nokogiri (~> 1.3) @@ -323,7 +320,7 @@ PLATFORMS DEPENDENCIES airbrake - badgeable + badgeable (= 0.4.0) bitbucket_api bourbon bson_ext @@ -331,11 +328,13 @@ DEPENDENCIES carrierwave (= 0.5.7) carrierwave-mongoid (= 0.1.0) coffee-rails (~> 3.1.0) + crack css3buttons (= 1.0.1) cucumber (= 1.0.3) cucumber-rails (= 1.0.2) database_cleaner devise + devise-encryptable escape_utils (= 0.2.3) factory_girl_rails fakeweb @@ -354,17 +353,18 @@ DEPENDENCIES linkedin mocha (= 0.9.12) mongo - mongoid + mongoid (= 2.5.1) pg powify (= 0.8.5) rabl (= 0.3.0) - rails (= 3.1.0) + rails (= 3.1.10) rake (= 0.8.7) resque resque-scheduler resque-status rmagick (= 2.13.1) rspec-rails + sass (= 3.2.0.alpha.244) sass-rails (~> 3.1.0) sendgrid simple-rss (= 1.2.3) @@ -374,6 +374,7 @@ DEPENDENCIES stack_overflow sunspot (= 1.2.1) sunspot_rails (= 1.2.1) + therubyracer thin twitter uglifier diff --git a/app/models/user.rb b/app/models/user.rb index 125eaed..7c5c0af 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -5,11 +5,28 @@ class User # Include default devise modules. Others available are: # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, - :recoverable, :rememberable, :trackable, :validatable + :recoverable, :rememberable, :trackable, :validatable, :authentication_keys => [:username] field :username, :type => String field :email, :type => String + field :encrypted_password, :type => String + + ## Recoverable + field :reset_password_token, :type => String + field :reset_password_sent_at, :type => Time + + ## Rememberable + field :remember_created_at, :type => Time + + ## Trackable + field :sign_in_count, :type => Integer, :default => 0 + field :current_sign_in_at, :type => Time + field :last_sign_in_at, :type => Time + field :current_sign_in_ip, :type => String + field :last_sign_in_ip, :type => String + attr_accessible :email, :password, :password_confirmation, :remember_me, :username + has_one :profile scope :users_created_today, lambda { where(:created_at.lte => Time.now.end_of_day.utc, :created_at.gte => Time.now.beginning_of_day.utc) } diff --git a/config/initializers/resque.rb b/config/initializers/resque.rb index 37a3cdf..700cfc5 100644 --- a/config/initializers/resque.rb +++ b/config/initializers/resque.rb @@ -5,7 +5,7 @@ uri = URI.parse(ENV["REDISTOGO_URL"]) Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) -Resque::Status.expire_in = (24 * 60 * 60) # 24hrs in seconds +Resque::Plugins::Status::Hash.expire_in = (24 * 60 * 60) # 24hrs in seconds require 'resque_scheduler' Resque.schedule = YAML.load_file("#{Rails.root}/config/codemav_resque_schedule.yml") diff --git a/config/mongoid.yml b/config/mongoid.yml index 7276a78..14da93b 100644 --- a/config/mongoid.yml +++ b/config/mongoid.yml @@ -1,16 +1,106 @@ development: - host: localhost - database: codemav + # Configure available database sessions. (required) + sessions: + # Defines the default session. (required) + default: + # Defines the name of the default database that Mongoid can connect to. + # (required). + database: codemav_development_new + # Provides the hosts the default session can connect to. Must be an array + # of host:port pairs. (required) + hosts: + - localhost:27017 + options: + # Change whether the session persists in safe mode by default. + # (default: false) + # safe: false + # Change the default consistency model to :eventual or :strong. + # :eventual will send reads to secondaries, :strong sends everything + # to master. (default: :eventual) + # consistency: :eventual + + # How many times Moped should attempt to retry an operation after + # failure. (default: 30) + # max_retries: 30 + + # The time in seconds that Moped should wait before retrying an + # operation on failure. (default: 1) + # retry_interval: 1 + # Configure Mongoid specific options. (optional) + options: + # Configuration for whether or not to allow access to fields that do + # not have a field definition on the model. (default: true) + # allow_dynamic_fields: true + + # Enable the identity map, needed for eager loading. (default: false) + # identity_map_enabled: false + + # Includes the root model name in json serialization. (default: false) + # include_root_in_json: false + + # Include the _type field in serializaion. (default: false) + # include_type_for_serialization: false + + # Preload all models in development, needed when models use + # inheritance. (default: false) + # preload_models: false + + # Protect id and type from mass assignment. (default: true) + # protect_sensitive_fields: true + + # Raise an error when performing a #find and the document is not found. + # (default: true) + # raise_not_found_error: true + + # Raise an error when defining a scope with the same name as an + # existing method. (default: false) + # scope_overwrite_exception: false + + # Skip the database version check, used when connecting to a db without + # admin access. (default: false) + # skip_version_check: false + + # User Active Support's time zone in conversions. (default: true) + # use_activesupport_time_zone: true + + # Ensure all times are UTC in the app side. (default: false) + # use_utc: false test: - host: localhost - database: codemav_test + sessions: + default: + database: codemav_test + hosts: + - localhost:27017 + options: + consistency: :strong + # In the test environment we lower the retries and retry interval to + # low amounts for fast failures. + max_retries: 1 + retry_interval: 0 + +# development: +# host: localhost +# database: codemav + +# test: +# host: localhost +# database: codemav_test # set these environment variables on your prod server -production: - uri: <%= ENV['MONGOHQ_URL'] %> - # slaves: - # - host: slave1.local - # port: 27018 - # - host: slave2.local - # port: 27019 +# production: +# uri: <%= ENV['MONGOHQ_URL'] %> +# # slaves: +# # - host: slave1.local +# # port: 27018 +# # - host: slave2.local +# # port: 27019 +<% if ENV['MONGOHQ_URL'] %> + production: + sessions: + default: + uri: <%= ENV['MONGOHQ_URL'] %> + options: + skip_version_check: true + safe: true +<% end %> \ No newline at end of file diff --git a/public/assets/manifest.yml b/public/assets/manifest.yml index 3444059..33f2a13 100644 --- a/public/assets/manifest.yml +++ b/public/assets/manifest.yml @@ -1,77 +1,69 @@ --- -ajax-loader.gif: ajax-loader-70624225be5378869c5a75085fd0340f.gif -autodiscover/bitbucket.png: autodiscover/bitbucket-f5163eb026eb14807bbd3c873052751e.png -autodiscover/git_hub.png: autodiscover/git_hub-9eed4c58134c9768812ee95d1f2cc74c.png -background.png: background-108de924f7fdead2d10f8d8282be9f74.png -bitbucket_info_logo.png: bitbucket_info_logo-2823df083662f911b08c8dae88274249.png -close.png: close-d3086ee1d7009023885aef4a55d80341.png -coder_wall_info_logo.png: coder_wall_info_logo-a5a8d4d48cd02dd02604a924b66297b7.png -default_company.png: default_company-5f3cb6cb1352288b101e8f18ed8d3abc.png -default_talk.png: default_talk-fd2294e9dbb117ed7cb6d7713a0aa161.png -experience.png: experience-50b59f0b13b2fa9ee9d0f359baf2d1a1.png -git_hub_info_logo.png: git_hub_info_logo-25950de2273cedb8f7764c907984902d.png -homepage/home_services.png: homepage/home_services-0f03cbf01a64d8cb3947288d5a2c915a.png -icons/codemav_icon.png: icons/codemav_icon-4dd65a4057f502b3d9464cbde6e4b1ad.png -icons/git_hub_icon.png: icons/git_hub_icon-c56c79f9aa6f21f00c3091e69e34ae36.png -icons/github-logo.png: icons/github-logo-f16fac8479ce1885359453c465ef0bd2.png -icons/github_followers_icon.png: icons/github_followers_icon-04fb1c95e668f25e186fefa3c7bebcb0.png -icons/logo_twitter_withbird_1000_allblue.png: icons/logo_twitter_withbird_1000_allblue-f655a3496c209c527f56097cf31c0a1e.png -icons/twitter_logo.acorn: icons/twitter_logo-f07d0b0dff09889c691600fefb20c0de.acorn -icons/twitter_logo.png: icons/twitter_logo-5c32719bc9d26c915350f51a25adbf49.png -linkedin_info_logo.png: linkedin_info_logo-2faca95e1d1a69dfdba788fcb5c2020a.png -location_pin.png: location_pin-b9ca55b92e169f8ae87e44b453a72be4.png -main_code_mav_icon.png: main_code_mav_icon-ea93ec3e0083ba05811b4a1de96e7352.png -main_code_mav_logo.png: main_code_mav_logo-bd37b77787ed7636988f0c0386037e35.png -overlay/close.png: overlay/close-d3086ee1d7009023885aef4a55d80341.png -overlay/white.png: overlay/white-3709ef5c0ce0b65d288728579081219c.png -silver_badge.png: silver_badge-b7dd02b749b079ca5f597c58bfea7d0f.png -slide_share_info_logo.png: slide_share_info_logo-ae279807bbb06c44f820f5991c5f1eb4.png -speaker_rate_find_id.png: speaker_rate_find_id-fbf2a58c53b222269052cb3a2ccb59b6.png -speaker_rate_info_logo.png: speaker_rate_info_logo-c950dabc2f5bf96e24359ac4f53201a3.png -stack_over_flow_info_logo.png: stack_over_flow_info_logo-b88969a6aa21a42d89f6774c57cb2158.png -stack_overflow_find_id.png: stack_overflow_find_id-9b564ba32c2e8c0f3351ee3b15a4b574.png -stack_overflow_points_icon.png: stack_overflow_points_icon-24e8f952dd4c134fbad08c631f5319a0.png -syncable/bitbucket_logo.png: syncable/bitbucket_logo-227c1587113c6c1cbfd2536b0b5e6f6c.png -syncable/coder_wall_logo.png: syncable/coder_wall_logo-725f304b6f64c971ba5834dc2340f3bc.png -syncable/git_hub_logo.png: syncable/git_hub_logo-d4194018172ec9e57128fee7c527f6c1.png -syncable/linkedin_logo.png: syncable/linkedin_logo-f6f3708e0eebcc5d03e1b7b225605482.png -syncable/mini_speaker_rate_logo.png: syncable/mini_speaker_rate_logo-f1ae807058b66b38cb91d9724b134896.png -syncable/mini_stack_overflow_logo.png: syncable/mini_stack_overflow_logo-09abf369aa0aa1087d285beb827e389b.png -syncable/slide_share_logo.png: syncable/slide_share_logo-7948d1baaf2fa29b6f08307b5297b0cd.png -syncable/speaker_rate_logo.png: syncable/speaker_rate_logo-77fa2ee2d68012e67b1992c285e26e11.png -syncable/stack_over_flow_logo.png: syncable/stack_over_flow_logo-d1d7cd339d95c9f656183e1a566cad75.png -syncable/stack_overflow_logo.png: syncable/stack_overflow_logo-d1d7cd339d95c9f656183e1a566cad75.png -syncable/twitter_logo.png: syncable/twitter_logo-bd827b2972da646474d01c985cd0a349.png -tabs/code_selected.png: tabs/code_selected-af6f7095c22c9366a19f1b9b5545c3cd.png -tabs/code_unselected.png: tabs/code_unselected-065f9e13d843d922c221116a4b209b8d.png -tabs/experience_selected.png: tabs/experience_selected-67aebab0d136b4993751fd6bd80c3a69.png -tabs/experience_unselected.png: tabs/experience_unselected-852d5e362d54024ac42bc31560af5279.png -tabs/social_selected.png: tabs/social_selected-18c4b008618b3bc4083f64a84e923cc5.png -tabs/social_unselected.png: tabs/social_unselected-5c1d1af6b335e8d370c643574df2e797.png -tabs/speaking_selected.png: tabs/speaking_selected-4cb6d5a16e2fda2a6fb9c42bb04187ad.png -tabs/speaking_unselected.png: tabs/speaking_unselected-6cd38fbc5bcbe95c01f26179bc11af03.png -tabs/summary_selected.png: tabs/summary_selected-b3690b052f6e9dbdb2472fd43fb71a8d.png -tabs/summary_unselected.png: tabs/summary_unselected-a7998f2c68e5d3d218bc0e0169a86991.png -tabs/writing_selected.png: tabs/writing_selected-eac4b58e062642a27c0f7029ddef4592.png -tabs/writing_unselected.png: tabs/writing_unselected-a92f79ae5a09b8f7df11564e424d7fbb.png -talk/bitbucket.png: talk/bitbucket-c528532aeba5373593087beed1c6a579.png -talk/git_hub.png: talk/git_hub-91500be30bfb8748b57600ac8c23a6e6.png -talk/movie.png: talk/movie-d45a62e86873d751ed95aeca1e8f1320.png -talk/movie_off.png: talk/movie_off-842dc2e3e89e1e9a0e55fab1965c7b3b.png -talk/slide_share.png: talk/slide_share-47f0ff788e1b071dab9e45adf87130cf.png -talk/slides.png: talk/slides-b1b4f3d35b17797c021d3ccae029e547.png -talk/slides_off.png: talk/slides_off-863bc5f3c2bb5e11db532eca695af38c.png -talk/source.png: talk/source-6ddea40d183f7e56a6a03ff1d84cc04e.png -talk/speaker_rate.png: talk/speaker_rate-0c5050b5d868dcf51a0b9d401d6c19c8.png -wait_bar_green.gif: wait_bar_green-fe59be614f82409cf9d0034ba6d15563.gif -jquery.auto-geocoder.js: jquery-d661be51a6eb5a2038eb64868b48e231.auto-geocoder.js -jquery.tools.min.js: jquery-71fb9c4119b34fc64c72d2c01ca2ff15.tools.min.js -d3.chart.js: d3-65bea9677e60e7c453626223f7b49326.chart.js -d3.layout.js: d3-1128d21798a8d6a9ace3c57e7879758b.layout.js -d3.time.js: d3-06e299615f89d994c3ff4678869ce46d.time.js -jquery-ui-1.8.16.custom.min.js: jquery-ui-1-1715cfedbba4768d596fa8db3b4fd0a7.8.16.custom.min.js -css3buttons/icons.png: css3buttons/icons-63623b25faab8d82900696acc4ab1862.png -jquery-ui.min.js: jquery-ui-1e121717b10dc0374b1623de4fe94e5f.min.js -jquery.min.js: jquery-56a4675fff1e5975dad93f15a18db7c1.min.js -application.js: application-d996665557d33a1204a8f204dee36a0e.js -application.css: application-612718d0f8c629d6f2905860e99ab52a.css +ajax-loader.gif: ajax-loader.gif +autodiscover/bitbucket.png: autodiscover/bitbucket.png +autodiscover/git_hub.png: autodiscover/git_hub.png +background.png: background.png +bitbucket_info_logo.png: bitbucket_info_logo.png +close.png: close.png +coder_wall_info_logo.png: coder_wall_info_logo.png +default_company.png: default_company.png +default_talk.png: default_talk.png +experience.png: experience.png +git_hub_info_logo.png: git_hub_info_logo.png +homepage/home_services.png: homepage/home_services.png +icons/codemav_icon.png: icons/codemav_icon.png +icons/git_hub_icon.png: icons/git_hub_icon.png +icons/github-logo.png: icons/github-logo.png +icons/github_followers_icon.png: icons/github_followers_icon.png +icons/logo_twitter_withbird_1000_allblue.png: icons/logo_twitter_withbird_1000_allblue.png +icons/twitter_logo.acorn: icons/twitter_logo.acorn +icons/twitter_logo.png: icons/twitter_logo.png +linkedin_info_logo.png: linkedin_info_logo.png +location_pin.png: location_pin.png +main_code_mav_icon.png: main_code_mav_icon.png +main_code_mav_logo.png: main_code_mav_logo.png +overlay/close.png: overlay/close.png +overlay/white.png: overlay/white.png +silver_badge.png: silver_badge.png +slide_share_info_logo.png: slide_share_info_logo.png +speaker_rate_find_id.png: speaker_rate_find_id.png +speaker_rate_info_logo.png: speaker_rate_info_logo.png +stack_over_flow_info_logo.png: stack_over_flow_info_logo.png +stack_overflow_find_id.png: stack_overflow_find_id.png +stack_overflow_points_icon.png: stack_overflow_points_icon.png +syncable/bitbucket_logo.png: syncable/bitbucket_logo.png +syncable/coder_wall_logo.png: syncable/coder_wall_logo.png +syncable/git_hub_logo.png: syncable/git_hub_logo.png +syncable/linkedin_logo.png: syncable/linkedin_logo.png +syncable/mini_speaker_rate_logo.png: syncable/mini_speaker_rate_logo.png +syncable/mini_stack_overflow_logo.png: syncable/mini_stack_overflow_logo.png +syncable/slide_share_logo.png: syncable/slide_share_logo.png +syncable/speaker_rate_logo.png: syncable/speaker_rate_logo.png +syncable/stack_over_flow_logo.png: syncable/stack_over_flow_logo.png +syncable/stack_overflow_logo.png: syncable/stack_overflow_logo.png +syncable/twitter_logo.png: syncable/twitter_logo.png +tabs/code_selected.png: tabs/code_selected.png +tabs/code_unselected.png: tabs/code_unselected.png +tabs/experience_selected.png: tabs/experience_selected.png +tabs/experience_unselected.png: tabs/experience_unselected.png +tabs/social_selected.png: tabs/social_selected.png +tabs/social_unselected.png: tabs/social_unselected.png +tabs/speaking_selected.png: tabs/speaking_selected.png +tabs/speaking_unselected.png: tabs/speaking_unselected.png +tabs/summary_selected.png: tabs/summary_selected.png +tabs/summary_unselected.png: tabs/summary_unselected.png +tabs/writing_selected.png: tabs/writing_selected.png +tabs/writing_unselected.png: tabs/writing_unselected.png +talk/bitbucket.png: talk/bitbucket.png +talk/git_hub.png: talk/git_hub.png +talk/movie.png: talk/movie.png +talk/movie_off.png: talk/movie_off.png +talk/slide_share.png: talk/slide_share.png +talk/slides.png: talk/slides.png +talk/slides_off.png: talk/slides_off.png +talk/source.png: talk/source.png +talk/speaker_rate.png: talk/speaker_rate.png +wait_bar_green.gif: wait_bar_green.gif +application.js: application.js +application.css: application.css +css3buttons/icons.png: css3buttons/icons.png From a371bc97d5c41fce9f30aee6e978174d4682deae Mon Sep 17 00:00:00 2001 From: Dinesh Matta <dineshdm7@gmail.com> Date: Fri, 18 Jan 2013 23:37:28 +0530 Subject: [PATCH 2/2] Configured for deployment to Heroku > Adding precompiled assets --- config/mongoid.yml | 115 +- public/assets/ajax-loader.gif | Bin 0 -> 673 bytes public/assets/application.css | 3786 +++ public/assets/application.css.gz | Bin 0 -> 13275 bytes public/assets/application.js | 19531 ++++++++++++++++ public/assets/application.js.gz | Bin 0 -> 244024 bytes public/assets/autodiscover/bitbucket.png | Bin 0 -> 5189 bytes public/assets/autodiscover/git_hub.png | Bin 0 -> 3627 bytes public/assets/background.png | Bin 0 -> 8715 bytes public/assets/bitbucket_info_logo.png | Bin 0 -> 9922 bytes public/assets/close.png | Bin 0 -> 2154 bytes public/assets/coder_wall_info_logo.png | Bin 0 -> 5120 bytes public/assets/css3buttons/icons.png | Bin 0 -> 3948 bytes public/assets/default_company.png | Bin 0 -> 1702 bytes public/assets/default_talk.png | Bin 0 -> 4095 bytes public/assets/experience.png | Bin 0 -> 1625 bytes public/assets/git_hub_info_logo.png | Bin 0 -> 3234 bytes public/assets/homepage/home_services.png | Bin 0 -> 41038 bytes public/assets/icons/codemav_icon.png | Bin 0 -> 4440 bytes public/assets/icons/git_hub_icon.png | Bin 0 -> 5551 bytes public/assets/icons/github-logo.png | Bin 0 -> 47650 bytes public/assets/icons/github_followers_icon.png | Bin 0 -> 1131 bytes .../logo_twitter_withbird_1000_allblue.png | Bin 0 -> 10421 bytes public/assets/icons/twitter_logo.acorn | Bin 0 -> 20480 bytes public/assets/icons/twitter_logo.png | Bin 0 -> 3566 bytes public/assets/linkedin_info_logo.png | Bin 0 -> 4730 bytes public/assets/location_pin.png | Bin 0 -> 444 bytes public/assets/main_code_mav_icon.png | Bin 0 -> 10904 bytes public/assets/main_code_mav_logo.png | Bin 0 -> 6278 bytes public/assets/overlay/close.png | Bin 0 -> 2154 bytes public/assets/overlay/white.png | Bin 0 -> 4233 bytes public/assets/silver_badge.png | Bin 0 -> 862 bytes public/assets/slide_share_info_logo.png | Bin 0 -> 11087 bytes public/assets/speaker_rate_find_id.png | Bin 0 -> 10813 bytes public/assets/speaker_rate_info_logo.png | Bin 0 -> 8355 bytes public/assets/stack_over_flow_info_logo.png | Bin 0 -> 2397 bytes public/assets/stack_overflow_find_id.png | Bin 0 -> 12188 bytes public/assets/stack_overflow_points_icon.png | Bin 0 -> 1063 bytes public/assets/syncable/bitbucket_logo.png | Bin 0 -> 9037 bytes public/assets/syncable/coder_wall_logo.png | Bin 0 -> 5369 bytes public/assets/syncable/git_hub_logo.png | Bin 0 -> 4481 bytes public/assets/syncable/linkedin_logo.png | Bin 0 -> 3678 bytes .../syncable/mini_speaker_rate_logo.png | Bin 0 -> 4559 bytes .../syncable/mini_stack_overflow_logo.png | Bin 0 -> 1187 bytes public/assets/syncable/slide_share_logo.png | Bin 0 -> 10920 bytes public/assets/syncable/speaker_rate_logo.png | Bin 0 -> 8621 bytes .../assets/syncable/stack_over_flow_logo.png | Bin 0 -> 2976 bytes .../assets/syncable/stack_overflow_logo.png | Bin 0 -> 2976 bytes public/assets/syncable/twitter_logo.png | Bin 0 -> 4873 bytes public/assets/tabs/code_selected.png | Bin 0 -> 751 bytes public/assets/tabs/code_unselected.png | Bin 0 -> 812 bytes public/assets/tabs/experience_selected.png | Bin 0 -> 716 bytes public/assets/tabs/experience_unselected.png | Bin 0 -> 737 bytes public/assets/tabs/social_selected.png | Bin 0 -> 227 bytes public/assets/tabs/social_unselected.png | Bin 0 -> 736 bytes public/assets/tabs/speaking_selected.png | Bin 0 -> 630 bytes public/assets/tabs/speaking_unselected.png | Bin 0 -> 651 bytes public/assets/tabs/summary_selected.png | Bin 0 -> 632 bytes public/assets/tabs/summary_unselected.png | Bin 0 -> 707 bytes public/assets/tabs/writing_selected.png | Bin 0 -> 558 bytes public/assets/tabs/writing_unselected.png | Bin 0 -> 597 bytes public/assets/talk/bitbucket.png | Bin 0 -> 6735 bytes public/assets/talk/git_hub.png | Bin 0 -> 3109 bytes public/assets/talk/movie.png | Bin 0 -> 1224 bytes public/assets/talk/movie_off.png | Bin 0 -> 1803 bytes public/assets/talk/slide_share.png | Bin 0 -> 10985 bytes public/assets/talk/slides.png | Bin 0 -> 619 bytes public/assets/talk/slides_off.png | Bin 0 -> 1059 bytes public/assets/talk/source.png | Bin 0 -> 1594 bytes public/assets/talk/speaker_rate.png | Bin 0 -> 7210 bytes public/assets/wait_bar_green.gif | Bin 0 -> 6126 bytes 71 files changed, 23331 insertions(+), 101 deletions(-) create mode 100644 public/assets/ajax-loader.gif create mode 100644 public/assets/application.css create mode 100644 public/assets/application.css.gz create mode 100644 public/assets/application.js create mode 100644 public/assets/application.js.gz create mode 100644 public/assets/autodiscover/bitbucket.png create mode 100644 public/assets/autodiscover/git_hub.png create mode 100644 public/assets/background.png create mode 100644 public/assets/bitbucket_info_logo.png create mode 100644 public/assets/close.png create mode 100644 public/assets/coder_wall_info_logo.png create mode 100644 public/assets/css3buttons/icons.png create mode 100644 public/assets/default_company.png create mode 100644 public/assets/default_talk.png create mode 100644 public/assets/experience.png create mode 100644 public/assets/git_hub_info_logo.png create mode 100644 public/assets/homepage/home_services.png create mode 100644 public/assets/icons/codemav_icon.png create mode 100644 public/assets/icons/git_hub_icon.png create mode 100644 public/assets/icons/github-logo.png create mode 100644 public/assets/icons/github_followers_icon.png create mode 100644 public/assets/icons/logo_twitter_withbird_1000_allblue.png create mode 100644 public/assets/icons/twitter_logo.acorn create mode 100644 public/assets/icons/twitter_logo.png create mode 100644 public/assets/linkedin_info_logo.png create mode 100644 public/assets/location_pin.png create mode 100644 public/assets/main_code_mav_icon.png create mode 100644 public/assets/main_code_mav_logo.png create mode 100644 public/assets/overlay/close.png create mode 100644 public/assets/overlay/white.png create mode 100644 public/assets/silver_badge.png create mode 100644 public/assets/slide_share_info_logo.png create mode 100644 public/assets/speaker_rate_find_id.png create mode 100644 public/assets/speaker_rate_info_logo.png create mode 100644 public/assets/stack_over_flow_info_logo.png create mode 100644 public/assets/stack_overflow_find_id.png create mode 100644 public/assets/stack_overflow_points_icon.png create mode 100644 public/assets/syncable/bitbucket_logo.png create mode 100644 public/assets/syncable/coder_wall_logo.png create mode 100644 public/assets/syncable/git_hub_logo.png create mode 100644 public/assets/syncable/linkedin_logo.png create mode 100644 public/assets/syncable/mini_speaker_rate_logo.png create mode 100644 public/assets/syncable/mini_stack_overflow_logo.png create mode 100644 public/assets/syncable/slide_share_logo.png create mode 100644 public/assets/syncable/speaker_rate_logo.png create mode 100644 public/assets/syncable/stack_over_flow_logo.png create mode 100644 public/assets/syncable/stack_overflow_logo.png create mode 100644 public/assets/syncable/twitter_logo.png create mode 100644 public/assets/tabs/code_selected.png create mode 100644 public/assets/tabs/code_unselected.png create mode 100644 public/assets/tabs/experience_selected.png create mode 100644 public/assets/tabs/experience_unselected.png create mode 100644 public/assets/tabs/social_selected.png create mode 100644 public/assets/tabs/social_unselected.png create mode 100644 public/assets/tabs/speaking_selected.png create mode 100644 public/assets/tabs/speaking_unselected.png create mode 100644 public/assets/tabs/summary_selected.png create mode 100644 public/assets/tabs/summary_unselected.png create mode 100644 public/assets/tabs/writing_selected.png create mode 100644 public/assets/tabs/writing_unselected.png create mode 100644 public/assets/talk/bitbucket.png create mode 100644 public/assets/talk/git_hub.png create mode 100644 public/assets/talk/movie.png create mode 100644 public/assets/talk/movie_off.png create mode 100644 public/assets/talk/slide_share.png create mode 100644 public/assets/talk/slides.png create mode 100644 public/assets/talk/slides_off.png create mode 100644 public/assets/talk/source.png create mode 100644 public/assets/talk/speaker_rate.png create mode 100644 public/assets/wait_bar_green.gif diff --git a/config/mongoid.yml b/config/mongoid.yml index 14da93b..1e3aa38 100644 --- a/config/mongoid.yml +++ b/config/mongoid.yml @@ -1,106 +1,19 @@ development: - # Configure available database sessions. (required) - sessions: - # Defines the default session. (required) - default: - # Defines the name of the default database that Mongoid can connect to. - # (required). - database: codemav_development_new - # Provides the hosts the default session can connect to. Must be an array - # of host:port pairs. (required) - hosts: - - localhost:27017 - options: - # Change whether the session persists in safe mode by default. - # (default: false) - # safe: false + host: localhost + database: codemav_development - # Change the default consistency model to :eventual or :strong. - # :eventual will send reads to secondaries, :strong sends everything - # to master. (default: :eventual) - # consistency: :eventual - - # How many times Moped should attempt to retry an operation after - # failure. (default: 30) - # max_retries: 30 - - # The time in seconds that Moped should wait before retrying an - # operation on failure. (default: 1) - # retry_interval: 1 - # Configure Mongoid specific options. (optional) - options: - # Configuration for whether or not to allow access to fields that do - # not have a field definition on the model. (default: true) - # allow_dynamic_fields: true - - # Enable the identity map, needed for eager loading. (default: false) - # identity_map_enabled: false - - # Includes the root model name in json serialization. (default: false) - # include_root_in_json: false - - # Include the _type field in serializaion. (default: false) - # include_type_for_serialization: false - - # Preload all models in development, needed when models use - # inheritance. (default: false) - # preload_models: false - - # Protect id and type from mass assignment. (default: true) - # protect_sensitive_fields: true - - # Raise an error when performing a #find and the document is not found. - # (default: true) - # raise_not_found_error: true - - # Raise an error when defining a scope with the same name as an - # existing method. (default: false) - # scope_overwrite_exception: false - - # Skip the database version check, used when connecting to a db without - # admin access. (default: false) - # skip_version_check: false - - # User Active Support's time zone in conversions. (default: true) - # use_activesupport_time_zone: true - - # Ensure all times are UTC in the app side. (default: false) - # use_utc: false test: - sessions: - default: - database: codemav_test - hosts: - - localhost:27017 - options: - consistency: :strong - # In the test environment we lower the retries and retry interval to - # low amounts for fast failures. - max_retries: 1 - retry_interval: 0 - -# development: -# host: localhost -# database: codemav - -# test: -# host: localhost -# database: codemav_test + host: localhost + database: codemav_test # set these environment variables on your prod server -# production: -# uri: <%= ENV['MONGOHQ_URL'] %> -# # slaves: -# # - host: slave1.local -# # port: 27018 -# # - host: slave2.local -# # port: 27019 -<% if ENV['MONGOHQ_URL'] %> - production: - sessions: - default: - uri: <%= ENV['MONGOHQ_URL'] %> - options: - skip_version_check: true - safe: true -<% end %> \ No newline at end of file +production: + uri: <%= ENV['MONGOHQ_URL'] %> + max_retries_on_connection_failure: 20 + persist_in_safe_mode: true + skip_version_check: true + # slaves: + # - host: slave1.local + # port: 27018 + # - host: slave2.local + # port: 27019 \ No newline at end of file diff --git a/public/assets/ajax-loader.gif b/public/assets/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..f2a1bc0c6f545e20e631a96e8e92f9822e75d046 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{3qpHl$uzQnxasi zS(2fUn3Y(Olb@KPmzkHA&!G5|g@FsGT=74*pKD04vtxj(k)8oFBTz^Oh=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0W=b9G$XP(CLnYCdK49;TX=SFc-G}o=oA=|U?{1O;Nu!CwW3C5Yw7*Bi4yD$3fCnb zwK+>}QdQ9sf*QnxY>*kpE+b{_Q;sJloS71)&(@kO!}mqf@1v(v;*8Y=G9S3kY~Cw# zY=t&c<XiDSjLnDnjaH^e&EL-gHHsP8D4^exRJBhTwM~38CoI0Tdl_e|A`gq9OM9Y> z;3~JK4HxB^lY(MD+sYeQ=t%XSSW;x^1M?dTvN=W^yNcAcy`HCte31C;)5xP%b~qs> zDP&4(%TBqBNGHwnryK;B<zCvzA65gK6Eq2C3@frRK<6kNnqVpZxa9esTk{MgkIOtz z)N|T4_f+_rMTR_V+#<z^yEmAApUT*1uz|C4_xxN<FPJ%O$mRf@bLZa&PQjaVLStt! zzPnXeFg2m$ZsMG~CevCS-HsZFOh}l$jggn-kb}T%!-hlG&P{|F!;WDLFy>dMI$fEg xd0mc!<FG>C@j^ZpLxYv4HmnPfI0THYuv<%+6iSmMn&w3dPGDfL1|=LY008wP(boU~ literal 0 HcmV?d00001 diff --git a/public/assets/application.css b/public/assets/application.css new file mode 100644 index 0000000..884350a --- /dev/null +++ b/public/assets/application.css @@ -0,0 +1,3786 @@ +/* + * Bootstrap v1.3.0 + * + * Copyright 2011 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + * Date: Mon Oct 10 14:31:07 CDT 2011 + */ +/* Reset.less + * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc). + * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ +/* line 15, ../../app/assets/stylesheets/bootstrap.css */ +html, body { + margin: 0; + padding: 0; +} + +/* line 66, ../../app/assets/stylesheets/bootstrap.css */ +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +cite, +code, +del, +dfn, +em, +img, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +dd, +dl, +dt, +li, +ol, +ul, +fieldset, +form, +label, +legend, +button, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td { + margin: 0; + padding: 0; + border: 0; + font-weight: normal; + font-style: normal; + font-size: 100%; + line-height: 1; + font-family: inherit; +} + +/* line 76, ../../app/assets/stylesheets/bootstrap.css */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 80, ../../app/assets/stylesheets/bootstrap.css */ +ol, ul { + list-style: none; +} + +/* line 86, ../../app/assets/stylesheets/bootstrap.css */ +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +/* line 89, ../../app/assets/stylesheets/bootstrap.css */ +html { + overflow-y: scroll; + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* line 95, ../../app/assets/stylesheets/bootstrap.css */ +a:focus { + outline: thin dotted; +} + +/* line 98, ../../app/assets/stylesheets/bootstrap.css */ +a:hover, a:active { + outline: 0; +} + +/* line 110, ../../app/assets/stylesheets/bootstrap.css */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +/* line 113, ../../app/assets/stylesheets/bootstrap.css */ +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* line 118, ../../app/assets/stylesheets/bootstrap.css */ +audio:not([controls]) { + display: none; +} + +/* line 121, ../../app/assets/stylesheets/bootstrap.css */ +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +/* line 127, ../../app/assets/stylesheets/bootstrap.css */ +sup { + top: -0.5em; +} + +/* line 130, ../../app/assets/stylesheets/bootstrap.css */ +sub { + bottom: -0.25em; +} + +/* line 133, ../../app/assets/stylesheets/bootstrap.css */ +img { + border: 0; + -ms-interpolation-mode: bicubic; +} + +/* line 140, ../../app/assets/stylesheets/bootstrap.css */ +button, +input, +select, +textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} + +/* line 146, ../../app/assets/stylesheets/bootstrap.css */ +button, input { + line-height: normal; + *overflow: visible; +} + +/* line 150, ../../app/assets/stylesheets/bootstrap.css */ +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* line 157, ../../app/assets/stylesheets/bootstrap.css */ +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +/* line 161, ../../app/assets/stylesheets/bootstrap.css */ +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +/* line 167, ../../app/assets/stylesheets/bootstrap.css */ +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* line 170, ../../app/assets/stylesheets/bootstrap.css */ +textarea { + overflow: auto; + vertical-align: top; +} + +/* Variables.less + * Variables to customize the look and feel of Bootstrap + * ----------------------------------------------------- */ +/* Mixins.less + * Snippets of reusable CSS to develop faster and keep code readable + * ----------------------------------------------------------------- */ +/* + * Scaffolding + * Basic and global styles for generating a grid system, structural layout, and page templates + * ------------------------------------------------------------------------------------------- */ +/* line 184, ../../app/assets/stylesheets/bootstrap.css */ +html, body { + background-color: #ffffff; +} + +/* line 187, ../../app/assets/stylesheets/bootstrap.css */ +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 18px; + color: #404040; +} + +/* line 195, ../../app/assets/stylesheets/bootstrap.css */ +.container { + width: 940px; + margin-left: auto; + margin-right: auto; + zoom: 1; +} + +/* line 201, ../../app/assets/stylesheets/bootstrap.css */ +.container:before, .container:after { + display: table; + content: ""; + zoom: 1; + *display: inline; +} + +/* line 207, ../../app/assets/stylesheets/bootstrap.css */ +.container:after { + clear: both; +} + +/* line 210, ../../app/assets/stylesheets/bootstrap.css */ +.container-fluid { + position: relative; + min-width: 940px; + padding-left: 20px; + padding-right: 20px; + zoom: 1; +} + +/* line 217, ../../app/assets/stylesheets/bootstrap.css */ +.container-fluid:before, .container-fluid:after { + display: table; + content: ""; + zoom: 1; + *display: inline; +} + +/* line 223, ../../app/assets/stylesheets/bootstrap.css */ +.container-fluid:after { + clear: both; +} + +/* line 226, ../../app/assets/stylesheets/bootstrap.css */ +.container-fluid > .sidebar { + float: left; + width: 220px; +} + +/* line 230, ../../app/assets/stylesheets/bootstrap.css */ +.container-fluid > .content { + margin-left: 240px; +} + +/* line 233, ../../app/assets/stylesheets/bootstrap.css */ +a { + color: #0069d6; + text-decoration: none; + line-height: inherit; + font-weight: inherit; +} + +/* line 239, ../../app/assets/stylesheets/bootstrap.css */ +a:hover { + color: #00438a; + text-decoration: underline; +} + +/* line 243, ../../app/assets/stylesheets/bootstrap.css */ +.pull-right { + float: right; +} + +/* line 246, ../../app/assets/stylesheets/bootstrap.css */ +.pull-left { + float: left; +} + +/* line 249, ../../app/assets/stylesheets/bootstrap.css */ +.hide { + display: none; +} + +/* line 252, ../../app/assets/stylesheets/bootstrap.css */ +.show { + display: block; +} + +/* line 255, ../../app/assets/stylesheets/bootstrap.css */ +.row { + zoom: 1; + margin-left: -20px; +} + +/* line 259, ../../app/assets/stylesheets/bootstrap.css */ +.row:before, .row:after { + display: table; + content: ""; + zoom: 1; + *display: inline; +} + +/* line 265, ../../app/assets/stylesheets/bootstrap.css */ +.row:after { + clear: both; +} + +/* line 268, ../../app/assets/stylesheets/bootstrap.css */ +[class*="span"] { + display: inline; + float: left; + margin-left: 20px; +} + +/* line 273, ../../app/assets/stylesheets/bootstrap.css */ +.span1 { + width: 40px; +} + +/* line 276, ../../app/assets/stylesheets/bootstrap.css */ +.span2 { + width: 100px; +} + +/* line 279, ../../app/assets/stylesheets/bootstrap.css */ +.span3 { + width: 160px; +} + +/* line 282, ../../app/assets/stylesheets/bootstrap.css */ +.span4 { + width: 220px; +} + +/* line 285, ../../app/assets/stylesheets/bootstrap.css */ +.span5 { + width: 280px; +} + +/* line 288, ../../app/assets/stylesheets/bootstrap.css */ +.span6 { + width: 340px; +} + +/* line 291, ../../app/assets/stylesheets/bootstrap.css */ +.span7 { + width: 400px; +} + +/* line 294, ../../app/assets/stylesheets/bootstrap.css */ +.span8 { + width: 460px; +} + +/* line 297, ../../app/assets/stylesheets/bootstrap.css */ +.span9 { + width: 520px; +} + +/* line 300, ../../app/assets/stylesheets/bootstrap.css */ +.span10 { + width: 580px; +} + +/* line 303, ../../app/assets/stylesheets/bootstrap.css */ +.span11 { + width: 640px; +} + +/* line 306, ../../app/assets/stylesheets/bootstrap.css */ +.span12 { + width: 700px; +} + +/* line 309, ../../app/assets/stylesheets/bootstrap.css */ +.span13 { + width: 760px; +} + +/* line 312, ../../app/assets/stylesheets/bootstrap.css */ +.span14 { + width: 820px; +} + +/* line 315, ../../app/assets/stylesheets/bootstrap.css */ +.span15 { + width: 880px; +} + +/* line 318, ../../app/assets/stylesheets/bootstrap.css */ +.span16 { + width: 940px; +} + +/* line 321, ../../app/assets/stylesheets/bootstrap.css */ +.span17 { + width: 1000px; +} + +/* line 324, ../../app/assets/stylesheets/bootstrap.css */ +.span18 { + width: 1060px; +} + +/* line 327, ../../app/assets/stylesheets/bootstrap.css */ +.span19 { + width: 1120px; +} + +/* line 330, ../../app/assets/stylesheets/bootstrap.css */ +.span20 { + width: 1180px; +} + +/* line 333, ../../app/assets/stylesheets/bootstrap.css */ +.span21 { + width: 1240px; +} + +/* line 336, ../../app/assets/stylesheets/bootstrap.css */ +.span22 { + width: 1300px; +} + +/* line 339, ../../app/assets/stylesheets/bootstrap.css */ +.span23 { + width: 1360px; +} + +/* line 342, ../../app/assets/stylesheets/bootstrap.css */ +.span24 { + width: 1420px; +} + +/* line 345, ../../app/assets/stylesheets/bootstrap.css */ +.offset1 { + margin-left: 80px; +} + +/* line 348, ../../app/assets/stylesheets/bootstrap.css */ +.offset2 { + margin-left: 140px; +} + +/* line 351, ../../app/assets/stylesheets/bootstrap.css */ +.offset3 { + margin-left: 200px; +} + +/* line 354, ../../app/assets/stylesheets/bootstrap.css */ +.offset4 { + margin-left: 260px; +} + +/* line 357, ../../app/assets/stylesheets/bootstrap.css */ +.offset5 { + margin-left: 320px; +} + +/* line 360, ../../app/assets/stylesheets/bootstrap.css */ +.offset6 { + margin-left: 380px; +} + +/* line 363, ../../app/assets/stylesheets/bootstrap.css */ +.offset7 { + margin-left: 440px; +} + +/* line 366, ../../app/assets/stylesheets/bootstrap.css */ +.offset8 { + margin-left: 500px; +} + +/* line 369, ../../app/assets/stylesheets/bootstrap.css */ +.offset9 { + margin-left: 560px; +} + +/* line 372, ../../app/assets/stylesheets/bootstrap.css */ +.offset10 { + margin-left: 620px; +} + +/* line 375, ../../app/assets/stylesheets/bootstrap.css */ +.offset11 { + margin-left: 680px; +} + +/* line 378, ../../app/assets/stylesheets/bootstrap.css */ +.offset12 { + margin-left: 740px; +} + +/* line 381, ../../app/assets/stylesheets/bootstrap.css */ +.span-one-third { + width: 300px; +} + +/* line 384, ../../app/assets/stylesheets/bootstrap.css */ +.span-two-thirds { + width: 620px; +} + +/* line 387, ../../app/assets/stylesheets/bootstrap.css */ +.offset-one-third { + margin-left: 340px; +} + +/* line 390, ../../app/assets/stylesheets/bootstrap.css */ +.offset-two-thirds { + margin-left: 660px; +} + +/* Typography.less + * Headings, body text, lists, code, and more for a versatile and durable typography system + * ---------------------------------------------------------------------------------------- */ +/* line 396, ../../app/assets/stylesheets/bootstrap.css */ +p { + font-size: 13px; + font-weight: normal; + line-height: 18px; + margin-bottom: 9px; +} + +/* line 402, ../../app/assets/stylesheets/bootstrap.css */ +p small { + font-size: 11px; + color: #bfbfbf; +} + +/* line 411, ../../app/assets/stylesheets/bootstrap.css */ +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: bold; + color: #404040; +} + +/* line 420, ../../app/assets/stylesheets/bootstrap.css */ +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + color: #bfbfbf; +} + +/* line 423, ../../app/assets/stylesheets/bootstrap.css */ +h1 { + margin-bottom: 18px; + font-size: 30px; + line-height: 36px; +} + +/* line 428, ../../app/assets/stylesheets/bootstrap.css */ +h1 small { + font-size: 18px; +} + +/* line 431, ../../app/assets/stylesheets/bootstrap.css */ +h2 { + font-size: 24px; + line-height: 36px; +} + +/* line 435, ../../app/assets/stylesheets/bootstrap.css */ +h2 small { + font-size: 14px; +} + +/* line 441, ../../app/assets/stylesheets/bootstrap.css */ +h3, +h4, +h5, +h6 { + line-height: 36px; +} + +/* line 444, ../../app/assets/stylesheets/bootstrap.css */ +h3 { + font-size: 18px; +} + +/* line 447, ../../app/assets/stylesheets/bootstrap.css */ +h3 small { + font-size: 14px; +} + +/* line 450, ../../app/assets/stylesheets/bootstrap.css */ +h4 { + font-size: 16px; +} + +/* line 453, ../../app/assets/stylesheets/bootstrap.css */ +h4 small { + font-size: 12px; +} + +/* line 456, ../../app/assets/stylesheets/bootstrap.css */ +h5 { + font-size: 14px; +} + +/* line 459, ../../app/assets/stylesheets/bootstrap.css */ +h6 { + font-size: 13px; + color: #bfbfbf; + text-transform: uppercase; +} + +/* line 464, ../../app/assets/stylesheets/bootstrap.css */ +ul, ol { + margin: 0 0 18px 25px; +} + +/* line 470, ../../app/assets/stylesheets/bootstrap.css */ +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +/* line 473, ../../app/assets/stylesheets/bootstrap.css */ +ul { + list-style: disc; +} + +/* line 476, ../../app/assets/stylesheets/bootstrap.css */ +ol { + list-style: decimal; +} + +/* line 479, ../../app/assets/stylesheets/bootstrap.css */ +li { + line-height: 18px; + color: #808080; +} + +/* line 483, ../../app/assets/stylesheets/bootstrap.css */ +ul.unstyled { + list-style: none; + margin-left: 0; +} + +/* line 487, ../../app/assets/stylesheets/bootstrap.css */ +dl { + margin-bottom: 18px; +} + +/* line 490, ../../app/assets/stylesheets/bootstrap.css */ +dl dt, dl dd { + line-height: 18px; +} + +/* line 493, ../../app/assets/stylesheets/bootstrap.css */ +dl dt { + font-weight: bold; +} + +/* line 496, ../../app/assets/stylesheets/bootstrap.css */ +dl dd { + margin-left: 9px; +} + +/* line 499, ../../app/assets/stylesheets/bootstrap.css */ +hr { + margin: 20px 0 19px; + border: 0; + border-bottom: 1px solid #eee; +} + +/* line 504, ../../app/assets/stylesheets/bootstrap.css */ +strong { + font-style: inherit; + font-weight: bold; +} + +/* line 508, ../../app/assets/stylesheets/bootstrap.css */ +em { + font-style: italic; + font-weight: inherit; + line-height: inherit; +} + +/* line 513, ../../app/assets/stylesheets/bootstrap.css */ +.muted { + color: #bfbfbf; +} + +/* line 516, ../../app/assets/stylesheets/bootstrap.css */ +blockquote { + margin-bottom: 18px; + border-left: 5px solid #eee; + padding-left: 15px; +} + +/* line 521, ../../app/assets/stylesheets/bootstrap.css */ +blockquote p { + font-size: 14px; + font-weight: 300; + line-height: 18px; + margin-bottom: 0; +} + +/* line 527, ../../app/assets/stylesheets/bootstrap.css */ +blockquote small { + display: block; + font-size: 12px; + font-weight: 300; + line-height: 18px; + color: #bfbfbf; +} + +/* line 534, ../../app/assets/stylesheets/bootstrap.css */ +blockquote small:before { + content: '\2014 \00A0'; +} + +/* line 537, ../../app/assets/stylesheets/bootstrap.css */ +address { + display: block; + line-height: 18px; + margin-bottom: 18px; +} + +/* line 542, ../../app/assets/stylesheets/bootstrap.css */ +code, pre { + padding: 0 3px 2px; + font-family: Monaco, Andale Mono, Courier New, monospace; + font-size: 12px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +/* line 550, ../../app/assets/stylesheets/bootstrap.css */ +code { + background-color: #fee9cc; + color: rgba(0, 0, 0, 0.75); + padding: 1px 3px; +} + +/* line 555, ../../app/assets/stylesheets/bootstrap.css */ +pre { + background-color: #f5f5f5; + display: block; + padding: 8.5px; + margin: 0 0 18px; + line-height: 18px; + font-size: 12px; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/* Forms.less + * Base styles for various input types, form layouts, and states + * ------------------------------------------------------------- */ +/* line 574, ../../app/assets/stylesheets/bootstrap.css */ +form { + margin-bottom: 18px; +} + +/* line 577, ../../app/assets/stylesheets/bootstrap.css */ +fieldset { + margin-bottom: 18px; + padding-top: 18px; +} + +/* line 581, ../../app/assets/stylesheets/bootstrap.css */ +fieldset legend { + display: block; + padding-left: 150px; + font-size: 19.5px; + line-height: 1; + color: #404040; + *padding: 0 0 5px 145px; + /* IE6-7 */ + *line-height: 1.5; + /* IE6-7 */ +} + +/* line 594, ../../app/assets/stylesheets/bootstrap.css */ +form .clearfix { + margin-bottom: 18px; + zoom: 1; +} + +/* line 598, ../../app/assets/stylesheets/bootstrap.css */ +form .clearfix:before, form .clearfix:after { + display: table; + content: ""; + zoom: 1; + *display: inline; +} + +/* line 604, ../../app/assets/stylesheets/bootstrap.css */ +form .clearfix:after { + clear: both; +} + +/* line 610, ../../app/assets/stylesheets/bootstrap.css */ +label, +input, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: normal; +} + +/* line 616, ../../app/assets/stylesheets/bootstrap.css */ +label { + padding-top: 6px; + font-size: 13px; + line-height: 18px; + float: left; + width: 130px; + text-align: right; + color: #404040; +} + +/* line 625, ../../app/assets/stylesheets/bootstrap.css */ +form .input { + margin-left: 150px; +} + +/* line 628, ../../app/assets/stylesheets/bootstrap.css */ +input[type=checkbox], input[type=radio] { + cursor: pointer; +} + +/* line 634, ../../app/assets/stylesheets/bootstrap.css */ +input, +textarea, +select, +.uneditable-input { + display: inline-block; + width: 210px; + height: 18px; + padding: 4px; + font-size: 13px; + line-height: 18px; + color: #808080; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +/* mini reset for non-html5 file types */ +/* line 648, ../../app/assets/stylesheets/bootstrap.css */ +input[type=checkbox], input[type=radio] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + /* IE6-7 */ + line-height: normal; + border: none; +} + +/* line 659, ../../app/assets/stylesheets/bootstrap.css */ +input[type=file] { + background-color: #ffffff; + padding: initial; + border: initial; + line-height: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/* line 668, ../../app/assets/stylesheets/bootstrap.css */ +input[type=button], input[type=reset], input[type=submit] { + width: auto; + height: auto; +} + +/* line 672, ../../app/assets/stylesheets/bootstrap.css */ +select, input[type=file] { + height: 27px; + line-height: 27px; + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ +} + +/* line 679, ../../app/assets/stylesheets/bootstrap.css */ +select[multiple] { + height: inherit; +} + +/* line 682, ../../app/assets/stylesheets/bootstrap.css */ +textarea { + height: auto; +} + +/* line 685, ../../app/assets/stylesheets/bootstrap.css */ +.uneditable-input { + background-color: #ffffff; + display: block; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} + +/* line 694, ../../app/assets/stylesheets/bootstrap.css */ +:-moz-placeholder { + color: #bfbfbf; +} + +/* line 697, ../../app/assets/stylesheets/bootstrap.css */ +::-webkit-input-placeholder { + color: #bfbfbf; +} + +/* line 700, ../../app/assets/stylesheets/bootstrap.css */ +input, textarea { + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); +} + +/* line 710, ../../app/assets/stylesheets/bootstrap.css */ +input:focus, textarea:focus { + outline: 0; + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); +} + +/* line 717, ../../app/assets/stylesheets/bootstrap.css */ +input[type=file]:focus, input[type=checkbox]:focus, select:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: 1px dotted #666; +} + +/* line 723, ../../app/assets/stylesheets/bootstrap.css */ +form div.clearfix.error { + background: #fae5e3; + padding: 10px 0; + margin: -10px 0 10px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +/* line 731, ../../app/assets/stylesheets/bootstrap.css */ +form div.clearfix.error > label, form div.clearfix.error span.help-inline, form div.clearfix.error span.help-block { + color: #9d261d; +} + +/* line 734, ../../app/assets/stylesheets/bootstrap.css */ +form div.clearfix.error input, form div.clearfix.error textarea { + border-color: #c87872; + -webkit-box-shadow: 0 0 3px rgba(171, 41, 32, 0.25); + -moz-box-shadow: 0 0 3px rgba(171, 41, 32, 0.25); + box-shadow: 0 0 3px rgba(171, 41, 32, 0.25); +} + +/* line 740, ../../app/assets/stylesheets/bootstrap.css */ +form div.clearfix.error input:focus, form div.clearfix.error textarea:focus { + border-color: #b9554d; + -webkit-box-shadow: 0 0 6px rgba(171, 41, 32, 0.5); + -moz-box-shadow: 0 0 6px rgba(171, 41, 32, 0.5); + box-shadow: 0 0 6px rgba(171, 41, 32, 0.5); +} + +/* line 746, ../../app/assets/stylesheets/bootstrap.css */ +form div.clearfix.error .input-prepend span.add-on, form div.clearfix.error .input-append span.add-on { + background: #f4c8c5; + border-color: #c87872; + color: #b9554d; +} + +/* line 754, ../../app/assets/stylesheets/bootstrap.css */ +.input-mini, +input.mini, +textarea.mini, +select.mini { + width: 60px; +} + +/* line 760, ../../app/assets/stylesheets/bootstrap.css */ +.input-small, +input.small, +textarea.small, +select.small { + width: 90px; +} + +/* line 766, ../../app/assets/stylesheets/bootstrap.css */ +.input-medium, +input.medium, +textarea.medium, +select.medium { + width: 150px; +} + +/* line 772, ../../app/assets/stylesheets/bootstrap.css */ +.input-large, +input.large, +textarea.large, +select.large { + width: 210px; +} + +/* line 778, ../../app/assets/stylesheets/bootstrap.css */ +.input-xlarge, +input.xlarge, +textarea.xlarge, +select.xlarge { + width: 270px; +} + +/* line 784, ../../app/assets/stylesheets/bootstrap.css */ +.input-xxlarge, +input.xxlarge, +textarea.xxlarge, +select.xxlarge { + width: 530px; +} + +/* line 787, ../../app/assets/stylesheets/bootstrap.css */ +textarea.xxlarge { + overflow-y: auto; +} + +/* line 790, ../../app/assets/stylesheets/bootstrap.css */ +input.span1, textarea.span1, select.span1 { + display: inline-block; + float: none; + width: 30px; + margin-left: 0; +} + +/* line 796, ../../app/assets/stylesheets/bootstrap.css */ +input.span2, textarea.span2, select.span2 { + display: inline-block; + float: none; + width: 90px; + margin-left: 0; +} + +/* line 802, ../../app/assets/stylesheets/bootstrap.css */ +input.span3, textarea.span3, select.span3 { + display: inline-block; + float: none; + width: 150px; + margin-left: 0; +} + +/* line 808, ../../app/assets/stylesheets/bootstrap.css */ +input.span4, textarea.span4, select.span4 { + display: inline-block; + float: none; + width: 210px; + margin-left: 0; +} + +/* line 814, ../../app/assets/stylesheets/bootstrap.css */ +input.span5, textarea.span5, select.span5 { + display: inline-block; + float: none; + width: 270px; + margin-left: 0; +} + +/* line 820, ../../app/assets/stylesheets/bootstrap.css */ +input.span6, textarea.span6, select.span6 { + display: inline-block; + float: none; + width: 330px; + margin-left: 0; +} + +/* line 826, ../../app/assets/stylesheets/bootstrap.css */ +input.span7, textarea.span7, select.span7 { + display: inline-block; + float: none; + width: 390px; + margin-left: 0; +} + +/* line 832, ../../app/assets/stylesheets/bootstrap.css */ +input.span8, textarea.span8, select.span8 { + display: inline-block; + float: none; + width: 450px; + margin-left: 0; +} + +/* line 838, ../../app/assets/stylesheets/bootstrap.css */ +input.span9, textarea.span9, select.span9 { + display: inline-block; + float: none; + width: 510px; + margin-left: 0; +} + +/* line 844, ../../app/assets/stylesheets/bootstrap.css */ +input.span10, textarea.span10, select.span10 { + display: inline-block; + float: none; + width: 570px; + margin-left: 0; +} + +/* line 850, ../../app/assets/stylesheets/bootstrap.css */ +input.span11, textarea.span11, select.span11 { + display: inline-block; + float: none; + width: 630px; + margin-left: 0; +} + +/* line 856, ../../app/assets/stylesheets/bootstrap.css */ +input.span12, textarea.span12, select.span12 { + display: inline-block; + float: none; + width: 690px; + margin-left: 0; +} + +/* line 862, ../../app/assets/stylesheets/bootstrap.css */ +input.span13, textarea.span13, select.span13 { + display: inline-block; + float: none; + width: 750px; + margin-left: 0; +} + +/* line 868, ../../app/assets/stylesheets/bootstrap.css */ +input.span14, textarea.span14, select.span14 { + display: inline-block; + float: none; + width: 810px; + margin-left: 0; +} + +/* line 874, ../../app/assets/stylesheets/bootstrap.css */ +input.span15, textarea.span15, select.span15 { + display: inline-block; + float: none; + width: 870px; + margin-left: 0; +} + +/* line 880, ../../app/assets/stylesheets/bootstrap.css */ +input.span16, textarea.span16, select.span16 { + display: inline-block; + float: none; + width: 930px; + margin-left: 0; +} + +/* line 891, ../../app/assets/stylesheets/bootstrap.css */ +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + background-color: #f5f5f5; + border-color: #ddd; + cursor: not-allowed; +} + +/* line 896, ../../app/assets/stylesheets/bootstrap.css */ +.actions { + background: #f5f5f5; + margin-top: 18px; + margin-bottom: 18px; + padding: 17px 20px 18px 150px; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; +} + +/* line 906, ../../app/assets/stylesheets/bootstrap.css */ +.actions .secondary-action { + float: right; +} + +/* line 909, ../../app/assets/stylesheets/bootstrap.css */ +.actions .secondary-action a { + line-height: 30px; +} + +/* line 912, ../../app/assets/stylesheets/bootstrap.css */ +.actions .secondary-action a:hover { + text-decoration: underline; +} + +/* line 915, ../../app/assets/stylesheets/bootstrap.css */ +.help-inline, .help-block { + font-size: 11px; + line-height: 18px; + color: #bfbfbf; +} + +/* line 920, ../../app/assets/stylesheets/bootstrap.css */ +.help-inline { + padding-left: 5px; + *position: relative; + /* IE6-7 */ + *top: -5px; + /* IE6-7 */ +} + +/* line 929, ../../app/assets/stylesheets/bootstrap.css */ +.help-block { + display: block; + max-width: 600px; +} + +/* line 933, ../../app/assets/stylesheets/bootstrap.css */ +.inline-inputs { + color: #808080; +} + +/* line 936, ../../app/assets/stylesheets/bootstrap.css */ +.inline-inputs span, .inline-inputs input { + display: inline-block; +} + +/* line 939, ../../app/assets/stylesheets/bootstrap.css */ +.inline-inputs input.mini { + width: 60px; +} + +/* line 942, ../../app/assets/stylesheets/bootstrap.css */ +.inline-inputs input.small { + width: 90px; +} + +/* line 945, ../../app/assets/stylesheets/bootstrap.css */ +.inline-inputs span { + padding: 0 2px 0 1px; +} + +/* line 948, ../../app/assets/stylesheets/bootstrap.css */ +.input-prepend input, .input-append input { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +/* line 953, ../../app/assets/stylesheets/bootstrap.css */ +.input-prepend .add-on, .input-append .add-on { + position: relative; + background: #f5f5f5; + border: 1px solid #ccc; + z-index: 2; + float: left; + display: block; + width: auto; + min-width: 16px; + height: 18px; + padding: 4px 4px 4px 5px; + margin-right: -1px; + font-weight: normal; + line-height: 18px; + color: #bfbfbf; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +/* line 974, ../../app/assets/stylesheets/bootstrap.css */ +.input-prepend .active, .input-append .active { + background: #a9dba9; + border-color: #46a546; +} + +/* line 978, ../../app/assets/stylesheets/bootstrap.css */ +.input-prepend .add-on { + *margin-top: 1px; + /* IE6-7 */ +} + +/* line 983, ../../app/assets/stylesheets/bootstrap.css */ +.input-append input { + float: left; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +/* line 989, ../../app/assets/stylesheets/bootstrap.css */ +.input-append .add-on { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + margin-right: 0; + margin-left: -1px; +} + +/* line 996, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list { + margin: 0 0 5px; + width: 100%; +} + +/* line 1000, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list li { + display: block; + padding: 0; + width: 100%; +} + +/* line 1005, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list label { + display: block; + float: none; + width: auto; + padding: 0; + line-height: 18px; + text-align: left; + white-space: normal; +} + +/* line 1014, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list label strong { + color: #808080; +} + +/* line 1017, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list label small { + font-size: 11px; + font-weight: normal; +} + +/* line 1021, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list .inputs-list { + margin-left: 25px; + margin-bottom: 10px; + padding-top: 0; +} + +/* line 1026, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list:first-child { + padding-top: 6px; +} + +/* line 1029, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list li + li { + padding-top: 2px; +} + +/* line 1032, ../../app/assets/stylesheets/bootstrap.css */ +.inputs-list input[type=radio], .inputs-list input[type=checkbox] { + margin-bottom: 0; +} + +/* line 1035, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked { + padding-left: 20px; +} + +/* line 1038, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked fieldset { + padding-top: 9px; +} + +/* line 1041, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked legend { + padding-left: 0; +} + +/* line 1044, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked label { + display: block; + float: none; + width: auto; + font-weight: bold; + text-align: left; + line-height: 20px; + padding-top: 0; +} + +/* line 1053, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked .clearfix { + margin-bottom: 9px; +} + +/* line 1056, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked .clearfix div.input { + margin-left: 0; +} + +/* line 1059, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked .inputs-list { + margin-bottom: 0; +} + +/* line 1062, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked .inputs-list li { + padding-top: 0; +} + +/* line 1065, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked .inputs-list li label { + font-weight: normal; + padding-top: 0; +} + +/* line 1069, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked div.clearfix.error { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + margin-top: 0; + margin-left: -10px; +} + +/* line 1076, ../../app/assets/stylesheets/bootstrap.css */ +.form-stacked .actions { + margin-left: -20px; + padding-left: 20px; +} + +/* + * Tables.less + * Tables for, you guessed it, tabular data + * ---------------------------------------- */ +/* line 1084, ../../app/assets/stylesheets/bootstrap.css */ +table { + width: 100%; + margin-bottom: 18px; + padding: 0; + border-collapse: separate; + *border-collapse: collapse; + /* IE7, collapse table to remove spacing */ + font-size: 13px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +/* line 1098, ../../app/assets/stylesheets/bootstrap.css */ +table th, table td { + padding: 10px 10px 9px; + line-height: 18px; + text-align: left; +} + +/* line 1103, ../../app/assets/stylesheets/bootstrap.css */ +table th { + padding-top: 9px; + font-weight: bold; + vertical-align: middle; + border-bottom: 1px solid #ddd; +} + +/* line 1109, ../../app/assets/stylesheets/bootstrap.css */ +table td { + vertical-align: top; +} + +/* line 1112, ../../app/assets/stylesheets/bootstrap.css */ +table th + th, table td + td { + border-left: 1px solid #ddd; +} + +/* line 1115, ../../app/assets/stylesheets/bootstrap.css */ +table tr + tr td { + border-top: 1px solid #ddd; +} + +/* line 1118, ../../app/assets/stylesheets/bootstrap.css */ +table tbody tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} + +/* line 1123, ../../app/assets/stylesheets/bootstrap.css */ +table tbody tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} + +/* line 1128, ../../app/assets/stylesheets/bootstrap.css */ +table tbody tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} + +/* line 1133, ../../app/assets/stylesheets/bootstrap.css */ +table tbody tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} + +/* line 1138, ../../app/assets/stylesheets/bootstrap.css */ +.zebra-striped tbody tr:nth-child(odd) td { + background-color: #f9f9f9; +} + +/* line 1141, ../../app/assets/stylesheets/bootstrap.css */ +.zebra-striped tbody tr:hover td { + background-color: #f5f5f5; +} + +/* line 1144, ../../app/assets/stylesheets/bootstrap.css */ +table .header { + cursor: pointer; +} + +/* line 1147, ../../app/assets/stylesheets/bootstrap.css */ +table .header:after { + content: ""; + float: right; + margin-top: 7px; + border-width: 0 4px 4px; + border-style: solid; + border-color: #000 transparent; + visibility: hidden; +} + +/* line 1156, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp, table .headerSortDown { + background-color: rgba(141, 192, 219, 0.25); + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); +} + +/* line 1160, ../../app/assets/stylesheets/bootstrap.css */ +table .header:hover:after { + visibility: visible; +} + +/* line 1163, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortDown:after, table .headerSortDown:hover:after { + visibility: visible; + filter: alpha(opacity=60); + -khtml-opacity: 0.6; + -moz-opacity: 0.6; + opacity: 0.6; +} + +/* line 1170, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp:after { + border-bottom: none; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #000; + visibility: visible; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + filter: alpha(opacity=60); + -khtml-opacity: 0.6; + -moz-opacity: 0.6; + opacity: 0.6; +} + +/* line 1184, ../../app/assets/stylesheets/bootstrap.css */ +table .blue { + color: #049cdb; + border-bottom-color: #049cdb; +} + +/* line 1188, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp.blue, table .headerSortDown.blue { + background-color: #ade6fe; +} + +/* line 1191, ../../app/assets/stylesheets/bootstrap.css */ +table .green { + color: #46a546; + border-bottom-color: #46a546; +} + +/* line 1195, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp.green, table .headerSortDown.green { + background-color: #cdeacd; +} + +/* line 1198, ../../app/assets/stylesheets/bootstrap.css */ +table .red { + color: #9d261d; + border-bottom-color: #9d261d; +} + +/* line 1202, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp.red, table .headerSortDown.red { + background-color: #f4c8c5; +} + +/* line 1205, ../../app/assets/stylesheets/bootstrap.css */ +table .yellow { + color: #ffc40d; + border-bottom-color: #ffc40d; +} + +/* line 1209, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp.yellow, table .headerSortDown.yellow { + background-color: #fff6d9; +} + +/* line 1212, ../../app/assets/stylesheets/bootstrap.css */ +table .orange { + color: #f89406; + border-bottom-color: #f89406; +} + +/* line 1216, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp.orange, table .headerSortDown.orange { + background-color: #fee9cc; +} + +/* line 1219, ../../app/assets/stylesheets/bootstrap.css */ +table .purple { + color: #7a43b6; + border-bottom-color: #7a43b6; +} + +/* line 1223, ../../app/assets/stylesheets/bootstrap.css */ +table .headerSortUp.purple, table .headerSortDown.purple { + background-color: #e2d5f0; +} + +/* Patterns.less + * Repeatable UI elements outside the base styles provided from the scaffolding + * ---------------------------------------------------------------------------- */ +/* line 1229, ../../app/assets/stylesheets/bootstrap.css */ +.topbar { + height: 40px; + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 10000; + overflow: visible; +} + +/* line 1238, ../../app/assets/stylesheets/bootstrap.css */ +.topbar a { + color: #bfbfbf; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +/* line 1242, ../../app/assets/stylesheets/bootstrap.css */ +.topbar h3 a:hover, .topbar .brand a:hover, .topbar ul .active > a { + background-color: #333; + background-color: rgba(255, 255, 255, 0.05); + color: #ffffff; + text-decoration: none; +} + +/* line 1248, ../../app/assets/stylesheets/bootstrap.css */ +.topbar h3 { + position: relative; +} + +/* line 1251, ../../app/assets/stylesheets/bootstrap.css */ +.topbar h3 a, .topbar .brand { + float: left; + display: block; + padding: 8px 20px 12px; + margin-left: -20px; + color: #ffffff; + font-size: 20px; + font-weight: 200; + line-height: 1; +} + +/* line 1261, ../../app/assets/stylesheets/bootstrap.css */ +.topbar p { + margin: 0; + line-height: 40px; +} + +/* line 1265, ../../app/assets/stylesheets/bootstrap.css */ +.topbar p a:hover { + background-color: transparent; + color: #ffffff; +} + +/* line 1269, ../../app/assets/stylesheets/bootstrap.css */ +.topbar form { + float: left; + margin: 5px 0 0 0; + position: relative; + filter: alpha(opacity=100); + -khtml-opacity: 1; + -moz-opacity: 1; + opacity: 1; +} + +/* line 1278, ../../app/assets/stylesheets/bootstrap.css */ +.topbar form.pull-right { + float: right; +} + +/* line 1281, ../../app/assets/stylesheets/bootstrap.css */ +.topbar input { + background-color: #444; + background-color: rgba(255, 255, 255, 0.3); + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: normal; + font-weight: 13px; + line-height: 1; + padding: 4px 9px; + color: #ffffff; + color: rgba(255, 255, 255, 0.75); + border: 1px solid #111; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} + +/* line 1304, ../../app/assets/stylesheets/bootstrap.css */ +.topbar input:-moz-placeholder { + color: #e6e6e6; +} + +/* line 1307, ../../app/assets/stylesheets/bootstrap.css */ +.topbar input::-webkit-input-placeholder { + color: #e6e6e6; +} + +/* line 1310, ../../app/assets/stylesheets/bootstrap.css */ +.topbar input:hover { + background-color: #bfbfbf; + background-color: rgba(255, 255, 255, 0.5); + color: #ffffff; +} + +/* line 1315, ../../app/assets/stylesheets/bootstrap.css */ +.topbar input:focus, .topbar input.focused { + outline: 0; + background-color: #ffffff; + color: #404040; + text-shadow: 0 1px 0 #ffffff; + border: 0; + padding: 5px 10px; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +/* line 1326, ../../app/assets/stylesheets/bootstrap.css */ +.topbar-inner, .topbar .fill { + background-color: #222; + background-color: #222222; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222)); + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear, top, #333333, #222222; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} + +/* line 1342, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul, .nav { + display: block; + float: left; + margin: 0 10px 0 0; + position: relative; + left: 0; +} + +/* line 1349, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul > li, .nav > li { + display: block; + float: left; +} + +/* line 1353, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul a, .nav a { + display: block; + float: none; + padding: 10px 10px 11px; + line-height: 19px; + text-decoration: none; +} + +/* line 1360, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul a:hover, .nav a:hover { + color: #ffffff; + text-decoration: none; +} + +/* line 1364, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .active > a, .nav .active > a { + background-color: #222; + background-color: rgba(0, 0, 0, 0.5); +} + +/* line 1368, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul.secondary-nav, .nav.secondary-nav { + float: right; + margin-left: 10px; + margin-right: 0; +} + +/* line 1376, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul.secondary-nav .menu-dropdown, +.nav.secondary-nav .menu-dropdown, +.topbar div > ul.secondary-nav .dropdown-menu, +.nav.secondary-nav .dropdown-menu { + right: 0; + border: 0; +} + +/* line 1387, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul a.menu:hover, +.nav a.menu:hover, +.topbar div > ul li.open .menu, +.nav li.open .menu, +.topbar div > ul .dropdown-toggle:hover, +.nav .dropdown-toggle:hover, +.topbar div > ul .dropdown.open .dropdown-toggle, +.nav .dropdown.open .dropdown-toggle { + background: #444; + background: rgba(255, 255, 255, 0.05); +} + +/* line 1394, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .menu-dropdown, +.nav .menu-dropdown, +.topbar div > ul .dropdown-menu, +.nav .dropdown-menu { + background-color: #333; +} + +/* line 1404, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .menu-dropdown a.menu, +.nav .menu-dropdown a.menu, +.topbar div > ul .dropdown-menu a.menu, +.nav .dropdown-menu a.menu, +.topbar div > ul .menu-dropdown .dropdown-toggle, +.nav .menu-dropdown .dropdown-toggle, +.topbar div > ul .dropdown-menu .dropdown-toggle, +.nav .dropdown-menu .dropdown-toggle { + color: #ffffff; +} + +/* line 1414, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .menu-dropdown a.menu.open, +.nav .menu-dropdown a.menu.open, +.topbar div > ul .dropdown-menu a.menu.open, +.nav .dropdown-menu a.menu.open, +.topbar div > ul .menu-dropdown .dropdown-toggle.open, +.nav .menu-dropdown .dropdown-toggle.open, +.topbar div > ul .dropdown-menu .dropdown-toggle.open, +.nav .dropdown-menu .dropdown-toggle.open { + background: #444; + background: rgba(255, 255, 255, 0.05); +} + +/* line 1421, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .menu-dropdown li a, +.nav .menu-dropdown li a, +.topbar div > ul .dropdown-menu li a, +.nav .dropdown-menu li a { + color: #999; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} + +/* line 1428, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .menu-dropdown li a:hover, +.nav .menu-dropdown li a:hover, +.topbar div > ul .dropdown-menu li a:hover, +.nav .dropdown-menu li a:hover { + background-color: #191919; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919)); + background-image: -moz-linear-gradient(top, #292929, #191919); + background-image: -ms-linear-gradient(top, #292929, #191919); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919)); + background-image: -webkit-linear-gradient(top, #292929, #191919); + background-image: -o-linear-gradient(top, #292929, #191919); + background-image: linear, top, #292929, #191919; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0); + color: #ffffff; +} + +/* line 1444, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .menu-dropdown .active a, +.nav .menu-dropdown .active a, +.topbar div > ul .dropdown-menu .active a, +.nav .dropdown-menu .active a { + color: #ffffff; +} + +/* line 1450, ../../app/assets/stylesheets/bootstrap.css */ +.topbar div > ul .menu-dropdown .divider, +.nav .menu-dropdown .divider, +.topbar div > ul .dropdown-menu .divider, +.nav .dropdown-menu .divider { + background-color: #222; + border-color: #444; +} + +/* line 1454, ../../app/assets/stylesheets/bootstrap.css */ +.topbar ul .menu-dropdown li a, .topbar ul .dropdown-menu li a { + padding: 4px 15px; +} + +/* line 1457, ../../app/assets/stylesheets/bootstrap.css */ +li.menu, .dropdown { + position: relative; +} + +/* line 1460, ../../app/assets/stylesheets/bootstrap.css */ +a.menu:after, .dropdown-toggle:after { + width: 0; + height: 0; + display: inline-block; + content: "↓"; + text-indent: -99999px; + vertical-align: top; + margin-top: 8px; + margin-left: 4px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #ffffff; + filter: alpha(opacity=50); + -khtml-opacity: 0.5; + -moz-opacity: 0.5; + opacity: 0.5; +} + +/* line 1477, ../../app/assets/stylesheets/bootstrap.css */ +.menu-dropdown, .dropdown-menu { + background-color: #ffffff; + float: left; + display: none; + position: absolute; + top: 40px; + z-index: 900; + min-width: 160px; + max-width: 220px; + _width: 160px; + margin-left: 0; + margin-right: 0; + padding: 6px 0; + zoom: 1; + border-color: #999; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 0 1px 1px; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +/* line 1505, ../../app/assets/stylesheets/bootstrap.css */ +.menu-dropdown li, .dropdown-menu li { + float: none; + display: block; + background-color: none; +} + +/* line 1510, ../../app/assets/stylesheets/bootstrap.css */ +.menu-dropdown .divider, .dropdown-menu .divider { + height: 1px; + margin: 5px 0; + overflow: hidden; + background-color: #eee; + border-bottom: 1px solid #ffffff; +} + +/* line 1517, ../../app/assets/stylesheets/bootstrap.css */ +.topbar .dropdown-menu a, .dropdown-menu a { + display: block; + padding: 4px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #808080; + text-shadow: 0 1px 0 #ffffff; +} + +/* line 1526, ../../app/assets/stylesheets/bootstrap.css */ +.topbar .dropdown-menu a:hover, .dropdown-menu a:hover { + background-color: #dddddd; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd)); + background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); + background-image: -ms-linear-gradient(top, #eeeeee, #dddddd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd)); + background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); + background-image: -o-linear-gradient(top, #eeeeee, #dddddd); + background-image: linear, top, #eeeeee, #dddddd; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0); + color: #404040; + text-decoration: none; + -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025); +} + +/* line 1546, ../../app/assets/stylesheets/bootstrap.css */ +.open .menu, +.dropdown.open .menu, +.open .dropdown-toggle, +.dropdown.open .dropdown-toggle { + color: #ffffff; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} + +/* line 1554, ../../app/assets/stylesheets/bootstrap.css */ +.open .menu-dropdown, +.dropdown.open .menu-dropdown, +.open .dropdown-menu, +.dropdown.open .dropdown-menu { + display: block; +} + +/* line 1557, ../../app/assets/stylesheets/bootstrap.css */ +.tabs, .pills { + margin: 0 0 20px; + padding: 0; + list-style: none; + zoom: 1; +} + +/* line 1566, ../../app/assets/stylesheets/bootstrap.css */ +.tabs:before, +.pills:before, +.tabs:after, +.pills:after { + display: table; + content: ""; + zoom: 1; + *display: inline; +} + +/* line 1572, ../../app/assets/stylesheets/bootstrap.css */ +.tabs:after, .pills:after { + clear: both; +} + +/* line 1575, ../../app/assets/stylesheets/bootstrap.css */ +.tabs > li, .pills > li { + float: left; +} + +/* line 1578, ../../app/assets/stylesheets/bootstrap.css */ +.tabs > li > a, .pills > li > a { + display: block; +} + +/* line 1581, ../../app/assets/stylesheets/bootstrap.css */ +.tabs { + float: left; + width: 100%; + border-bottom: 1px solid #ddd; +} + +/* line 1586, ../../app/assets/stylesheets/bootstrap.css */ +.tabs > li { + position: relative; + top: 1px; +} + +/* line 1590, ../../app/assets/stylesheets/bootstrap.css */ +.tabs > li > a { + padding: 0 15px; + margin-right: 2px; + line-height: 36px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +/* line 1599, ../../app/assets/stylesheets/bootstrap.css */ +.tabs > li > a:hover { + text-decoration: none; + background-color: #eee; + border-color: #eee #eee #ddd; +} + +/* line 1604, ../../app/assets/stylesheets/bootstrap.css */ +.tabs > li.active > a { + color: #808080; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +/* line 1610, ../../app/assets/stylesheets/bootstrap.css */ +.tabs .menu-dropdown, .tabs .dropdown-menu { + top: 35px; + border-width: 1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +/* line 1617, ../../app/assets/stylesheets/bootstrap.css */ +.tabs a.menu:after, .tabs .dropdown-toggle:after { + border-top-color: #999; + margin-top: 15px; + margin-left: 5px; +} + +/* line 1622, ../../app/assets/stylesheets/bootstrap.css */ +.tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle { + border-color: #999; +} + +/* line 1625, ../../app/assets/stylesheets/bootstrap.css */ +.tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after { + border-top-color: #555; +} + +/* line 1628, ../../app/assets/stylesheets/bootstrap.css */ +.tab-content { + clear: both; +} + +/* line 1631, ../../app/assets/stylesheets/bootstrap.css */ +.pills a { + margin: 5px 3px 5px 0; + padding: 0 15px; + text-shadow: 0 1px 1px #ffffff; + line-height: 30px; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* line 1640, ../../app/assets/stylesheets/bootstrap.css */ +.pills a:hover { + background: #00438a; + color: #ffffff; + text-decoration: none; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); +} + +/* line 1646, ../../app/assets/stylesheets/bootstrap.css */ +.pills .active a { + background: #0069d6; + color: #ffffff; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); +} + +/* line 1651, ../../app/assets/stylesheets/bootstrap.css */ +.tab-content > *, .pill-content > * { + display: none; +} + +/* line 1654, ../../app/assets/stylesheets/bootstrap.css */ +.tab-content > .active, .pill-content > .active { + display: block; +} + +/* line 1657, ../../app/assets/stylesheets/bootstrap.css */ +.breadcrumb { + margin: 0 0 18px; + padding: 7px 14px; + background-color: #f5f5f5; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(white), to(whitesmoke)); + background-image: -moz-linear-gradient(top, white, whitesmoke); + background-image: -ms-linear-gradient(top, white, whitesmoke); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, whitesmoke)); + background-image: -webkit-linear-gradient(top, white, whitesmoke); + background-image: -o-linear-gradient(top, white, whitesmoke); + background-image: linear, top, white, whitesmoke; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +/* line 1678, ../../app/assets/stylesheets/bootstrap.css */ +.breadcrumb li { + display: inline; + text-shadow: 0 1px 0 #ffffff; +} + +/* line 1682, ../../app/assets/stylesheets/bootstrap.css */ +.breadcrumb .divider { + padding: 0 5px; + color: #bfbfbf; +} + +/* line 1686, ../../app/assets/stylesheets/bootstrap.css */ +.breadcrumb .active a { + color: #404040; +} + +/* line 1689, ../../app/assets/stylesheets/bootstrap.css */ +.hero-unit { + background-color: #f5f5f5; + margin-bottom: 30px; + padding: 60px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +/* line 1697, ../../app/assets/stylesheets/bootstrap.css */ +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; +} + +/* line 1703, ../../app/assets/stylesheets/bootstrap.css */ +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; +} + +/* line 1708, ../../app/assets/stylesheets/bootstrap.css */ +footer { + margin-top: 17px; + padding-top: 17px; + border-top: 1px solid #eee; +} + +/* line 1713, ../../app/assets/stylesheets/bootstrap.css */ +.page-header { + margin-bottom: 17px; + border-bottom: 1px solid #ddd; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +/* line 1720, ../../app/assets/stylesheets/bootstrap.css */ +.page-header h1 { + margin-bottom: 8px; +} + +/* line 1738, ../../app/assets/stylesheets/bootstrap.css */ +.btn.danger, +.alert-message.danger, +.btn.danger:hover, +.alert-message.danger:hover, +.btn.error, +.alert-message.error, +.btn.error:hover, +.alert-message.error:hover, +.btn.success, +.alert-message.success, +.btn.success:hover, +.alert-message.success:hover, +.btn.info, +.alert-message.info, +.btn.info:hover, +.alert-message.info:hover { + color: #ffffff; +} + +/* line 1744, ../../app/assets/stylesheets/bootstrap.css */ +.btn.danger, +.alert-message.danger, +.btn.error, +.alert-message.error { + background-color: #c43c35; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear, top, #ee5f5b, #c43c35; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #c43c35 #c43c35 #882a25; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} + +/* line 1759, ../../app/assets/stylesheets/bootstrap.css */ +.btn.success, .alert-message.success { + background-color: #57a957; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957)); + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear, top, #62c462, #57a957; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #57a957 #57a957 #3d773d; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} + +/* line 1774, ../../app/assets/stylesheets/bootstrap.css */ +.btn.info, .alert-message.info { + background-color: #339bb9; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9)); + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear, top, #5bc0de, #339bb9; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #339bb9 #339bb9 #22697d; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} + +/* line 1789, ../../app/assets/stylesheets/bootstrap.css */ +.btn { + cursor: pointer; + display: inline-block; + background-color: #e6e6e6; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(white), color-stop(25%, white), to(#e6e6e6)); + background-image: -webkit-linear-gradient(white, white 25%, #e6e6e6); + background-image: -moz-linear-gradient(top, white, white 25%, #e6e6e6); + background-image: -ms-linear-gradient(white, white 25%, #e6e6e6); + background-image: -o-linear-gradient(white, white 25%, #e6e6e6); + background-image: linear, top, white, white 25%, #e6e6e6; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + padding: 5px 14px 6px; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + color: #333; + font-size: 13px; + line-height: normal; + border: 1px solid #ccc; + border-bottom-color: #bbb; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -webkit-transition: 0.1s linear all; + -moz-transition: 0.1s linear all; + -ms-transition: 0.1s linear all; + -o-transition: 0.1s linear all; + transition: 0.1s linear all; +} + +/* line 1820, ../../app/assets/stylesheets/bootstrap.css */ +.btn:hover { + background-position: 0 -15px; + color: #333; + text-decoration: none; +} + +/* line 1825, ../../app/assets/stylesheets/bootstrap.css */ +.btn:focus { + outline: 1px dotted #666; +} + +/* line 1828, ../../app/assets/stylesheets/bootstrap.css */ +.btn.primary { + color: #ffffff; + background-color: #0064cd; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); + background-image: -moz-linear-gradient(top, #049cdb, #0064cd); + background-image: -ms-linear-gradient(top, #049cdb, #0064cd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); + background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); + background-image: -o-linear-gradient(top, #049cdb, #0064cd); + background-image: linear, top, #049cdb, #0064cd; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #0064cd #0064cd #003f81; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} + +/* line 1844, ../../app/assets/stylesheets/bootstrap.css */ +.btn:active { + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +/* line 1849, ../../app/assets/stylesheets/bootstrap.css */ +.btn.disabled { + cursor: default; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=65); + -khtml-opacity: 0.65; + -moz-opacity: 0.65; + opacity: 0.65; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/* line 1861, ../../app/assets/stylesheets/bootstrap.css */ +.btn[disabled] { + cursor: default; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=65); + -khtml-opacity: 0.65; + -moz-opacity: 0.65; + opacity: 0.65; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/* line 1873, ../../app/assets/stylesheets/bootstrap.css */ +.btn.large { + font-size: 15px; + line-height: normal; + padding: 9px 14px 9px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +/* line 1881, ../../app/assets/stylesheets/bootstrap.css */ +.btn.small { + padding: 7px 9px 7px; + font-size: 11px; +} + +/* line 1885, ../../app/assets/stylesheets/bootstrap.css */ +:root .alert-message, :root .btn { + border-radius: 0 \0; +} + +/* line 1888, ../../app/assets/stylesheets/bootstrap.css */ +button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +/* line 1892, ../../app/assets/stylesheets/bootstrap.css */ +.close { + float: right; + color: #000000; + font-size: 20px; + font-weight: bold; + line-height: 13.5px; + text-shadow: 0 1px 0 #ffffff; + filter: alpha(opacity=20); + -khtml-opacity: 0.2; + -moz-opacity: 0.2; + opacity: 0.2; +} + +/* line 1904, ../../app/assets/stylesheets/bootstrap.css */ +.close:hover { + color: #000000; + text-decoration: none; + filter: alpha(opacity=40); + -khtml-opacity: 0.4; + -moz-opacity: 0.4; + opacity: 0.4; +} + +/* line 1912, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message { + position: relative; + padding: 7px 15px; + margin-bottom: 18px; + color: #404040; + background-color: #eedc94; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94)); + background-image: -moz-linear-gradient(top, #fceec1, #eedc94); + background-image: -ms-linear-gradient(top, #fceec1, #eedc94); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94)); + background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); + background-image: -o-linear-gradient(top, #fceec1, #eedc94); + background-image: linear, top, #fceec1, #eedc94; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #eedc94 #eedc94 #e4c652; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + border-width: 1px; + border-style: solid; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); +} + +/* line 1940, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message .close { + *margin-top: 3px; + /* IE7 spacing */ +} + +/* line 1945, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message h5 { + line-height: 18px; +} + +/* line 1948, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message p { + margin-bottom: 0; +} + +/* line 1951, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message div { + margin-top: 5px; + margin-bottom: 2px; + line-height: 28px; +} + +/* line 1956, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message .btn { + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); +} + +/* line 1961, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message { + background-image: none; + background-color: #fdf5d9; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + padding: 14px; + border-color: #fceec1; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/* line 1971, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message ul, .alert-message.block-message p { + margin-right: 30px; +} + +/* line 1974, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message ul { + margin-bottom: 0; +} + +/* line 1977, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message li { + color: #404040; +} + +/* line 1980, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message .alert-actions { + margin-top: 5px; +} + +/* line 1983, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message.error, .alert-message.block-message.success, .alert-message.block-message.info { + color: #404040; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +/* line 1987, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message.error { + background-color: #fddfde; + border-color: #fbc7c6; +} + +/* line 1991, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message.success { + background-color: #d1eed1; + border-color: #bfe7bf; +} + +/* line 1995, ../../app/assets/stylesheets/bootstrap.css */ +.alert-message.block-message.info { + background-color: #ddf4fb; + border-color: #c6edf9; +} + +/* line 1999, ../../app/assets/stylesheets/bootstrap.css */ +.pagination { + height: 36px; + margin: 18px 0; +} + +/* line 2003, ../../app/assets/stylesheets/bootstrap.css */ +.pagination ul { + float: left; + margin: 0; + border: 1px solid #ddd; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +/* line 2015, ../../app/assets/stylesheets/bootstrap.css */ +.pagination li { + display: inline; +} + +/* line 2018, ../../app/assets/stylesheets/bootstrap.css */ +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + border-right: 1px solid; + border-right-color: #ddd; + border-right-color: rgba(0, 0, 0, 0.15); + *border-right-color: #ddd; + /* IE6-7 */ + text-decoration: none; +} + +/* line 2030, ../../app/assets/stylesheets/bootstrap.css */ +.pagination a:hover, .pagination .active a { + background-color: #c7eefe; +} + +/* line 2033, ../../app/assets/stylesheets/bootstrap.css */ +.pagination .disabled a, .pagination .disabled a:hover { + background-color: transparent; + color: #bfbfbf; +} + +/* line 2037, ../../app/assets/stylesheets/bootstrap.css */ +.pagination .next a { + border: 0; +} + +/* line 2040, ../../app/assets/stylesheets/bootstrap.css */ +.well { + background-color: #f5f5f5; + margin-bottom: 20px; + padding: 19px; + min-height: 20px; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +/* line 2054, ../../app/assets/stylesheets/bootstrap.css */ +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +/* line 2058, ../../app/assets/stylesheets/bootstrap.css */ +.modal-backdrop { + background-color: #000000; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 10000; +} + +/* line 2067, ../../app/assets/stylesheets/bootstrap.css */ +.modal-backdrop.fade { + opacity: 0; +} + +/* line 2070, ../../app/assets/stylesheets/bootstrap.css */ +.modal-backdrop, .modal-backdrop.fade.in { + filter: alpha(opacity=80); + -khtml-opacity: 0.8; + -moz-opacity: 0.8; + opacity: 0.8; +} + +/* line 2076, ../../app/assets/stylesheets/bootstrap.css */ +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 11000; + width: 560px; + margin: -250px 0 0 -250px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + /* IE6-7 */ + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +/* line 2099, ../../app/assets/stylesheets/bootstrap.css */ +.modal .close { + margin-top: 7px; +} + +/* line 2102, ../../app/assets/stylesheets/bootstrap.css */ +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -ms-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} + +/* line 2110, ../../app/assets/stylesheets/bootstrap.css */ +.modal.fade.in { + top: 50%; +} + +/* line 2113, ../../app/assets/stylesheets/bootstrap.css */ +.modal-header { + border-bottom: 1px solid #eee; + padding: 5px 15px; +} + +/* line 2117, ../../app/assets/stylesheets/bootstrap.css */ +.modal-body { + padding: 15px; +} + +/* line 2120, ../../app/assets/stylesheets/bootstrap.css */ +.modal-footer { + background-color: #f5f5f5; + padding: 14px 15px 15px; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; + zoom: 1; + margin-bottom: 0; +} + +/* line 2133, ../../app/assets/stylesheets/bootstrap.css */ +.modal-footer:before, .modal-footer:after { + display: table; + content: ""; + zoom: 1; + *display: inline; +} + +/* line 2139, ../../app/assets/stylesheets/bootstrap.css */ +.modal-footer:after { + clear: both; +} + +/* line 2142, ../../app/assets/stylesheets/bootstrap.css */ +.modal-footer .btn { + float: right; + margin-left: 5px; +} + +/* line 2146, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy { + display: block; + position: absolute; + visibility: visible; + padding: 5px; + font-size: 11px; + z-index: 1000; + filter: alpha(opacity=80); + -khtml-opacity: 0.8; + -moz-opacity: 0.8; + opacity: 0.8; +} + +/* line 2158, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy.fade.in { + filter: alpha(opacity=80); + -khtml-opacity: 0.8; + -moz-opacity: 0.8; + opacity: 0.8; +} + +/* line 2164, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy.above .twipsy-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} + +/* line 2172, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy.left .twipsy-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +/* line 2180, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy.below .twipsy-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} + +/* line 2188, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy.right .twipsy-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} + +/* line 2196, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy-inner { + padding: 3px 8px; + background-color: #000000; + color: white; + text-align: center; + max-width: 200px; + text-decoration: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +/* line 2207, ../../app/assets/stylesheets/bootstrap.css */ +.twipsy-arrow { + position: absolute; + width: 0; + height: 0; +} + +/* line 2212, ../../app/assets/stylesheets/bootstrap.css */ +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1000; + padding: 5px; + display: none; +} + +/* line 2220, ../../app/assets/stylesheets/bootstrap.css */ +.popover.above .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} + +/* line 2228, ../../app/assets/stylesheets/bootstrap.css */ +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} + +/* line 2236, ../../app/assets/stylesheets/bootstrap.css */ +.popover.below .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} + +/* line 2244, ../../app/assets/stylesheets/bootstrap.css */ +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +/* line 2252, ../../app/assets/stylesheets/bootstrap.css */ +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} + +/* line 2257, ../../app/assets/stylesheets/bootstrap.css */ +.popover .inner { + background-color: #000000; + background-color: rgba(0, 0, 0, 0.8); + padding: 3px; + overflow: hidden; + width: 280px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} + +/* line 2270, ../../app/assets/stylesheets/bootstrap.css */ +.popover .title { + background-color: #f5f5f5; + padding: 9px 15px; + line-height: 1; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + border-bottom: 1px solid #eee; +} + +/* line 2279, ../../app/assets/stylesheets/bootstrap.css */ +.popover .content { + background-color: #ffffff; + padding: 14px; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +/* line 2289, ../../app/assets/stylesheets/bootstrap.css */ +.popover .content p, .popover .content ul, .popover .content ol { + margin-bottom: 0; +} + +/* line 2292, ../../app/assets/stylesheets/bootstrap.css */ +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} + +/* line 2300, ../../app/assets/stylesheets/bootstrap.css */ +.fade.in { + opacity: 1; +} + +/* line 2303, ../../app/assets/stylesheets/bootstrap.css */ +.label { + padding: 1px 3px 2px; + background-color: #bfbfbf; + font-size: 9.75px; + font-weight: bold; + color: #ffffff; + text-transform: uppercase; + white-space: nowrap; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +/* line 2315, ../../app/assets/stylesheets/bootstrap.css */ +.label.important { + background-color: #c43c35; +} + +/* line 2318, ../../app/assets/stylesheets/bootstrap.css */ +.label.warning { + background-color: #f89406; +} + +/* line 2321, ../../app/assets/stylesheets/bootstrap.css */ +.label.success { + background-color: #46a546; +} + +/* line 2324, ../../app/assets/stylesheets/bootstrap.css */ +.label.notice { + background-color: #62cffc; +} + +/* line 2327, ../../app/assets/stylesheets/bootstrap.css */ +.media-grid { + margin-left: -20px; + margin-bottom: 0; + zoom: 1; +} + +/* line 2332, ../../app/assets/stylesheets/bootstrap.css */ +.media-grid:before, .media-grid:after { + display: table; + content: ""; + zoom: 1; + *display: inline; +} + +/* line 2338, ../../app/assets/stylesheets/bootstrap.css */ +.media-grid:after { + clear: both; +} + +/* line 2341, ../../app/assets/stylesheets/bootstrap.css */ +.media-grid li { + display: inline; +} + +/* line 2344, ../../app/assets/stylesheets/bootstrap.css */ +.media-grid a { + float: left; + padding: 4px; + margin: 0 0 20px 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} + +/* line 2356, ../../app/assets/stylesheets/bootstrap.css */ +.media-grid a img { + display: block; +} + +/* line 2359, ../../app/assets/stylesheets/bootstrap.css */ +.media-grid a:hover { + border-color: #0069d6; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +/* line 1, ../../app/assets/stylesheets/bootstrap_codemav.css.scss */ +.topbar div > ul a, .nav a { + font-size: 18px; + margin-top: 6px; +} + +/* line 6, ../../app/assets/stylesheets/bootstrap_codemav.css.scss */ +input { + box-sizing: initial; +} + +/* line 10, ../../app/assets/stylesheets/bootstrap_codemav.css.scss */ +.current_user_photo { + margin-top: 12px; +} + +/* line 14, ../../app/assets/stylesheets/bootstrap_codemav.css.scss */ +table { + border-left: 0px solid #fff; + border-right: 0px solid #fff; +} +/* line 18, ../../app/assets/stylesheets/bootstrap_codemav.css.scss */ +table tr td { + border-left: 0px solid #fff; + border-right: 0px solid #fff; +} + +/* line 3, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#profile h1 .btn { + position: relative; + top: -6px; + left: 15px; +} + +/* line 11, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#profile_pic { + border: 1px solid #b6b6b6; +} + +/* line 17, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points { + margin-left: 0px; + margin-bottom: 65px; +} +/* line 20, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points li { + border-radius: 5px; + -moz-border-radius: 5px; + background: #eaeaea; + color: #818181; + float: left; + text-align: center; + padding: 5px; + margin-right: 5px; + margin-top: 3px; +} +/* line 24, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points li a { + color: #818181; +} +/* line 32, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points li .image { + float: left; +} +/* line 35, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points li .points { + font-weight: bold; + font-size: 13pt; +} +/* line 39, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points li .description { + font-size: 10pt; +} +/* line 43, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points .selected { + background: #373737; + color: white; +} +/* line 46, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +#points .selected a { + color: white; +} + +/* line 53, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.tags .tag { + border-radius: 5px; + -moz-border-radius: 5px; + border: 1px solid #EAEAEA; + padding: 3px; + font-size: 10pt; + float: left; + margin-right: 10px; +} +/* line 54, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.tags .tag .tag_score { + border-radius: 5px; + -moz-border-radius: 5px; + background: #EAEAEA; + float: left; + margin-right: 5px; + color: #686868; + padding: 1px; + font-size: 9pt; + font-weight: bold; +} + +/* line 73, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +section { + margin-bottom: 20px; +} + +/* line 78, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.coder_wall_badges li img { + width: 90px; + height: 90px; +} + +/* line 85, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details h3 { + margin-top: 19px; + margin-bottom: 4px; +} +/* line 89, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details table { + border: 0px solid #333333; + border-top: 1px solid #d0d0d0; +} +/* line 92, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details table tr { + height: 68px; +} +/* line 94, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details table tr td { + border: 0px solid #333333; + border-bottom: 1px solid #d0d0d0; + padding: 6px; +} +/* line 101, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details .repo_description { + font-size: 12px; +} +/* line 104, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details .points { + border-radius: 5px; + -moz-border-radius: 5px; + background: #eaeaea; + color: #818181; + padding: 10px; + margin-right: 10px; + text-align: center; +} +/* line 111, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details .points .number { + font-weight: bold; +} +/* line 114, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.code_details .points .description { + font-size: 12px; +} + +/* line 122, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +table#accounts tr td { + vertical-align: middle; + font-size: 16px; + border-right: 0px solid #fff; + border-left: 0px solid #fff; +} + +/* line 136, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section h3 { + margin-top: 19px; + margin-bottom: 4px; +} +/* line 140, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section table { + border: 0px solid #333333; + border-top: 1px solid #d0d0d0; +} +/* line 143, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section table tr { + height: 68px; +} +/* line 145, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section table tr td { + border: 0px solid #333333; + border-bottom: 1px solid #d0d0d0; + padding: 6px; +} +/* line 152, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section .repo_description { + font-size: 12px; +} +/* line 155, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section .points { + border-radius: 5px; + -moz-border-radius: 5px; + background: #eaeaea; + color: #818181; + padding: 10px; + margin-right: 10px; + text-align: center; +} +/* line 162, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section .points .number { + font-weight: bold; +} +/* line 165, ../../app/assets/stylesheets/bootstrap_profile.css.scss */ +.profile_section .points .description { + font-size: 12px; +} + +/* line 3, ../../app/assets/stylesheets/profile_experience.css.scss */ +#jobs ul li.job { + margin-bottom: 31px; +} + +/* line 4, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results { + margin-bottom: 10px; +} +/* line 6, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results img.profile_pic { + background: #fff; + padding: 3px; + border: 1px solid #eaeaea; +} +/* line 12, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .profile_info .profile_name { + font-size: 16pt; +} +/* line 15, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .profile_info .profile_username { + font-size: 10pt; + margin-top: 5px; +} +/* line 22, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .points_and_tags .points { + margin-bottom: 6px; +} +/* line 24, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .points_and_tags .points li { + border-radius: 5px; + -moz-border-radius: 5px; + background: #eaeaea; + color: #818181; + float: left; + text-align: center; + padding: 5px; + margin-right: 5px; + margin-top: 3px; +} +/* line 33, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .points_and_tags .points li .image { + float: left; +} +/* line 36, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .points_and_tags .points li .points { + font-weight: bold; + font-size: 13pt; + text-align: center; +} +/* line 41, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .points_and_tags .points li .description { + font-size: 10pt; +} +/* line 45, ../../app/assets/stylesheets/profile_search.css.scss */ +.profile_search_results .points_and_tags .points .selected { + background: #373737; + color: white; +} + +/* line 1, ../../app/assets/stylesheets/tags.css.scss */ +ul.tags { + margin-top: 6px; +} +/* line 3, ../../app/assets/stylesheets/tags.css.scss */ +ul.tags li { + border-radius: 5px; + -moz-border-radius: 5px; + border: 1px solid #EAEAEA; + padding: 3px; + font-size: 10pt; + display: inline; + margin-right: 10px; +} +/* line 10, ../../app/assets/stylesheets/tags.css.scss */ +ul.tags li .tag_score { + border-radius: 5px; + -moz-border-radius: 5px; + background: #EAEAEA; + display: inline; + margin-right: 5px; + color: #686868; + padding: 1px; + font-size: 9pt; + font-weight: bold; +} + +/* line 2, ../../app/assets/stylesheets/profile_speaking.css.scss */ +.talks .talk { + margin-bottom: 10px; +} +/* line 5, ../../app/assets/stylesheets/profile_speaking.css.scss */ +.talks img { + border: 1px solid #DDD; +} + +/* line 2, ../../app/assets/stylesheets/profile_social.css.scss */ +table#followings .points { + border-radius: 5px; + -moz-border-radius: 5px; + background: #eaeaea; + color: #818181; + text-align: center; + padding: 6px; + font-weight: bold; + font-size: 110%; + width: 85px; +} +/* line 11, ../../app/assets/stylesheets/profile_social.css.scss */ +table#followings .points img { + float: left; +} +/* line 14, ../../app/assets/stylesheets/profile_social.css.scss */ +table#followings .points p { + font-size: 80%; + margin-bottom: 0px; +} + +/* line 2, ../../app/assets/stylesheets/syncable_profile.css.scss */ +#syncables h3 { + border-bottom: 1px solid #ddd; +} +/* line 5, ../../app/assets/stylesheets/syncable_profile.css.scss */ +#syncables section { + margin-bottom: 42px; +} +/* line 8, ../../app/assets/stylesheets/syncable_profile.css.scss */ +#syncables ul { + margin-top: 10px; +} +/* line 10, ../../app/assets/stylesheets/syncable_profile.css.scss */ +#syncables ul li { + margin-bottom: 16px; +} +/* line 15, ../../app/assets/stylesheets/syncable_profile.css.scss */ +#syncables ul li input[type=text] { + margin-top: 6px; +} + +/* line 22, ../../app/assets/stylesheets/syncable_profile.css.scss */ +.sync_error { + border-color: #EE5F5B; +} + +/* line 25, ../../app/assets/stylesheets/syncable_profile.css.scss */ +.sync_error_msg { + color: #EE5F5B; +} + +/* line 29, ../../app/assets/stylesheets/syncable_profile.css.scss */ +.sync_actions { + padding-top: 5px; +} + +/* line 2, ../../app/assets/stylesheets/talk_search.css.scss */ +#talk_search_results .talk { + margin-bottom: 10px; +} +/* line 5, ../../app/assets/stylesheets/talk_search.css.scss */ +#talk_search_results img { + border: 1px solid #DDD; +} + +/* line 1, ../../app/assets/stylesheets/activity.css.scss */ +#activity_loader { + margin-left: 265px; +} + +/* line 5, ../../app/assets/stylesheets/activity.css.scss */ +#activity_list { + margin-left: 0px; +} +/* line 7, ../../app/assets/stylesheets/activity.css.scss */ +#activity_list li { + padding-top: 10px; + padding-bottom: 10px; + border-top: 1px solid #ccc; +} + +/* line 2, ../../app/assets/stylesheets/talk.css.scss */ +#talk .score_title { + padding-left: 10px; +} +/* line 6, ../../app/assets/stylesheets/talk.css.scss */ +#talk .score { + cell-padding: 5px; +} +/* line 8, ../../app/assets/stylesheets/talk.css.scss */ +#talk .score p { + background: #373737; + color: white; + border-radius: 5px; + -moz-border-radius: 5px; + padding: 5px; + height: 30px; + width: 45px; + text-align: center; + padding-top: 10px; + font-size: 14pt; + font-weight: bold; +} +/* line 21, ../../app/assets/stylesheets/talk.css.scss */ +#talk table { + border: 0px solid #fff; +} +/* line 24, ../../app/assets/stylesheets/talk.css.scss */ +#talk table tr td { + border: 0px solid #fff; +} + +/* line 1, ../../app/assets/stylesheets/skill_pie.css.scss */ +.skill_pie_label { + fill: #000; + stroke-width: 0px; +} + +/* line 5, ../../app/assets/stylesheets/skill_pie.css.scss */ +.ruby { + fill: #CB3125; + stroke: #fff; +} + +/* line 9, ../../app/assets/stylesheets/skill_pie.css.scss */ +.csharp { + fill: #286CE2; + stroke: #fff; +} + +/* line 1, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart { + margin-bottom: 16px; +} +/* line 3, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart .axis { + shape-rendering: crispEdges; +} +/* line 7, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart .y.axis line { + stroke: #ddd; +} +/* line 11, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart .x.axis line { + opacity: 0; +} +/* line 15, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart .axis path { + fill: none; + stroke-width: .5px; +} +/* line 20, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart path.line { + fill: none; + stroke: blue; + stroke-width: .5px; +} +/* line 26, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart path.area { + opacity: .6; +} +/* line 30, ../../app/assets/stylesheets/dev_journey.css.scss */ +#dev_journey_chart .job_start_line { + stroke: #000; + opacity: 0.9; +} + +/* line 1, ../../vendor/assets/stylesheets/tagit-blue.css */ +.ui-autocomplete { + background-color: #fff; + position: absolute; + cursor: default; + list-style: none; + margin: 25px 0 0; + padding: 0; + border: 1px solid #E5E5E5; + border-top: none; + -moz-border-radius: 0 0 10px 10px; + border-radius: 0 0 10px 10px; + -moz-box-shadow: 0 3px 5px #888; + -webkit-box-shadow: 0 3px 5px #888; + box-shadow: 0 3px 5px #888; + font-size: 12px; +} + +/* line 18, ../../vendor/assets/stylesheets/tagit-blue.css */ +.ui-autocomplete .ui-menu-item { + padding: 0; + margin: 0; +} + +/* line 23, ../../vendor/assets/stylesheets/tagit-blue.css */ +.ui-autocomplete .ui-menu-item a { + display: block; + padding: 4px 6px; + margin: 0; + text-decoration: none; + line-height: 12px; + border-bottom: 1px solid #E5E5E5; + border-top: 1px solid #fff; + color: #78959D; +} + +/* line 36, ../../vendor/assets/stylesheets/tagit-blue.css */ +.ui-autocomplete .ui-menu-item a.ui-state-hover, +.ui-autocomplete .ui-menu-item a.ui-state-active { + background-color: #c0d1e2; + color: #555; + border-color: #a6cef7; +} + +/* line 42, ../../vendor/assets/stylesheets/tagit-blue.css */ +.ui-autocomplete-loading { + background: white url(ui-anim_basic_16x16.gif) right center no-repeat; +} + +/* line 46, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit { + cursor: text; + overflow: auto; + font-size: 14px; + width: 97%; + padding: 3px; + margin-top: 2px; + margin-right: 6px; + margin-bottom: 16px; + border: 1px solid #E5E5E5; + background: #fff; + color: #555; +} + +/* line 60, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li { + -moz-border-radius: 5px; + border-radius: 5px; + display: block; + float: left; + margin: 2px 5px 2px 0; + position: relative; +} + +/* line 69, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li.tagit-choice { + background-color: #DEE7F8; + border: 1px solid #CAD8F3; + padding: 2px 13px 3px 4px; +} + +/* line 75, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li.tagit-choice.selected { + background-color: #f5b0b0; + border-color: #f76464; +} + +/* line 80, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li.tagit-choice:hover { + background-color: #bbcef1; + border-color: #6d95e0; +} + +/* line 85, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li.tagit-new { + padding: 2px 4px 3px; + padding: 2px 4px 1px; + padding: 2px 4px 1px 0; +} + +/* line 91, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li.tagit-choice input { + display: block; + float: left; + margin: 0 5px 0 0; + padding-top: 2px; + padding-bottom: 2px; +} + +/* line 99, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li.tagit-choice a.tagit-close { + color: #777777; + cursor: pointer; + font-size: 12px; + font-weight: bold; + outline: medium none; + padding: 2px 0 2px 3px; + text-decoration: none; + position: absolute; + display: block; + top: 0; + right: 3px; + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.7); +} + +/* line 114, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit li.tagit-choice a.tagit-close:hover { + color: #535353; +} + +/* line 118, ../../vendor/assets/stylesheets/tagit-blue.css */ +ul.tagit input[type="text"] { + -moz-box-sizing: border-box; + border: none !important; + margin: 0 !important; + padding: 0 !important; + width: inherit !important; + outline: none; + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; + -webkit-box-shadow: inset 0 0px 0px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 0px 0px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0px 0px rgba(0, 0, 0, 0.1); +} + +/* line 135, ../../vendor/assets/stylesheets/tagit-blue.css */ +.tagit-hiddenSelect { + display: none; +} + +/* + * This is a manifest file that'll automatically include all the stylesheets available in this directory + * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at + * the top of the compiled file, but it's generally better to create a new file per style scope. + * +*/ +/* line 41, ../../app/assets/stylesheets/application.css.scss */ +.profile_pic { + width: 90px; +} + +/* line 45, ../../app/assets/stylesheets/application.css.scss */ +#content { + margin-top: 80px; +} diff --git a/public/assets/application.css.gz b/public/assets/application.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..e3df997f4e5f816e5f1b4ec35a9cb7a308a36ae8 GIT binary patch literal 13275 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 Z7()1*t<}Zq?lA%Je*vZ5D>^-K0RYx0@pk|K literal 0 HcmV?d00001 diff --git a/public/assets/application.js b/public/assets/application.js new file mode 100644 index 0000000..cd8ac2f --- /dev/null +++ b/public/assets/application.js @@ -0,0 +1,19531 @@ +/*! + * jQuery JavaScript Library v1.8.3 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: Tue Nov 13 2012 08:20:33 GMT-0500 (Eastern Standard Time) + */ + +(function( window, undefined ) { +var + // A central reference to the root jQuery(document) + rootjQuery, + + // The deferred used on DOM ready + readyList, + + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + location = window.location, + navigator = window.navigator, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // Save a reference to some core methods + core_push = Array.prototype.push, + core_slice = Array.prototype.slice, + core_indexOf = Array.prototype.indexOf, + core_toString = Object.prototype.toString, + core_hasOwn = Object.prototype.hasOwnProperty, + core_trim = String.prototype.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, + + // Used for detecting and trimming whitespace + core_rnotwhite = /\S/, + core_rspace = /\s+/, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return ( letter + "" ).toUpperCase(); + }, + + // The ready event handler and self cleanup method + DOMContentLoaded = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + jQuery.ready(); + } else if ( document.readyState === "complete" ) { + // we're here because readyState === "complete" in oldIE + // which is good enough for us to call the dom ready! + document.detachEvent( "onreadystatechange", DOMContentLoaded ); + jQuery.ready(); + } + }, + + // [[Class]] -> type pairs + class2type = {}; + +jQuery.fn = jQuery.prototype = { + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem, ret, doc; + + // Handle $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + doc = ( context && context.nodeType ? context.ownerDocument || context : document ); + + // scripts is true for back-compat + selector = jQuery.parseHTML( match[1], doc, true ); + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + this.attr.call( selector, context, true ); + } + + return jQuery.merge( this, selector ); + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.8.3", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) { + ret.selector = this.selector + ( this.selector ? " " : "" ) + selector; + } else if ( name ) { + ret.selector = this.selector + "." + name + "(" + selector + ")"; + } + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + eq: function( i ) { + i = +i; + return i === -1 ? + this.slice( i ) : + this.slice( i, i + 1 ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ), + "slice", core_slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready, 1 ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ core_toString.call(obj) ] || "object"; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // scripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, scripts ) { + var parsed; + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + scripts = context; + context = 0; + } + context = context || document; + + // Single tag + if ( (parsed = rsingleTag.exec( data )) ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] ); + return jQuery.merge( [], + (parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes ); + }, + + parseJSON: function( data ) { + if ( !data || typeof data !== "string") { + return null; + } + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + + } + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && core_rnotwhite.test( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var name, + i = 0, + length = obj.length, + isObj = length === undefined || jQuery.isFunction( obj ); + + if ( args ) { + if ( isObj ) { + for ( name in obj ) { + if ( callback.apply( obj[ name ], args ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.apply( obj[ i++ ], args ) === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isObj ) { + for ( name in obj ) { + if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) { + break; + } + } + } else { + for ( ; i < length; ) { + if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var type, + ret = results || []; + + if ( arr != null ) { + // The window, strings (and functions) also have 'length' + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + type = jQuery.type( arr ); + + if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) { + core_push.call( ret, arr ); + } else { + jQuery.merge( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, key, + ret = [], + i = 0, + length = elems.length, + // jquery objects are treated as arrays + isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( key in elems ) { + value = callback( elems[ key ], key, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return ret.concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, pass ) { + var exec, + bulk = key == null, + i = 0, + length = elems.length; + + // Sets many values + if ( key && typeof key === "object" ) { + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], 1, emptyGet, value ); + } + chainable = 1; + + // Sets one value + } else if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = pass === undefined && jQuery.isFunction( value ); + + if ( bulk ) { + // Bulk operations only iterate when executing function values + if ( exec ) { + exec = fn; + fn = function( elem, key, value ) { + return exec.call( jQuery( elem ), value ); + }; + + // Otherwise they run against the entire set + } else { + fn.call( elems, value ); + fn = null; + } + } + + if ( fn ) { + for (; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + } + + chainable = 1; + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready, 1 ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", jQuery.ready, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", DOMContentLoaded ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", jQuery.ready ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.split( core_rspace ), function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Control if a given callback is in the list + has: function( fn ) { + return jQuery.inArray( fn, list ) > -1; + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ]( jQuery.isFunction( fn ) ? + function() { + var returned = fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); + } + } : + newDefer[ action ] + ); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] = list.fire + deferred[ tuple[0] ] = list.fire; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function() { + + var support, + all, + a, + select, + opt, + input, + fragment, + eventName, + i, + isSupported, + clickFn, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"; + + // Support tests won't run in some limited or non-browser environments + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + if ( !all || !a || !all.length ) { + return {}; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + support = { + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: ( div.firstChild.nodeType === 3 ), + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: ( a.getAttribute("href") === "/a" ), + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.5/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Make sure that if no value is specified for a checkbox + // that it defaults to "on". + // (WebKit defaults to "" instead) + checkOn: ( input.value === "on" ), + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // Tests for enctype support on a form (#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>", + + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: ( document.compatMode === "CSS1Compat" ), + + // Will be defined later + submitBubbles: true, + changeBubbles: true, + focusinBubbles: false, + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true, + boxSizingReliable: true, + pixelPosition: false + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Test to see if it's possible to delete an expando from an element + // Fails in Internet Explorer + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { + div.attachEvent( "onclick", clickFn = function() { + // Cloning a node shouldn't copy over any + // bound event handlers (IE does this) + support.noCloneEvent = false; + }); + div.cloneNode( true ).fireEvent("onclick"); + div.detachEvent( "onclick", clickFn ); + } + + // Check if a radio maintains its value + // after being appended to the DOM + input = document.createElement("input"); + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + input.setAttribute( "checked", "checked" ); + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + fragment = document.createDocumentFragment(); + fragment.appendChild( div.lastChild ); + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + fragment.removeChild( input ); + fragment.appendChild( div ); + + // Technique from Juriy Zaytsev + // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/ + // We only care about the case where non-standard event systems + // are used, namely in IE. Short-circuiting here helps us to + // avoid an eval call (in setAttribute) which can cause CSP + // to go haywire. See: https://developer.mozilla.org/en/Security/CSP + if ( div.attachEvent ) { + for ( i in { + submit: true, + change: true, + focusin: true + }) { + eventName = "on" + i; + isSupported = ( eventName in div ); + if ( !isSupported ) { + div.setAttribute( eventName, "return;" ); + isSupported = ( typeof div[ eventName ] === "function" ); + } + support[ i + "Bubbles" ] = isSupported; + } + } + + // Run tests that need a body at doc ready + jQuery(function() { + var container, div, tds, marginDiv, + divReset = "padding:0;margin:0;border:0;display:block;overflow:hidden;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px"; + body.insertBefore( container, body.firstChild ); + + // Construct the test element + div = document.createElement("div"); + container.appendChild( div ); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE <= 8 fail this test) + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // NOTE: To any future maintainer, we've window.getComputedStyle + // because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. For more + // info see bug #3333 + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = document.createElement("div"); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + div.appendChild( marginDiv ); + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== "undefined" ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = "block"; + div.style.overflow = "visible"; + div.innerHTML = "<div></div>"; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + container.style.zoom = 1; + } + + // Null elements to avoid leaks in IE + body.removeChild( container ); + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + fragment.removeChild( div ); + all = a = select = opt = input = fragment = div = null; + + return support; +})(); +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +jQuery.extend({ + cache: {}, + + deletedIds: [], + + // Remove at next major release (1.9/2.0) + uuid: 0, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = jQuery.deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; + }, + + removeData: function( elem, name, pvt /* Internal Use Only */ ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, l, + + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } + }, + + // For internal use only. + _data: function( elem, name, data ) { + return jQuery.data( elem, name, data, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var parts, part, attr, name, l, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attr = elem.attributes; + for ( l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( !name.indexOf( "data-" ) ) { + name = jQuery.camelCase( name.substring(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + parts = key.split( ".", 2 ); + parts[1] = parts[1] ? "." + parts[1] : ""; + part = parts[1] + "!"; + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + data = this.triggerHandler( "getData" + part, [ parts[0] ] ); + + // Try to fetch any internally stored data first + if ( data === undefined && elem ) { + data = jQuery.data( elem, key ); + data = dataAttr( elem, key, data ); + } + + return data === undefined && parts[1] ? + this.data( parts[0] ) : + data; + } + + parts[1] = value; + this.each(function() { + var self = jQuery( this ); + + self.triggerHandler( "setData" + part, parts ); + jQuery.data( this, key, value ); + self.triggerHandler( "changeData" + part, parts ); + }); + }, null, value, arguments.length > 1, null, false ); + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery.removeData( elem, type + "queue", true ); + jQuery.removeData( elem, key, true ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, fixSpecified, + rclass = /[\t\r\n]/g, + rreturn = /\r/g, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea|)$/i, + rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classNames, i, l, elem, + setClass, c, cl; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call(this, j, this.className) ); + }); + } + + if ( value && typeof value === "string" ) { + classNames = value.split( core_rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + + if ( elem.nodeType === 1 ) { + if ( !elem.className && classNames.length === 1 ) { + elem.className = value; + + } else { + setClass = " " + elem.className + " "; + + for ( c = 0, cl = classNames.length; c < cl; c++ ) { + if ( setClass.indexOf( " " + classNames[ c ] + " " ) < 0 ) { + setClass += classNames[ c ] + " "; + } + } + elem.className = jQuery.trim( setClass ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var removes, className, elem, c, cl, i, l; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call(this, j, this.className) ); + }); + } + if ( (value && typeof value === "string") || value === undefined ) { + removes = ( value || "" ).split( core_rspace ); + + for ( i = 0, l = this.length; i < l; i++ ) { + elem = this[ i ]; + if ( elem.nodeType === 1 && elem.className ) { + + className = (" " + elem.className + " ").replace( rclass, " " ); + + // loop over each item in the removal list + for ( c = 0, cl = removes.length; c < cl; c++ ) { + // Remove until there is nothing to remove, + while ( className.indexOf(" " + removes[ c ] + " ") >= 0 ) { + className = className.replace( " " + removes[ c ] + " " , " " ); + } + } + elem.className = value ? jQuery.trim( className ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.split( core_rspace ); + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + } else if ( type === "undefined" || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // toggle whole className + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + // Unused in 1.8, left in so attrFn-stabbers won't die; remove in 1.9 + attrFn: {}, + + attr: function( elem, name, value, pass ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) { + return jQuery( elem )[ name ]( value ); + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + + } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + ret = elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return ret === null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var propName, attrNames, name, isBool, + i = 0; + + if ( value && elem.nodeType === 1 ) { + + attrNames = value.split( core_rspace ); + + for ( ; i < attrNames.length; i++ ) { + name = attrNames[ i ]; + + if ( name ) { + propName = jQuery.propFix[ name ] || name; + isBool = rboolean.test( name ); + + // See #9699 for explanation of this approach (setting first, then removal) + // Do not do this for boolean attributes (see #10870) + if ( !isBool ) { + jQuery.attr( elem, name, "" ); + } + elem.removeAttribute( getSetAttribute ? name : propName ); + + // Set corresponding property to false for boolean attributes + if ( isBool && propName in elem ) { + elem[ propName ] = false; + } + } + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to it's default in case type is set after value + // This is for element creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + }, + // Use the value property for back compat + // Use the nodeHook for button elements in IE6/7 (#1954) + value: { + get: function( elem, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.get( elem, name ); + } + return name in elem ? + elem.value : + null; + }, + set: function( elem, value, name ) { + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.set( elem, value, name ); + } + // Does not return so that setAttribute is also used + elem.value = value; + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + // Align boolean attributes with corresponding properties + // Fall back to attribute presence where some booleans are not supported + var attrNode, + property = jQuery.prop( elem, name ); + return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + var propName; + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + // value is true since we know at this point it's type boolean and not false + // Set boolean attributes to the same name and set the DOM property + propName = jQuery.propFix[ name ] || name; + if ( propName in elem ) { + // Only set the IDL specifically if it already exists on the element + elem[ propName ] = true; + } + + elem.setAttribute( name, name.toLowerCase() ); + } + return name; + } +}; + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + fixSpecified = { + name: true, + id: true, + coords: true + }; + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret; + ret = elem.getAttributeNode( name ); + return ret && ( fixSpecified[ name ] ? ret.value !== "" : ret.specified ) ? + ret.value : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + ret = document.createAttribute( name ); + elem.setAttributeNode( ret ); + } + return ( ret.value = value + "" ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + if ( value === "" ) { + value = "false"; + } + nodeHook.set( elem, value, name ); + } + }; +} + + +// Some attributes require a special call on IE +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret === null ? undefined : ret; + } + }); + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Normalize to lowercase since IE uppercases css property names + return elem.style.cssText.toLowerCase() || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); +}); +var rformElems = /^(?:textarea|input|select)$/i, + rtypenamespace = /^([^\.]*|)(?:\.(.+)|)$/, + rhoverHack = /(?:^|\s)hover(\.\S+|)\b/, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + hoverHack = function( events ) { + return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); + }; + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + add: function( elem, types, handler, data, selector ) { + + var elemData, eventHandle, events, + t, tns, type, namespaces, handleObj, + handleObjIn, handlers, special; + + // Don't attach events to noData or text/comment nodes (allow plain objects tho) + if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + events = elemData.events; + if ( !events ) { + elemData.events = events = {}; + } + eventHandle = elemData.handle; + if ( !eventHandle ) { + elemData.handle = eventHandle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = jQuery.trim( hoverHack(types) ).split( " " ); + for ( t = 0; t < types.length; t++ ) { + + tns = rtypenamespace.exec( types[t] ) || []; + type = tns[1]; + namespaces = ( tns[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: tns[1], + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + handlers = events[ type ]; + if ( !handlers ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + global: {}, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var t, tns, type, origType, namespaces, origCount, + j, events, special, eventType, handleObj, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = jQuery.trim( hoverHack( types || "" ) ).split(" "); + for ( t = 0; t < types.length; t++ ) { + tns = rtypenamespace.exec( types[t] ) || []; + type = origType = tns[1]; + namespaces = tns[2]; + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector? special.delegateType : special.bindType ) || type; + eventType = events[ type ] || []; + origCount = eventType.length; + namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null; + + // Remove matching events + for ( j = 0; j < eventType.length; j++ ) { + handleObj = eventType[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !namespaces || namespaces.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + eventType.splice( j--, 1 ); + + if ( handleObj.selector ) { + eventType.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( eventType.length === 0 && origCount !== eventType.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery.removeData( elem, "events", true ); + } + }, + + // Events that are safe to short-circuit if no handlers are attached. + // Native DOM events should not be added, they may have inline handlers. + customEvent: { + "getData": true, + "setData": true, + "changeData": true + }, + + trigger: function( event, data, elem, onlyHandlers ) { + // Don't do events on text and comment nodes + if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) { + return; + } + + // Event object or event type + var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType, + type = event.type || event, + namespaces = []; + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "!" ) >= 0 ) { + // Exclusive events trigger only for the exact event (no namespaces) + type = type.slice(0, -1); + exclusive = true; + } + + if ( type.indexOf( "." ) >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + + if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { + // No jQuery handlers for this event type, and it can't have inline handlers + return; + } + + // Caller can pass in an Event, Object, or just an event type string + event = typeof event === "object" ? + // jQuery.Event object + event[ jQuery.expando ] ? event : + // Object literal + new jQuery.Event( type, event ) : + // Just the event type (string) + new jQuery.Event( type ); + + event.type = type; + event.isTrigger = true; + event.exclusive = exclusive; + event.namespace = namespaces.join( "." ); + event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; + ontype = type.indexOf( ":" ) < 0 ? "on" + type : ""; + + // Handle a global trigger + if ( !elem ) { + + // TODO: Stop taunting the data cache; remove global events and always attach to document + cache = jQuery.cache; + for ( i in cache ) { + if ( cache[ i ].events && cache[ i ].events[ type ] ) { + jQuery.event.trigger( event, data, cache[ i ].handle.elem, true ); + } + } + return; + } + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data != null ? jQuery.makeArray( data ) : []; + data.unshift( event ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + eventPath = [[ elem, special.bindType || type ]]; + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode; + for ( old = elem; cur; cur = cur.parentNode ) { + eventPath.push([ cur, bubbleType ]); + old = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( old === (elem.ownerDocument || document) ) { + eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]); + } + } + + // Fire handlers on the event path + for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) { + + cur = eventPath[i][0]; + event.type = eventPath[i][1]; + + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + // Note that this is a bare JS function and not a jQuery handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + // IE<9 dies on focus/blur to hidden element (#1486) + if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + old = elem[ ontype ]; + + if ( old ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( old ) { + elem[ ontype ] = old; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event || window.event ); + + var i, j, cur, ret, selMatch, matched, matches, handleObj, sel, related, + handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []), + delegateCount = handlers.delegateCount, + args = core_slice.call( arguments ), + run_all = !event.exclusive && !event.namespace, + special = jQuery.event.special[ event.type ] || {}, + handlerQueue = []; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers that should run if there are delegated events + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && !(event.button && event.type === "click") ) { + + for ( cur = event.target; cur != this; cur = cur.parentNode || this ) { + + // Don't process clicks (ONLY) on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + selMatch = {}; + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + sel = handleObj.selector; + + if ( selMatch[ sel ] === undefined ) { + selMatch[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( selMatch[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, matches: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( handlers.length > delegateCount ) { + handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) }); + } + + // Run delegates first; they may want to stop propagation beneath us + for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) { + matched = handlerQueue[ i ]; + event.currentTarget = matched.elem; + + for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) { + handleObj = matched.matches[ j ]; + + // Triggered event must either 1) be non-exclusive and have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) { + + event.data = handleObj.data; + event.handleObj = handleObj; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + event.result = ret; + if ( ret === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + // *** attrChange attrName relatedNode srcElement are not normalized, non-W3C, deprecated, will be removed in 1.8 *** + props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, + originalEvent = event, + fixHook = jQuery.event.fixHooks[ event.type ] || {}, + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = jQuery.Event( originalEvent ); + + for ( i = copy.length; i; ) { + prop = copy[ --i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Target should not be a text node (#504, Safari) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328; IE6/7/8) + event.metaKey = !!event.metaKey; + + return fixHook.filter? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + + focus: { + delegateType: "focusin" + }, + blur: { + delegateType: "focusout" + }, + + beforeunload: { + setup: function( data, namespaces, eventHandle ) { + // We only want to do this special case on windows + if ( jQuery.isWindow( this ) ) { + this.onbeforeunload = eventHandle; + } + }, + + teardown: function( namespaces, eventHandle ) { + if ( this.onbeforeunload === eventHandle ) { + this.onbeforeunload = null; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +// Some plugins are using, but it's undocumented/deprecated and will be removed. +// The 1.7 special event interface should provide all the hooks needed now. +jQuery.event.handle = jQuery.event.dispatch; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === "undefined" ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +function returnFalse() { + return false; +} +function returnTrue() { + return true; +} + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + + // if preventDefault exists run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // otherwise set the returnValue property of the original event to false (IE) + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + this.isPropagationStopped = returnTrue; + + var e = this.originalEvent; + if ( !e ) { + return; + } + // if stopPropagation exists run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + // otherwise set the cancelBubble property of the original event to true (IE) + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj, + selector = handleObj.selector; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "_submit_attached" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "_submit_attached", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "_change_attached" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "_change_attached", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { // && selector != null + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + live: function( types, data, fn ) { + jQuery( this.context ).on( types, this.selector, data, fn ); + return this; + }, + die: function( types, fn ) { + jQuery( this.context ).off( types, this.selector || "**", fn ); + return this; + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + if ( this[0] ) { + return jQuery.event.trigger( type, data, this[0], true ); + } + }, + + toggle: function( fn ) { + // Save reference to arguments for access in closure + var args = arguments, + guid = fn.guid || jQuery.guid++, + i = 0, + toggler = function( event ) { + // Figure out which function to execute + var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i; + jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); + + // Make sure that clicks stop + event.preventDefault(); + + // and execute the function + return args[ lastToggle ].apply( this, arguments ) || false; + }; + + // link all the functions, so any of them can unbind this click handler + toggler.guid = guid; + while ( i < args.length ) { + args[ i++ ].guid = guid; + } + + return this.click( toggler ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +}); + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + + if ( rkeyEvent.test( name ) ) { + jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; + } + + if ( rmouseEvent.test( name ) ) { + jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; + } +}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var cachedruns, + assertGetIdNotName, + Expr, + getText, + isXML, + contains, + compile, + sortOrder, + hasDuplicate, + outermostContext, + + baseHasDuplicate = true, + strundefined = "undefined", + + expando = ( "sizcache" + Math.random() ).replace( ".", "" ), + + Token = String, + document = window.document, + docElem = document.documentElement, + dirruns = 0, + done = 0, + pop = [].pop, + push = [].push, + slice = [].slice, + // Use a stripped-down indexOf if a native one is unavailable + indexOf = [].indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + // Augment a function for special use by Sizzle + markFunction = function( fn, value ) { + fn[ expando ] = value == null || value; + return fn; + }, + + createCache = function() { + var cache = {}, + keys = []; + + return markFunction(function( key, value ) { + // Only keep the most recent entries + if ( keys.push( key ) > Expr.cacheLength ) { + delete cache[ keys.shift() ]; + } + + // Retrieve with (key + " ") to avoid collision with native Object.prototype properties (see Issue #157) + return (cache[ key + " " ] = value); + }, cache ); + }, + + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + + // Regex + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors) + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments not in parens/brackets, + // then attribute selectors and non-pseudos (denoted by :), + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)", + + // For matchExpr.POS and matchExpr.needsContext + pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + + rnot = /^:not/, + rsibling = /[\x20\t\r\n\f]*[+~]/, + rendsWithNot = /:not\($/, + + rheader = /h\d/i, + rinputs = /input|select|textarea|button/i, + + rbackslash = /\\(?!\\)/g, + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "POS": new RegExp( pos, "i" ), + "CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" ) + }, + + // Support + + // Used for testing something on an element + assert = function( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } + }, + + // Check if getElementsByTagName("*") returns only elements + assertTagNameNoComments = assert(function( div ) { + div.appendChild( document.createComment("") ); + return !div.getElementsByTagName("*").length; + }), + + // Check if getAttribute returns normalized href attributes + assertHrefNotNormalized = assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }), + + // Check if attributes should be retrieved by attribute nodes + assertAttributes = assert(function( div ) { + div.innerHTML = "<select></select>"; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }), + + // Check if getElementsByClassName can be trusted + assertUsableClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>"; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }), + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + assertUsableName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>"; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = document.getElementsByName && + // buggy browsers will return fewer than the correct 2 + document.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + document.getElementsByName( expando + 0 ).length; + assertGetIdNotName = !document.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + +// If slice is not available, provide a backup +try { + slice.call( docElem.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, + results = []; + for ( ; (elem = this[i]); i++ ) { + results.push( elem ); + } + return results; + }; +} + +function Sizzle( selector, context, results, seed ) { + results = results || []; + context = context || document; + var match, elem, xml, m, + nodeType = context.nodeType; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( nodeType !== 1 && nodeType !== 9 ) { + return []; + } + + xml = isXML( context ); + + if ( !xml && !seed ) { + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed, xml ); +} + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + return Sizzle( expr, null, null, [ elem ] ).length > 0; +}; + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( nodeType ) { + if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + } else { + + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } + return ret; +}; + +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Element contains another +contains = Sizzle.contains = docElem.contains ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) ); + } : + docElem.compareDocumentPosition ? + function( a, b ) { + return b && !!( a.compareDocumentPosition( b ) & 16 ); + } : + function( a, b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + return false; + }; + +Sizzle.attr = function( elem, name ) { + var val, + xml = isXML( elem ); + + if ( !xml ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( xml || assertAttributes ) { + return elem.getAttribute( name ); + } + val = elem.getAttributeNode( name ); + return val ? + typeof elem[ name ] === "boolean" ? + elem[ name ] ? name : null : + val.specified ? val.value : null : + null; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + // IE6/7 return a modified href + attrHandle: assertHrefNotNormalized ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }, + + find: { + "ID": assertGetIdNotName ? + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + } : + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }, + + "TAG": assertTagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + var elem, + tmp = [], + i = 0; + + for ( ; (elem = results[i]); i++ ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }, + + "NAME": assertUsableName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }, + + "CLASS": assertUsableClassName && function( className, context, xml ) { + if ( typeof context.getElementsByClassName !== strundefined && !xml ) { + return context.getElementsByClassName( className ); + } + } + }, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( rbackslash, "" ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 3 xn-component of xn+y argument ([+-]?\d*n|) + 4 sign of xn-component + 5 x of xn-component + 6 sign of y-component + 7 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1] === "nth" ) { + // nth-child requires argument + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) ); + match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" ); + + // other types prohibit arguments + } else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var unquoted, excess; + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + if ( match[3] ) { + match[2] = match[3]; + } else if ( (unquoted = match[4]) ) { + // Only check arguments that contain a pseudo + if ( rpseudo.test(unquoted) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + unquoted = unquoted.slice( 0, excess ); + match[0] = match[0].slice( 0, excess ); + } + match[2] = unquoted; + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + "ID": assertGetIdNotName ? + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + return elem.getAttribute("id") === id; + }; + } : + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === id; + }; + }, + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + nodeName = nodeName.replace( rbackslash, "" ).toLowerCase(); + + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ expando ][ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem, context ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.substr( result.length - check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, argument, first, last ) { + + if ( type === "nth" ) { + return function( elem ) { + var node, diff, + parent = elem.parentNode; + + if ( first === 1 && last === 0 ) { + return true; + } + + if ( parent ) { + diff = 0; + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + diff++; + if ( elem === node ) { + break; + } + } + } + } + + // Incorporate the offset (or cast to NaN), then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + }; + } + + return function( elem ) { + var node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + /* falls through */ + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + var nodeType; + elem = elem.firstChild; + while ( elem ) { + if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) { + return false; + } + elem = elem.nextSibling; + } + return true; + }, + + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "text": function( elem ) { + var type, attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + (type = elem.type) === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type ); + }, + + // Input types + "radio": createInputPseudo("radio"), + "checkbox": createInputPseudo("checkbox"), + "file": createInputPseudo("file"), + "password": createInputPseudo("password"), + "image": createInputPseudo("image"), + + "submit": createButtonPseudo("submit"), + "reset": createButtonPseudo("reset"), + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "focus": function( elem ) { + var doc = elem.ownerDocument; + return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + "active": function( elem ) { + return elem === elem.ownerDocument.activeElement; + }, + + // Positional types + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + for ( var i = 0; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + for ( var i = 1; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +function siblingCheck( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; +} + +sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + return ( !a.compareDocumentPosition || !b.compareDocumentPosition ? + a.compareDocumentPosition : + a.compareDocumentPosition(b) & 4 + ) ? -1 : 1; + } : + function( a, b ) { + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if ( a.sourceIndex && b.sourceIndex ) { + return a.sourceIndex - b.sourceIndex; + } + + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // If the nodes are siblings (or identical) we can do a quick check + if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + +// Always assume the presence of duplicates if sort doesn't +// pass them to our comparison function (as in Google Chrome). +[0, 0].sort( sortOrder ); +baseHasDuplicate = !hasDuplicate; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + i = 1, + j = 0; + + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ expando ][ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + tokens.push( matched = new Token( match.shift() ) ); + soFar = soFar.slice( matched.length ); + + // Cast descendant combinators to space + matched.type = match[0].replace( rtrim, " " ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + + tokens.push( matched = new Token( match.shift() ) ); + soFar = soFar.slice( matched.length ); + matched.type = type; + matched.matches = match; + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && combinator.dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( !xml ) { + var cache, + dirkey = dirruns + " " + doneName + " ", + cachedkey = dirkey + cachedruns; + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + if ( (cache = elem[ expando ]) === cachedkey ) { + return elem.sizset; + } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) { + if ( elem.sizset ) { + return elem; + } + } else { + elem[ expando ] = cachedkey; + if ( matcher( elem, context, xml ) ) { + elem.sizset = true; + return elem; + } + elem.sizset = false; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + if ( matcher( elem, context, xml ) ) { + return elem; + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && tokens.join("") + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Nested matchers should use non-integer dirruns + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = superMatcher.el; + } + + // Add elements passing elementMatchers directly to results + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + for ( j = 0; (matcher = elementMatchers[j]); j++ ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++superMatcher.el; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + for ( j = 0; (matcher = setMatchers[j]); j++ ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + superMatcher.el = 0; + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ expando ][ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed, xml ) { + var i, tokens, token, type, find, + match = tokenize( selector ), + j = match.length; + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && !xml && + Expr.relative[ tokens[1].type ] ) { + + context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().length ); + } + + // Fetch a seed set for right-to-left matching + for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( rbackslash, "" ), + rsibling.test( tokens[0].type ) && context.parentNode || context, + xml + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && tokens.join(""); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + xml, + results, + rsibling.test( selector ) + ); + return results; +} + +if ( document.querySelectorAll ) { + (function() { + var disconnectedMatch, + oldSelect = select, + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // qSa(:focus) reports false when true (Chrome 21), no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ], + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + // A support test would require too much code (would include document ready) + // just skip matchesSelector for :active + rbuggyMatches = [ ":active" ], + matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector; + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = "<select><option selected=''></option></select>"; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here (do not put tests after this one) + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE9 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = "<p test=''></p>"; + if ( div.querySelectorAll("[test^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here (do not put tests after this one) + div.innerHTML = "<input type='hidden'/>"; + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push(":enabled", ":disabled"); + } + }); + + // rbuggyQSA always contains :focus, so no need for a length check + rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") ); + + select = function( selector, context, results, seed, xml ) { + // Only use querySelectorAll when not filtering, + // when this is not xml, + // and when no QSA bugs apply + if ( !seed && !xml && !rbuggyQSA.test( selector ) ) { + var groups, i, + old = true, + nid = expando, + newContext = context, + newSelector = context.nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + groups[i].join(""); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + + return oldSelect( selector, context, results, seed, xml ); + }; + + if ( matches ) { + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + try { + matches.call( div, "[test!='']:sizzle" ); + rbuggyMatches.push( "!=", pseudos ); + } catch ( e ) {} + }); + + // rbuggyMatches always contains :active and :focus, so no need for a length check + rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") ); + + Sizzle.matchesSelector = function( elem, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyMatches always contains :active, so no need for an existence check + if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && !rbuggyQSA.test( expr ) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, null, null, [ elem ] ).length > 0; + }; + } + })(); +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Back-compat +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, l, length, n, r, ret, + self = this; + + if ( typeof selector !== "string" ) { + return jQuery( selector ).filter(function() { + for ( i = 0, l = self.length; i < l; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }); + } + + ret = this.pushStack( "", "find", selector ); + + for ( i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( n = length; n < ret.length; n++ ) { + for ( r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false), "not", selector); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true), "filter", selector ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + ret = ret.length > 1 ? jQuery.unique( ret ) : ret; + + return this.pushStack( ret, "closest", selectors ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? + all : + jQuery.unique( all ) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +jQuery.fn.andSelf = jQuery.fn.addBack; + +// A painfully simple check to see if an element is disconnected +// from a document (should be improved, where feasible). +function isDisconnected( node ) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; +} + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret, name, core_slice.call( arguments ).join(",") ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /<tbody/i, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + rnocache = /<(?:script|object|embed|option|style)/i, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rcheckableType = /^(?:checkbox|radio)$/, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /\/(java|ecma)script/i, + rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g, + wrapMap = { + option: [ 1, "<select multiple='multiple'>", "</select>" ], + legend: [ 1, "<fieldset>", "</fieldset>" ], + thead: [ 1, "<table>", "</table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ], + area: [ 1, "<map>", "</map>" ], + _default: [ 0, "", "" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, +// unless wrapped in a div with non-breaking characters in front of it. +if ( !jQuery.support.htmlSerialize ) { + wrapMap._default = [ 1, "X<div>", "</div>" ]; +} + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, + + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { + this.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, + + before: function() { + if ( !isDisconnected( this[0] ) ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this ); + }); + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( set, this ), "before", this.selector ); + } + }, + + after: function() { + if ( !isDisconnected( this[0] ) ) { + return this.domManip(arguments, false, function( elem ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( this, set ), "after", this.selector ); + } + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + jQuery.cleanData( [ elem ] ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName("*") ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1></$2>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( elem.getElementsByTagName( "*" ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function( value ) { + if ( !isDisconnected( this[0] ) ) { + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( jQuery.isFunction( value ) ) { + return this.each(function(i) { + var self = jQuery(this), old = self.html(); + self.replaceWith( value.call( this, i, old ) ); + }); + } + + if ( typeof value !== "string" ) { + value = jQuery( value ).detach(); + } + + return this.each(function() { + var next = this.nextSibling, + parent = this.parentNode; + + jQuery( this ).remove(); + + if ( next ) { + jQuery(next).before( value ); + } else { + jQuery(parent).append( value ); + } + }); + } + + return this.length ? + this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) : + this; + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, table, callback ) { + + // Flatten any nested arrays + args = [].concat.apply( [], args ); + + var results, first, fragment, iNoClone, + i = 0, + value = args[0], + scripts = [], + l = this.length; + + // We can't cloneNode fragments that contain checked, in WebKit + if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) { + return this.each(function() { + jQuery(this).domManip( args, table, callback ); + }); + } + + if ( jQuery.isFunction(value) ) { + return this.each(function(i) { + var self = jQuery(this); + args[0] = value.call( this, i, table ? self.html() : undefined ); + self.domManip( args, table, callback ); + }); + } + + if ( this[0] ) { + results = jQuery.buildFragment( args, this, scripts ); + fragment = results.fragment; + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + // Fragments from the fragment cache must always be cloned and never used in place. + for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) { + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + i === iNoClone ? + fragment : + jQuery.clone( fragment, true, true ) + ); + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + + if ( scripts.length ) { + jQuery.each( scripts, function( i, elem ) { + if ( elem.src ) { + if ( jQuery.ajax ) { + jQuery.ajax({ + url: elem.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.error("no ajax"); + } + } else { + jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } + }); + } + } + + return this; + } +}); + +function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function cloneFixAttributes( src, dest ) { + var nodeName; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + // clearAttributes removes the attributes, which we don't want, + // but also removes the attachEvent events, which we *do* want + if ( dest.clearAttributes ) { + dest.clearAttributes(); + } + + // mergeAttributes, in contrast, only merges back on the + // original attributes, not the events + if ( dest.mergeAttributes ) { + dest.mergeAttributes( src ); + } + + nodeName = dest.nodeName.toLowerCase(); + + if ( nodeName === "object" ) { + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && (src.innerHTML && !jQuery.trim(dest.innerHTML)) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + + // IE blanks contents when cloning scripts + } else if ( nodeName === "script" && dest.text !== src.text ) { + dest.text = src.text; + } + + // Event data gets referenced instead of copied if the expando + // gets copied too + dest.removeAttribute( jQuery.expando ); +} + +jQuery.buildFragment = function( args, context, scripts ) { + var fragment, cacheable, cachehit, + first = args[ 0 ]; + + // Set context from what may come in as undefined or a jQuery collection or a node + // Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 & + // also doubles as fix for #8950 where plain objects caused createDocumentFragment exception + context = context || document; + context = !context.nodeType && context[0] || context; + context = context.ownerDocument || context; + + // Only cache "small" (1/2 KB) HTML strings that are associated with the main document + // Cloning options loses the selected state, so don't cache them + // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment + // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache + // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 + if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document && + first.charAt(0) === "<" && !rnocache.test( first ) && + (jQuery.support.checkClone || !rchecked.test( first )) && + (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) { + + // Mark cacheable and look for a hit + cacheable = true; + fragment = jQuery.fragments[ first ]; + cachehit = fragment !== undefined; + } + + if ( !fragment ) { + fragment = context.createDocumentFragment(); + jQuery.clean( args, context, fragment, scripts ); + + // Update the cache, but only store false + // unless this is a second parsing of the same content + if ( cacheable ) { + jQuery.fragments[ first ] = cachehit && fragment; + } + } + + return { fragment: fragment, cacheable: cacheable }; +}; + +jQuery.fragments = {}; + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) { + insert[ original ]( this[0] ); + return this; + } else { + for ( ; i < l; i++ ) { + elems = ( i > 0 ? this.clone(true) : this ).get(); + jQuery( insert[i] )[ original ]( elems ); + ret = ret.concat( elems ); + } + + return this.pushStack( ret, name, insert.selector ); + } + }; +}); + +function getAll( elem ) { + if ( typeof elem.getElementsByTagName !== "undefined" ) { + return elem.getElementsByTagName( "*" ); + + } else if ( typeof elem.querySelectorAll !== "undefined" ) { + return elem.querySelectorAll( "*" ); + + } else { + return []; + } +} + +// Used in clean, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var srcElements, + destElements, + i, + clone; + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + // IE copies events bound via attachEvent when using cloneNode. + // Calling detachEvent on the clone will also remove the events + // from the original. In order to get around this, we use some + // proprietary methods to clear the events. Thanks to MooTools + // guys for this hotness. + + cloneFixAttributes( elem, clone ); + + // Using Sizzle here is crazy slow, so we use getElementsByTagName instead + srcElements = getAll( elem ); + destElements = getAll( clone ); + + // Weird iteration because IE will replace the length property + // with an element if you are cloning the body and one of the + // elements on the page has a name or id of "length" + for ( i = 0; srcElements[i]; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + cloneFixAttributes( srcElements[i], destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + cloneCopyEvent( elem, clone ); + + if ( deepDataAndEvents ) { + srcElements = getAll( elem ); + destElements = getAll( clone ); + + for ( i = 0; srcElements[i]; ++i ) { + cloneCopyEvent( srcElements[i], destElements[i] ); + } + } + } + + srcElements = destElements = null; + + // Return the cloned set + return clone; + }, + + clean: function( elems, context, fragment, scripts ) { + var i, j, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags, + safe = context === document && safeFragment, + ret = []; + + // Ensure that context is a document + if ( !context || typeof context.createDocumentFragment === "undefined" ) { + context = document; + } + + // Use the already-created safe fragment if context permits + for ( i = 0; (elem = elems[i]) != null; i++ ) { + if ( typeof elem === "number" ) { + elem += ""; + } + + if ( !elem ) { + continue; + } + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + if ( !rhtml.test( elem ) ) { + elem = context.createTextNode( elem ); + } else { + // Ensure a safe container in which to render the html + safe = safe || createSafeFragment( context ); + div = context.createElement("div"); + safe.appendChild( div ); + + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(rxhtmlTag, "<$1></$2>"); + + // Go to html and back, then peel off extra wrappers + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + depth = wrap[0]; + div.innerHTML = wrap[1] + elem + wrap[2]; + + // Move to the right depth + while ( depth-- ) { + div = div.lastChild; + } + + // Remove IE's autoinserted <tbody> from table fragments + if ( !jQuery.support.tbody ) { + + // String was a <table>, *may* have spurious <tbody> + hasBody = rtbody.test(elem); + tbody = tag === "table" && !hasBody ? + div.firstChild && div.firstChild.childNodes : + + // String was a bare <thead> or <tfoot> + wrap[1] === "<table>" && !hasBody ? + div.childNodes : + []; + + for ( j = tbody.length - 1; j >= 0 ; --j ) { + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) { + tbody[ j ].parentNode.removeChild( tbody[ j ] ); + } + } + } + + // IE completely kills leading whitespace when innerHTML is used + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild ); + } + + elem = div.childNodes; + + // Take out of fragment container (we need a fresh div each time) + div.parentNode.removeChild( div ); + } + } + + if ( elem.nodeType ) { + ret.push( elem ); + } else { + jQuery.merge( ret, elem ); + } + } + + // Fix #11356: Clear elements from safeFragment + if ( div ) { + elem = div = safe = null; + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + for ( i = 0; (elem = ret[i]) != null; i++ ) { + if ( jQuery.nodeName( elem, "input" ) ) { + fixDefaultChecked( elem ); + } else if ( typeof elem.getElementsByTagName !== "undefined" ) { + jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked ); + } + } + } + + // Append elements to a provided document fragment + if ( fragment ) { + // Special handling of each script element + handleScript = function( elem ) { + // Check if we consider it executable + if ( !elem.type || rscriptType.test( elem.type ) ) { + // Detach the script and store it in the scripts array (if provided) or the fragment + // Return truthy to indicate that it has been handled + return scripts ? + scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) : + fragment.appendChild( elem ); + } + }; + + for ( i = 0; (elem = ret[i]) != null; i++ ) { + // Check if we're done after handling an executable script + if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) { + // Append to fragment and handle embedded scripts + fragment.appendChild( elem ); + if ( typeof elem.getElementsByTagName !== "undefined" ) { + // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration + jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript ); + + // Splice the scripts into ret after their former ancestor and advance our index beyond them + ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); + i += jsTags.length; + } + } + } + } + + return ret; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var data, id, elem, type, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( elem.removeAttribute ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + jQuery.deletedIds.push( id ); + } + } + } + } + } +}); +// Limit scope pollution from any deprecated API +(function() { + +var matched, browser; + +// Use of jQuery.browser is frowned upon. +// More details: http://api.jquery.com/jQuery.browser +// jQuery.uaMatch maintained for back-compat +jQuery.uaMatch = function( ua ) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || + /(webkit)[ \/]([\w.]+)/.exec( ua ) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || + /(msie) ([\w.]+)/.exec( ua ) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; +}; + +matched = jQuery.uaMatch( navigator.userAgent ); +browser = {}; + +if ( matched.browser ) { + browser[ matched.browser ] = true; + browser.version = matched.version; +} + +// Chrome is Webkit, but Webkit is also Safari. +if ( browser.chrome ) { + browser.webkit = true; +} else if ( browser.webkit ) { + browser.safari = true; +} + +jQuery.browser = browser; + +jQuery.sub = function() { + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); + } + + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); + }; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; +}; + +})(); +var curCSS, iframe, iframeDoc, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity=([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ], + + eventsToggle = jQuery.fn.toggle; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var elem, display, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + values[ index ] = jQuery._data( elem, "olddisplay" ); + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && elem.style.display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + display = curCSS( elem, "display" ); + + if ( !values[ index ] && display !== "none" ) { + jQuery._data( elem, "olddisplay", display ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state, fn2 ) { + var bool = typeof state === "boolean"; + + if ( jQuery.isFunction( state ) && jQuery.isFunction( fn2 ) ) { + return eventsToggle.apply( this, arguments ); + } + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + + } + } + } + }, + + // Exclude the following css properties to add px + cssNumber: { + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, numeric, extra ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( numeric || extra !== undefined ) { + num = parseFloat( val ); + return numeric || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +// NOTE: To any future maintainer, we've window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + curCSS = function( elem, name ) { + var ret, width, minWidth, maxWidth, + computed = window.getComputedStyle( elem, null ), + style = elem.style; + + if ( computed ) { + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + curCSS = function( elem, name ) { + var left, rsLeft, + ret = elem.currentStyle && elem.currentStyle[ name ], + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rsLeft = elem.runtimeStyle && elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + elem.runtimeStyle.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + elem.runtimeStyle.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + // we use jQuery.css instead of curCSS here + // because of the reliableMarginRight CSS hook! + val += jQuery.css( elem, extra + cssExpand[ i ], true ); + } + + // From this point on we use curCSS for maximum performance (relevant in animations) + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; + } + } else { + // at this point, extra isn't content, so add padding + val += parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0; + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0; + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + valueIsBorderBox = true, + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox + ) + ) + "px"; +} + + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + if ( elemdisplay[ nodeName ] ) { + return elemdisplay[ nodeName ]; + } + + var elem = jQuery( "<" + nodeName + ">" ).appendTo( document.body ), + display = elem.css("display"); + elem.remove(); + + // If the simple way fails, + // get element's real default display by attaching it to a temp iframe + if ( display === "none" || display === "" ) { + // Use the already-created iframe if possible + iframe = document.body.appendChild( + iframe || jQuery.extend( document.createElement("iframe"), { + frameBorder: 0, + width: 0, + height: 0 + }) + ); + + // Create a cacheable copy of the iframe document on first call. + // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML + // document to it; WebKit & Firefox won't allow reusing the iframe document. + if ( !iframeDoc || !iframe.createElement ) { + iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; + iframeDoc.write("<!doctype html><html><body>"); + iframeDoc.close(); + } + + elem = iframeDoc.body.appendChild( iframeDoc.createElement(nodeName) ); + + display = curCSS( elem, "display" ); + document.body.removeChild( iframe ); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + + return display; +} + +jQuery.each([ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + // certain elements can have dimension info if we invisibly show them + // however, it must have a current display style that would benefit from this + if ( elem.offsetWidth === 0 && rdisplayswap.test( curCSS( elem, "display" ) ) ) { + return jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }); + } else { + return getWidthOrHeight( elem, name, extra ); + } + } + }, + + set: function( elem, value, extra ) { + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box" + ) : 0 + ); + } + }; +}); + +if ( !jQuery.support.opacity ) { + jQuery.cssHooks.opacity = { + get: function( elem, computed ) { + // IE uses filters for opacity + return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? + ( 0.01 * parseFloat( RegExp.$1 ) ) + "" : + computed ? "1" : ""; + }, + + set: function( elem, value ) { + var style = elem.style, + currentStyle = elem.currentStyle, + opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "", + filter = currentStyle && currentStyle.filter || style.filter || ""; + + // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + style.zoom = 1; + + // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 + if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" && + style.removeAttribute ) { + + // Setting style.filter to null, "" & " " still leave "filter:" in the cssText + // if "filter:" is present at all, clearType is disabled, we want to avoid this + // style.removeAttribute is IE Only, but so apparently is this code path... + style.removeAttribute( "filter" ); + + // if there there is no filter style applied in a css rule, we are done + if ( currentStyle && !currentStyle.filter ) { + return; + } + } + + // otherwise, set new filter values + style.filter = ralpha.test( filter ) ? + filter.replace( ralpha, opacity ) : + filter + " " + opacity; + } + }; +} + +// These hooks cannot be added until DOM ready because the support test +// for it is not run until after DOM ready +jQuery(function() { + if ( !jQuery.support.reliableMarginRight ) { + jQuery.cssHooks.marginRight = { + get: function( elem, computed ) { + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // Work around by temporarily setting element display to inline-block + return jQuery.swap( elem, { "display": "inline-block" }, function() { + if ( computed ) { + return curCSS( elem, "marginRight" ); + } + }); + } + }; + } + + // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 + // getComputedStyle returns percent when specified for top/left/bottom/right + // rather than make the css module depend on the offset module, we just check for it here + if ( !jQuery.support.pixelPosition && jQuery.fn.position ) { + jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = { + get: function( elem, computed ) { + if ( computed ) { + var ret = curCSS( elem, prop ); + // if curCSS returns percentage, fallback to offset + return rnumnonpx.test( ret ) ? jQuery( elem ).position()[ prop ] + "px" : ret; + } + } + }; + }); + } + +}); + +if ( jQuery.expr && jQuery.expr.filters ) { + jQuery.expr.filters.hidden = function( elem ) { + return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || curCSS( elem, "display" )) === "none"); + }; + + jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); + }; +} + +// These hooks are used by animate to expand properties +jQuery.each({ + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i, + + // assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ], + expanded = {}; + + for ( i = 0; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +}); +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + rselectTextarea = /^(?:select|textarea)/i; + +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map(function(){ + return this.elements ? jQuery.makeArray( this.elements ) : this; + }) + .filter(function(){ + return this.name && !this.disabled && + ( this.checked || rselectTextarea.test( this.nodeName ) || + rinput.test( this.type ) ); + }) + .map(function( i, elem ){ + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val, i ){ + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } +}); + +//Serialize an array of form elements or a set of +//key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // If array item is non-scalar (array or object), encode its + // numeric index to resolve deserialization ambiguity issues. + // Note that rack (as of 1.0.0) can't currently deserialize + // nested arrays properly, and attempting to do so may cause + // a server error. Possible fixes are to modify rack's + // deserialization algorithm or to provide an option or flag + // to force array serialization to be shallow. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} +var + // Document location + ajaxLocParts, + ajaxLocation, + + rhash = /#.*$/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rquery = /\?/, + rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, + rts = /([?&])_=[^&]*/, + rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, + + // Keep a copy of the old load method + _load = jQuery.fn.load, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = ["*/"] + ["*"]; + +// #8138, IE may throw an exception when accessing +// a field from window.location if document.domain has been set +try { + ajaxLocation = location.href; +} catch( e ) { + // Use the href attribute of an A element + // since IE will modify it given document.location + ajaxLocation = document.createElement( "a" ); + ajaxLocation.href = ""; + ajaxLocation = ajaxLocation.href; +} + +// Segment location into parts +ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, list, placeBefore, + dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ), + i = 0, + length = dataTypes.length; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + for ( ; i < length; i++ ) { + dataType = dataTypes[ i ]; + // We control if we're asked to add before + // any existing element + placeBefore = /^\+/.test( dataType ); + if ( placeBefore ) { + dataType = dataType.substr( 1 ) || "*"; + } + list = structure[ dataType ] = structure[ dataType ] || []; + // then we add to the structure accordingly + list[ placeBefore ? "unshift" : "push" ]( func ); + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR, + dataType /* internal */, inspected /* internal */ ) { + + dataType = dataType || options.dataTypes[ 0 ]; + inspected = inspected || {}; + + inspected[ dataType ] = true; + + var selection, + list = structure[ dataType ], + i = 0, + length = list ? list.length : 0, + executeOnly = ( structure === prefilters ); + + for ( ; i < length && ( executeOnly || !selection ); i++ ) { + selection = list[ i ]( options, originalOptions, jqXHR ); + // If we got redirected to another dataType + // we try there if executing only and not done already + if ( typeof selection === "string" ) { + if ( !executeOnly || inspected[ selection ] ) { + selection = undefined; + } else { + options.dataTypes.unshift( selection ); + selection = inspectPrefiltersOrTransports( + structure, options, originalOptions, jqXHR, selection, inspected ); + } + } + } + // If we're only executing or nothing was selected + // we try the catchall dataType if not done already + if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) { + selection = inspectPrefiltersOrTransports( + structure, options, originalOptions, jqXHR, "*", inspected ); + } + // unnecessary when only executing (prefilters) + // but it'll be ignored by the caller in that case + return selection; +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } +} + +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + // Don't do a request if no elements are being requested + if ( !this.length ) { + return this; + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = url.slice( off, url.length ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // Request the remote document + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params, + complete: function( jqXHR, status ) { + if ( callback ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + } + } + }).done(function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + // See if a selector was specified + self.html( selector ? + + // Create a dummy div to hold the results + jQuery("<div>") + + // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append( responseText.replace( rscript, "" ) ) + + // Locate the specified elements + .find( selector ) : + + // If not, just inject the full result + responseText ); + + }); + + return this; +}; + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){ + jQuery.fn[ o ] = function( f ){ + return this.on( o, f ); + }; +}); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + // shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + type: method, + url: url, + data: data, + success: callback, + dataType: type + }); + }; +}); + +jQuery.extend({ + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + if ( settings ) { + // Building a settings object + ajaxExtend( target, jQuery.ajaxSettings ); + } else { + // Extending ajaxSettings + settings = target; + target = jQuery.ajaxSettings; + } + ajaxExtend( target, settings ); + return target; + }, + + ajaxSettings: { + url: ajaxLocation, + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), + global: true, + type: "GET", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + processData: true, + async: true, + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + xml: "application/xml, text/xml", + html: "text/html", + text: "text/plain", + json: "application/json, text/javascript", + "*": allTypes + }, + + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText" + }, + + // List of data converters + // 1) key format is "source_type destination_type" (a single space in-between) + // 2) the catchall symbol "*" can be used for source_type + converters: { + + // Convert anything to text + "* text": window.String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + context: true, + url: true + } + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var // ifModified key + ifModifiedKey, + // Response headers + responseHeadersString, + responseHeaders, + // transport + transport, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events + // It's the callbackContext if one was provided in the options + // and if it's a DOM node or a jQuery collection + globalEventContext = callbackContext !== s && + ( callbackContext.nodeType || callbackContext instanceof jQuery ) ? + jQuery( callbackContext ) : jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + + readyState: 0, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( !state ) { + var lname = name.toLowerCase(); + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match === undefined ? null : match; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + statusText = statusText || strAbort; + if ( transport ) { + transport.abort( statusText ); + } + done( 0, statusText ); + return this; + } + }; + + // Callback for when everything is done + // It is defined here because jslint complains if it is declared + // at the end of the function (which would be more logical and readable) + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // If successful, handle type chaining + if ( status >= 200 && status < 300 || status === 304 ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ ifModifiedKey ] = modified; + } + modified = jqXHR.getResponseHeader("Etag"); + if ( modified ) { + jQuery.etag[ ifModifiedKey ] = modified; + } + } + + // If not modified + if ( status === 304 ) { + + statusText = "notmodified"; + isSuccess = true; + + // If we have data + } else { + + isSuccess = ajaxConvert( s, response ); + statusText = isSuccess.state; + success = isSuccess.data; + error = isSuccess.error; + isSuccess = !error; + } + } else { + // We extract error from statusText + // then normalize statusText and status for non-aborts + error = statusText; + if ( !statusText || status ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ), + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + // Attach deferreds + deferred.promise( jqXHR ); + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + jqXHR.complete = completeDeferred.add; + + // Status-dependent callbacks + jqXHR.statusCode = function( map ) { + if ( map ) { + var tmp; + if ( state < 2 ) { + for ( tmp in map ) { + statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ]; + } + } else { + tmp = map[ jqXHR.status ]; + jqXHR.always( tmp ); + } + } + return this; + }; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) + // We also use the url parameter if available + s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace ); + + // A cross-domain request is in order when we have a protocol:host:port mismatch + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) != + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + fireGlobals = s.global; + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Get ifModifiedKey before adding the anti-cache parameter + ifModifiedKey = s.url; + + // Add anti-cache in url if needed + if ( s.cache === false ) { + + var ts = jQuery.now(), + // try replacing _= if it is there + ret = s.url.replace( rts, "$1_=" + ts ); + + // if nothing was replaced, add timestamp to the end + s.url = ret + ( ( ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + ifModifiedKey = ifModifiedKey || s.url; + if ( jQuery.lastModified[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] ); + } + if ( jQuery.etag[ ifModifiedKey ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] ); + } + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already and return + return jqXHR.abort(); + + } + + // aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout( function(){ + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch (e) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + return jqXHR; + }, + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {} + +}); + +/* Handles responses to an ajax request: + * - sets all responseXXX fields accordingly + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes, + responseFields = s.responseFields; + + // Fill responseXXX fields + for ( type in responseFields ) { + if ( type in responses ) { + jqXHR[ responseFields[type] ] = responses[ type ]; + } + } + + // Remove auto dataType and get content-type in the process + while( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "content-type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +// Chain conversions given the request and the original response +function ajaxConvert( s, response ) { + + var conv, conv2, current, tmp, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(), + prev = dataTypes[ 0 ], + converters = {}, + i = 0; + + // Apply the dataFilter if provided + if ( s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + // Convert to each sequential dataType, tolerating list modification + for ( ; (current = dataTypes[++i]); ) { + + // There's only work to do if current dataType is non-auto + if ( current !== "*" ) { + + // Convert response if prev dataType is non-auto and differs from current + if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split(" "); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.splice( i--, 0, current ); + } + + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s["throws"] ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; + } + } + } + } + + // Update prev for next iteration + prev = current; + } + } + + return { state: "success", data: response }; +} +var oldCallbacks = [], + rquestion = /\?/, + rjsonp = /(=)\?(?=&|$)|\?\?/, + nonce = jQuery.now(); + +// Default jsonp settings +jQuery.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +}); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + data = s.data, + url = s.url, + hasCallback = s.jsonp !== false, + replaceInUrl = hasCallback && rjsonp.test( url ), + replaceInData = hasCallback && !replaceInUrl && typeof data === "string" && + !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && + rjsonp.test( data ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( s.dataTypes[ 0 ] === "jsonp" || replaceInUrl || replaceInData ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + overwritten = window[ callbackName ]; + + // Insert callback into url or form data + if ( replaceInUrl ) { + s.url = url.replace( rjsonp, "$1" + callbackName ); + } else if ( replaceInData ) { + s.data = data.replace( rjsonp, "$1" + callbackName ); + } else if ( hasCallback ) { + s.url += ( rquestion.test( url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters["script json"] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always(function() { + // Restore preexisting value + window[ callbackName ] = overwritten; + + // Save back as free + if ( s[ callbackName ] ) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + }); + + // Delegate to script + return "script"; + } +}); +// Install script dataType +jQuery.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /javascript|ecmascript/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +}); + +// Handle cache's special case and global +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + s.global = false; + } +}); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function(s) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + + var script, + head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement; + + return { + + send: function( _, callback ) { + + script = document.createElement( "script" ); + + script.async = "async"; + + if ( s.scriptCharset ) { + script.charset = s.scriptCharset; + } + + script.src = s.url; + + // Attach handlers for all browsers + script.onload = script.onreadystatechange = function( _, isAbort ) { + + if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { + + // Handle memory leak in IE + script.onload = script.onreadystatechange = null; + + // Remove the script + if ( head && script.parentNode ) { + head.removeChild( script ); + } + + // Dereference the script + script = undefined; + + // Callback if not abort + if ( !isAbort ) { + callback( 200, "success" ); + } + } + }; + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709 and #4378). + head.insertBefore( script, head.firstChild ); + }, + + abort: function() { + if ( script ) { + script.onload( 0, 1 ); + } + } + }; + } +}); +var xhrCallbacks, + // #5280: Internet Explorer will keep connections alive if we don't abort on unload + xhrOnUnloadAbort = window.ActiveXObject ? function() { + // Abort all pending requests + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ]( 0, 1 ); + } + } : false, + xhrId = 0; + +// Functions to create xhrs +function createStandardXHR() { + try { + return new window.XMLHttpRequest(); + } catch( e ) {} +} + +function createActiveXHR() { + try { + return new window.ActiveXObject( "Microsoft.XMLHTTP" ); + } catch( e ) {} +} + +// Create the request object +// (This is still attached to ajaxSettings for backward compatibility) +jQuery.ajaxSettings.xhr = window.ActiveXObject ? + /* Microsoft failed to properly + * implement the XMLHttpRequest in IE7 (can't request local files), + * so we use the ActiveXObject when it is available + * Additionally XMLHttpRequest can be disabled in IE7/IE8 so + * we need a fallback. + */ + function() { + return !this.isLocal && createStandardXHR() || createActiveXHR(); + } : + // For all other browsers, use the standard XMLHttpRequest object + createStandardXHR; + +// Determine support properties +(function( xhr ) { + jQuery.extend( jQuery.support, { + ajax: !!xhr, + cors: !!xhr && ( "withCredentials" in xhr ) + }); +})( jQuery.ajaxSettings.xhr() ); + +// Create transport if the browser can provide an xhr +if ( jQuery.support.ajax ) { + + jQuery.ajaxTransport(function( s ) { + // Cross domain only allowed if supported through XMLHttpRequest + if ( !s.crossDomain || jQuery.support.cors ) { + + var callback; + + return { + send: function( headers, complete ) { + + // Get a new xhr + var handle, i, + xhr = s.xhr(); + + // Open the socket + // Passing null username, generates a login popup on Opera (#2865) + if ( s.username ) { + xhr.open( s.type, s.url, s.async, s.username, s.password ); + } else { + xhr.open( s.type, s.url, s.async ); + } + + // Apply custom fields if provided + if ( s.xhrFields ) { + for ( i in s.xhrFields ) { + xhr[ i ] = s.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( s.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( s.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !s.crossDomain && !headers["X-Requested-With"] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Need an extra try/catch for cross domain requests in Firefox 3 + try { + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + } catch( _ ) {} + + // Do send the request + // This may raise an exception which is actually + // handled in jQuery.ajax (so no try/catch here) + xhr.send( ( s.hasContent && s.data ) || null ); + + // Listener + callback = function( _, isAbort ) { + + var status, + statusText, + responseHeaders, + responses, + xml; + + // Firefox throws exceptions when accessing properties + // of an xhr when a network error occurred + // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) + try { + + // Was never called and is aborted or complete + if ( callback && ( isAbort || xhr.readyState === 4 ) ) { + + // Only called once + callback = undefined; + + // Do not keep as active anymore + if ( handle ) { + xhr.onreadystatechange = jQuery.noop; + if ( xhrOnUnloadAbort ) { + delete xhrCallbacks[ handle ]; + } + } + + // If it's an abort + if ( isAbort ) { + // Abort it manually if needed + if ( xhr.readyState !== 4 ) { + xhr.abort(); + } + } else { + status = xhr.status; + responseHeaders = xhr.getAllResponseHeaders(); + responses = {}; + xml = xhr.responseXML; + + // Construct response list + if ( xml && xml.documentElement /* #4958 */ ) { + responses.xml = xml; + } + + // When requesting binary data, IE6-9 will throw an exception + // on any attempt to access responseText (#11426) + try { + responses.text = xhr.responseText; + } catch( e ) { + } + + // Firefox throws an exception when accessing + // statusText for faulty cross-domain requests + try { + statusText = xhr.statusText; + } catch( e ) { + // We normalize with Webkit giving an empty statusText + statusText = ""; + } + + // Filter status for non standard behaviors + + // If the request is local and we have data: assume a success + // (success with no data won't get notified, that's the best we + // can do given current implementations) + if ( !status && s.isLocal && !s.crossDomain ) { + status = responses.text ? 200 : 404; + // IE - #1450: sometimes returns 1223 when it should be 204 + } else if ( status === 1223 ) { + status = 204; + } + } + } + } catch( firefoxAccessException ) { + if ( !isAbort ) { + complete( -1, firefoxAccessException ); + } + } + + // Call complete if needed + if ( responses ) { + complete( status, statusText, responses, responseHeaders ); + } + }; + + if ( !s.async ) { + // if we're in sync mode we fire the callback + callback(); + } else if ( xhr.readyState === 4 ) { + // (IE6 & IE7) if it's in cache and has been + // retrieved directly we need to fire the callback + setTimeout( callback, 0 ); + } else { + handle = ++xhrId; + if ( xhrOnUnloadAbort ) { + // Create the active xhrs callbacks list if needed + // and attach the unload handler + if ( !xhrCallbacks ) { + xhrCallbacks = {}; + jQuery( window ).unload( xhrOnUnloadAbort ); + } + // Add to list of active xhrs callbacks + xhrCallbacks[ handle ] = callback; + } + xhr.onreadystatechange = callback; + } + }, + + abort: function() { + if ( callback ) { + callback(0,1); + } + } + }; + } + }); +} +var fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp( "^(?:([-+])=|)(" + core_pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [function( prop, value ) { + var end, unit, + tween = this.createTween( prop, value ), + parts = rfxnum.exec( value ), + target = tween.cur(), + start = +target || 0, + scale = 1, + maxIterations = 20; + + if ( parts ) { + end = +parts[2]; + unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + + // We need to compute starting value + if ( unit !== "px" && start ) { + // Iteratively approximate from a nonzero starting point + // Prefer the current property, because this process will be trivial if it uses the same units + // Fallback to end or a simple constant + start = jQuery.css( tween.elem, prop, true ) || end || 1; + + do { + // If previous iteration zeroed out, double until we get *something* + // Use a string for doubling factor so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // And breaking the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } + + tween.unit = unit; + tween.start = start; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end; + } + return tween; + }] + }; + +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout(function() { + fxNow = undefined; + }, 0 ); + return ( fxNow = jQuery.now() ); +} + +function createTweens( animation, props ) { + jQuery.each( props, function( prop, value ) { + var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( collection[ index ].call( animation, prop, value ) ) { + + // we're done with this property + return; + } + } + }); +} + +function Animation( elem, properties, options ) { + var result, + index = 0, + tweenerIndex = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + // archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end, easing ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // resolve when we played the last frame + // otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } + + createTweens( animation, props ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + anim: animation, + queue: animation.opts.queue, + elem: elem + }) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // not quite $.extend, this wont overwrite keys already present. + // also - reusing 'index' from above because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.split(" "); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } + }, + + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); + } else { + animationPrefilters.push( callback ); + } + } +}); + +function defaultPrefilter( elem, props, opts ) { + var index, prop, value, length, dataShow, toggle, tween, hooks, oldfire, + anim = this, + style = elem.style, + orig = {}, + handled = [], + hidden = elem.nodeType && isHidden( elem ); + + // handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always(function() { + // doing this makes sure that the complete handler will be called + // before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + }); + }); + } + + // height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + if ( jQuery.css( elem, "display" ) === "inline" && + jQuery.css( elem, "float" ) === "none" ) { + + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) { + style.display = "inline-block"; + + } else { + style.zoom = 1; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + if ( !jQuery.support.shrinkWrapBlocks ) { + anim.done(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } + } + + + // show/hide pass + for ( index in props ) { + value = props[ index ]; + if ( rfxtypes.exec( value ) ) { + delete props[ index ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + continue; + } + handled.push( index ); + } + } + + length = handled.length; + if ( length ) { + dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} ); + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + + // store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; + } + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + jQuery.removeData( elem, "fxshow", true ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + }); + for ( index = 0 ; index < length ; index++ ) { + prop = handled[ index ]; + tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 ); + orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop ); + + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + } +} + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; + } + + // passing any value as a 4th parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails + // so, simple values such as "10px" are parsed to Float. + // complex values such as "rotate(1rad)" are returned as is. + result = jQuery.css( tween.elem, tween.prop, false, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + // use step hook for back compat - use cssHook if its there - use .style if its + // available and use plain properties where available + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Remove in 2.0 - this supports IE8's panic based approach +// to setting things on disconnected nodes + +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" || + // special check for .toggle( handler, handler, ... ) + ( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +}); + +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { + + // show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations resolve immediately + if ( empty ) { + anim.stop( true ); + } + }; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = jQuery._data( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + } +}); + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + attrs = { height: type }, + i = 0; + + // if we include width, step value is 1 to do all cssExpand values, + // if we don't include width, step value is 2 to skip over Left and Right + includeWidth = includeWidth? 1 : 0; + for( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p*Math.PI ) / 2; + } +}; + +jQuery.timers = []; +jQuery.fx = Tween.prototype.init; +jQuery.fx.tick = function() { + var timer, + timers = jQuery.timers, + i = 0; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + if ( timer() && jQuery.timers.push( timer ) && !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.interval = 13; + +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + +if ( jQuery.expr && jQuery.expr.filters ) { + jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; + }; +} +var rroot = /^(?:body|html)$/i; + +jQuery.fn.offset = function( options ) { + if ( arguments.length ) { + return options === undefined ? + this : + this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + var docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, + box = { top: 0, left: 0 }, + elem = this[ 0 ], + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + if ( (body = doc.body) === elem ) { + return jQuery.offset.bodyOffset( elem ); + } + + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // If we don't have gBCR, just use 0,0 rather than error + // BlackBerry 5, iOS 3 (original iPhone) + if ( typeof elem.getBoundingClientRect !== "undefined" ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); + clientTop = docElem.clientTop || body.clientTop || 0; + clientLeft = docElem.clientLeft || body.clientLeft || 0; + scrollTop = win.pageYOffset || docElem.scrollTop; + scrollLeft = win.pageXOffset || docElem.scrollLeft; + return { + top: box.top + scrollTop - clientTop, + left: box.left + scrollLeft - clientLeft + }; +}; + +jQuery.offset = { + + bodyOffset: function( body ) { + var top = body.offsetTop, + left = body.offsetLeft; + + if ( jQuery.support.doesNotIncludeMarginInBodyOffset ) { + top += parseFloat( jQuery.css(body, "marginTop") ) || 0; + left += parseFloat( jQuery.css(body, "marginLeft") ) || 0; + } + + return { top: top, left: left }; + }, + + setOffset: function( elem, options, i ) { + var position = jQuery.css( elem, "position" ); + + // set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + var curElem = jQuery( elem ), + curOffset = curElem.offset(), + curCSSTop = jQuery.css( elem, "top" ), + curCSSLeft = jQuery.css( elem, "left" ), + calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, + props = {}, curPosition = {}, curTop, curLeft; + + // need to be able to calculate position if either top or left is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( jQuery.isFunction( options ) ) { + options = options.call( elem, i, curOffset ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + } else { + curElem.css( props ); + } + } +}; + + +jQuery.fn.extend({ + + position: function() { + if ( !this[0] ) { + return; + } + + var elem = this[0], + + // Get *real* offsetParent + offsetParent = this.offsetParent(), + + // Get correct offsets + offset = this.offset(), + parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; + offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; + + // Add offsetParent borders + parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; + parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + }; + }, + + offsetParent: function() { + return this.map(function() { + var offsetParent = this.offsetParent || document.body; + while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { + offsetParent = offsetParent.offsetParent; + } + return offsetParent || document.body; + }); + } +}); + + +// Create scrollLeft and scrollTop methods +jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) { + var top = /Y/.test( prop ); + + jQuery.fn[ method ] = function( val ) { + return jQuery.access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? (prop in win) ? win[ prop ] : + win.document.documentElement[ method ] : + elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : jQuery( win ).scrollLeft(), + top ? val : jQuery( win ).scrollTop() + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; +}); + +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? + elem : + elem.nodeType === 9 ? + elem.defaultView || elem.parentWindow : + false; +} +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return jQuery.access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, value, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable, null ); + }; + }); +}); +// Expose jQuery to the global object +window.jQuery = window.$ = jQuery; + +// Expose jQuery as an AMD module, but only for AMD loaders that +// understand the issues with loading multiple versions of jQuery +// in a page that all might call define(). The loader will indicate +// they have special allowances for multiple jQuery versions by +// specifying define.amd.jQuery = true. Register as a named module, +// since jQuery can be concatenated with other files that may use define, +// but not use a proper concatenation script that understands anonymous +// AMD modules. A named AMD is safest and most robust way to register. +// Lowercase jquery is used because AMD module names are derived from +// file names, and jQuery is normally delivered in a lowercase file name. +// Do this after creating the global so that if an AMD module wants to call +// noConflict to hide this version of jQuery, it will work. +if ( typeof define === "function" && define.amd && define.amd.jQuery ) { + define( "jquery", [], function () { return jQuery; } ); +} + +})( window ); +(function($, undefined) { + +/** + * Unobtrusive scripting adapter for jQuery + * + * Requires jQuery 1.6.0 or later. + * https://github.com/rails/jquery-ujs + + * Uploading file using rails.js + * ============================= + * + * By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields + * in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means. + * + * The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish. + * + * Ex: + * $('form').live('ajax:aborted:file', function(event, elements){ + * // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`. + * // Returning false in this handler tells rails.js to disallow standard form submission + * return false; + * }); + * + * The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value. + * + * Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use + * techniques like the iframe method to upload the file instead. + * + * Required fields in rails.js + * =========================== + * + * If any blank required inputs (required="required") are detected in the remote form, the whole form submission + * is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission. + * + * The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs. + * + * !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never + * get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior. + * + * Ex: + * $('form').live('ajax:aborted:required', function(event, elements){ + * // Returning false in this handler tells rails.js to submit the form anyway. + * // The blank required inputs are passed to this function in `elements`. + * return ! confirm("Would you like to submit the form with missing info?"); + * }); + */ + + // Cut down on the number if issues from people inadvertently including jquery_ujs twice + // by detecting and raising an error when it happens. + var alreadyInitialized = function() { + var events = $._data(document, 'events'); + return events && events.click && $.grep(events.click, function(e) { return e.namespace === 'rails'; }).length; + } + + if ( alreadyInitialized() ) { + $.error('jquery-ujs has already been loaded!'); + } + + // Shorthand to make it a little easier to call public rails functions from within rails.js + var rails; + + $.rails = rails = { + // Link elements bound by jquery-ujs + linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]', + + // Select elements bound by jquery-ujs + inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]', + + // Form elements bound by jquery-ujs + formSubmitSelector: 'form', + + // Form input elements bound by jquery-ujs + formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])', + + // Form input elements disabled during form submission + disableSelector: 'input[data-disable-with], button[data-disable-with], textarea[data-disable-with]', + + // Form input elements re-enabled after form submission + enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled', + + // Form required input elements + requiredInputSelector: 'input[name][required]:not([disabled]),textarea[name][required]:not([disabled])', + + // Form file input elements + fileInputSelector: 'input:file', + + // Link onClick disable selector with possible reenable after remote submission + linkDisableSelector: 'a[data-disable-with]', + + // Make sure that every Ajax request sends the CSRF token + CSRFProtection: function(xhr) { + var token = $('meta[name="csrf-token"]').attr('content'); + if (token) xhr.setRequestHeader('X-CSRF-Token', token); + }, + + // Triggers an event on an element and returns false if the event result is false + fire: function(obj, name, data) { + var event = $.Event(name); + obj.trigger(event, data); + return event.result !== false; + }, + + // Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm + confirm: function(message) { + return confirm(message); + }, + + // Default ajax function, may be overridden with custom function in $.rails.ajax + ajax: function(options) { + return $.ajax(options); + }, + + // Default way to get an element's href. May be overridden at $.rails.href. + href: function(element) { + return element.attr('href'); + }, + + // Submits "remote" forms and links with ajax + handleRemote: function(element) { + var method, url, data, elCrossDomain, crossDomain, withCredentials, dataType, options; + + if (rails.fire(element, 'ajax:before')) { + elCrossDomain = element.data('cross-domain'); + crossDomain = elCrossDomain === undefined ? null : elCrossDomain; + withCredentials = element.data('with-credentials') || null; + dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType); + + if (element.is('form')) { + method = element.attr('method'); + url = element.attr('action'); + data = element.serializeArray(); + // memoized value from clicked submit button + var button = element.data('ujs:submit-button'); + if (button) { + data.push(button); + element.data('ujs:submit-button', null); + } + } else if (element.is(rails.inputChangeSelector)) { + method = element.data('method'); + url = element.data('url'); + data = element.serialize(); + if (element.data('params')) data = data + "&" + element.data('params'); + } else { + method = element.data('method'); + url = rails.href(element); + data = element.data('params') || null; + } + + options = { + type: method || 'GET', data: data, dataType: dataType, + // stopping the "ajax:beforeSend" event will cancel the ajax request + beforeSend: function(xhr, settings) { + if (settings.dataType === undefined) { + xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script); + } + return rails.fire(element, 'ajax:beforeSend', [xhr, settings]); + }, + success: function(data, status, xhr) { + element.trigger('ajax:success', [data, status, xhr]); + }, + complete: function(xhr, status) { + element.trigger('ajax:complete', [xhr, status]); + }, + error: function(xhr, status, error) { + element.trigger('ajax:error', [xhr, status, error]); + }, + xhrFields: { + withCredentials: withCredentials + }, + crossDomain: crossDomain + }; + // Only pass url to `ajax` options if not blank + if (url) { options.url = url; } + + var jqxhr = rails.ajax(options); + element.trigger('ajax:send', jqxhr); + return jqxhr; + } else { + return false; + } + }, + + // Handles "data-method" on links such as: + // <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a> + handleMethod: function(link) { + var href = rails.href(link), + method = link.data('method'), + target = link.attr('target'), + csrf_token = $('meta[name=csrf-token]').attr('content'), + csrf_param = $('meta[name=csrf-param]').attr('content'), + form = $('<form method="post" action="' + href + '"></form>'), + metadata_input = '<input name="_method" value="' + method + '" type="hidden" />'; + + if (csrf_param !== undefined && csrf_token !== undefined) { + metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />'; + } + + if (target) { form.attr('target', target); } + + form.hide().append(metadata_input).appendTo('body'); + form.submit(); + }, + + /* Disables form elements: + - Caches element value in 'ujs:enable-with' data store + - Replaces element text with value of 'data-disable-with' attribute + - Sets disabled property to true + */ + disableFormElements: function(form) { + form.find(rails.disableSelector).each(function() { + var element = $(this), method = element.is('button') ? 'html' : 'val'; + element.data('ujs:enable-with', element[method]()); + element[method](element.data('disable-with')); + element.prop('disabled', true); + }); + }, + + /* Re-enables disabled form elements: + - Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`) + - Sets disabled property to false + */ + enableFormElements: function(form) { + form.find(rails.enableSelector).each(function() { + var element = $(this), method = element.is('button') ? 'html' : 'val'; + if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with')); + element.prop('disabled', false); + }); + }, + + /* For 'data-confirm' attribute: + - Fires `confirm` event + - Shows the confirmation dialog + - Fires the `confirm:complete` event + + Returns `true` if no function stops the chain and user chose yes; `false` otherwise. + Attaching a handler to the element's `confirm` event that returns a `falsy` value cancels the confirmation dialog. + Attaching a handler to the element's `confirm:complete` event that returns a `falsy` value makes this function + return false. The `confirm:complete` event is fired whether or not the user answered true or false to the dialog. + */ + allowAction: function(element) { + var message = element.data('confirm'), + answer = false, callback; + if (!message) { return true; } + + if (rails.fire(element, 'confirm')) { + answer = rails.confirm(message); + callback = rails.fire(element, 'confirm:complete', [answer]); + } + return answer && callback; + }, + + // Helper function which checks for blank inputs in a form that match the specified CSS selector + blankInputs: function(form, specifiedSelector, nonBlank) { + var inputs = $(), input, valueToCheck, + selector = specifiedSelector || 'input,textarea', + allInputs = form.find(selector); + + allInputs.each(function() { + input = $(this); + valueToCheck = input.is(':checkbox,:radio') ? input.is(':checked') : input.val(); + // If nonBlank and valueToCheck are both truthy, or nonBlank and valueToCheck are both falsey + if (!valueToCheck === !nonBlank) { + + // Don't count unchecked required radio if other radio with same name is checked + if (input.is(':radio') && allInputs.filter('input:radio:checked[name="' + input.attr('name') + '"]').length) { + return true; // Skip to next input + } + + inputs = inputs.add(input); + } + }); + return inputs.length ? inputs : false; + }, + + // Helper function which checks for non-blank inputs in a form that match the specified CSS selector + nonBlankInputs: function(form, specifiedSelector) { + return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank + }, + + // Helper function, needed to provide consistent behavior in IE + stopEverything: function(e) { + $(e.target).trigger('ujs:everythingStopped'); + e.stopImmediatePropagation(); + return false; + }, + + // find all the submit events directly bound to the form and + // manually invoke them. If anyone returns false then stop the loop + callFormSubmitBindings: function(form, event) { + var events = form.data('events'), continuePropagation = true; + if (events !== undefined && events['submit'] !== undefined) { + $.each(events['submit'], function(i, obj){ + if (typeof obj.handler === 'function') return continuePropagation = obj.handler(event); + }); + } + return continuePropagation; + }, + + // replace element's html with the 'data-disable-with' after storing original html + // and prevent clicking on it + disableElement: function(element) { + element.data('ujs:enable-with', element.html()); // store enabled state + element.html(element.data('disable-with')); // set to disabled state + element.bind('click.railsDisable', function(e) { // prevent further clicking + return rails.stopEverything(e); + }); + }, + + // restore element to its original state which was disabled by 'disableElement' above + enableElement: function(element) { + if (element.data('ujs:enable-with') !== undefined) { + element.html(element.data('ujs:enable-with')); // set to old enabled state + // this should be element.removeData('ujs:enable-with') + // but, there is currently a bug in jquery which makes hyphenated data attributes not get removed + element.data('ujs:enable-with', false); // clean up cache + } + element.unbind('click.railsDisable'); // enable element + } + + }; + + if (rails.fire($(document), 'rails:attachBindings')) { + + $.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }}); + + $(document).delegate(rails.linkDisableSelector, 'ajax:complete', function() { + rails.enableElement($(this)); + }); + + $(document).delegate(rails.linkClickSelector, 'click.rails', function(e) { + var link = $(this), method = link.data('method'), data = link.data('params'); + if (!rails.allowAction(link)) return rails.stopEverything(e); + + if (link.is(rails.linkDisableSelector)) rails.disableElement(link); + + if (link.data('remote') !== undefined) { + if ( (e.metaKey || e.ctrlKey) && (!method || method === 'GET') && !data ) { return true; } + + var handleRemote = rails.handleRemote(link); + // response from rails.handleRemote() will either be false or a deferred object promise. + if (handleRemote === false) { + rails.enableElement(link); + } else { + handleRemote.error( function() { rails.enableElement(link); } ); + } + return false; + + } else if (link.data('method')) { + rails.handleMethod(link); + return false; + } + }); + + $(document).delegate(rails.inputChangeSelector, 'change.rails', function(e) { + var link = $(this); + if (!rails.allowAction(link)) return rails.stopEverything(e); + + rails.handleRemote(link); + return false; + }); + + $(document).delegate(rails.formSubmitSelector, 'submit.rails', function(e) { + var form = $(this), + remote = form.data('remote') !== undefined, + blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector), + nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector); + + if (!rails.allowAction(form)) return rails.stopEverything(e); + + // skip other logic when required values are missing or file upload is present + if (blankRequiredInputs && form.attr("novalidate") == undefined && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) { + return rails.stopEverything(e); + } + + if (remote) { + if (nonBlankFileInputs) { + // slight timeout so that the submit button gets properly serialized + // (make it easy for event handler to serialize form without disabled values) + setTimeout(function(){ rails.disableFormElements(form); }, 13); + var aborted = rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]); + + // re-enable form elements if event bindings return false (canceling normal form submission) + if (!aborted) { setTimeout(function(){ rails.enableFormElements(form); }, 13); } + + return aborted; + } + + // If browser does not support submit bubbling, then this live-binding will be called before direct + // bindings. Therefore, we should directly call any direct bindings before remotely submitting form. + if (!$.support.submitBubbles && $().jquery < '1.7' && rails.callFormSubmitBindings(form, e) === false) return rails.stopEverything(e); + + rails.handleRemote(form); + return false; + + } else { + // slight timeout so that the submit button gets properly serialized + setTimeout(function(){ rails.disableFormElements(form); }, 13); + } + }); + + $(document).delegate(rails.formInputClickSelector, 'click.rails', function(event) { + var button = $(this); + + if (!rails.allowAction(button)) return rails.stopEverything(event); + + // register the pressed submit button + var name = button.attr('name'), + data = name ? {name:name, value:button.val()} : null; + + button.closest('form').data('ujs:submit-button', data); + }); + + $(document).delegate(rails.formSubmitSelector, 'ajax:beforeSend.rails', function(event) { + if (this == event.target) rails.disableFormElements($(this)); + }); + + $(document).delegate(rails.formSubmitSelector, 'ajax:complete.rails', function(event) { + if (this == event.target) rails.enableFormElements($(this)); + }); + + $(function(){ + // making sure that all forms have actual up-to-date token(cached forms contain old one) + csrf_token = $('meta[name=csrf-token]').attr('content'); + csrf_param = $('meta[name=csrf-param]').attr('content'); + $('form input[name="' + csrf_param + '"]').val(csrf_token); + }); + } + +})( jQuery ); +/* + * jQuery Tools 1.2.5 - The missing UI library for the Web + * + * [jquery, toolbox.flashembed, toolbox.history, toolbox.expose, toolbox.mousewheel, tabs, tabs.slideshow, tooltip, tooltip.slide, tooltip.dynamic, scrollable, scrollable.autoscroll, scrollable.navigator, overlay, overlay.apple, dateinput, rangeinput, validator] + * + * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE. + * + * http://flowplayer.org/tools/ + * + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://docs.jquery.com/License + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * ----- + * + + + * jquery.event.wheel.js - rev 1 + * Copyright (c) 2008, Three Dub Media (http://threedubmedia.com) + * Liscensed under the MIT License (MIT-LICENSE.txt) + * http://www.opensource.org/licenses/mit-license.php + * Created: 2008-07-01 | Updated: 2008-07-14 + * + * ----- + * + * File generated: Wed Sep 22 06:12:53 GMT 2010 + */ + +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? +e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= +j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, +"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= +true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| +c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", +L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, +"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ +a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], +d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== +a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& +!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= +true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", +i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", +" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= +this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= +e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= +null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, +"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= +a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, +isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= +{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; +if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& +!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, +toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, +u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), +function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; +if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; +for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- +1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, +CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, +relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= +l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; +h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= +m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| +!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= +h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, +gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; +c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? +a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& +this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| +u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== +1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); +this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], +"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, +animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= +j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); +this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| +c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? +function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= +this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; +k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& +f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); +(function(){function f(a,b){if(b)for(var c in b)if(b.hasOwnProperty(c))a[c]=b[c];return a}function l(a,b){var c=[];for(var d in a)if(a.hasOwnProperty(d))c[d]=b(a[d]);return c}function m(a,b,c){if(e.isSupported(b.version))a.innerHTML=e.getHTML(b,c);else if(b.expressInstall&&e.isSupported([6,65]))a.innerHTML=e.getHTML(f(b,{src:b.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title});else{if(!a.innerHTML.replace(/\s/g,"")){a.innerHTML="<h2>Flash version "+b.version+ +" or greater is required</h2><h3>"+(g[0]>0?"Your version is "+g:"You have no flash plugin installed")+"</h3>"+(a.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+k+"'>here</a></p>");if(a.tagName=="A")a.onclick=function(){location.href=k}}if(b.onFail){var d=b.onFail.call(this);if(typeof d=="string")a.innerHTML=d}}if(i)window[b.id]=document.getElementById(b.id);f(this,{getRoot:function(){return a},getOptions:function(){return b},getConf:function(){return c}, +getApi:function(){return a.firstChild}})}var i=document.all,k="http://www.adobe.com/go/getflashplayer",n=typeof jQuery=="function",o=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,j={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};window.attachEvent&&window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}}); +window.flashembed=function(a,b,c){if(typeof a=="string")a=document.getElementById(a.replace("#",""));if(a){if(typeof b=="string")b={src:b};return new m(a,f(f({},j),b),c)}};var e=f(window.flashembed,{conf:j,getVersion:function(){var a,b;try{b=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(c){try{b=(a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"))&&a.GetVariable("$version")}catch(d){try{b=(a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"))&&a.GetVariable("$version")}catch(h){}}}return(b= +o.exec(b))?[b[1],b[3]]:[0,0]},asString:function(a){if(a===null||a===undefined)return null;var b=typeof a;if(b=="object"&&a.push)b="array";switch(b){case "string":a=a.replace(new RegExp('(["\\\\])',"g"),"\\$1");a=a.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+a+'"';case "array":return"["+l(a,function(d){return e.asString(d)}).join(",")+"]";case "function":return'"function()"';case "object":b=[];for(var c in a)a.hasOwnProperty(c)&&b.push('"'+c+'":'+e.asString(a[c]));return"{"+b.join(",")+"}"}return String(a).replace(/\s/g, +" ").replace(/\'/g,'"')},getHTML:function(a,b){a=f({},a);var c='<object width="'+a.width+'" height="'+a.height+'" id="'+a.id+'" name="'+a.id+'"';if(a.cachebusting)a.src+=(a.src.indexOf("?")!=-1?"&":"?")+Math.random();c+=a.w3c||!i?' data="'+a.src+'" type="application/x-shockwave-flash"':' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';c+=">";if(a.w3c||i)c+='<param name="movie" value="'+a.src+'" />';a.width=a.height=a.id=a.w3c=a.src=null;a.onFail=a.version=a.expressInstall=null;for(var d in a)if(a[d])c+= +'<param name="'+d+'" value="'+a[d]+'" />';a="";if(b){for(var h in b)if(b[h]){d=b[h];a+=h+"="+(/function|object/.test(typeof d)?e.asString(d):d)+"&"}a=a.slice(0,-1);c+='<param name="flashvars" value=\''+a+"' />"}c+="</object>";return c},isSupported:function(a){return g[0]>a[0]||g[0]==a[0]&&g[1]>=a[1]}}),g=e.getVersion();if(n){jQuery.tools=jQuery.tools||{version:"1.2.5"};jQuery.tools.flashembed={conf:j};jQuery.fn.flashembed=function(a,b){return this.each(function(){$(this).data("flashembed",flashembed(this, +a,b))})}}})(); +(function(b){function h(c){if(c){var a=d.contentWindow.document;a.open().close();a.location.hash=c}}var g,d,f,i;b.tools=b.tools||{version:"1.2.5"};b.tools.history={init:function(c){if(!i){if(b.browser.msie&&b.browser.version<"8"){if(!d){d=b("<iframe/>").attr("src","javascript:false;").hide().get(0);b("body").append(d);setInterval(function(){var a=d.contentWindow.document;a=a.location.hash;g!==a&&b.event.trigger("hash",a)},100);h(location.hash||"#")}}else setInterval(function(){var a=location.hash; +a!==g&&b.event.trigger("hash",a)},100);f=!f?c:f.add(c);c.click(function(a){var e=b(this).attr("href");d&&h(e);if(e.slice(0,1)!="#"){location.href="#"+e;return a.preventDefault()}});i=true}}};b(window).bind("hash",function(c,a){a?f.filter(function(){var e=b(this).attr("href");return e==a||e==a.replace("#","")}).trigger("history",[a]):f.eq(0).trigger("history",[a]);g=a});b.fn.history=function(c){b.tools.history.init(this);return this.bind("history",c)}})(jQuery); +(function(b){function k(){if(b.browser.msie){var a=b(document).height(),d=b(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a-d<20?d:a]}return[b(document).width(),b(document).height()]}function h(a){if(a)return a.call(b.mask)}b.tools=b.tools||{version:"1.2.5"};var l;l=b.tools.expose={conf:{maskId:"exposeMask",loadSpeed:"slow",closeSpeed:"fast",closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:0.8,startOpacity:0,color:"#fff",onLoad:null, +onClose:null}};var c,i,e,g,j;b.mask={load:function(a,d){if(e)return this;if(typeof a=="string")a={color:a};a=a||g;g=a=b.extend(b.extend({},l.conf),a);c=b("#"+a.maskId);if(!c.length){c=b("<div/>").attr("id",a.maskId);b("body").append(c)}var m=k();c.css({position:"absolute",top:0,left:0,width:m[0],height:m[1],display:"none",opacity:a.startOpacity,zIndex:a.zIndex});a.color&&c.css("backgroundColor",a.color);if(h(a.onBeforeLoad)===false)return this;a.closeOnEsc&&b(document).bind("keydown.mask",function(f){f.keyCode== +27&&b.mask.close(f)});a.closeOnClick&&c.bind("click.mask",function(f){b.mask.close(f)});b(window).bind("resize.mask",function(){b.mask.fit()});if(d&&d.length){j=d.eq(0).css("zIndex");b.each(d,function(){var f=b(this);/relative|absolute|fixed/i.test(f.css("position"))||f.css("position","relative")});i=d.css({zIndex:Math.max(a.zIndex+1,j=="auto"?0:j)})}c.css({display:"block"}).fadeTo(a.loadSpeed,a.opacity,function(){b.mask.fit();h(a.onLoad);e="full"});e=true;return this},close:function(){if(e){if(h(g.onBeforeClose)=== +false)return this;c.fadeOut(g.closeSpeed,function(){h(g.onClose);i&&i.css({zIndex:j});e=false});b(document).unbind("keydown.mask");c.unbind("click.mask");b(window).unbind("resize.mask")}return this},fit:function(){if(e){var a=k();c.css({width:a[0],height:a[1]})}},getMask:function(){return c},isLoaded:function(a){return a?e=="full":e},getConf:function(){return g},getExposed:function(){return i}};b.fn.mask=function(a){b.mask.load(a);return this};b.fn.expose=function(a){b.mask.load(a,this);return this}})(jQuery); +(function(b){function c(a){switch(a.type){case "mousemove":return b.extend(a.data,{clientX:a.clientX,clientY:a.clientY,pageX:a.pageX,pageY:a.pageY});case "DOMMouseScroll":b.extend(a,a.data);a.delta=-a.detail/3;break;case "mousewheel":a.delta=a.wheelDelta/120;break}a.type="wheel";return b.event.handle.call(this,a,a.delta)}b.fn.mousewheel=function(a){return this[a?"bind":"trigger"]("wheel",a)};b.event.special.wheel={setup:function(){b.event.add(this,d,c,{})},teardown:function(){b.event.remove(this, +d,c)}};var d=!b.browser.mozilla?"mousewheel":"DOMMouseScroll"+(b.browser.version<"1.9"?" mousemove":"")})(jQuery); +(function(c){function p(d,b,a){var e=this,l=d.add(this),h=d.find(a.tabs),i=b.jquery?b:d.children(b),j;h.length||(h=d.children());i.length||(i=d.parent().find(b));i.length||(i=c(b));c.extend(this,{click:function(f,g){var k=h.eq(f);if(typeof f=="string"&&f.replace("#","")){k=h.filter("[href*="+f.replace("#","")+"]");f=Math.max(h.index(k),0)}if(a.rotate){var n=h.length-1;if(f<0)return e.click(n,g);if(f>n)return e.click(0,g)}if(!k.length){if(j>=0)return e;f=a.initialIndex;k=h.eq(f)}if(f===j)return e; +g=g||c.Event();g.type="onBeforeClick";l.trigger(g,[f]);if(!g.isDefaultPrevented()){o[a.effect].call(e,f,function(){g.type="onClick";l.trigger(g,[f])});j=f;h.removeClass(a.current);k.addClass(a.current);return e}},getConf:function(){return a},getTabs:function(){return h},getPanes:function(){return i},getCurrentPane:function(){return i.eq(j)},getCurrentTab:function(){return h.eq(j)},getIndex:function(){return j},next:function(){return e.click(j+1)},prev:function(){return e.click(j-1)},destroy:function(){h.unbind(a.event).removeClass(a.current); +i.find("a[href^=#]").unbind("click.T");return e}});c.each("onBeforeClick,onClick".split(","),function(f,g){c.isFunction(a[g])&&c(e).bind(g,a[g]);e[g]=function(k){k&&c(e).bind(g,k);return e}});if(a.history&&c.fn.history){c.tools.history.init(h);a.event="history"}h.each(function(f){c(this).bind(a.event,function(g){e.click(f,g);return g.preventDefault()})});i.find("a[href^=#]").bind("click.T",function(f){e.click(c(this).attr("href"),f)});if(location.hash&&a.tabs=="a"&&d.find("[href="+location.hash+"]").length)e.click(location.hash); +else if(a.initialIndex===0||a.initialIndex>0)e.click(a.initialIndex)}c.tools=c.tools||{version:"1.2.5"};c.tools.tabs={conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialIndex:0,event:"click",rotate:false,history:false},addEffect:function(d,b){o[d]=b}};var o={"default":function(d,b){this.getPanes().hide().eq(d).show();b.call()},fade:function(d,b){var a=this.getConf(),e=a.fadeOutSpeed,l=this.getPanes();e?l.fadeOut(e):l.hide();l.eq(d).fadeIn(a.fadeInSpeed,b)},slide:function(d, +b){this.getPanes().slideUp(200);this.getPanes().eq(d).slideDown(400,b)},ajax:function(d,b){this.getPanes().eq(0).load(this.getTabs().eq(d).attr("href"),b)}},m;c.tools.tabs.addEffect("horizontal",function(d,b){m||(m=this.getPanes().eq(0).width());this.getCurrentPane().animate({width:0},function(){c(this).hide()});this.getPanes().eq(d).animate({width:m},function(){c(this).show();b.call()})});c.fn.tabs=function(d,b){var a=this.data("tabs");if(a){a.destroy();this.removeData("tabs")}if(c.isFunction(b))b= +{onBeforeClick:b};b=c.extend({},c.tools.tabs.conf,b);this.each(function(){a=new p(c(this),d,b);c(this).data("tabs",a)});return b.api?a:this}})(jQuery); +(function(c){function p(g,a){function m(f){var e=c(f);return e.length<2?e:g.parent().find(f)}var b=this,i=g.add(this),d=g.data("tabs"),h,j=true,n=m(a.next).click(function(){d.next()}),k=m(a.prev).click(function(){d.prev()});c.extend(b,{getTabs:function(){return d},getConf:function(){return a},play:function(){if(h)return b;var f=c.Event("onBeforePlay");i.trigger(f);if(f.isDefaultPrevented())return b;h=setInterval(d.next,a.interval);j=false;i.trigger("onPlay");return b},pause:function(){if(!h)return b; +var f=c.Event("onBeforePause");i.trigger(f);if(f.isDefaultPrevented())return b;h=clearInterval(h);i.trigger("onPause");return b},stop:function(){b.pause();j=true}});c.each("onBeforePlay,onPlay,onBeforePause,onPause".split(","),function(f,e){c.isFunction(a[e])&&c(b).bind(e,a[e]);b[e]=function(q){return c(b).bind(e,q)}});a.autopause&&d.getTabs().add(n).add(k).add(d.getPanes()).hover(b.pause,function(){j||b.play()});a.autoplay&&b.play();a.clickable&&d.getPanes().click(function(){d.next()});if(!d.getConf().rotate){var l= +a.disabledClass;d.getIndex()||k.addClass(l);d.onBeforeClick(function(f,e){k.toggleClass(l,!e);n.toggleClass(l,e==d.getTabs().length-1)})}}var o;o=c.tools.tabs.slideshow={conf:{next:".forward",prev:".backward",disabledClass:"disabled",autoplay:false,autopause:true,interval:3E3,clickable:true,api:false}};c.fn.slideshow=function(g){var a=this.data("slideshow");if(a)return a;g=c.extend({},o.conf,g);this.each(function(){a=new p(c(this),g);c(this).data("slideshow",a)});return g.api?a:this}})(jQuery); +(function(f){function p(a,b,c){var h=c.relative?a.position().top:a.offset().top,d=c.relative?a.position().left:a.offset().left,i=c.position[0];h-=b.outerHeight()-c.offset[0];d+=a.outerWidth()+c.offset[1];if(/iPad/i.test(navigator.userAgent))h-=f(window).scrollTop();var j=b.outerHeight()+a.outerHeight();if(i=="center")h+=j/2;if(i=="bottom")h+=j;i=c.position[1];a=b.outerWidth()+a.outerWidth();if(i=="center")d-=a/2;if(i=="left")d-=a;return{top:h,left:d}}function u(a,b){var c=this,h=a.add(c),d,i=0,j= +0,m=a.attr("title"),q=a.attr("data-tooltip"),r=o[b.effect],l,s=a.is(":input"),v=s&&a.is(":checkbox, :radio, select, :button, :submit"),t=a.attr("type"),k=b.events[t]||b.events[s?v?"widget":"input":"def"];if(!r)throw'Nonexistent effect "'+b.effect+'"';k=k.split(/,\s*/);if(k.length!=2)throw"Tooltip: bad events configuration for "+t;a.bind(k[0],function(e){clearTimeout(i);if(b.predelay)j=setTimeout(function(){c.show(e)},b.predelay);else c.show(e)}).bind(k[1],function(e){clearTimeout(j);if(b.delay)i= +setTimeout(function(){c.hide(e)},b.delay);else c.hide(e)});if(m&&b.cancelDefault){a.removeAttr("title");a.data("title",m)}f.extend(c,{show:function(e){if(!d){if(q)d=f(q);else if(b.tip)d=f(b.tip).eq(0);else if(m)d=f(b.layout).addClass(b.tipClass).appendTo(document.body).hide().append(m);else{d=a.next();d.length||(d=a.parent().next())}if(!d.length)throw"Cannot find tooltip for "+a;}if(c.isShown())return c;d.stop(true,true);var g=p(a,d,b);b.tip&&d.html(a.data("title"));e=e||f.Event();e.type="onBeforeShow"; +h.trigger(e,[g]);if(e.isDefaultPrevented())return c;g=p(a,d,b);d.css({position:"absolute",top:g.top,left:g.left});l=true;r[0].call(c,function(){e.type="onShow";l="full";h.trigger(e)});g=b.events.tooltip.split(/,\s*/);if(!d.data("__set")){d.bind(g[0],function(){clearTimeout(i);clearTimeout(j)});g[1]&&!a.is("input:not(:checkbox, :radio), textarea")&&d.bind(g[1],function(n){n.relatedTarget!=a[0]&&a.trigger(k[1].split(" ")[0])});d.data("__set",true)}return c},hide:function(e){if(!d||!c.isShown())return c; +e=e||f.Event();e.type="onBeforeHide";h.trigger(e);if(!e.isDefaultPrevented()){l=false;o[b.effect][1].call(c,function(){e.type="onHide";h.trigger(e)});return c}},isShown:function(e){return e?l=="full":l},getConf:function(){return b},getTip:function(){return d},getTrigger:function(){return a}});f.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(e,g){f.isFunction(b[g])&&f(c).bind(g,b[g]);c[g]=function(n){n&&f(c).bind(g,n);return c}})}f.tools=f.tools||{version:"1.2.5"};f.tools.tooltip= +{conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:["top","center"],offset:[0,0],relative:false,cancelDefault:true,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(a,b,c){o[a]=[b,c]}};var o={toggle:[function(a){var b=this.getConf(),c=this.getTip();b=b.opacity;b<1&&c.css({opacity:b});c.show();a.call()},function(a){this.getTip().hide(); +a.call()}],fade:[function(a){var b=this.getConf();this.getTip().fadeTo(b.fadeInSpeed,b.opacity,a)},function(a){this.getTip().fadeOut(this.getConf().fadeOutSpeed,a)}]};f.fn.tooltip=function(a){var b=this.data("tooltip");if(b)return b;a=f.extend(true,{},f.tools.tooltip.conf,a);if(typeof a.position=="string")a.position=a.position.split(/,?\s/);this.each(function(){b=new u(f(this),a);f(this).data("tooltip",b)});return a.api?b:this}})(jQuery); +(function(d){var i=d.tools.tooltip;d.extend(i.conf,{direction:"up",bounce:false,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!d.browser.msie});var e={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};i.addEffect("slide",function(g){var a=this.getConf(),f=this.getTip(),b=a.slideFade?{opacity:a.opacity}:{},c=e[a.direction]||e.up;b[c[1]]=c[0]+"="+a.slideOffset;a.slideFade&&f.css({opacity:0});f.show().animate(b,a.slideInSpeed,g)},function(g){var a=this.getConf(),f=a.slideOffset, +b=a.slideFade?{opacity:0}:{},c=e[a.direction]||e.up,h=""+c[0];if(a.bounce)h=h=="+"?"-":"+";b[c[1]]=h+"="+f;this.getTip().animate(b,a.slideOutSpeed,function(){d(this).hide();g.call()})})})(jQuery); +(function(g){function j(a){var c=g(window),d=c.width()+c.scrollLeft(),h=c.height()+c.scrollTop();return[a.offset().top<=c.scrollTop(),d<=a.offset().left+a.width(),h<=a.offset().top+a.height(),c.scrollLeft()>=a.offset().left]}function k(a){for(var c=a.length;c--;)if(a[c])return false;return true}var i=g.tools.tooltip;i.dynamic={conf:{classNames:"top right bottom left"}};g.fn.dynamic=function(a){if(typeof a=="number")a={speed:a};a=g.extend({},i.dynamic.conf,a);var c=a.classNames.split(/\s/),d;this.each(function(){var h= +g(this).tooltip().onBeforeShow(function(e,f){e=this.getTip();var b=this.getConf();d||(d=[b.position[0],b.position[1],b.offset[0],b.offset[1],g.extend({},b)]);g.extend(b,d[4]);b.position=[d[0],d[1]];b.offset=[d[2],d[3]];e.css({visibility:"hidden",position:"absolute",top:f.top,left:f.left}).show();f=j(e);if(!k(f)){if(f[2]){g.extend(b,a.top);b.position[0]="top";e.addClass(c[0])}if(f[3]){g.extend(b,a.right);b.position[1]="right";e.addClass(c[1])}if(f[0]){g.extend(b,a.bottom);b.position[0]="bottom";e.addClass(c[2])}if(f[1]){g.extend(b, +a.left);b.position[1]="left";e.addClass(c[3])}if(f[0]||f[2])b.offset[0]*=-1;if(f[1]||f[3])b.offset[1]*=-1}e.css({visibility:"visible"}).hide()});h.onBeforeShow(function(){var e=this.getConf();this.getTip();setTimeout(function(){e.position=[d[0],d[1]];e.offset=[d[2],d[3]]},0)});h.onHide(function(){var e=this.getTip();e.removeClass(a.classNames)});ret=h});return a.api?ret:this}})(jQuery); +(function(e){function p(f,c){var b=e(c);return b.length<2?b:f.parent().find(c)}function u(f,c){var b=this,n=f.add(b),g=f.children(),l=0,j=c.vertical;k||(k=b);if(g.length>1)g=e(c.items,f);e.extend(b,{getConf:function(){return c},getIndex:function(){return l},getSize:function(){return b.getItems().size()},getNaviButtons:function(){return o.add(q)},getRoot:function(){return f},getItemWrap:function(){return g},getItems:function(){return g.children(c.item).not("."+c.clonedClass)},move:function(a,d){return b.seekTo(l+ +a,d)},next:function(a){return b.move(1,a)},prev:function(a){return b.move(-1,a)},begin:function(a){return b.seekTo(0,a)},end:function(a){return b.seekTo(b.getSize()-1,a)},focus:function(){return k=b},addItem:function(a){a=e(a);if(c.circular){g.children("."+c.clonedClass+":last").before(a);g.children("."+c.clonedClass+":first").replaceWith(a.clone().addClass(c.clonedClass))}else g.append(a);n.trigger("onAddItem",[a]);return b},seekTo:function(a,d,h){a.jquery||(a*=1);if(c.circular&&a===0&&l==-1&&d!== +0)return b;if(!c.circular&&a<0||a>b.getSize()||a<-1)return b;var i=a;if(a.jquery)a=b.getItems().index(a);else i=b.getItems().eq(a);var r=e.Event("onBeforeSeek");if(!h){n.trigger(r,[a,d]);if(r.isDefaultPrevented()||!i.length)return b}i=j?{top:-i.position().top}:{left:-i.position().left};l=a;k=b;if(d===undefined)d=c.speed;g.animate(i,d,c.easing,h||function(){n.trigger("onSeek",[a])});return b}});e.each(["onBeforeSeek","onSeek","onAddItem"],function(a,d){e.isFunction(c[d])&&e(b).bind(d,c[d]);b[d]=function(h){h&& +e(b).bind(d,h);return b}});if(c.circular){var s=b.getItems().slice(-1).clone().prependTo(g),t=b.getItems().eq(1).clone().appendTo(g);s.add(t).addClass(c.clonedClass);b.onBeforeSeek(function(a,d,h){if(!a.isDefaultPrevented())if(d==-1){b.seekTo(s,h,function(){b.end(0)});return a.preventDefault()}else d==b.getSize()&&b.seekTo(t,h,function(){b.begin(0)})});b.seekTo(0,0,function(){})}var o=p(f,c.prev).click(function(){b.prev()}),q=p(f,c.next).click(function(){b.next()});if(!c.circular&&b.getSize()>1){b.onBeforeSeek(function(a, +d){setTimeout(function(){if(!a.isDefaultPrevented()){o.toggleClass(c.disabledClass,d<=0);q.toggleClass(c.disabledClass,d>=b.getSize()-1)}},1)});c.initialIndex||o.addClass(c.disabledClass)}c.mousewheel&&e.fn.mousewheel&&f.mousewheel(function(a,d){if(c.mousewheel){b.move(d<0?1:-1,c.wheelSpeed||50);return false}});if(c.touch){var m={};g[0].ontouchstart=function(a){a=a.touches[0];m.x=a.clientX;m.y=a.clientY};g[0].ontouchmove=function(a){if(a.touches.length==1&&!g.is(":animated")){var d=a.touches[0],h= +m.x-d.clientX;d=m.y-d.clientY;b[j&&d>0||!j&&h>0?"next":"prev"]();a.preventDefault()}}}c.keyboard&&e(document).bind("keydown.scrollable",function(a){if(!(!c.keyboard||a.altKey||a.ctrlKey||e(a.target).is(":input")))if(!(c.keyboard!="static"&&k!=b)){var d=a.keyCode;if(j&&(d==38||d==40)){b.move(d==38?-1:1);return a.preventDefault()}if(!j&&(d==37||d==39)){b.move(d==37?-1:1);return a.preventDefault()}}});c.initialIndex&&b.seekTo(c.initialIndex,0,function(){})}e.tools=e.tools||{version:"1.2.5"};e.tools.scrollable= +{conf:{activeClass:"active",circular:false,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:null,items:".items",keyboard:true,mousewheel:false,next:".next",prev:".prev",speed:400,vertical:false,touch:true,wheelSpeed:0}};var k;e.fn.scrollable=function(f){var c=this.data("scrollable");if(c)return c;f=e.extend({},e.tools.scrollable.conf,f);this.each(function(){c=new u(e(this),f);e(this).data("scrollable",c)});return f.api?c:this}})(jQuery); +(function(b){var f=b.tools.scrollable;f.autoscroll={conf:{autoplay:true,interval:3E3,autopause:true}};b.fn.autoscroll=function(c){if(typeof c=="number")c={interval:c};var d=b.extend({},f.autoscroll.conf,c),g;this.each(function(){var a=b(this).data("scrollable");if(a)g=a;var e,h=true;a.play=function(){if(!e){h=false;e=setInterval(function(){a.next()},d.interval)}};a.pause=function(){e=clearInterval(e)};a.stop=function(){a.pause();h=true};d.autopause&&a.getRoot().add(a.getNaviButtons()).hover(a.pause, +a.play);d.autoplay&&a.play()});return d.api?g:this}})(jQuery); +(function(d){function p(b,g){var h=d(g);return h.length<2?h:b.parent().find(g)}var m=d.tools.scrollable;m.navigator={conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:false,idPrefix:null,history:false}};d.fn.navigator=function(b){if(typeof b=="string")b={navi:b};b=d.extend({},m.navigator.conf,b);var g;this.each(function(){function h(a,c,i){e.seekTo(c);if(j){if(location.hash)location.hash=a.attr("href").replace("#","")}else return i.preventDefault()}function f(){return k.find(b.naviItem|| +"> *")}function n(a){var c=d("<"+(b.naviItem||"a")+"/>").click(function(i){h(d(this),a,i)}).attr("href","#"+a);a===0&&c.addClass(l);b.indexed&&c.text(a+1);b.idPrefix&&c.attr("id",b.idPrefix+a);return c.appendTo(k)}function o(a,c){a=f().eq(c.replace("#",""));a.length||(a=f().filter("[href="+c+"]"));a.click()}var e=d(this).data("scrollable"),k=b.navi.jquery?b.navi:p(e.getRoot(),b.navi),q=e.getNaviButtons(),l=b.activeClass,j=b.history&&d.fn.history;if(e)g=e;e.getNaviButtons=function(){return q.add(k)}; +f().length?f().each(function(a){d(this).click(function(c){h(d(this),a,c)})}):d.each(e.getItems(),function(a){n(a)});e.onBeforeSeek(function(a,c){setTimeout(function(){if(!a.isDefaultPrevented()){var i=f().eq(c);!a.isDefaultPrevented()&&i.length&&f().removeClass(l).eq(c).addClass(l)}},1)});e.onAddItem(function(a,c){c=n(e.getItems().index(c));j&&c.history(o)});j&&f().history(o)});return b.api?g:this}})(jQuery); +(function(a){function t(d,b){var c=this,j=d.add(c),o=a(window),k,f,m,g=a.tools.expose&&(b.mask||b.expose),n=Math.random().toString().slice(10);if(g){if(typeof g=="string")g={color:g};g.closeOnClick=g.closeOnEsc=false}var p=b.target||d.attr("rel");f=p?a(p):d;if(!f.length)throw"Could not find Overlay: "+p;d&&d.index(f)==-1&&d.click(function(e){c.load(e);return e.preventDefault()});a.extend(c,{load:function(e){if(c.isOpened())return c;var h=q[b.effect];if(!h)throw'Overlay: cannot find effect : "'+b.effect+ +'"';b.oneInstance&&a.each(s,function(){this.close(e)});e=e||a.Event();e.type="onBeforeLoad";j.trigger(e);if(e.isDefaultPrevented())return c;m=true;g&&a(f).expose(g);var i=b.top,r=b.left,u=f.outerWidth({margin:true}),v=f.outerHeight({margin:true});if(typeof i=="string")i=i=="center"?Math.max((o.height()-v)/2,0):parseInt(i,10)/100*o.height();if(r=="center")r=Math.max((o.width()-u)/2,0);h[0].call(c,{top:i,left:r},function(){if(m){e.type="onLoad";j.trigger(e)}});g&&b.closeOnClick&&a.mask.getMask().one("click", +c.close);b.closeOnClick&&a(document).bind("click."+n,function(l){a(l.target).parents(f).length||c.close(l)});b.closeOnEsc&&a(document).bind("keydown."+n,function(l){l.keyCode==27&&c.close(l)});return c},close:function(e){if(!c.isOpened())return c;e=e||a.Event();e.type="onBeforeClose";j.trigger(e);if(!e.isDefaultPrevented()){m=false;q[b.effect][1].call(c,function(){e.type="onClose";j.trigger(e)});a(document).unbind("click."+n).unbind("keydown."+n);g&&a.mask.close();return c}},getOverlay:function(){return f}, +getTrigger:function(){return d},getClosers:function(){return k},isOpened:function(){return m},getConf:function(){return b}});a.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(e,h){a.isFunction(b[h])&&a(c).bind(h,b[h]);c[h]=function(i){i&&a(c).bind(h,i);return c}});k=f.find(b.close||".close");if(!k.length&&!b.close){k=a('<a class="close"></a>');f.prepend(k)}k.click(function(e){c.close(e)});b.load&&c.load()}a.tools=a.tools||{version:"1.2.5"};a.tools.overlay={addEffect:function(d, +b,c){q[d]=[b,c]},conf:{close:null,closeOnClick:true,closeOnEsc:true,closeSpeed:"fast",effect:"default",fixed:!a.browser.msie||a.browser.version>6,left:"center",load:false,mask:null,oneInstance:true,speed:"normal",target:null,top:"10%"}};var s=[],q={};a.tools.overlay.addEffect("default",function(d,b){var c=this.getConf(),j=a(window);if(!c.fixed){d.top+=j.scrollTop();d.left+=j.scrollLeft()}d.position=c.fixed?"fixed":"absolute";this.getOverlay().css(d).fadeIn(c.speed,b)},function(d){this.getOverlay().fadeOut(this.getConf().closeSpeed, +d)});a.fn.overlay=function(d){var b=this.data("overlay");if(b)return b;if(a.isFunction(d))d={onBeforeLoad:d};d=a.extend(true,{},a.tools.overlay.conf,d);this.each(function(){b=new t(a(this),d);s.push(b);a(this).data("overlay",b)});return d.api?b:this}})(jQuery); +(function(h){function k(d){var e=d.offset();return{top:e.top+d.height()/2,left:e.left+d.width()/2}}var l=h.tools.overlay,f=h(window);h.extend(l.conf,{start:{top:null,left:null},fadeInSpeed:"fast",zIndex:9999});function o(d,e){var a=this.getOverlay(),c=this.getConf(),g=this.getTrigger(),p=this,m=a.outerWidth({margin:true}),b=a.data("img"),n=c.fixed?"fixed":"absolute";if(!b){b=a.css("backgroundImage");if(!b)throw"background-image CSS property not set for overlay";b=b.slice(b.indexOf("(")+1,b.indexOf(")")).replace(/\"/g, +"");a.css("backgroundImage","none");b=h('<img src="'+b+'"/>');b.css({border:0,display:"none"}).width(m);h("body").append(b);a.data("img",b)}var i=c.start.top||Math.round(f.height()/2),j=c.start.left||Math.round(f.width()/2);if(g){g=k(g);i=g.top;j=g.left}if(c.fixed){i-=f.scrollTop();j-=f.scrollLeft()}else{d.top+=f.scrollTop();d.left+=f.scrollLeft()}b.css({position:"absolute",top:i,left:j,width:0,zIndex:c.zIndex}).show();d.position=n;a.css(d);b.animate({top:a.css("top"),left:a.css("left"),width:m}, +c.speed,function(){a.css("zIndex",c.zIndex+1).fadeIn(c.fadeInSpeed,function(){p.isOpened()&&!h(this).index(a)?e.call():a.hide()})}).css("position",n)}function q(d){var e=this.getOverlay().hide(),a=this.getConf(),c=this.getTrigger();e=e.data("img");var g={top:a.start.top,left:a.start.left,width:0};c&&h.extend(g,k(c));a.fixed&&e.css({position:"absolute"}).animate({top:"+="+f.scrollTop(),left:"+="+f.scrollLeft()},0);e.animate(g,a.closeSpeed,d)}l.addEffect("apple",o,q)})(jQuery); +(function(d){function R(a,c){return 32-(new Date(a,c,32)).getDate()}function S(a,c){a=""+a;for(c=c||2;a.length<c;)a="0"+a;return a}function T(a,c,j){var q=a.getDate(),h=a.getDay(),r=a.getMonth();a=a.getFullYear();var f={d:q,dd:S(q),ddd:B[j].shortDays[h],dddd:B[j].days[h],m:r+1,mm:S(r+1),mmm:B[j].shortMonths[r],mmmm:B[j].months[r],yy:String(a).slice(2),yyyy:a};c=c.replace(X,function(s){return s in f?f[s]:s.slice(1,s.length-1)});return Y.html(c).html()}function v(a){return parseInt(a,10)}function U(a, +c){return a.getFullYear()===c.getFullYear()&&a.getMonth()==c.getMonth()&&a.getDate()==c.getDate()}function C(a){if(a){if(a.constructor==Date)return a;if(typeof a=="string"){var c=a.split("-");if(c.length==3)return new Date(v(c[0]),v(c[1])-1,v(c[2]));if(!/^-?\d+$/.test(a))return;a=v(a)}c=new Date;c.setDate(c.getDate()+a);return c}}function Z(a,c){function j(b,e,g){n=b;D=b.getFullYear();E=b.getMonth();G=b.getDate();g=g||d.Event("api");g.type="change";H.trigger(g,[b]);if(!g.isDefaultPrevented()){a.val(T(b, +e.format,e.lang));a.data("date",b);h.hide(g)}}function q(b){b.type="onShow";H.trigger(b);d(document).bind("keydown.d",function(e){if(e.ctrlKey)return true;var g=e.keyCode;if(g==8){a.val("");return h.hide(e)}if(g==27)return h.hide(e);if(d(V).index(g)>=0){if(!w){h.show(e);return e.preventDefault()}var i=d("#"+f.weeks+" a"),t=d("."+f.focus),o=i.index(t);t.removeClass(f.focus);if(g==74||g==40)o+=7;else if(g==75||g==38)o-=7;else if(g==76||g==39)o+=1;else if(g==72||g==37)o-=1;if(o>41){h.addMonth();t=d("#"+ +f.weeks+" a:eq("+(o-42)+")")}else if(o<0){h.addMonth(-1);t=d("#"+f.weeks+" a:eq("+(o+42)+")")}else t=i.eq(o);t.addClass(f.focus);return e.preventDefault()}if(g==34)return h.addMonth();if(g==33)return h.addMonth(-1);if(g==36)return h.today();if(g==13)d(e.target).is("select")||d("."+f.focus).click();return d([16,17,18,9]).index(g)>=0});d(document).bind("click.d",function(e){var g=e.target;if(!d(g).parents("#"+f.root).length&&g!=a[0]&&(!L||g!=L[0]))h.hide(e)})}var h=this,r=new Date,f=c.css,s=B[c.lang], +k=d("#"+f.root),M=k.find("#"+f.title),L,I,J,D,E,G,n=a.attr("data-value")||c.value||a.val(),m=a.attr("min")||c.min,p=a.attr("max")||c.max,w;if(m===0)m="0";n=C(n)||r;m=C(m||c.yearRange[0]*365);p=C(p||c.yearRange[1]*365);if(!s)throw"Dateinput: invalid language: "+c.lang;if(a.attr("type")=="date"){var N=d("<input/>");d.each("class,disabled,id,maxlength,name,readonly,required,size,style,tabindex,title,value".split(","),function(b,e){N.attr(e,a.attr(e))});a.replaceWith(N);a=N}a.addClass(f.input);var H= +a.add(h);if(!k.length){k=d("<div><div><a/><div/><a/></div><div><div/><div/></div></div>").hide().css({position:"absolute"}).attr("id",f.root);k.children().eq(0).attr("id",f.head).end().eq(1).attr("id",f.body).children().eq(0).attr("id",f.days).end().eq(1).attr("id",f.weeks).end().end().end().find("a").eq(0).attr("id",f.prev).end().eq(1).attr("id",f.next);M=k.find("#"+f.head).find("div").attr("id",f.title);if(c.selectors){var z=d("<select/>").attr("id",f.month),A=d("<select/>").attr("id",f.year);M.html(z.add(A))}for(var $= +k.find("#"+f.days),O=0;O<7;O++)$.append(d("<span/>").text(s.shortDays[(O+c.firstDay)%7]));d("body").append(k)}if(c.trigger)L=d("<a/>").attr("href","#").addClass(f.trigger).click(function(b){h.show();return b.preventDefault()}).insertAfter(a);var K=k.find("#"+f.weeks);A=k.find("#"+f.year);z=k.find("#"+f.month);d.extend(h,{show:function(b){if(!(a.attr("readonly")||a.attr("disabled")||w)){b=b||d.Event();b.type="onBeforeShow";H.trigger(b);if(!b.isDefaultPrevented()){d.each(W,function(){this.hide()}); +w=true;z.unbind("change").change(function(){h.setValue(A.val(),d(this).val())});A.unbind("change").change(function(){h.setValue(d(this).val(),z.val())});I=k.find("#"+f.prev).unbind("click").click(function(){I.hasClass(f.disabled)||h.addMonth(-1);return false});J=k.find("#"+f.next).unbind("click").click(function(){J.hasClass(f.disabled)||h.addMonth();return false});h.setValue(n);var e=a.offset();if(/iPad/i.test(navigator.userAgent))e.top-=d(window).scrollTop();k.css({top:e.top+a.outerHeight({margins:true})+ +c.offset[0],left:e.left+c.offset[1]});if(c.speed)k.show(c.speed,function(){q(b)});else{k.show();q(b)}return h}}},setValue:function(b,e,g){var i=v(e)>=-1?new Date(v(b),v(e),v(g||1)):b||n;if(i<m)i=m;else if(i>p)i=p;b=i.getFullYear();e=i.getMonth();g=i.getDate();if(e==-1){e=11;b--}else if(e==12){e=0;b++}if(!w){j(i,c);return h}E=e;D=b;g=new Date(b,e,1-c.firstDay);g=g.getDay();var t=R(b,e),o=R(b,e-1),P;if(c.selectors){z.empty();d.each(s.months,function(x,F){m<new Date(b,x+1,-1)&&p>new Date(b,x,0)&&z.append(d("<option/>").html(F).attr("value", +x))});A.empty();i=r.getFullYear();for(var l=i+c.yearRange[0];l<i+c.yearRange[1];l++)m<=new Date(l+1,-1,1)&&p>new Date(l,0,0)&&A.append(d("<option/>").text(l));z.val(e);A.val(b)}else M.html(s.months[e]+" "+b);K.empty();I.add(J).removeClass(f.disabled);l=!g?-7:0;for(var u,y;l<(!g?35:42);l++){u=d("<a/>");if(l%7===0){P=d("<div/>").addClass(f.week);K.append(P)}if(l<g){u.addClass(f.off);y=o-g+l+1;i=new Date(b,e-1,y)}else if(l>=g+t){u.addClass(f.off);y=l-t-g+1;i=new Date(b,e+1,y)}else{y=l-g+1;i=new Date(b, +e,y);if(U(n,i))u.attr("id",f.current).addClass(f.focus);else U(r,i)&&u.attr("id",f.today)}m&&i<m&&u.add(I).addClass(f.disabled);p&&i>p&&u.add(J).addClass(f.disabled);u.attr("href","#"+y).text(y).data("date",i);P.append(u)}K.find("a").click(function(x){var F=d(this);if(!F.hasClass(f.disabled)){d("#"+f.current).removeAttr("id");F.attr("id",f.current);j(F.data("date"),c,x)}return false});f.sunday&&K.find(f.week).each(function(){var x=c.firstDay?7-c.firstDay:0;d(this).children().slice(x,x+1).addClass(f.sunday)}); +return h},setMin:function(b,e){m=C(b);e&&n<m&&h.setValue(m);return h},setMax:function(b,e){p=C(b);e&&n>p&&h.setValue(p);return h},today:function(){return h.setValue(r)},addDay:function(b){return this.setValue(D,E,G+(b||1))},addMonth:function(b){return this.setValue(D,E+(b||1),G)},addYear:function(b){return this.setValue(D+(b||1),E,G)},hide:function(b){if(w){b=d.Event();b.type="onHide";H.trigger(b);d(document).unbind("click.d").unbind("keydown.d");if(b.isDefaultPrevented())return;k.hide();w=false}return h}, +getConf:function(){return c},getInput:function(){return a},getCalendar:function(){return k},getValue:function(b){return b?T(n,b,c.lang):n},isOpen:function(){return w}});d.each(["onBeforeShow","onShow","change","onHide"],function(b,e){d.isFunction(c[e])&&d(h).bind(e,c[e]);h[e]=function(g){g&&d(h).bind(e,g);return h}});a.bind("focus click",h.show).keydown(function(b){var e=b.keyCode;if(!w&&d(V).index(e)>=0){h.show(b);return b.preventDefault()}return b.shiftKey||b.ctrlKey||b.altKey||e==9?true:b.preventDefault()}); +C(a.val())&&j(n,c)}d.tools=d.tools||{version:"1.2.5"};var W=[],Q,V=[75,76,38,39,74,72,40,37],B={};Q=d.tools.dateinput={conf:{format:"mm/dd/yy",selectors:false,yearRange:[-5,5],lang:"en",offset:[0,0],speed:0,firstDay:0,min:undefined,max:undefined,trigger:false,css:{prefix:"cal",input:"date",root:0,head:0,title:0,prev:0,next:0,month:0,year:0,days:0,body:0,weeks:0,today:0,current:0,week:0,off:0,sunday:0,focus:0,disabled:0,trigger:0}},localize:function(a,c){d.each(c,function(j,q){c[j]=q.split(",")}); +B[a]=c}};Q.localize("en",{months:"January,February,March,April,May,June,July,August,September,October,November,December",shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",days:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday",shortDays:"Sun,Mon,Tue,Wed,Thu,Fri,Sat"});var X=/d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*'/g,Y=d("<a/>");d.expr[":"].date=function(a){var c=a.getAttribute("type");return c&&c=="date"||!!d(a).data("dateinput")};d.fn.dateinput=function(a){if(this.data("dateinput"))return this; +a=d.extend(true,{},Q.conf,a);d.each(a.css,function(j,q){if(!q&&j!="prefix")a.css[j]=(a.css.prefix||"")+(q||j)});var c;this.each(function(){var j=new Z(d(this),a);W.push(j);j=j.getInput().data("dateinput",j);c=c?c.add(j):j});return c?c:this}})(jQuery); +(function(e){function F(d,a){a=Math.pow(10,a);return Math.round(d*a)/a}function q(d,a){if(a=parseInt(d.css(a),10))return a;return(d=d[0].currentStyle)&&d.width&&parseInt(d.width,10)}function C(d){return(d=d.data("events"))&&d.onSlide}function G(d,a){function h(c,b,f,j){if(f===undefined)f=b/k*z;else if(j)f-=a.min;if(s)f=Math.round(f/s)*s;if(b===undefined||s)b=f*k/z;if(isNaN(f))return g;b=Math.max(0,Math.min(b,k));f=b/k*z;if(j||!n)f+=a.min;if(n)if(j)b=k-b;else f=a.max-f;f=F(f,t);var r=c.type=="click"; +if(D&&l!==undefined&&!r){c.type="onSlide";A.trigger(c,[f,b]);if(c.isDefaultPrevented())return g}j=r?a.speed:0;r=r?function(){c.type="change";A.trigger(c,[f])}:null;if(n){m.animate({top:b},j,r);a.progress&&B.animate({height:k-b+m.width()/2},j)}else{m.animate({left:b},j,r);a.progress&&B.animate({width:b+m.width()/2},j)}l=f;H=b;d.val(f);return g}function o(){if(n=a.vertical||q(i,"height")>q(i,"width")){k=q(i,"height")-q(m,"height");u=i.offset().top+k}else{k=q(i,"width")-q(m,"width");u=i.offset().left}} +function v(){o();g.setValue(a.value!==undefined?a.value:a.min)}var g=this,p=a.css,i=e("<div><div/><a href='#'/></div>").data("rangeinput",g),n,l,u,k,H;d.before(i);var m=i.addClass(p.slider).find("a").addClass(p.handle),B=i.find("div").addClass(p.progress);e.each("min,max,step,value".split(","),function(c,b){c=d.attr(b);if(parseFloat(c))a[b]=parseFloat(c,10)});var z=a.max-a.min,s=a.step=="any"?0:a.step,t=a.precision;if(t===undefined)try{t=s.toString().split(".")[1].length}catch(I){t=0}if(d.attr("type")== +"range"){var w=e("<input/>");e.each("class,disabled,id,maxlength,name,readonly,required,size,style,tabindex,title,value".split(","),function(c,b){w.attr(b,d.attr(b))});w.val(a.value);d.replaceWith(w);d=w}d.addClass(p.input);var A=e(g).add(d),D=true;e.extend(g,{getValue:function(){return l},setValue:function(c,b){o();return h(b||e.Event("api"),undefined,c,true)},getConf:function(){return a},getProgress:function(){return B},getHandle:function(){return m},getInput:function(){return d},step:function(c, +b){b=b||e.Event();var f=a.step=="any"?1:a.step;g.setValue(l+f*(c||1),b)},stepUp:function(c){return g.step(c||1)},stepDown:function(c){return g.step(-c||-1)}});e.each("onSlide,change".split(","),function(c,b){e.isFunction(a[b])&&e(g).bind(b,a[b]);g[b]=function(f){f&&e(g).bind(b,f);return g}});m.drag({drag:false}).bind("dragStart",function(){o();D=C(e(g))||C(d)}).bind("drag",function(c,b,f){if(d.is(":disabled"))return false;h(c,n?b:f)}).bind("dragEnd",function(c){if(!c.isDefaultPrevented()){c.type= +"change";A.trigger(c,[l])}}).click(function(c){return c.preventDefault()});i.click(function(c){if(d.is(":disabled")||c.target==m[0])return c.preventDefault();o();var b=m.width()/2;h(c,n?k-u-b+c.pageY:c.pageX-u-b)});a.keyboard&&d.keydown(function(c){if(!d.attr("readonly")){var b=c.keyCode,f=e([75,76,38,33,39]).index(b)!=-1,j=e([74,72,40,34,37]).index(b)!=-1;if((f||j)&&!(c.shiftKey||c.altKey||c.ctrlKey)){if(f)g.step(b==33?10:1,c);else if(j)g.step(b==34?-10:-1,c);return c.preventDefault()}}});d.blur(function(c){var b= +e(this).val();b!==l&&g.setValue(b,c)});e.extend(d[0],{stepUp:g.stepUp,stepDown:g.stepDown});v();k||e(window).load(v)}e.tools=e.tools||{version:"1.2.5"};var E;E=e.tools.rangeinput={conf:{min:0,max:100,step:"any",steps:0,value:0,precision:undefined,vertical:0,keyboard:true,progress:false,speed:100,css:{input:"range",slider:"slider",progress:"progress",handle:"handle"}}};var x,y;e.fn.drag=function(d){document.ondragstart=function(){return false};d=e.extend({x:true,y:true,drag:true},d);x=x||e(document).bind("mousedown mouseup", +function(a){var h=e(a.target);if(a.type=="mousedown"&&h.data("drag")){var o=h.position(),v=a.pageX-o.left,g=a.pageY-o.top,p=true;x.bind("mousemove.drag",function(i){var n=i.pageX-v;i=i.pageY-g;var l={};if(d.x)l.left=n;if(d.y)l.top=i;if(p){h.trigger("dragStart");p=false}d.drag&&h.css(l);h.trigger("drag",[i,n]);y=h});a.preventDefault()}else try{y&&y.trigger("dragEnd")}finally{x.unbind("mousemove.drag");y=null}});return this.data("drag",true)};e.expr[":"].range=function(d){var a=d.getAttribute("type"); +return a&&a=="range"||!!e(d).filter("input").data("rangeinput")};e.fn.rangeinput=function(d){if(this.data("rangeinput"))return this;d=e.extend(true,{},E.conf,d);var a;this.each(function(){var h=new G(e(this),e.extend(true,{},d));h=h.getInput().data("rangeinput",h);a=a?a.add(h):h});return a?a:this}})(jQuery); +(function(e){function t(a,b,c){var k=a.offset().top,f=a.offset().left,l=c.position.split(/,?\s+/),p=l[0];l=l[1];k-=b.outerHeight()-c.offset[0];f+=a.outerWidth()+c.offset[1];if(/iPad/i.test(navigator.userAgent))k-=e(window).scrollTop();c=b.outerHeight()+a.outerHeight();if(p=="center")k+=c/2;if(p=="bottom")k+=c;a=a.outerWidth();if(l=="center")f-=(a+b.outerWidth())/2;if(l=="left")f-=a;return{top:k,left:f}}function y(a){function b(){return this.getAttribute("type")==a}b.key="[type="+a+"]";return b}function u(a, +b,c){function k(g,d,i){if(!(!c.grouped&&g.length)){var j;if(i===false||e.isArray(i)){j=h.messages[d.key||d]||h.messages["*"];j=j[c.lang]||h.messages["*"].en;(d=j.match(/\$\d/g))&&e.isArray(i)&&e.each(d,function(m){j=j.replace(this,i[m])})}else j=i[c.lang]||i;g.push(j)}}var f=this,l=b.add(f);a=a.not(":button, :image, :reset, :submit");e.extend(f,{getConf:function(){return c},getForm:function(){return b},getInputs:function(){return a},reflow:function(){a.each(function(){var g=e(this),d=g.data("msg.el"); +if(d){g=t(g,d,c);d.css({top:g.top,left:g.left})}});return f},invalidate:function(g,d){if(!d){var i=[];e.each(g,function(j,m){j=a.filter("[name='"+j+"']");if(j.length){j.trigger("OI",[m]);i.push({input:j,messages:[m]})}});g=i;d=e.Event()}d.type="onFail";l.trigger(d,[g]);d.isDefaultPrevented()||q[c.effect][0].call(f,g,d);return f},reset:function(g){g=g||a;g.removeClass(c.errorClass).each(function(){var d=e(this).data("msg.el");if(d){d.remove();e(this).data("msg.el",null)}}).unbind(c.errorInputEvent|| +"");return f},destroy:function(){b.unbind(c.formEvent+".V").unbind("reset.V");a.unbind(c.inputEvent+".V").unbind("change.V");return f.reset()},checkValidity:function(g,d){g=g||a;g=g.not(":disabled");if(!g.length)return true;d=d||e.Event();d.type="onBeforeValidate";l.trigger(d,[g]);if(d.isDefaultPrevented())return d.result;var i=[];g.not(":radio:not(:checked)").each(function(){var m=[],n=e(this).data("messages",m),v=r&&n.is(":date")?"onHide.v":c.errorInputEvent+".v";n.unbind(v);e.each(w,function(){var o= +this,s=o[0];if(n.filter(s).length){o=o[1].call(f,n,n.val());if(o!==true){d.type="onBeforeFail";l.trigger(d,[n,s]);if(d.isDefaultPrevented())return false;var x=n.attr(c.messageAttr);if(x){m=[x];return false}else k(m,s,o)}}});if(m.length){i.push({input:n,messages:m});n.trigger("OI",[m]);c.errorInputEvent&&n.bind(v,function(o){f.checkValidity(n,o)})}if(c.singleError&&i.length)return false});var j=q[c.effect];if(!j)throw'Validator: cannot find effect "'+c.effect+'"';if(i.length){f.invalidate(i,d);return false}else{j[1].call(f, +g,d);d.type="onSuccess";l.trigger(d,[g]);g.unbind(c.errorInputEvent+".v")}return true}});e.each("onBeforeValidate,onBeforeFail,onFail,onSuccess".split(","),function(g,d){e.isFunction(c[d])&&e(f).bind(d,c[d]);f[d]=function(i){i&&e(f).bind(d,i);return f}});c.formEvent&&b.bind(c.formEvent+".V",function(g){if(!f.checkValidity(null,g))return g.preventDefault()});b.bind("reset.V",function(){f.reset()});a[0]&&a[0].validity&&a.each(function(){this.oninvalid=function(){return false}});if(b[0])b[0].checkValidity= +f.checkValidity;c.inputEvent&&a.bind(c.inputEvent+".V",function(g){f.checkValidity(e(this),g)});a.filter(":checkbox, select").filter("[required]").bind("change.V",function(g){var d=e(this);if(this.checked||d.is("select")&&e(this).val())q[c.effect][1].call(f,d,g)});var p=a.filter(":radio").change(function(g){f.checkValidity(p,g)});e(window).resize(function(){f.reflow()})}e.tools=e.tools||{version:"1.2.5"};var z=/\[type=([a-z]+)\]/,A=/^-?[0-9]*(\.[0-9]+)?$/,r=e.tools.dateinput,B=/^([a-z0-9_\.\-\+]+)@([\da-z\.\-]+)\.([a-z\.]{2,6})$/i, +C=/^(https?:\/\/)?[\da-z\.\-]+\.[a-z\.]{2,6}[#&+_\?\/\w \.\-=]*$/i,h;h=e.tools.validator={conf:{grouped:false,effect:"default",errorClass:"invalid",inputEvent:null,errorInputEvent:"keyup",formEvent:"submit",lang:"en",message:"<div/>",messageAttr:"data-message",messageClass:"error",offset:[0,0],position:"center right",singleError:false,speed:"normal"},messages:{"*":{en:"Please correct this value"}},localize:function(a,b){e.each(b,function(c,k){h.messages[c]=h.messages[c]||{};h.messages[c][a]=k})}, +localizeFn:function(a,b){h.messages[a]=h.messages[a]||{};e.extend(h.messages[a],b)},fn:function(a,b,c){if(e.isFunction(b))c=b;else{if(typeof b=="string")b={en:b};this.messages[a.key||a]=b}if(b=z.exec(a))a=y(b[1]);w.push([a,c])},addEffect:function(a,b,c){q[a]=[b,c]}};var w=[],q={"default":[function(a){var b=this.getConf();e.each(a,function(c,k){c=k.input;c.addClass(b.errorClass);var f=c.data("msg.el");if(!f){f=e(b.message).addClass(b.messageClass).appendTo(document.body);c.data("msg.el",f)}f.css({visibility:"hidden"}).find("p").remove(); +e.each(k.messages,function(l,p){e("<p/>").html(p).appendTo(f)});f.outerWidth()==f.parent().width()&&f.add(f.find("p")).css({display:"inline"});k=t(c,f,b);f.css({visibility:"visible",position:"absolute",top:k.top,left:k.left}).fadeIn(b.speed)})},function(a){var b=this.getConf();a.removeClass(b.errorClass).each(function(){var c=e(this).data("msg.el");c&&c.css({visibility:"hidden"})})}]};e.each("email,url,number".split(","),function(a,b){e.expr[":"][b]=function(c){return c.getAttribute("type")===b}}); +e.fn.oninvalid=function(a){return this[a?"bind":"trigger"]("OI",a)};h.fn(":email","Please enter a valid email address",function(a,b){return!b||B.test(b)});h.fn(":url","Please enter a valid URL",function(a,b){return!b||C.test(b)});h.fn(":number","Please enter a numeric value.",function(a,b){return A.test(b)});h.fn("[max]","Please enter a value smaller than $1",function(a,b){if(b===""||r&&a.is(":date"))return true;a=a.attr("max");return parseFloat(b)<=parseFloat(a)?true:[a]});h.fn("[min]","Please enter a value larger than $1", +function(a,b){if(b===""||r&&a.is(":date"))return true;a=a.attr("min");return parseFloat(b)>=parseFloat(a)?true:[a]});h.fn("[required]","Please complete this mandatory field.",function(a,b){if(a.is(":checkbox"))return a.is(":checked");return!!b});h.fn("[pattern]",function(a){var b=new RegExp("^"+a.attr("pattern")+"$");return b.test(a.val())});e.fn.validator=function(a){var b=this.data("validator");if(b){b.destroy();this.removeData("validator")}a=e.extend(true,{},h.conf,a);if(this.is("form"))return this.each(function(){var c= +e(this);b=new u(c.find(":input"),c,a);c.data("validator",b)});else{b=new u(this,this.eq(0).closest("form"),a);return this.data("validator",b)}}})(jQuery); + +/*! + * jQuery UI 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ + +(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16", +keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d= +this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this, +"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart": +"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight, +outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a, +"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&& +a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&& +c.ui.isOverAxis(b,e,i)}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]= +function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)): +d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options= +b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+ +"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled", +c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); +;/*! + * jQuery UI Mouse 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+ +this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted= +this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&& +!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= +false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, +left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= +k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= +m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= +d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= +a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), +g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;if(b.iframeFix)d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options; +this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); +this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true}, +_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b= +false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, +10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle|| +!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&& +a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= +this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"), +10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), +10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, +(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!= +"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"), +10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+ +this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&& +!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.left<g[0])e=g[0]+this.offset.click.left; +if(a.pageY-this.offset.click.top<g[1])h=g[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>g[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.top<g[1]||h-this.offset.click.top>g[3])?h:!(h-this.offset.click.top<g[1])?h-b.grid[1]:h+b.grid[1]:h;e=b.grid[0]?this.originalPageX+Math.round((e-this.originalPageX)/ +b.grid[0])*b.grid[0]:this.originalPageX;e=g?!(e-this.offset.click.left<g[0]||e-this.offset.click.left>g[2])?e:!(e-this.offset.click.left<g[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version< +526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b, +c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.16"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var h=d.data(this,"sortable");if(h&&!h.options.disabled){c.sortables.push({instance:h,shouldRevert:h.options.revert}); +h.refreshPositions();h._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval= +false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true); +this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top; +c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&& +this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity= +a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!= +"x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left< +c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()- +c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this, +width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,h=b.offset.left,g=h+c.helperProportions.width,n=b.offset.top,o=n+c.helperProportions.height,i=c.snapElements.length-1;i>=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e<h&&h<l+e&&k-e<n&&n<m+e||j-e<h&&h<l+e&&k-e<o&&o<m+e||j-e<g&&g<l+e&&k-e<n&&n<m+e||j-e<g&&g<l+e&&k-e<o&& +o<m+e){if(f.snapMode!="inner"){var p=Math.abs(k-o)<=e,q=Math.abs(m-n)<=e,r=Math.abs(j-g)<=e,s=Math.abs(l-h)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l}).left-c.margins.left}var t= +p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(k-n)<=e;q=Math.abs(m-o)<=e;r=Math.abs(j-h)<=e;s=Math.abs(l-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:k,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:m-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:j}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:l-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[i].snapping&& +(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=p||q||r||s||t}else{c.snapElements[i].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[i].item}));c.snapElements[i].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"), +10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery); +;/* + * jQuery UI Droppable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Droppables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.mouse.js + * jquery.ui.draggable.js + */ +(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this); +a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&& +this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass); +this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g= +d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop", +a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.16"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height; +switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>= +i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!= +"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem|| +a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},dragStart:function(a,b){a.element.parents(":not(body,html)").bind("scroll.droppable",function(){a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)})},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance); +if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})},dragStop:function(a,b){a.element.parents(":not(body,html)").unbind("scroll.droppable"); +a.options.refreshPositions||d.ui.ddmanager.prepareOffsets(a,b)}}})(jQuery); +;/* + * jQuery UI Resizable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element, +_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); +var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= +false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); +this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= +{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; +if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, +_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, +{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: +Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(c<a.maxWidth)a.maxWidth=c;if(f<a.maxHeight)a.maxHeight=f}this._vBoundaries=a},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width= +b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(k(b.height))b.width=b.height*this.aspectRatio;else if(k(b.width))b.height=b.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this._vBoundaries,c=this.axis,d=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=k(b.width)&&a.minWidth&& +a.minWidth>b.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= +null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)|| +0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ +a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ +c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); +b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.16"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), +10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- +f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? +e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= +e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, +step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= +e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; +var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: +a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- +d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, +f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, +display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= +e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= +d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Selectable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", +c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting"); +a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&& +!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d= +e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Sortable 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Sortables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== +"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& +!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, +left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; +this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= +document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); +return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top< +b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()- +b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this, +a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], +e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); +c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): +this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, +dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, +toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers|| +this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection(); +var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)}, +_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); +if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), +this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element), +this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&& +this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= +this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= +d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| +0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", +a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- +f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b= +this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width== +""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top= +this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a= +{top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"), +10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"? +document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"), +10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b= +this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&& +this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset(); +var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- +this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g- +this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0], +this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]= +"";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove", +f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, +this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", +a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()}, +_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Accordion 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); +a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", +function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= +this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); +b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); +a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ +c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; +if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), +e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| +e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", +"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.16", +animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); +f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", +paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); +;/* + * jQuery UI Autocomplete 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.propAttr("readOnly"))){g= +false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= +a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; +this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& +a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); +d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& +b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= +this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close(); +this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label|| +b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this; +d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, +"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); +(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); +this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, +this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| +this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| +this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[d.fn.prop?"prop":"attr"]("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery); +;/* + * jQuery UI Button 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b){var h,i,j,g,l=function(){var a=b(this).find(":ui-button");setTimeout(function(){a.button("refresh")},1)},k=function(a){var c=a.name,e=a.form,f=b([]);if(c)f=e?b(e).find("[name='"+c+"']"):b("[name='"+c+"']",a.ownerDocument).filter(function(){return!this.form});return f};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",l);if(typeof this.options.disabled!== +"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var a=this,c=this.options,e=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!e?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){b(this).addClass("ui-state-hover"); +this===h&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||b(this).removeClass(f)}).bind("click.button",function(d){if(c.disabled){d.preventDefault();d.stopImmediatePropagation()}});this.element.bind("focus.button",function(){a.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){a.buttonElement.removeClass("ui-state-focus")});if(e){this.element.bind("change.button",function(){g||a.refresh()});this.buttonElement.bind("mousedown.button",function(d){if(!c.disabled){g= +false;i=d.pageX;j=d.pageY}}).bind("mouseup.button",function(d){if(!c.disabled)if(i!==d.pageX||j!==d.pageY)g=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).toggleClass("ui-state-active");a.buttonElement.attr("aria-pressed",a.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).addClass("ui-state-active");a.buttonElement.attr("aria-pressed","true"); +var d=a.element[0];k(d).not(d).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;b(this).addClass("ui-state-active");h=this;b(document).one("mouseup",function(){h=null})}).bind("mouseup.button",function(){if(c.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(d){if(c.disabled)return false;if(d.keyCode==b.ui.keyCode.SPACE|| +d.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(d){d.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",c.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type=== +"radio"){var a=this.element.parents().filter(":last"),c="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(c);if(!this.buttonElement.length){a=a.length?a.siblings():this.element.siblings();this.buttonElement=a.filter(c);if(!this.buttonElement.length)this.buttonElement=a.find(c)}this.element.addClass("ui-helper-hidden-accessible");(a=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",a)}else this.buttonElement=this.element}, +widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title"); +b.Widget.prototype.destroy.call(this)},_setOption:function(a,c){b.Widget.prototype._setOption.apply(this,arguments);if(a==="disabled")c?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var a=this.element.is(":disabled");a!==this.options.disabled&&this._setOption("disabled",a);if(this.type==="radio")k(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed", +"true"):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var a=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), +c=b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("<span class='ui-button-icon-primary ui-icon "+e.primary+"'></span>");e.secondary&&a.append("<span class='ui-button-icon-secondary ui-icon "+e.secondary+"'></span>");if(!this.options.text){d.push(f?"ui-button-icons-only": +"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== +"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); +b.Widget.prototype.destroy.call(this)}})})(jQuery); +;/* + * jQuery UI Dialog 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, +position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ +b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&!i.isDefaultPrevented()&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), +h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id", +e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); +a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== +b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()};c.ui.dialog.maxZ+=1; +d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== +f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, +function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('<button type="button"></button>').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", +handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, +originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", +f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): +[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); +if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): +e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= +this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- +b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.16",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), +create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&!d.isDefaultPrevented()&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()|| +c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&& +c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+ +"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery); +;/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+ +this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"); +this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", +g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length? +(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i- +m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b= +this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b= +this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b); +c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c}); +a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value= +this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a): +this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation(); +this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a]; +return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e- +g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= +d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| +(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ +g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; +this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= +-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= +d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, +e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); +j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); +if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, +this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, +load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, +"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.16"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&& +a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery); +;/* + * jQuery UI Datepicker 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker + * + * Depends: + * jquery.ui.core.js + */ +(function(d,C){function M(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= +"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", +"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", +minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function N(a){return a.bind("mouseout", +function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); +b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.16"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv}, +setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g, +"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", +function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c== +"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker(): +d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a, +b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+= +1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/ +2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b= +d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e= +a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a, +"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f== +a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"? +d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");H(e.settings,f);if(i!==null&&f.dateFormat!==C&&f.minDate===C)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==C&&f.maxDate===C)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDate(e,h);this._updateAlternate(e); +this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl"); +b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]&&d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]);if(a=d.datepicker._get(b,"onSelect")){c=d.datepicker._formatDate(b);a.apply(b.input?b.input[0]:null,[c,b])}else d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target, +a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c= +a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b, +"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==C?a.keyCode:a.charCode); +return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input", +a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value= +"";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b); +c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing= +true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}); +a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&& +!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(), +h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b= +this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b); +this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"): +0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"? +"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a); +this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField"); +if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"? +b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1<a.length&&a.charAt(A+1)==p)&&A++;return p},m=function(p){var D= +o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&D?4:p=="o"?3:2)+"}");p=b.substring(q).match(p);if(!p)throw"Missing number at position "+q;q+=p[0].length;return parseInt(p[0],10)},n=function(p,D,K){p=d.map(o(p)?K:D,function(w,x){return[[x,w]]}).sort(function(w,x){return-(w[1].length-x[1].length)});var E=-1;d.each(p,function(w,x){w=x[1];if(b.substr(q,w.length).toLowerCase()==w.toLowerCase()){E=x[0];q+=w.length;return false}});if(E!=-1)return E+1;else throw"Unknown name at position "+q;},s= +function(){if(b.charAt(q)!=a.charAt(A))throw"Unexpected literal at position "+q;q++},q=0,A=0;A<a.length;A++)if(k)if(a.charAt(A)=="'"&&!o("'"))k=false;else s();else switch(a.charAt(A)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();j=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();j=v.getMonth()+ +1;l=v.getDate();break;case "'":if(o("'"))s();else k=true;break;default:s()}if(q<b.length)throw"Extra/unparsed characters found in date: "+b.substring(q);if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd", +COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames: +null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,s){return i(o)?s[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()- +(new Date(b.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f= +0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==C?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a); +var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date; +i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g= +Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()> +12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&& +a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay? +new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a)); +n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m, +g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&& +a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+B+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,s)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+ +B+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x<i[0];x++){var O= +"";this.maxRows=4;for(var G=0;G<i[1];G++){var P=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",y="";if(l){y+='<div class="ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&& +x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var z=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+s[r]+'">'+q[r]+"</span></th>"}y+=z+"</tr></thead><tbody>";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, +z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q<z;Q++){y+="<tr>";var R=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(r)+"</td>";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&r<k||o&&r>o;R+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(r.getTime()== +P.getTime()&&g==a.selectedMonth&&a._keyEvent||E.getTime()==r.getTime()&&E.getTime()==P.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!D?"":" "+I[1]+(r.getTime()==u.getTime()?" "+this._currentClass:"")+(r.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!F||D)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+B+".datepicker._selectDay('#"+a.id+"',"+r.getMonth()+","+r.getFullYear()+', this);return false;"')+">"+(F&&!D?" ":L?'<span class="ui-state-default">'+ +r.getDate()+"</span>":'<a class="ui-state-default'+(r.getTime()==b.getTime()?" ui-state-highlight":"")+(r.getTime()==u.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+r.getDate()+"</a>")+"</td>";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+"</tr>"}g++;if(g>11){g=0;m++}y+="</tbody></table>"+(l?"</div>"+(i[0]>0&&G==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>': +"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&& +(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b, +e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+ +(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input? +a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c, +e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a, +"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this; +if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a== +"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.16";window["DP_jQuery_"+B]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.16"})})(jQuery); +;/* + * jQuery UI Effects 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= +a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", +"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, +0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, +211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, +d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; +f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, +[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.16",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b= +0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), +d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement; +if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)}); +return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this, +arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/ +2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b, +d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c, +a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b, +d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g= +0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158; +if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c, +a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery); +;/* + * jQuery UI Effects Blind 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a, +g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Bounce 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Bounce + * + * Depends: + * jquery.effects.core.js + */ +(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/ +3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a); +b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Clip 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Clip + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position, +c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Drop 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Drop + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e== +"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Explode 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * jquery.effects.core.js + */ +(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f= +0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ +e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); +;/* + * jQuery UI Effects Fade 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Fold 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], +10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Highlight 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Pulsate 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration, +a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Scale 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Scale + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a, +b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity= +1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"], +p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}}; +if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a); +a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from); +child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a, +n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Shake 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Shake + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]= +(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Slide 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Slide + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e); +var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Transfer 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Transfer + * + * Depends: + * jquery.effects.core.js + */ +(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); +b.dequeue()})})}})(jQuery); +; +/* + * INFORMATION + * --------------------------- + * Owner: jquery.webspirited.com + * Developer: Matthew Hailwood + * --------------------------- + * + * CHANGELOG: + * --------------------------- + * 1.1 + * Fixed bug 01 + * 1.2 + * Added select option + * * hidden select so tags may be submitted via normal form. + * 1.3 + * Fixed bug 02 + * 1.4 + * Fixed bug 03 + * Fixed bug 04 + * + * --------------------------- + * Bug Fix Credits: + * -- + * * Number: 01 + * * Bug: Clicking autocomplete option does not add it to the array + * * Name: Ed <tastypopsicle.com> + * -- + * * Number: 02 + * * Bug: Unable to give select a name + * * Name: Ed <tastypopsicle.com> + * -- + * * Number 03 + * * Bug: reference to incorrect variable (tagArray vs tagsArray) + * * Name: claudio <unknown> + * -- + * * Number 04 + * * Bug: console.log() left in code + * * Name: claudio <unknown> + */ + + +(function($) { + $.widget("ui.tagit", { + + // default options + options: { + tagSource: [], + triggerKeys: ['enter', 'space', 'comma', 'tab'], + initialTags: [], + minLength: 1, + select: false + + }, + + _keys: { + backspace: 8, + enter: 13, + space: 32, + comma: 44, + tab: 9 + }, + + //initialization function + _create: function() { + + var self = this; + this.tagsArray = []; + this.timer = null; + + //add class "tagit" for theming + this.element.addClass("tagit"); + + //add any initial tags added through html to the array + this.element.children('li').each(function() { + self.options.initialTags.push($(this).text()); + }); + + //add the html input + this.element.html('<li class="tagit-new"><input class="tagit-input" type="text" /></li>'); + + this.input = this.element.find(".tagit-input"); + + //setup click handler + $(this.element).click(function(e) { + if ($(e.target).hasClass('tagit-close')) { + // Removes a tag when the little 'x' is clicked. + $(e.target).parent().remove(); + var text = $(e.target).parent().text(); + self._popTag(text.substr(0, text.length - 1)); + } + else { + self.input.focus(); + } + }); + + //setup autcomplete handler + var os = this.options.select; + this.options.appendTo = this.element; + this.options.source = this.options.tagSource; + this.options.select = function(event, ui) { + clearTimeout(self.timer); + self._addTag(ui.item.value); + return false; + } + this.input.autocomplete(this.options); + this.options.select = os; + + //setup keydown handler + this.input.keydown(function(e) { + var lastLi = self.element.children(".tagit-choice:last"); + if (e.which == self._keys.backspace) + return self._backspace(lastLi); + + if (self._isInitKey(e.which)) { + e.preventDefault(); + if ($(this).val().length >= self.options.minLength) + self._addTag($(this).val()); + } + + if (lastLi.hasClass('selected')) + lastLi.removeClass('selected'); + + self.lastKey = e.which; + }); + + //setup blur handler + this.input.blur(function(e) { + var v = $(this).val(); + this.timer = setTimeout(function(){ + self._addTag(v); + }, 50000); + console.log(this.timer); + + $(this).val(''); + return false; + }); + + //define missing trim function for strings + String.prototype.trim = function() { + return this.replace(/^\s+|\s+$/g, ""); + }; + + if (this.options.select) { + this.element.after('<select class="tagit-hiddenSelect" name="'+this.element.attr('name')+'" multiple="multiple"></select>'); + this.select = this.element.siblings('.tagit-hiddenSelect'); + } + this._initialTags(); + + }, + + _popSelect: function(text) { + this.select.children('option[value="' + text + '"]').remove(); + } + , + + _addSelect: function(value) { + this.select.append('<option selected="selected" value="' + value + '">' + value + '</option>'); + } + , + + _popTag: function(text) { + $.inArray(text, this.tagsArray); + if (text == undefined) { + text = this.tagsArray.pop(); + } + else { + var index = ($.inArray(text, this.tagsArray) == -1 ? this.tagsArray.length - 1 : $.inArray(text, this.tagsArray)); + this.tagsArray.splice(index, 1); + } + if (this.options.select) + this._popSelect(text); + } + , + + _addTag: function(value) { + this.input.val(""); + value = value.replace(/,+$/, ""); + value = value.trim(); + if (value == "" || this._exists(value)) + return false; + + var tag = ""; + tag = '<li class="tagit-choice">' + value + '<a class="tagit-close">x</a></li>'; + $(tag).insertBefore(this.input.parent()); + this.input.val(""); + this.tagsArray.push(value); + if (this.options.select) + this._addSelect(value); + return true; + } + , + + _exists: function(value) { + if (this.tagsArray.length == 0 || $.inArray(value, this.tagsArray) == -1) + return false; + return true; + } + , + + _isInitKey : function(keyCode) { + var keyName = ""; + for (var key in this._keys) + if (this._keys[key] == keyCode) + keyName = key + + if ($.inArray(keyName, this.options.triggerKeys) != -1) + return true; + return false; + } + , + + _removeTag: function() { + this._popTag(); + this.element.children(".tagit-choice:last").remove(); + } + , + + _backspace: function(li) { + if (this.input.val() == "") { + // When backspace is pressed, the last tag is deleted. + if (this.lastKey == this._keys.backspace) { + this._popTag(); + li.remove(); + this.lastKey = null; + } else { + li.addClass('selected'); + this.lastKey = this._keys.backspace; + } + } + return true; + } + , + + _initialTags: function() { + if (this.options.initialTags.length != 0) { + for (var i in this.options.initialTags) + if (!this._exists(this.options.initialTags[i])) + this._addTag(this.options.initialTags[i]); + } + } + , + + tags: function() { + return this.tagsArray; + } + , + + destroy: function() { + $.Widget.prototype.destroy.apply(this, arguments); // default destroy + this.tagsArray = []; + } + + }); +})(jQuery); +// Underscore.js 1.1.7 +// (c) 2011 Jeremy Ashkenas, DocumentCloud Inc. +// Underscore is freely distributable under the MIT license. +// Portions of Underscore are inspired or borrowed from Prototype, +// Oliver Steele's Functional, and John Resig's Micro-Templating. +// For all details and documentation: +// http://documentcloud.github.com/underscore +(function(){var p=this,C=p._,m={},i=Array.prototype,n=Object.prototype,f=i.slice,D=i.unshift,E=n.toString,l=n.hasOwnProperty,s=i.forEach,t=i.map,u=i.reduce,v=i.reduceRight,w=i.filter,x=i.every,y=i.some,o=i.indexOf,z=i.lastIndexOf;n=Array.isArray;var F=Object.keys,q=Function.prototype.bind,b=function(a){return new j(a)};typeof module!=="undefined"&&module.exports?(module.exports=b,b._=b):p._=b;b.VERSION="1.1.7";var h=b.each=b.forEach=function(a,c,b){if(a!=null)if(s&&a.forEach===s)a.forEach(c,b);else if(a.length=== ++a.length)for(var e=0,k=a.length;e<k;e++){if(e in a&&c.call(b,a[e],e,a)===m)break}else for(e in a)if(l.call(a,e)&&c.call(b,a[e],e,a)===m)break};b.map=function(a,c,b){var e=[];if(a==null)return e;if(t&&a.map===t)return a.map(c,b);h(a,function(a,g,G){e[e.length]=c.call(b,a,g,G)});return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var k=d!==void 0;a==null&&(a=[]);if(u&&a.reduce===u)return e&&(c=b.bind(c,e)),k?a.reduce(c,d):a.reduce(c);h(a,function(a,b,f){k?d=c.call(e,d,a,b,f):(d=a,k=!0)});if(!k)throw new TypeError("Reduce of empty array with no initial value"); +return d};b.reduceRight=b.foldr=function(a,c,d,e){a==null&&(a=[]);if(v&&a.reduceRight===v)return e&&(c=b.bind(c,e)),d!==void 0?a.reduceRight(c,d):a.reduceRight(c);a=(b.isArray(a)?a.slice():b.toArray(a)).reverse();return b.reduce(a,c,d,e)};b.find=b.detect=function(a,c,b){var e;A(a,function(a,g,f){if(c.call(b,a,g,f))return e=a,!0});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(w&&a.filter===w)return a.filter(c,b);h(a,function(a,g,f){c.call(b,a,g,f)&&(e[e.length]=a)});return e}; +b.reject=function(a,c,b){var e=[];if(a==null)return e;h(a,function(a,g,f){c.call(b,a,g,f)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=!0;if(a==null)return e;if(x&&a.every===x)return a.every(c,b);h(a,function(a,g,f){if(!(e=e&&c.call(b,a,g,f)))return m});return e};var A=b.some=b.any=function(a,c,d){c=c||b.identity;var e=!1;if(a==null)return e;if(y&&a.some===y)return a.some(c,d);h(a,function(a,b,f){if(e|=c.call(d,a,b,f))return m});return!!e};b.include=b.contains=function(a,c){var b= +!1;if(a==null)return b;if(o&&a.indexOf===o)return a.indexOf(c)!=-1;A(a,function(a){if(b=a===c)return!0});return b};b.invoke=function(a,c){var d=f.call(arguments,2);return b.map(a,function(a){return(c.call?c||a:a[c]).apply(a,d)})};b.pluck=function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a, +c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b<e.computed&&(e={value:a,computed:b})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,f){return{value:a,criteria:c.call(d,a,b,f)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,b){var d={};h(a,function(a,f){var g=b(a,f);(d[g]||(d[g]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d|| +(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return f.call(a);if(b.isArguments(a))return f.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?f.call(a,0,b):a[0]};b.rest=b.tail=function(a,b,d){return f.call(a,b==null||d?1:b)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.filter(a, +function(a){return!!a})};b.flatten=function(a){return b.reduce(a,function(a,d){if(b.isArray(d))return a.concat(b.flatten(d));a[a.length]=d;return a},[])};b.without=function(a){return b.difference(a,f.call(arguments,1))};b.uniq=b.unique=function(a,c){return b.reduce(a,function(a,e,f){if(0==f||(c===!0?b.last(a)!=e:!b.include(a,e)))a[a.length]=e;return a},[])};b.union=function(){return b.uniq(b.flatten(arguments))};b.intersection=b.intersect=function(a){var c=f.call(arguments,1);return b.filter(b.uniq(a), +function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a,c){return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=f.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(o&&a.indexOf===o)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a, +b){if(a==null)return-1;if(z&&a.lastIndexOf===z)return a.lastIndexOf(b);for(var d=a.length;d--;)if(a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);d=arguments[2]||1;for(var e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};b.bind=function(a,b){if(a.bind===q&&q)return q.apply(a,f.call(arguments,1));var d=f.call(arguments,2);return function(){return a.apply(b,d.concat(f.call(arguments)))}};b.bindAll=function(a){var c=f.call(arguments,1); +c.length==0&&(c=b.functions(a));h(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var b=c.apply(this,arguments);return l.call(d,b)?d[b]:d[b]=a.apply(this,arguments)}};b.delay=function(a,b){var d=f.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(f.call(arguments,1)))};var B=function(a,b,d){var e;return function(){var f=this,g=arguments,h=function(){e=null; +a.apply(f,g)};d&&clearTimeout(e);if(d||!e)e=setTimeout(h,b)}};b.throttle=function(a,b){return B(a,b,!1)};b.debounce=function(a,b){return B(a,b,!0)};b.once=function(a){var b=!1,d;return function(){if(b)return d;b=!0;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(f.call(arguments));return b.apply(this,d)}};b.compose=function(){var a=f.call(arguments);return function(){for(var b=f.call(arguments),d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after= +function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}};b.keys=F||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[],d;for(d in a)l.call(a,d)&&(b[b.length]=d);return b};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){h(f.call(arguments,1),function(b){for(var d in b)b[d]!==void 0&&(a[d]=b[d])});return a};b.defaults=function(a){h(f.call(arguments, +1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,c){if(a===c)return!0;var d=typeof a;if(d!=typeof c)return!1;if(a==c)return!0;if(!a&&c||a&&!c)return!1;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual)return a.isEqual(c);if(c.isEqual)return c.isEqual(a);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return!1; +if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return!1;if(a.length&&a.length!==c.length)return!1;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return!1;for(var f in a)if(!(f in c)||!b.isEqual(a[f],c[f]))return!1;return!0};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(l.call(a,c))return!1;return!0};b.isElement=function(a){return!!(a&&a.nodeType== +1)};b.isArray=n||function(a){return E.call(a)==="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return!(!a||!l.call(a,"callee"))};b.isFunction=function(a){return!(!a||!a.constructor||!a.call||!a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};b.isNumber=function(a){return!!(a===0||a&&a.toExponential&&a.toFixed)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===!0||a===!1};b.isDate=function(a){return!(!a||!a.getTimezoneOffset|| +!a.setUTCFullYear)};b.isRegExp=function(a){return!(!a||!a.test||!a.exec||!(a.ignoreCase||a.ignoreCase===!1))};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.noConflict=function(){p._=C;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.mixin=function(a){h(b.functions(a),function(c){H(c,b[c]=a[c])})};var I=0;b.uniqueId=function(a){var b=I++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g}; +b.template=function(a,c){var d=b.templateSettings;d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(d.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');";d=new Function("obj",d);return c?d(c):d}; +var j=function(a){this._wrapped=a};b.prototype=j.prototype;var r=function(a,c){return c?b(a).chain():a},H=function(a,c){j.prototype[a]=function(){var a=f.call(arguments);D.call(a,this._wrapped);return r(c.apply(b,a),this._chain)}};b.mixin(b);h(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=i[a];j.prototype[a]=function(){b.apply(this._wrapped,arguments);return r(this._wrapped,this._chain)}});h(["concat","join","slice"],function(a){var b=i[a];j.prototype[a]=function(){return r(b.apply(this._wrapped, +arguments),this._chain)}});j.prototype.chain=function(){this._chain=!0;return this};j.prototype.value=function(){return this._wrapped}})(); +// Backbone.js 0.5.3 +// (c) 2010 Jeremy Ashkenas, DocumentCloud Inc. +// Backbone may be freely distributed under the MIT license. +// For all details and documentation: +// http://documentcloud.github.com/backbone +(function(){var h=this,p=h.Backbone,e;e=typeof exports!=="undefined"?exports:h.Backbone={};e.VERSION="0.5.3";var f=h._;if(!f&&typeof require!=="undefined")f=require("underscore")._;var g=h.jQuery||h.Zepto;e.noConflict=function(){h.Backbone=p;return this};e.emulateHTTP=!1;e.emulateJSON=!1;e.Events={bind:function(a,b,c){var d=this._callbacks||(this._callbacks={});(d[a]||(d[a]=[])).push([b,c]);return this},unbind:function(a,b){var c;if(a){if(c=this._callbacks)if(b){c=c[a];if(!c)return this;for(var d= +0,e=c.length;d<e;d++)if(c[d]&&b===c[d][0]){c[d]=null;break}}else c[a]=[]}else this._callbacks={};return this},trigger:function(a){var b,c,d,e,f=2;if(!(c=this._callbacks))return this;for(;f--;)if(b=f?a:"all",b=c[b])for(var g=0,h=b.length;g<h;g++)(d=b[g])?(e=f?Array.prototype.slice.call(arguments,1):arguments,d[0].apply(d[1]||this,e)):(b.splice(g,1),g--,h--);return this}};e.Model=function(a,b){var c;a||(a={});if(c=this.defaults)f.isFunction(c)&&(c=c.call(this)),a=f.extend({},c,a);this.attributes={}; +this._escapedAttributes={};this.cid=f.uniqueId("c");this.set(a,{silent:!0});this._changed=!1;this._previousAttributes=f.clone(this.attributes);if(b&&b.collection)this.collection=b.collection;this.initialize(a,b)};f.extend(e.Model.prototype,e.Events,{_previousAttributes:null,_changed:!1,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.attributes[a]; +return this._escapedAttributes[a]=(b==null?"":""+b).replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},has:function(a){return this.attributes[a]!=null},set:function(a,b){b||(b={});if(!a)return this;if(a.attributes)a=a.attributes;var c=this.attributes,d=this._escapedAttributes;if(!b.silent&&this.validate&&!this._performValidation(a,b))return!1;if(this.idAttribute in a)this.id=a[this.idAttribute]; +var e=this._changing;this._changing=!0;for(var g in a){var h=a[g];if(!f.isEqual(c[g],h))c[g]=h,delete d[g],this._changed=!0,b.silent||this.trigger("change:"+g,this,h,b)}!e&&!b.silent&&this._changed&&this.change(b);this._changing=!1;return this},unset:function(a,b){if(!(a in this.attributes))return this;b||(b={});var c={};c[a]=void 0;if(!b.silent&&this.validate&&!this._performValidation(c,b))return!1;delete this.attributes[a];delete this._escapedAttributes[a];a==this.idAttribute&&delete this.id;this._changed= +!0;b.silent||(this.trigger("change:"+a,this,void 0,b),this.change(b));return this},clear:function(a){a||(a={});var b,c=this.attributes,d={};for(b in c)d[b]=void 0;if(!a.silent&&this.validate&&!this._performValidation(d,a))return!1;this.attributes={};this._escapedAttributes={};this._changed=!0;if(!a.silent){for(b in c)this.trigger("change:"+b,this,void 0,a);this.change(a)}return this},fetch:function(a){a||(a={});var b=this,c=a.success;a.success=function(d,e,f){if(!b.set(b.parse(d,f),a))return!1;c&& +c(b,d)};a.error=i(a.error,b,a);return(this.sync||e.sync).call(this,"read",this,a)},save:function(a,b){b||(b={});if(a&&!this.set(a,b))return!1;var c=this,d=b.success;b.success=function(a,e,f){if(!c.set(c.parse(a,f),b))return!1;d&&d(c,a,f)};b.error=i(b.error,c,b);var f=this.isNew()?"create":"update";return(this.sync||e.sync).call(this,f,this,b)},destroy:function(a){a||(a={});if(this.isNew())return this.trigger("destroy",this,this.collection,a);var b=this,c=a.success;a.success=function(d){b.trigger("destroy", +b,b.collection,a);c&&c(b,d)};a.error=i(a.error,b,a);return(this.sync||e.sync).call(this,"delete",this,a)},url:function(){var a=k(this.collection)||this.urlRoot||l();if(this.isNew())return a;return a+(a.charAt(a.length-1)=="/"?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this)},isNew:function(){return this.id==null},change:function(a){this.trigger("change",this,a);this._previousAttributes=f.clone(this.attributes);this._changed=!1},hasChanged:function(a){if(a)return this._previousAttributes[a]!= +this.attributes[a];return this._changed},changedAttributes:function(a){a||(a=this.attributes);var b=this._previousAttributes,c=!1,d;for(d in a)f.isEqual(b[d],a[d])||(c=c||{},c[d]=a[d]);return c},previous:function(a){if(!a||!this._previousAttributes)return null;return this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},_performValidation:function(a,b){var c=this.validate(a);if(c)return b.error?b.error(this,c,b):this.trigger("error",this,c,b),!1;return!0}}); +e.Collection=function(a,b){b||(b={});if(b.comparator)this.comparator=b.comparator;f.bindAll(this,"_onModelEvent","_removeReference");this._reset();a&&this.reset(a,{silent:!0});this.initialize.apply(this,arguments)};f.extend(e.Collection.prototype,e.Events,{model:e.Model,initialize:function(){},toJSON:function(){return this.map(function(a){return a.toJSON()})},add:function(a,b){if(f.isArray(a))for(var c=0,d=a.length;c<d;c++)this._add(a[c],b);else this._add(a,b);return this},remove:function(a,b){if(f.isArray(a))for(var c= +0,d=a.length;c<d;c++)this._remove(a[c],b);else this._remove(a,b);return this},get:function(a){if(a==null)return null;return this._byId[a.id!=null?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");this.models=this.sortBy(this.comparator);a.silent||this.trigger("reset",this,a);return this},pluck:function(a){return f.map(this.models,function(b){return b.get(a)})}, +reset:function(a,b){a||(a=[]);b||(b={});this.each(this._removeReference);this._reset();this.add(a,{silent:!0});b.silent||this.trigger("reset",this,b);return this},fetch:function(a){a||(a={});var b=this,c=a.success;a.success=function(d,f,e){b[a.add?"add":"reset"](b.parse(d,e),a);c&&c(b,d)};a.error=i(a.error,b,a);return(this.sync||e.sync).call(this,"read",this,a)},create:function(a,b){var c=this;b||(b={});a=this._prepareModel(a,b);if(!a)return!1;var d=b.success;b.success=function(a,e,f){c.add(a,b); +d&&d(a,e,f)};a.save(null,b);return a},parse:function(a){return a},chain:function(){return f(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId={};this._byCid={}},_prepareModel:function(a,b){if(a instanceof e.Model){if(!a.collection)a.collection=this}else{var c=a;a=new this.model(c,{collection:this});a.validate&&!a._performValidation(c,b)&&(a=!1)}return a},_add:function(a,b){b||(b={});a=this._prepareModel(a,b);if(!a)return!1;var c=this.getByCid(a);if(c)throw Error(["Can't add the same model to a set twice", +c.id]);this._byId[a.id]=a;this._byCid[a.cid]=a;this.models.splice(b.at!=null?b.at:this.comparator?this.sortedIndex(a,this.comparator):this.length,0,a);a.bind("all",this._onModelEvent);this.length++;b.silent||a.trigger("add",a,this,b);return a},_remove:function(a,b){b||(b={});a=this.getByCid(a)||this.get(a);if(!a)return null;delete this._byId[a.id];delete this._byCid[a.cid];this.models.splice(this.indexOf(a),1);this.length--;b.silent||a.trigger("remove",a,this,b);this._removeReference(a);return a}, +_removeReference:function(a){this==a.collection&&delete a.collection;a.unbind("all",this._onModelEvent)},_onModelEvent:function(a,b,c,d){(a=="add"||a=="remove")&&c!=this||(a=="destroy"&&this._remove(b,d),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,arguments))}});f.each(["forEach","each","map","reduce","reduceRight","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max", +"min","sortBy","sortedIndex","toArray","size","first","rest","last","without","indexOf","lastIndexOf","isEmpty","groupBy"],function(a){e.Collection.prototype[a]=function(){return f[a].apply(f,[this.models].concat(f.toArray(arguments)))}});e.Router=function(a){a||(a={});if(a.routes)this.routes=a.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var q=/:([\w\d]+)/g,r=/\*([\w\d]+)/g,s=/[-[\]{}()+?.,\\^$|#\s]/g;f.extend(e.Router.prototype,e.Events,{initialize:function(){},route:function(a, +b,c){e.history||(e.history=new e.History);f.isRegExp(a)||(a=this._routeToRegExp(a));e.history.route(a,f.bind(function(d){d=this._extractParameters(a,d);c.apply(this,d);this.trigger.apply(this,["route:"+b].concat(d))},this))},navigate:function(a,b){e.history.navigate(a,b)},_bindRoutes:function(){if(this.routes){var a=[],b;for(b in this.routes)a.unshift([b,this.routes[b]]);b=0;for(var c=a.length;b<c;b++)this.route(a[b][0],a[b][1],this[a[b][1]])}},_routeToRegExp:function(a){a=a.replace(s,"\\$&").replace(q, +"([^/]*)").replace(r,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});e.History=function(){this.handlers=[];f.bindAll(this,"checkUrl")};var j=/^#*/,t=/msie [\w.]+/,m=!1;f.extend(e.History.prototype,{interval:50,getFragment:function(a,b){if(a==null)if(this._hasPushState||b){a=window.location.pathname;var c=window.location.search;c&&(a+=c);a.indexOf(this.options.root)==0&&(a=a.substr(this.options.root.length))}else a=window.location.hash;return decodeURIComponent(a.replace(j, +""))},start:function(a){if(m)throw Error("Backbone.history has already been started");this.options=f.extend({},{root:"/"},this.options,a);this._wantsPushState=!!this.options.pushState;this._hasPushState=!(!this.options.pushState||!window.history||!window.history.pushState);a=this.getFragment();var b=document.documentMode;if(b=t.exec(navigator.userAgent.toLowerCase())&&(!b||b<=7))this.iframe=g('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(a); +this._hasPushState?g(window).bind("popstate",this.checkUrl):"onhashchange"in window&&!b?g(window).bind("hashchange",this.checkUrl):setInterval(this.checkUrl,this.interval);this.fragment=a;m=!0;a=window.location;b=a.pathname==this.options.root;if(this._wantsPushState&&!this._hasPushState&&!b)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+"#"+this.fragment),!0;else if(this._wantsPushState&&this._hasPushState&&b&&a.hash)this.fragment=a.hash.replace(j,""),window.history.replaceState({}, +document.title,a.protocol+"//"+a.host+this.options.root+this.fragment);if(!this.options.silent)return this.loadUrl()},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();a==this.fragment&&this.iframe&&(a=this.getFragment(this.iframe.location.hash));if(a==this.fragment||a==decodeURIComponent(this.fragment))return!1;this.iframe&&this.navigate(a);this.loadUrl()||this.loadUrl(window.location.hash)},loadUrl:function(a){var b=this.fragment=this.getFragment(a); +return f.any(this.handlers,function(a){if(a.route.test(b))return a.callback(b),!0})},navigate:function(a,b){var c=(a||"").replace(j,"");if(!(this.fragment==c||this.fragment==decodeURIComponent(c))){if(this._hasPushState){var d=window.location;c.indexOf(this.options.root)!=0&&(c=this.options.root+c);this.fragment=c;window.history.pushState({},document.title,d.protocol+"//"+d.host+c)}else if(window.location.hash=this.fragment=c,this.iframe&&c!=this.getFragment(this.iframe.location.hash))this.iframe.document.open().close(), +this.iframe.location.hash=c;b&&this.loadUrl(a)}}});e.View=function(a){this.cid=f.uniqueId("view");this._configure(a||{});this._ensureElement();this.delegateEvents();this.initialize.apply(this,arguments)};var u=/^(\S+)\s*(.*)$/,n=["model","collection","el","id","attributes","className","tagName"];f.extend(e.View.prototype,e.Events,{tagName:"div",$:function(a){return g(a,this.el)},initialize:function(){},render:function(){return this},remove:function(){g(this.el).remove();return this},make:function(a, +b,c){a=document.createElement(a);b&&g(a).attr(b);c&&g(a).html(c);return a},delegateEvents:function(a){if(a||(a=this.events))for(var b in f.isFunction(a)&&(a=a.call(this)),g(this.el).unbind(".delegateEvents"+this.cid),a){var c=this[a[b]];if(!c)throw Error('Event "'+a[b]+'" does not exist');var d=b.match(u),e=d[1];d=d[2];c=f.bind(c,this);e+=".delegateEvents"+this.cid;d===""?g(this.el).bind(e,c):g(this.el).delegate(d,e,c)}},_configure:function(a){this.options&&(a=f.extend({},this.options,a));for(var b= +0,c=n.length;b<c;b++){var d=n[b];a[d]&&(this[d]=a[d])}this.options=a},_ensureElement:function(){if(this.el){if(f.isString(this.el))this.el=g(this.el).get(0)}else{var a=this.attributes||{};if(this.id)a.id=this.id;if(this.className)a["class"]=this.className;this.el=this.make(this.tagName,a)}}});e.Model.extend=e.Collection.extend=e.Router.extend=e.View.extend=function(a,b){var c=v(this,a,b);c.extend=this.extend;return c};var w={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};e.sync=function(a, +b,c){var d=w[a];c=f.extend({type:d,dataType:"json"},c);if(!c.url)c.url=k(b)||l();if(!c.data&&b&&(a=="create"||a=="update"))c.contentType="application/json",c.data=JSON.stringify(b.toJSON());if(e.emulateJSON)c.contentType="application/x-www-form-urlencoded",c.data=c.data?{model:c.data}:{};if(e.emulateHTTP&&(d==="PUT"||d==="DELETE")){if(e.emulateJSON)c.data._method=d;c.type="POST";c.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",d)}}if(c.type!=="GET"&&!e.emulateJSON)c.processData= +!1;return g.ajax(c)};var o=function(){},v=function(a,b,c){var d;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){return a.apply(this,arguments)};f.extend(d,a);o.prototype=a.prototype;d.prototype=new o;b&&f.extend(d.prototype,b);c&&f.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d},k=function(a){if(!a||!a.url)return null;return f.isFunction(a.url)?a.url():a.url},l=function(){throw Error('A "url" property or function must be specified');},i=function(a,b,c){return function(d){a? +a(b,d,c):b.trigger("error",b,d,c)}}}).call(this); +/* ========================================================== + * bootstrap-twipsy.js v1.3.0 + * http://twitter.github.com/bootstrap/javascript.html#twipsy + * Adapted from the original jQuery.tipsy by Jason Frame + * ========================================================== + * Copyright 2011 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + + +!function( $ ) { + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + var transitionEnd + + $(document).ready(function () { + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + return support + })() + + // set CSS transition event type + if ( $.support.transition ) { + transitionEnd = "TransitionEnd" + if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + } + + }) + + + /* TWIPSY PUBLIC CLASS DEFINITION + * ============================== */ + + var Twipsy = function ( element, options ) { + this.$element = $(element) + this.options = options + this.enabled = true + this.fixTitle() + } + + Twipsy.prototype = { + + show: function() { + var pos + , actualWidth + , actualHeight + , placement + , $tip + , tp + + if (this.getTitle() && this.enabled) { + $tip = this.tip() + this.setContent() + + if (this.options.animate) { + $tip.addClass('fade') + } + + $tip + .remove() + .css({ top: 0, left: 0, display: 'block' }) + .prependTo(document.body) + + pos = $.extend({}, this.$element.offset(), { + width: this.$element[0].offsetWidth + , height: this.$element[0].offsetHeight + }) + + actualWidth = $tip[0].offsetWidth + actualHeight = $tip[0].offsetHeight + + placement = maybeCall(this.options.placement, this, [ $tip[0], this.$element[0] ]) + + switch (placement) { + case 'below': + tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2} + break + case 'above': + tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2} + break + case 'left': + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset} + break + case 'right': + tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset} + break + } + + $tip + .css(tp) + .addClass(placement) + .addClass('in') + } + } + + , setContent: function () { + var $tip = this.tip() + $tip.find('.twipsy-inner')[this.options.html ? 'html' : 'text'](this.getTitle()) + $tip[0].className = 'twipsy' + } + + , hide: function() { + var that = this + , $tip = this.tip() + + $tip.removeClass('in') + + function removeElement () { + $tip.remove() + } + + $.support.transition && this.$tip.hasClass('fade') ? + $tip.bind(transitionEnd, removeElement) : + removeElement() + } + + , fixTitle: function() { + var $e = this.$element + if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { + $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title') + } + } + + , getTitle: function() { + var title + , $e = this.$element + , o = this.options + + this.fixTitle() + + if (typeof o.title == 'string') { + title = $e.attr(o.title == 'title' ? 'data-original-title' : o.title) + } else if (typeof o.title == 'function') { + title = o.title.call($e[0]) + } + + title = ('' + title).replace(/(^\s*|\s*$)/, "") + + return title || o.fallback + } + + , tip: function() { + if (!this.$tip) { + this.$tip = $('<div class="twipsy" />').html('<div class="twipsy-arrow"></div><div class="twipsy-inner"></div>') + } + return this.$tip + } + + , validate: function() { + if (!this.$element[0].parentNode) { + this.hide() + this.$element = null + this.options = null + } + } + + , enable: function() { + this.enabled = true + } + + , disable: function() { + this.enabled = false + } + + , toggleEnabled: function() { + this.enabled = !this.enabled + } + + } + + + /* TWIPSY PRIVATE METHODS + * ====================== */ + + function maybeCall ( thing, ctx, args ) { + return typeof thing == 'function' ? thing.apply(ctx, args) : thing + } + + /* TWIPSY PLUGIN DEFINITION + * ======================== */ + + $.fn.twipsy = function (options) { + $.fn.twipsy.initWith.call(this, options, Twipsy, 'twipsy') + return this + } + + $.fn.twipsy.initWith = function (options, Constructor, name) { + var twipsy + , binder + , eventIn + , eventOut + + if (options === true) { + return this.data(name) + } else if (typeof options == 'string') { + twipsy = this.data(name) + if (twipsy) { + twipsy[options]() + } + return this + } + + options = $.extend({}, $.fn[name].defaults, options) + + function get(ele) { + var twipsy = $.data(ele, name) + + if (!twipsy) { + twipsy = new Constructor(ele, $.fn.twipsy.elementOptions(ele, options)) + $.data(ele, name, twipsy) + } + + return twipsy + } + + function enter() { + var twipsy = get(this) + twipsy.hoverState = 'in' + + if (options.delayIn == 0) { + twipsy.show() + } else { + twipsy.fixTitle() + setTimeout(function() { + if (twipsy.hoverState == 'in') { + twipsy.show() + } + }, options.delayIn) + } + } + + function leave() { + var twipsy = get(this) + twipsy.hoverState = 'out' + if (options.delayOut == 0) { + twipsy.hide() + } else { + setTimeout(function() { + if (twipsy.hoverState == 'out') { + twipsy.hide() + } + }, options.delayOut) + } + } + + if (!options.live) { + this.each(function() { + get(this) + }) + } + + if (options.trigger != 'manual') { + binder = options.live ? 'live' : 'bind' + eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus' + eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur' + this[binder](eventIn, enter)[binder](eventOut, leave) + } + + return this + } + + $.fn.twipsy.Twipsy = Twipsy + + $.fn.twipsy.defaults = { + animate: true + , delayIn: 0 + , delayOut: 0 + , fallback: '' + , placement: 'above' + , html: false + , live: false + , offset: 0 + , title: 'title' + , trigger: 'hover' + } + + $.fn.twipsy.elementOptions = function(ele, options) { + return $.metadata ? $.extend({}, options, $(ele).metadata()) : options + } + +}( window.jQuery || window.ender ); +/* =========================================================== + * bootstrap-popover.js v1.3.0 + * http://twitter.github.com/bootstrap/javascript.html#popover + * =========================================================== + * Copyright 2011 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================================================== */ + + + +!function( $ ) { + + var Popover = function ( element, options ) { + this.$element = $(element) + this.options = options + this.enabled = true + this.fixTitle() + } + + /* NOTE: POPOVER EXTENDS BOOTSTRAP-TWIPSY.js + ========================================= */ + + Popover.prototype = $.extend({}, $.fn.twipsy.Twipsy.prototype, { + + setContent: function () { + var $tip = this.tip() + $tip.find('.title')[this.options.html ? 'html' : 'text'](this.getTitle()) + $tip.find('.content p')[this.options.html ? 'html' : 'text'](this.getContent()) + $tip[0].className = 'popover' + } + + , getContent: function () { + var content + , $e = this.$element + , o = this.options + + if (typeof this.options.content == 'string') { + content = $e.attr(o.content) + } else if (typeof this.options.content == 'function') { + content = this.options.content.call(this.$element[0]) + } + return content + } + + , tip: function() { + if (!this.$tip) { + this.$tip = $('<div class="popover" />') + .html('<div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div>') + } + return this.$tip + } + + }) + + + /* POPOVER PLUGIN DEFINITION + * ======================= */ + + $.fn.popover = function (options) { + if (typeof options == 'object') options = $.extend({}, $.fn.popover.defaults, options) + $.fn.twipsy.initWith.call(this, options, Popover, 'popover') + return this + } + + $.fn.popover.defaults = $.extend({} , $.fn.twipsy.defaults, { content: 'data-content', placement: 'right'}) + +}( window.jQuery || window.ender ); +/** + * Version: 1.0 Alpha-1 + * Build Date: 13-Nov-2007 + * Copyright (c) 2006-2007, Coolite Inc. (http://www.coolite.com/). All rights reserved. + * License: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/. + * Website: http://www.datejs.com/ or http://www.coolite.com/datejs/ + */ + +Date.CultureInfo={name:"en-US",englishName:"English (United States)",nativeName:"English (United States)",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],firstLetterDayNames:["S","M","T","W","T","F","S"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:0,twoDigitYearMax:2029,dateElementOrder:"mdy",formatPatterns:{shortDate:"M/d/yyyy",longDate:"dddd, MMMM dd, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, MMMM dd, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"MMMM dd",yearMonth:"MMMM, yyyy"},regexPatterns:{jan:/^jan(uary)?/i,feb:/^feb(ruary)?/i,mar:/^mar(ch)?/i,apr:/^apr(il)?/i,may:/^may/i,jun:/^jun(e)?/i,jul:/^jul(y)?/i,aug:/^aug(ust)?/i,sep:/^sep(t(ember)?)?/i,oct:/^oct(ober)?/i,nov:/^nov(ember)?/i,dec:/^dec(ember)?/i,sun:/^su(n(day)?)?/i,mon:/^mo(n(day)?)?/i,tue:/^tu(e(s(day)?)?)?/i,wed:/^we(d(nesday)?)?/i,thu:/^th(u(r(s(day)?)?)?)?/i,fri:/^fr(i(day)?)?/i,sat:/^sa(t(urday)?)?/i,future:/^next/i,past:/^last|past|prev(ious)?/i,add:/^(\+|after|from)/i,subtract:/^(\-|before|ago)/i,yesterday:/^yesterday/i,today:/^t(oday)?/i,tomorrow:/^tomorrow/i,now:/^n(ow)?/i,millisecond:/^ms|milli(second)?s?/i,second:/^sec(ond)?s?/i,minute:/^min(ute)?s?/i,hour:/^h(ou)?rs?/i,week:/^w(ee)?k/i,month:/^m(o(nth)?s?)?/i,day:/^d(ays?)?/i,year:/^y((ea)?rs?)?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a|p)/i},abbreviatedTimeZoneStandard:{GMT:"-000",EST:"-0400",CST:"-0500",MST:"-0600",PST:"-0700"},abbreviatedTimeZoneDST:{GMT:"-000",EDT:"-0500",CDT:"-0600",MDT:"-0700",PDT:"-0800"}}; +Date.getMonthNumberFromName=function(name){var n=Date.CultureInfo.monthNames,m=Date.CultureInfo.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}} +return-1;};Date.getDayNumberFromName=function(name){var n=Date.CultureInfo.dayNames,m=Date.CultureInfo.abbreviatedDayNames,o=Date.CultureInfo.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}} +return-1;};Date.isLeapYear=function(year){return(((year%4===0)&&(year%100!==0))||(year%400===0));};Date.getDaysInMonth=function(year,month){return[31,(Date.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};Date.getTimezoneOffset=function(s,dst){return(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST[s.toUpperCase()]:Date.CultureInfo.abbreviatedTimeZoneStandard[s.toUpperCase()];};Date.getTimezoneAbbreviation=function(offset,dst){var n=(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST:Date.CultureInfo.abbreviatedTimeZoneStandard,p;for(p in n){if(n[p]===offset){return p;}} +return null;};Date.prototype.clone=function(){return new Date(this.getTime());};Date.prototype.compareTo=function(date){if(isNaN(this)){throw new Error(this);} +if(date instanceof Date&&!isNaN(date)){return(this>date)?1:(this<date)?-1:0;}else{throw new TypeError(date);}};Date.prototype.equals=function(date){return(this.compareTo(date)===0);};Date.prototype.between=function(start,end){var t=this.getTime();return t>=start.getTime()&&t<=end.getTime();};Date.prototype.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};Date.prototype.addSeconds=function(value){return this.addMilliseconds(value*1000);};Date.prototype.addMinutes=function(value){return this.addMilliseconds(value*60000);};Date.prototype.addHours=function(value){return this.addMilliseconds(value*3600000);};Date.prototype.addDays=function(value){return this.addMilliseconds(value*86400000);};Date.prototype.addWeeks=function(value){return this.addMilliseconds(value*604800000);};Date.prototype.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,this.getDaysInMonth()));return this;};Date.prototype.addYears=function(value){return this.addMonths(value*12);};Date.prototype.add=function(config){if(typeof config=="number"){this._orient=config;return this;} +var x=config;if(x.millisecond||x.milliseconds){this.addMilliseconds(x.millisecond||x.milliseconds);} +if(x.second||x.seconds){this.addSeconds(x.second||x.seconds);} +if(x.minute||x.minutes){this.addMinutes(x.minute||x.minutes);} +if(x.hour||x.hours){this.addHours(x.hour||x.hours);} +if(x.month||x.months){this.addMonths(x.month||x.months);} +if(x.year||x.years){this.addYears(x.year||x.years);} +if(x.day||x.days){this.addDays(x.day||x.days);} +return this;};Date._validate=function(value,min,max,name){if(typeof value!="number"){throw new TypeError(value+" is not a Number.");}else if(value<min||value>max){throw new RangeError(value+" is not a valid value for "+name+".");} +return true;};Date.validateMillisecond=function(n){return Date._validate(n,0,999,"milliseconds");};Date.validateSecond=function(n){return Date._validate(n,0,59,"seconds");};Date.validateMinute=function(n){return Date._validate(n,0,59,"minutes");};Date.validateHour=function(n){return Date._validate(n,0,23,"hours");};Date.validateDay=function(n,year,month){return Date._validate(n,1,Date.getDaysInMonth(year,month),"days");};Date.validateMonth=function(n){return Date._validate(n,0,11,"months");};Date.validateYear=function(n){return Date._validate(n,1,9999,"seconds");};Date.prototype.set=function(config){var x=config;if(!x.millisecond&&x.millisecond!==0){x.millisecond=-1;} +if(!x.second&&x.second!==0){x.second=-1;} +if(!x.minute&&x.minute!==0){x.minute=-1;} +if(!x.hour&&x.hour!==0){x.hour=-1;} +if(!x.day&&x.day!==0){x.day=-1;} +if(!x.month&&x.month!==0){x.month=-1;} +if(!x.year&&x.year!==0){x.year=-1;} +if(x.millisecond!=-1&&Date.validateMillisecond(x.millisecond)){this.addMilliseconds(x.millisecond-this.getMilliseconds());} +if(x.second!=-1&&Date.validateSecond(x.second)){this.addSeconds(x.second-this.getSeconds());} +if(x.minute!=-1&&Date.validateMinute(x.minute)){this.addMinutes(x.minute-this.getMinutes());} +if(x.hour!=-1&&Date.validateHour(x.hour)){this.addHours(x.hour-this.getHours());} +if(x.month!==-1&&Date.validateMonth(x.month)){this.addMonths(x.month-this.getMonth());} +if(x.year!=-1&&Date.validateYear(x.year)){this.addYears(x.year-this.getFullYear());} +if(x.day!=-1&&Date.validateDay(x.day,this.getFullYear(),this.getMonth())){this.addDays(x.day-this.getDate());} +if(x.timezone){this.setTimezone(x.timezone);} +if(x.timezoneOffset){this.setTimezoneOffset(x.timezoneOffset);} +return this;};Date.prototype.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};Date.prototype.isLeapYear=function(){var y=this.getFullYear();return(((y%4===0)&&(y%100!==0))||(y%400===0));};Date.prototype.isWeekday=function(){return!(this.is().sat()||this.is().sun());};Date.prototype.getDaysInMonth=function(){return Date.getDaysInMonth(this.getFullYear(),this.getMonth());};Date.prototype.moveToFirstDayOfMonth=function(){return this.set({day:1});};Date.prototype.moveToLastDayOfMonth=function(){return this.set({day:this.getDaysInMonth()});};Date.prototype.moveToDayOfWeek=function(day,orient){var diff=(day-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};Date.prototype.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};Date.prototype.getDayOfYear=function(){return Math.floor((this-new Date(this.getFullYear(),0,1))/86400000);};Date.prototype.getWeekOfYear=function(firstDayOfWeek){var y=this.getFullYear(),m=this.getMonth(),d=this.getDate();var dow=firstDayOfWeek||Date.CultureInfo.firstDayOfWeek;var offset=7+1-new Date(y,0,1).getDay();if(offset==8){offset=1;} +var daynum=((Date.UTC(y,m,d,0,0,0)-Date.UTC(y,0,1,0,0,0))/86400000)+1;var w=Math.floor((daynum-offset+7)/7);if(w===dow){y--;var prevOffset=7+1-new Date(y,0,1).getDay();if(prevOffset==2||prevOffset==8){w=53;}else{w=52;}} +return w;};Date.prototype.isDST=function(){console.log('isDST');return this.toString().match(/(E|C|M|P)(S|D)T/)[2]=="D";};Date.prototype.getTimezone=function(){return Date.getTimezoneAbbreviation(this.getUTCOffset,this.isDST());};Date.prototype.setTimezoneOffset=function(s){var here=this.getTimezoneOffset(),there=Number(s)*-6/10;this.addMinutes(there-here);return this;};Date.prototype.setTimezone=function(s){return this.setTimezoneOffset(Date.getTimezoneOffset(s));};Date.prototype.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r[0]+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};Date.prototype.getDayName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedDayNames[this.getDay()]:Date.CultureInfo.dayNames[this.getDay()];};Date.prototype.getMonthName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedMonthNames[this.getMonth()]:Date.CultureInfo.monthNames[this.getMonth()];};Date.prototype._toString=Date.prototype.toString;Date.prototype.toString=function(format){var self=this;var p=function p(s){return(s.toString().length==1)?"0"+s:s;};return format?format.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,function(format){switch(format){case"hh":return p(self.getHours()<13?self.getHours():(self.getHours()-12));case"h":return self.getHours()<13?self.getHours():(self.getHours()-12);case"HH":return p(self.getHours());case"H":return self.getHours();case"mm":return p(self.getMinutes());case"m":return self.getMinutes();case"ss":return p(self.getSeconds());case"s":return self.getSeconds();case"yyyy":return self.getFullYear();case"yy":return self.getFullYear().toString().substring(2,4);case"dddd":return self.getDayName();case"ddd":return self.getDayName(true);case"dd":return p(self.getDate());case"d":return self.getDate().toString();case"MMMM":return self.getMonthName();case"MMM":return self.getMonthName(true);case"MM":return p((self.getMonth()+1));case"M":return self.getMonth()+1;case"t":return self.getHours()<12?Date.CultureInfo.amDesignator.substring(0,1):Date.CultureInfo.pmDesignator.substring(0,1);case"tt":return self.getHours()<12?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;case"zzz":case"zz":case"z":return"";}}):this._toString();}; +Date.now=function(){return new Date();};Date.today=function(){return Date.now().clearTime();};Date.prototype._orient=+1;Date.prototype.next=function(){this._orient=+1;return this;};Date.prototype.last=Date.prototype.prev=Date.prototype.previous=function(){this._orient=-1;return this;};Date.prototype._is=false;Date.prototype.is=function(){this._is=true;return this;};Number.prototype._dateElement="day";Number.prototype.fromNow=function(){var c={};c[this._dateElement]=this;return Date.now().add(c);};Number.prototype.ago=function(){var c={};c[this._dateElement]=this*-1;return Date.now().add(c);};(function(){var $D=Date.prototype,$N=Number.prototype;var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),de;var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;} +return this.moveToDayOfWeek(n,this._orient);};};for(var i=0;i<dx.length;i++){$D[dx[i]]=$D[dx[i].substring(0,3)]=df(i);} +var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;} +return this.moveToMonth(n,this._orient);};};for(var j=0;j<mx.length;j++){$D[mx[j]]=$D[mx[j].substring(0,3)]=mf(j);} +var ef=function(j){return function(){if(j.substring(j.length-1)!="s"){j+="s";} +return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$D[de]=$D[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}}());Date.prototype.toJSONString=function(){return this.toString("yyyy-MM-ddThh:mm:ssZ");};Date.prototype.toShortDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortDatePattern);};Date.prototype.toLongDateString=function(){return this.toString(Date.CultureInfo.formatPatterns.longDatePattern);};Date.prototype.toShortTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.shortTimePattern);};Date.prototype.toLongTimeString=function(){return this.toString(Date.CultureInfo.formatPatterns.longTimePattern);};Date.prototype.getOrdinal=function(){switch(this.getDate()){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}}; +(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;} +break;} +return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];} +rx.push(r[0]);s=r[1];} +return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];} +return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];} +throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));} +return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;} +if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;} +try{r=(px[i].call(this,s));}catch(e){r=null;} +if(r){return r;}} +throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;} +try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);} +rx.push(r[0]);s=r[1];} +return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];} +return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;} +rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;} +s=q[1];} +if(!r){throw new $P.Exception(s);} +if(q){throw new $P.Exception(q[1]);} +if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}} +return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;} +rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;} +if(!last&&q[1].length===0){last=true;} +if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}} +p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}} +if(rx[1].length<best[1].length){best=rx;} +if(best[1].length===0){break;}} +if(best[0].length===0){return best;} +if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);} +best[1]=q[1];} +return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);} +return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];} +if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);} +var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}} +return rx;};Date.Grammar={};Date.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=((s.length==3)?Date.getMonthNumberFromName(s):(Number(s)-1));};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<Date.CultureInfo.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];var now=new Date();this.year=now.getFullYear();this.month=now.getMonth();this.day=1;this.hour=0;this.minute=0;this.second=0;for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}} +this.hour=(this.meridian=="p"&&this.hour<13)?this.hour+12:this.hour;if(this.day>Date.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");} +var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});} +return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;} +for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}} +if(this.now){return new Date();} +var today=Date.today();var method=null;var expression=!!(this.days!=null||this.orient||this.operator);if(expression){var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(this.weekday){this.unit="day";gap=(Date.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);} +if(this.month){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;} +if(!this.unit){this.unit="day";} +if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;} +if(this.unit=="week"){this.unit="day";this.value=this.value*7;} +this[this.unit+"s"]=this.value*orient;} +return today.add(this);}else{if(this.meridian&&this.hour){this.hour=(this.hour<13&&this.meridian=="p")?this.hour+12:this.hour;} +if(this.weekday&&!this.day){this.day=(today.addDays((Date.getDayNumberFromName(this.weekday)-today.getDay()))).getDate();} +if(this.month&&!this.day){this.day=1;} +return today.set(this);}}};var _=Date.Parsing.Operators,g=Date.Grammar,t=Date.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=Date.CultureInfo.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));} +fn=_C[keys]=_.any.apply(null,px);} +return fn;};g.ctoken2=function(key){return _.rtoken(Date.CultureInfo.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.mm,g.ss],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^(\+|\-)?\s*\d\d\d\d?/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^(\+|\-)\s*\d\d\d\d/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[Date.CultureInfo.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw Date.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));} +return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["yyyy-MM-ddTHH:mm:ss","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){} +return g._start.call({},s);};}());Date._parse=Date.parse;Date.parse=function(s){var r=null;if(!s){return null;} +try{r=Date.Grammar.start.call({},s);}catch(e){return null;} +return((r[1].length===0)?r[0]:null);};Date.getParseFunction=function(fx){var fn=Date.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;} +return((r[1].length===0)?r[0]:null);};};Date.parseExact=function(s,fx){return Date.getParseFunction(fx)(s);}; +(function(){if (!Date.now) Date.now = function() { + return +new Date; +}; +try { + document.createElement("div").style.setProperty("opacity", 0, ""); +} catch (error) { + var d3_style_prototype = CSSStyleDeclaration.prototype, + d3_style_setProperty = d3_style_prototype.setProperty; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; +} +d3 = {version: "2.4.6"}; // semver +var d3_array = d3_arraySlice; // conversion for NodeLists + +function d3_arrayCopy(pseudoarray) { + var i = -1, n = pseudoarray.length, array = []; + while (++i < n) array.push(pseudoarray[i]); + return array; +} + +function d3_arraySlice(pseudoarray) { + return Array.prototype.slice.call(pseudoarray); +} + +try { + d3_array(document.documentElement.childNodes)[0].nodeType; +} catch(e) { + d3_array = d3_arrayCopy; +} + +var d3_arraySubclass = [].__proto__? + +// Until ECMAScript supports array subclassing, prototype injection works well. +function(array, prototype) { + array.__proto__ = prototype; +}: + +// And if your browser doesn't support __proto__, we'll use direct extension. +function(array, prototype) { + for (var property in prototype) array[property] = prototype[property]; +}; +function d3_this() { + return this; +} +d3.functor = function(v) { + return typeof v === "function" ? v : function() { return v; }; +}; +// A getter-setter method that preserves the appropriate `this` context. +d3.rebind = function(object, method) { + return function() { + var x = method.apply(object, arguments); + return arguments.length ? object : x; + }; +}; +d3.ascending = function(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +}; +d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +}; +d3.mean = function(array, f) { + var n = array.length, + a, + m = 0, + i = -1, + j = 0; + if (arguments.length === 1) { + while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j; + } else { + while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j; + } + return j ? m : undefined; +}; +d3.median = function(array, f) { + if (arguments.length > 1) array = array.map(f); + array = array.filter(d3_number); + return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined; +}; +d3.min = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; +}; +d3.max = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; +}; +function d3_number(x) { + return x != null && !isNaN(x); +} +d3.sum = function(array, f) { + var s = 0, + n = array.length, + a, + i = -1; + + if (arguments.length === 1) { + while (++i < n) if (!isNaN(a = +array[i])) s += a; + } else { + while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + } + + return s; +}; +// R-7 per <http://en.wikipedia.org/wiki/Quantile> +d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, + h = Math.floor(H), + v = values[h - 1], + e = H - h; + return e ? v + e * (values[h] - v) : v; +}; +d3.zip = function() { + if (!(n = arguments.length)) return []; + for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) { + for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) { + zip[j] = arguments[j][i]; + } + } + return zips; +}; + +function d3_zipLength(d) { + return d.length; +} +// Locate the insertion point for x in a to maintain sorted order. The +// arguments lo and hi may be used to specify a subset of the array which should +// be considered; by default the entire array is used. If x is already present +// in a, the insertion point will be before (to the left of) any existing +// entries. The return value is suitable for use as the first argument to +// `array.splice` assuming that a is already sorted. +// +// The returned insertion point i partitions the array a into two halves so that +// all v < x for v in a[lo:i] for the left side and all v >= x for v in a[i:hi] +// for the right side. +d3.bisectLeft = function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >> 1; + if (a[mid] < x) lo = mid + 1; + else hi = mid; + } + return lo; +}; + +// Similar to bisectLeft, but returns an insertion point which comes after (to +// the right of) any existing entries of x in a. +// +// The returned insertion point i partitions the array into two halves so that +// all v <= x for v in a[lo:i] for the left side and all v > x for v in a[i:hi] +// for the right side. +d3.bisect = +d3.bisectRight = function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >> 1; + if (x < a[mid]) hi = mid; + else lo = mid + 1; + } + return lo; +}; +d3.first = function(array, f) { + var i = 0, + n = array.length, + a = array[0], + b; + if (arguments.length === 1) f = d3.ascending; + while (++i < n) { + if (f.call(array, a, b = array[i]) > 0) { + a = b; + } + } + return a; +}; +d3.last = function(array, f) { + var i = 0, + n = array.length, + a = array[0], + b; + if (arguments.length === 1) f = d3.ascending; + while (++i < n) { + if (f.call(array, a, b = array[i]) <= 0) { + a = b; + } + } + return a; +}; +d3.nest = function() { + var nest = {}, + keys = [], + sortKeys = [], + sortValues, + rollup; + + function map(array, depth) { + if (depth >= keys.length) return rollup + ? rollup.call(nest, array) : (sortValues + ? array.sort(sortValues) + : array); + + var i = -1, + n = array.length, + key = keys[depth++], + keyValue, + object, + o = {}; + + while (++i < n) { + if ((keyValue = key(object = array[i])) in o) { + o[keyValue].push(object); + } else { + o[keyValue] = [object]; + } + } + + for (keyValue in o) { + o[keyValue] = map(o[keyValue], depth); + } + + return o; + } + + function entries(map, depth) { + if (depth >= keys.length) return map; + + var a = [], + sortKey = sortKeys[depth++], + key; + + for (key in map) { + a.push({key: key, values: entries(map[key], depth)}); + } + + if (sortKey) a.sort(function(a, b) { + return sortKey(a.key, b.key); + }); + + return a; + } + + nest.map = function(array) { + return map(array, 0); + }; + + nest.entries = function(array) { + return entries(map(array, 0), 0); + }; + + nest.key = function(d) { + keys.push(d); + return nest; + }; + + // Specifies the order for the most-recently specified key. + // Note: only applies to entries. Map keys are unordered! + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + + // Specifies the order for leaf values. + // Applies to both maps and entries array. + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + + nest.rollup = function(f) { + rollup = f; + return nest; + }; + + return nest; +}; +d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; +}; +d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; +}; +d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({key: key, value: map[key]}); + return entries; +}; +d3.permute = function(array, indexes) { + var permutes = [], + i = -1, + n = indexes.length; + while (++i < n) permutes[i] = array[indexes[i]]; + return permutes; +}; +d3.merge = function(arrays) { + return Array.prototype.concat.apply([], arrays); +}; +d3.split = function(array, f) { + var arrays = [], + values = [], + value, + i = -1, + n = array.length; + if (arguments.length < 2) f = d3_splitter; + while (++i < n) { + if (f.call(values, value = array[i], i)) { + values = []; + } else { + if (!values.length) arrays.push(values); + values.push(value); + } + } + return arrays; +}; + +function d3_splitter(d) { + return d == null; +} +function d3_collapse(s) { + return s.replace(/(^\s+)|(\s+$)/g, "").replace(/\s+/g, " "); +} +/** + * @param {number} start + * @param {number=} stop + * @param {number=} step + */ +d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step == Infinity) throw new Error("infinite range"); + var range = [], + i = -1, + j; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j); + else while ((j = start + step * ++i) < stop) range.push(j); + return range; +}; +d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); +}; + +var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; +d3.round = function(x, n) { + return n + ? Math.round(x * Math.pow(10, n)) * Math.pow(10, -n) + : Math.round(x); +}; +d3.xhr = function(url, mime, callback) { + var req = new XMLHttpRequest; + if (arguments.length < 3) callback = mime; + else if (mime && req.overrideMimeType) req.overrideMimeType(mime); + req.open("GET", url, true); + req.onreadystatechange = function() { + if (req.readyState === 4) callback(req.status < 300 ? req : null); + }; + req.send(null); +}; +d3.text = function(url, mime, callback) { + function ready(req) { + callback(req && req.responseText); + } + if (arguments.length < 3) { + callback = mime; + mime = null; + } + d3.xhr(url, mime, ready); +}; +d3.json = function(url, callback) { + d3.text(url, "application/json", function(text) { + callback(text ? JSON.parse(text) : null); + }); +}; +d3.html = function(url, callback) { + d3.text(url, "text/html", function(text) { + if (text != null) { // Treat empty string as valid HTML. + var range = document.createRange(); + range.selectNode(document.body); + text = range.createContextualFragment(text); + } + callback(text); + }); +}; +d3.xml = function(url, mime, callback) { + function ready(req) { + callback(req && req.responseXML); + } + if (arguments.length < 3) { + callback = mime; + mime = null; + } + d3.xhr(url, mime, ready); +}; +d3.ns = { + + prefix: { + svg: "http://www.w3.org/2000/svg", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }, + + qualify: function(name) { + var i = name.indexOf(":"); + return i < 0 ? name : { + space: d3.ns.prefix[name.substring(0, i)], + local: name.substring(i + 1) + }; + } + +}; +/** @param {...string} types */ +d3.dispatch = function(types) { + var dispatch = {}, + type; + for (var i = 0, n = arguments.length; i < n; i++) { + type = arguments[i]; + dispatch[type] = d3_dispatch(type); + } + return dispatch; +}; + +function d3_dispatch(type) { + var dispatch = {}, + listeners = []; + + dispatch.add = function(listener) { + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].listener == listener) return dispatch; // already registered + } + listeners.push({listener: listener, on: true}); + return dispatch; + }; + + dispatch.remove = function(listener) { + for (var i = 0; i < listeners.length; i++) { + var l = listeners[i]; + if (l.listener == listener) { + l.on = false; + listeners = listeners.slice(0, i).concat(listeners.slice(i + 1)); + break; + } + } + return dispatch; + }; + + dispatch.dispatch = function() { + var ls = listeners; // defensive reference + for (var i = 0, n = ls.length; i < n; i++) { + var l = ls[i]; + if (l.on) l.listener.apply(this, arguments); + } + }; + + return dispatch; +}; +// TODO align +d3.format = function(specifier) { + var match = d3_format_re.exec(specifier), + fill = match[1] || " ", + sign = match[3] || "", + zfill = match[5], + width = +match[6], + comma = match[7], + precision = match[8], + type = match[9], + scale = 1, + suffix = "", + integer = false; + + if (precision) precision = +precision.substring(1); + + if (zfill) { + fill = "0"; // TODO align = "="; + if (comma) width -= Math.floor((width - 1) / 4); + } + + switch (type) { + case "n": comma = true; type = "g"; break; + case "%": scale = 100; suffix = "%"; type = "f"; break; + case "p": scale = 100; suffix = "%"; type = "r"; break; + case "d": integer = true; precision = 0; break; + case "s": scale = -1; type = "r"; break; + } + + // If no precision is specified for r, fallback to general notation. + if (type == "r" && !precision) type = "g"; + + type = d3_format_types[type] || d3_format_typeDefault; + + return function(value) { + + // Return the empty string for floats formatted as ints. + if (integer && (value % 1)) return ""; + + // Convert negative to positive, and record the sign prefix. + var negative = (value < 0) && (value = -value) ? "\u2212" : sign; + + // Apply the scale, computing it from the value's exponent for si format. + if (scale < 0) { + var prefix = d3.formatPrefix(value, precision); + value *= prefix.scale; + suffix = prefix.symbol; + } else { + value *= scale; + } + + // Convert to the desired precision. + value = type(value, precision); + + // If the fill character is 0, the sign and group is applied after the fill. + if (zfill) { + var length = value.length + negative.length; + if (length < width) value = new Array(width - length + 1).join(fill) + value; + if (comma) value = d3_format_group(value); + value = negative + value; + } + + // Otherwise (e.g., space-filling), the sign and group is applied before. + else { + if (comma) value = d3_format_group(value); + value = negative + value; + var length = value.length; + if (length < width) value = new Array(width - length + 1).join(fill) + value; + } + + return value + suffix; + }; +}; + +// [[fill]align][sign][#][0][width][,][.precision][type] +var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/; + +var d3_format_types = { + g: function(x, p) { return x.toPrecision(p); }, + e: function(x, p) { return x.toExponential(p); }, + f: function(x, p) { return x.toFixed(p); }, + r: function(x, p) { return d3.round(x, p = d3_format_precision(x, p)).toFixed(Math.max(0, Math.min(20, p))); } +}; + +function d3_format_precision(x, p) { + return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1); +} + +function d3_format_typeDefault(x) { + return x + ""; +} + +// Apply comma grouping for thousands. +function d3_format_group(value) { + var i = value.lastIndexOf("."), + f = i >= 0 ? value.substring(i) : (i = value.length, ""), + t = []; + while (i > 0) t.push(value.substring(i -= 3, i + 3)); + return t.reverse().join(",") + f; +} +var d3_formatPrefixes = ["y","z","a","f","p","n","μ","m","","k","M","G","T","P","E","Z","Y"].map(d3_formatPrefix); + +d3.formatPrefix = function(value, precision) { + var i = 0; + if (value) { + if (value < 0) value *= -1; + if (precision) value = d3.round(value, d3_format_precision(value, precision)); + i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); + i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3)); + } + return d3_formatPrefixes[8 + i / 3]; +}; + +function d3_formatPrefix(d, i) { + return { + scale: Math.pow(10, (8 - i) * 3), + symbol: d + }; +} + +/* + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * - Neither the name of the author nor the names of contributors may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +var d3_ease_quad = d3_ease_poly(2), + d3_ease_cubic = d3_ease_poly(3); + +var d3_ease = { + linear: function() { return d3_ease_linear; }, + poly: d3_ease_poly, + quad: function() { return d3_ease_quad; }, + cubic: function() { return d3_ease_cubic; }, + sin: function() { return d3_ease_sin; }, + exp: function() { return d3_ease_exp; }, + circle: function() { return d3_ease_circle; }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { return d3_ease_bounce; } +}; + +var d3_ease_mode = { + "in": function(f) { return f; }, + "out": d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); } +}; + +d3.ease = function(name) { + var i = name.indexOf("-"), + t = i >= 0 ? name.substring(0, i) : name, + m = i >= 0 ? name.substring(i + 1) : "in"; + return d3_ease_clamp(d3_ease_mode[m](d3_ease[t].apply(null, Array.prototype.slice.call(arguments, 1)))); +}; + +function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; +} + +function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; +} + +function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t))); + }; +} + +function d3_ease_linear(t) { + return t; +} + +function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + } +} + +function d3_ease_sin(t) { + return 1 - Math.cos(t * Math.PI / 2); +} + +function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); +} + +function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); +} + +function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = 0.45; + if (arguments.length < 1) { a = 1; s = p / 4; } + else s = p / (2 * Math.PI) * Math.asin(1 / a); + return function(t) { + return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p); + }; +} + +function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; +} + +function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t + : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 + : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 + : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; +} +d3.event = null; +d3.interpolate = function(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))); + return f; +}; + +d3.interpolateNumber = function(a, b) { + b -= a; + return function(t) { return a + b * t; }; +}; + +d3.interpolateRound = function(a, b) { + b -= a; + return function(t) { return Math.round(a + b * t); }; +}; + +d3.interpolateString = function(a, b) { + var m, // current match + i, // current index + j, // current index (for coallescing) + s0 = 0, // start index of current string prefix + s1 = 0, // end index of current string prefix + s = [], // string constants and placeholders + q = [], // number interpolators + n, // q.length + o; + + // Reset our regular expression! + d3_interpolate_number.lastIndex = 0; + + // Find all numbers in b. + for (i = 0; m = d3_interpolate_number.exec(b); ++i) { + if (m.index) s.push(b.substring(s0, s1 = m.index)); + q.push({i: s.length, x: m[0]}); + s.push(null); + s0 = d3_interpolate_number.lastIndex; + } + if (s0 < b.length) s.push(b.substring(s0)); + + // Find all numbers in a. + for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) { + o = q[i]; + if (o.x == m[0]) { // The numbers match, so coallesce. + if (o.i) { + if (s[o.i + 1] == null) { // This match is followed by another number. + s[o.i - 1] += o.x; + s.splice(o.i, 1); + for (j = i + 1; j < n; ++j) q[j].i--; + } else { // This match is followed by a string, so coallesce twice. + s[o.i - 1] += o.x + s[o.i + 1]; + s.splice(o.i, 2); + for (j = i + 1; j < n; ++j) q[j].i -= 2; + } + } else { + if (s[o.i + 1] == null) { // This match is followed by another number. + s[o.i] = o.x; + } else { // This match is followed by a string, so coallesce twice. + s[o.i] = o.x + s[o.i + 1]; + s.splice(o.i + 1, 1); + for (j = i + 1; j < n; ++j) q[j].i--; + } + } + q.splice(i, 1); + n--; + i--; + } else { + o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x)); + } + } + + // Remove any numbers in b not found in a. + while (i < n) { + o = q.pop(); + if (s[o.i + 1] == null) { // This match is followed by another number. + s[o.i] = o.x; + } else { // This match is followed by a string, so coallesce twice. + s[o.i] = o.x + s[o.i + 1]; + s.splice(o.i + 1, 1); + } + n--; + } + + // Special optimization for only a single match. + if (s.length === 1) { + return s[0] == null ? q[0].x : function() { return b; }; + } + + // Otherwise, interpolate each of the numbers and rejoin the string. + return function(t) { + for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; +}; + +d3.interpolateRgb = function(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, + ag = a.g, + ab = a.b, + br = b.r - ar, + bg = b.g - ag, + bb = b.b - ab; + return function(t) { + return "#" + + d3_rgb_hex(Math.round(ar + br * t)) + + d3_rgb_hex(Math.round(ag + bg * t)) + + d3_rgb_hex(Math.round(ab + bb * t)); + }; +}; + +// interpolates HSL space, but outputs RGB string (for compatibility) +d3.interpolateHsl = function(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var h0 = a.h, + s0 = a.s, + l0 = a.l, + h1 = b.h - h0, + s1 = b.s - s0, + l1 = b.l - l0; + return function(t) { + return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t).toString(); + }; +}; + +d3.interpolateArray = function(a, b) { + var x = [], + c = [], + na = a.length, + nb = b.length, + n0 = Math.min(a.length, b.length), + i; + for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i])); + for (; i < na; ++i) c[i] = a[i]; + for (; i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; +}; + +d3.interpolateObject = function(a, b) { + var i = {}, + c = {}, + k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolateByName(k)(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; +} + +var d3_interpolate_number = /[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g, + d3_interpolate_rgb = {background: 1, fill: 1, stroke: 1}; + +function d3_interpolateByName(n) { + return n in d3_interpolate_rgb || /\bcolor\b/.test(n) + ? d3.interpolateRgb + : d3.interpolate; +} + +d3.interpolators = [ + d3.interpolateObject, + function(a, b) { return (b instanceof Array) && d3.interpolateArray(a, b); }, + function(a, b) { return (typeof b === "string") && d3.interpolateString(String(a), b); }, + function(a, b) { return (typeof b === "string" ? b in d3_rgb_names || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(String(a), b); }, + function(a, b) { return (typeof b === "number") && d3.interpolateNumber(+a, b); } +]; +function d3_uninterpolateNumber(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { return (x - a) * b; }; +} + +function d3_uninterpolateClamp(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { return Math.max(0, Math.min(1, (x - a) * b)); }; +} +d3.rgb = function(r, g, b) { + return arguments.length === 1 + ? (r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) + : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb)) + : d3_rgb(~~r, ~~g, ~~b); +}; + +function d3_rgb(r, g, b) { + return new d3_Rgb(r, g, b); +} + +function d3_Rgb(r, g, b) { + this.r = r; + this.g = g; + this.b = b; +} + +d3_Rgb.prototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + var r = this.r, + g = this.g, + b = this.b, + i = 30; + if (!r && !g && !b) return d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return d3_rgb( + Math.min(255, Math.floor(r / k)), + Math.min(255, Math.floor(g / k)), + Math.min(255, Math.floor(b / k))); +}; + +d3_Rgb.prototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return d3_rgb( + Math.floor(k * this.r), + Math.floor(k * this.g), + Math.floor(k * this.b)); +}; + +d3_Rgb.prototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); +}; + +d3_Rgb.prototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); +}; + +function d3_rgb_hex(v) { + return v < 0x10 + ? "0" + Math.max(0, v).toString(16) + : Math.min(255, v).toString(16); +} + +function d3_rgb_parse(format, rgb, hsl) { + var r = 0, // red channel; int in [0, 255] + g = 0, // green channel; int in [0, 255] + b = 0, // blue channel; int in [0, 255] + m1, // CSS color specification match + m2, // CSS color specification type (e.g., rgb) + name; + + /* Handle hsl, rgb. */ + m1 = /([a-z]+)\((.*)\)/i.exec(format); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": { + return hsl( + parseFloat(m2[0]), // degrees + parseFloat(m2[1]) / 100, // percentage + parseFloat(m2[2]) / 100 // percentage + ); + } + case "rgb": { + return rgb( + d3_rgb_parseNumber(m2[0]), + d3_rgb_parseNumber(m2[1]), + d3_rgb_parseNumber(m2[2]) + ); + } + } + } + + /* Named colors. */ + if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b); + + /* Hexadecimal colors: #rgb and #rrggbb. */ + if (format != null && format.charAt(0) === "#") { + if (format.length === 4) { + r = format.charAt(1); r += r; + g = format.charAt(2); g += g; + b = format.charAt(3); b += b; + } else if (format.length === 7) { + r = format.substring(1, 3); + g = format.substring(3, 5); + b = format.substring(5, 7); + } + r = parseInt(r, 16); + g = parseInt(g, 16); + b = parseInt(b, 16); + } + + return rgb(r, g, b); +} + +function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), + max = Math.max(r, g, b), + d = max - min, + h, + s, + l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); + else if (g == max) h = (b - r) / d + 2; + else h = (r - g) / d + 4; + h *= 60; + } else { + s = h = 0; + } + return d3_hsl(h, s, l); +} + +function d3_rgb_parseNumber(c) { // either integer or percentage + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; +} + +var d3_rgb_names = { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategray: "#2f4f4f", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32" +}; + +for (var d3_rgb_name in d3_rgb_names) { + d3_rgb_names[d3_rgb_name] = d3_rgb_parse( + d3_rgb_names[d3_rgb_name], + d3_rgb, + d3_hsl_rgb); +} +d3.hsl = function(h, s, l) { + return arguments.length === 1 + ? (h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) + : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl)) + : d3_hsl(+h, +s, +l); +}; + +function d3_hsl(h, s, l) { + return new d3_Hsl(h, s, l); +} + +function d3_Hsl(h, s, l) { + this.h = h; + this.s = s; + this.l = l; +} + +d3_Hsl.prototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return d3_hsl(this.h, this.s, this.l / k); +}; + +d3_Hsl.prototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return d3_hsl(this.h, this.s, k * this.l); +}; + +d3_Hsl.prototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); +}; + +d3_Hsl.prototype.toString = function() { + return this.rgb().toString(); +}; + +function d3_hsl_rgb(h, s, l) { + var m1, + m2; + + /* Some simple corrections for h, s and l. */ + h = h % 360; if (h < 0) h += 360; + s = s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + + /* From FvD 13.37, CSS Color Module Level 3 */ + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + + function v(h) { + if (h > 360) h -= 360; + else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + + function vv(h) { + return Math.round(v(h) * 255); + } + + return d3_rgb(vv(h + 120), vv(h), vv(h - 120)); +} +function d3_selection(groups) { + d3_arraySubclass(groups, d3_selectionPrototype); + return groups; +} + +var d3_select = function(s, n) { return n.querySelector(s); }, + d3_selectAll = function(s, n) { return n.querySelectorAll(s); }; + +// Prefer Sizzle, if available. +if (typeof Sizzle === "function") { + d3_select = function(s, n) { return Sizzle(s, n)[0]; }; + d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); }; +} + +var d3_selectionPrototype = []; + +d3.selection = function() { + return d3_selectionRoot; +}; + +d3.selection.prototype = d3_selectionPrototype; +d3_selectionPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + group, + node; + + if (typeof selector !== "function") selector = d3_selection_selector(selector); + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + + return d3_selection(subgroups); +}; + +function d3_selection_selector(selector) { + return function() { + return d3_select(selector, this); + }; +} +d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], + subgroup, + node; + + if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); + + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i))); + subgroup.parentNode = node; + } + } + } + + return d3_selection(subgroups); +}; + +function d3_selection_selectorAll(selector) { + return function() { + return d3_selectAll(selector, this); + }; +} +d3_selectionPrototype.attr = function(name, value) { + name = d3.ns.qualify(name); + + // If no value is specified, return the first value. + if (arguments.length < 2) { + var node = this.node(); + return name.local + ? node.getAttributeNS(name.space, name.local) + : node.getAttribute(name); + } + + function attrNull() { + this.removeAttribute(name); + } + + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + + function attrConstant() { + this.setAttribute(name, value); + } + + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); + else this.setAttribute(name, x); + } + + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); + else this.setAttributeNS(name.space, name.local, x); + } + + return this.each(value == null + ? (name.local ? attrNullNS : attrNull) : (typeof value === "function" + ? (name.local ? attrFunctionNS : attrFunction) + : (name.local ? attrConstantNS : attrConstant))); +}; +d3_selectionPrototype.classed = function(name, value) { + var names = name.split(d3_selection_classedWhitespace), + n = names.length, + i = -1; + if (arguments.length > 1) { + while (++i < n) d3_selection_classed.call(this, names[i], value); + return this; + } else { + while (++i < n) if (!d3_selection_classed.call(this, names[i])) return false; + return true; + } +}; + +var d3_selection_classedWhitespace = /\s+/g; + +function d3_selection_classed(name, value) { + var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g"); + + // If no value is specified, return the first value. + if (arguments.length < 2) { + var node = this.node(); + if (c = node.classList) return c.contains(name); + var c = node.className; + re.lastIndex = 0; + return re.test(c.baseVal != null ? c.baseVal : c); + } + + function classedAdd() { + if (c = this.classList) return c.add(name); + var c = this.className, + cb = c.baseVal != null, + cv = cb ? c.baseVal : c; + re.lastIndex = 0; + if (!re.test(cv)) { + cv = d3_collapse(cv + " " + name); + if (cb) c.baseVal = cv; + else this.className = cv; + } + } + + function classedRemove() { + if (c = this.classList) return c.remove(name); + var c = this.className, + cb = c.baseVal != null, + cv = cb ? c.baseVal : c; + cv = d3_collapse(cv.replace(re, " ")); + if (cb) c.baseVal = cv; + else this.className = cv; + } + + function classedFunction() { + (value.apply(this, arguments) + ? classedAdd + : classedRemove).call(this); + } + + return this.each(typeof value === "function" + ? classedFunction : value + ? classedAdd + : classedRemove); +} +d3_selectionPrototype.style = function(name, value, priority) { + if (arguments.length < 3) priority = ""; + + // If no value is specified, return the first value. + if (arguments.length < 2) return window + .getComputedStyle(this.node(), null) + .getPropertyValue(name); + + function styleNull() { + this.style.removeProperty(name); + } + + function styleConstant() { + this.style.setProperty(name, value, priority); + } + + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); + else this.style.setProperty(name, x, priority); + } + + return this.each(value == null + ? styleNull : (typeof value === "function" + ? styleFunction : styleConstant)); +}; +d3_selectionPrototype.property = function(name, value) { + + // If no value is specified, return the first value. + if (arguments.length < 2) return this.node()[name]; + + function propertyNull() { + delete this[name]; + } + + function propertyConstant() { + this[name] = value; + } + + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; + else this[name] = x; + } + + return this.each(value == null + ? propertyNull : (typeof value === "function" + ? propertyFunction : propertyConstant)); +}; +d3_selectionPrototype.text = function(value) { + return arguments.length < 1 ? this.node().textContent + : (this.each(typeof value === "function" + ? function() { this.textContent = value.apply(this, arguments); } + : function() { this.textContent = value; })); +}; +d3_selectionPrototype.html = function(value) { + return arguments.length < 1 ? this.node().innerHTML + : (this.each(typeof value === "function" + ? function() { this.innerHTML = value.apply(this, arguments); } + : function() { this.innerHTML = value; })); +}; +// TODO append(node)? +// TODO append(function)? +d3_selectionPrototype.append = function(name) { + name = d3.ns.qualify(name); + + function append() { + return this.appendChild(document.createElement(name)); + } + + function appendNS() { + return this.appendChild(document.createElementNS(name.space, name.local)); + } + + return this.select(name.local ? appendNS : append); +}; +// TODO insert(node, function)? +// TODO insert(function, string)? +// TODO insert(function, function)? +d3_selectionPrototype.insert = function(name, before) { + name = d3.ns.qualify(name); + + function insert() { + return this.insertBefore( + document.createElement(name), + d3_select(before, this)); + } + + function insertNS() { + return this.insertBefore( + document.createElementNS(name.space, name.local), + d3_select(before, this)); + } + + return this.select(name.local ? insertNS : insert); +}; +// TODO remove(selector)? +// TODO remove(node)? +// TODO remove(function)? +d3_selectionPrototype.remove = function() { + return this.each(function() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + }); +}; +// TODO data(null) for clearing data? +d3_selectionPrototype.data = function(data, join) { + var enter = [], + update = [], + exit = []; + + function bind(group, groupData) { + var i, + n = group.length, + m = groupData.length, + n0 = Math.min(n, m), + n1 = Math.max(n, m), + updateNodes = [], + enterNodes = [], + exitNodes = [], + node, + nodeData; + + if (join) { + var nodeByKey = {}, + keys = [], + key, + j = groupData.length; + + for (i = -1; ++i < n;) { + key = join.call(node = group[i], node.__data__, i); + if (key in nodeByKey) { + exitNodes[j++] = node; // duplicate key + } else { + nodeByKey[key] = node; + } + keys.push(key); + } + + for (i = -1; ++i < m;) { + node = nodeByKey[key = join.call(groupData, nodeData = groupData[i], i)]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + enterNodes[i] = exitNodes[i] = null; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + updateNodes[i] = exitNodes[i] = null; + } + delete nodeByKey[key]; + } + + for (i = -1; ++i < n;) { + if (keys[i] in nodeByKey) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0;) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + enterNodes[i] = exitNodes[i] = null; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + updateNodes[i] = exitNodes[i] = null; + } + } + for (; i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + updateNodes[i] = exitNodes[i] = null; + } + for (; i < n1; ++i) { + exitNodes[i] = group[i]; + enterNodes[i] = updateNodes[i] = null; + } + } + + enterNodes.update + = updateNodes; + + enterNodes.parentNode + = updateNodes.parentNode + = exitNodes.parentNode + = group.parentNode; + + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + + var i = -1, + n = this.length, + group; + if (typeof data === "function") { + while (++i < n) { + bind(group = this[i], data.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], data); + } + } + + var selection = d3_selection(update); + selection.enter = function() { return d3_selection_enter(enter); }; + selection.exit = function() { return d3_selection(exit); }; + return selection; +}; + +function d3_selection_dataNode(data) { + return {__data__: data}; +} +// TODO preserve null elements to maintain index? +d3_selectionPrototype.filter = function(filter) { + var subgroups = [], + subgroup, + group, + node; + + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i)) { + subgroup.push(node); + } + } + } + + return d3_selection(subgroups); +}; +d3_selectionPrototype.map = function(map) { + return this.each(function() { + this.__data__ = map.apply(this, arguments); + }); +}; +d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j].sort(comparator), i = 1, n = group.length, prev = group[0]; i < n; i++) { + var node = group[i]; + if (node) { + if (prev) prev.parentNode.insertBefore(node, prev.nextSibling); + prev = node; + } + } + } + return this; +}; + +function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3.ascending; + return function(a, b) { + return comparator(a && a.__data__, b && b.__data__); + }; +} +// type can be namespaced, e.g., "click.foo" +// listener can be null for removal +d3_selectionPrototype.on = function(type, listener, capture) { + if (arguments.length < 3) capture = false; + + // parse the type specifier + var name = "__on" + type, i = type.indexOf("."); + if (i > 0) type = type.substring(0, i); + + // if called with only one argument, return the current listener + if (arguments.length < 2) return (i = this.node()[name]) && i._; + + // remove the old event listener, and add the new event listener + return this.each(function(d, i) { + var node = this; + + if (node[name]) node.removeEventListener(type, node[name], capture); + if (listener) node.addEventListener(type, node[name] = l, capture); + + // wrapped event listener that preserves i + function l(e) { + var o = d3.event; // Events can be reentrant (e.g., focus). + d3.event = e; + try { + listener.call(node, node.__data__, i); + } finally { + d3.event = o; + } + } + + // stash the unwrapped listener for retrieval + l._ = listener; + }); +}; +d3_selectionPrototype.each = function(callback) { + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + var node = group[i]; + if (node) callback.call(node, node.__data__, i, j); + } + } + return this; +}; +// +// Note: assigning to the arguments array simultaneously changes the value of +// the corresponding argument! +// +// TODO The `this` argument probably shouldn't be the first argument to the +// callback, anyway, since it's redundant. However, that will require a major +// version bump due to backwards compatibility, so I'm not changing it right +// away. +// +d3_selectionPrototype.call = function(callback) { + callback.apply(this, (arguments[0] = this, arguments)); + return this; +}; +d3_selectionPrototype.empty = function() { + return !this.node(); +}; +d3_selectionPrototype.node = function(callback) { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; +}; +d3_selectionPrototype.transition = function() { + var subgroups = [], + subgroup, + node; + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + subgroup.push((node = group[i]) ? {node: node, delay: 0, duration: 250} : null); + } + } + + return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId, Date.now()); +}; +var d3_selectionRoot = d3_selection([[document]]); + +d3_selectionRoot[0].parentNode = document.documentElement; + +// TODO fast singleton implementation! +// TODO select(function) +d3.select = function(selector) { + return typeof selector === "string" + ? d3_selectionRoot.select(selector) + : d3_selection([[selector]]); // assume node +}; + +// TODO selectAll(function) +d3.selectAll = function(selector) { + return typeof selector === "string" + ? d3_selectionRoot.selectAll(selector) + : d3_selection([d3_array(selector)]); // assume node[] +}; +function d3_selection_enter(selection) { + d3_arraySubclass(selection, d3_selection_enterPrototype); + return selection; +} + +var d3_selection_enterPrototype = []; + +d3_selection_enterPrototype.append = d3_selectionPrototype.append; +d3_selection_enterPrototype.insert = d3_selectionPrototype.insert; +d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; +d3_selection_enterPrototype.node = d3_selectionPrototype.node; +d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + upgroup, + group, + node; + + for (var j = -1, m = this.length; ++j < m;) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + + return d3_selection(subgroups); +}; +function d3_transition(groups, id, time) { + d3_arraySubclass(groups, d3_transitionPrototype); + + var tweens = {}, + event = d3.dispatch("start", "end"), + ease = d3_transitionEase; + + groups.id = id; + + groups.time = time; + + groups.tween = function(name, tween) { + if (arguments.length < 2) return tweens[name]; + if (tween == null) delete tweens[name]; + else tweens[name] = tween; + return groups; + }; + + groups.ease = function(value) { + if (!arguments.length) return ease; + ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments); + return groups; + }; + + groups.each = function(type, listener) { + if (arguments.length < 2) return d3_transition_each.call(groups, type); + event[type].add(listener); + return groups; + }; + + d3.timer(function(elapsed) { + groups.each(function(d, i, j) { + var tweened = [], + node = this, + delay = groups[j][i].delay, + duration = groups[j][i].duration, + lock = node.__transition__ || (node.__transition__ = {active: 0, count: 0}); + + ++lock.count; + + delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time); + + function start(elapsed) { + if (lock.active > id) return stop(); + lock.active = id; + + for (var tween in tweens) { + if (tween = tweens[tween].call(node, d, i)) { + tweened.push(tween); + } + } + + event.start.dispatch.call(node, d, i); + if (!tick(elapsed)) d3.timer(tick, 0, time); + return 1; + } + + function tick(elapsed) { + if (lock.active !== id) return stop(); + + var t = (elapsed - delay) / duration, + e = ease(t), + n = tweened.length; + + while (n > 0) { + tweened[--n].call(node, e); + } + + if (t >= 1) { + stop(); + d3_transitionInheritId = id; + event.end.dispatch.call(node, d, i); + d3_transitionInheritId = 0; + return 1; + } + } + + function stop() { + if (!--lock.count) delete node.__transition__; + return 1; + } + }); + return 1; + }, 0, time); + + return groups; +} + +var d3_transitionRemove = {}; + +function d3_transitionNull(d, i, a) { + return a != "" && d3_transitionRemove; +} + +function d3_transitionTween(b) { + + function transitionFunction(d, i, a) { + var v = b.call(this, d, i); + return v == null + ? a != "" && d3_transitionRemove + : a != v && d3.interpolate(a, v); + } + + function transitionString(d, i, a) { + return a != b && d3.interpolate(a, b); + } + + return typeof b === "function" ? transitionFunction + : b == null ? d3_transitionNull + : (b += "", transitionString); +} + +var d3_transitionPrototype = [], + d3_transitionId = 0, + d3_transitionInheritId = 0, + d3_transitionEase = d3.ease("cubic-in-out"); + +d3_transitionPrototype.call = d3_selectionPrototype.call; + +d3.transition = function() { + return d3_selectionRoot.transition(); +}; + +d3.transition.prototype = d3_transitionPrototype; +d3_transitionPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + node; + + if (typeof selector !== "function") selector = d3_selection_selector(selector); + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) { + if ("__data__" in node.node) subnode.__data__ = node.node.__data__; + subgroup.push({node: subnode, delay: node.delay, duration: node.duration}); + } else { + subgroup.push(null); + } + } + } + + return d3_transition(subgroups, this.id, this.time).ease(this.ease()); +}; +d3_transitionPrototype.selectAll = function(selector) { + var subgroups = [], + subgroup, + subnodes, + node; + + if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); + + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subnodes = selector.call(node.node, node.node.__data__, i); + subgroups.push(subgroup = []); + for (var k = -1, o = subnodes.length; ++k < o;) { + subgroup.push({node: subnodes[k], delay: node.delay, duration: node.duration}); + } + } + } + } + + return d3_transition(subgroups, this.id, this.time).ease(this.ease()); +}; +d3_transitionPrototype.attr = function(name, value) { + return this.attrTween(name, d3_transitionTween(value)); +}; + +d3_transitionPrototype.attrTween = function(nameNS, tween) { + var name = d3.ns.qualify(nameNS); + + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f === d3_transitionRemove + ? (this.removeAttribute(name), null) + : f && function(t) { this.setAttribute(name, f(t)); }; + } + + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f === d3_transitionRemove + ? (this.removeAttributeNS(name.space, name.local), null) + : f && function(t) { this.setAttributeNS(name.space, name.local, f(t)); }; + } + + return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween); +}; +d3_transitionPrototype.style = function(name, value, priority) { + if (arguments.length < 3) priority = ""; + return this.styleTween(name, d3_transitionTween(value), priority); +}; + +d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + return this.tween("style." + name, function(d, i) { + var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name)); + return f === d3_transitionRemove + ? (this.style.removeProperty(name), null) + : f && function(t) { this.style.setProperty(name, f(t), priority); }; + }); +}; +d3_transitionPrototype.text = function(value) { + return this.tween("text", function(d, i) { + this.textContent = typeof value === "function" + ? value.call(this, d, i) + : value; + }); +}; +d3_transitionPrototype.remove = function() { + return this.each("end", function() { + var p; + if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this); + }); +}; +d3_transitionPrototype.delay = function(value) { + var groups = this; + return groups.each(typeof value === "function" + ? function(d, i, j) { groups[j][i].delay = +value.apply(this, arguments); } + : (value = +value, function(d, i, j) { groups[j][i].delay = value; })); +}; +d3_transitionPrototype.duration = function(value) { + var groups = this; + return groups.each(typeof value === "function" + ? function(d, i, j) { groups[j][i].duration = +value.apply(this, arguments); } + : (value = +value, function(d, i, j) { groups[j][i].duration = value; })); +}; +function d3_transition_each(callback) { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) callback.call(node = node.node, node.__data__, i, j); + } + } + return this; +} +d3_transitionPrototype.transition = function() { + return this.select(d3_this); +}; +var d3_timer_queue = null, + d3_timer_interval, // is an interval (or frame) active? + d3_timer_timeout; // is a timeout active? + +// The timer will continue to fire until callback returns true. +d3.timer = function(callback, delay, then) { + var found = false, + t0, + t1 = d3_timer_queue; + + if (arguments.length < 3) { + if (arguments.length < 2) delay = 0; + else if (!isFinite(delay)) return; + then = Date.now(); + } + + // See if the callback's already in the queue. + while (t1) { + if (t1.callback === callback) { + t1.then = then; + t1.delay = delay; + found = true; + break; + } + t0 = t1; + t1 = t1.next; + } + + // Otherwise, add the callback to the queue. + if (!found) d3_timer_queue = { + callback: callback, + then: then, + delay: delay, + next: d3_timer_queue + }; + + // Start animatin'! + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } +} + +function d3_timer_step() { + var elapsed, + now = Date.now(), + t1 = d3_timer_queue; + + while (t1) { + elapsed = now - t1.then; + if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed); + t1 = t1.next; + } + + var delay = d3_timer_flush() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } +} + +d3.timer.flush = function() { + var elapsed, + now = Date.now(), + t1 = d3_timer_queue; + + while (t1) { + elapsed = now - t1.then; + if (!t1.delay) t1.flush = t1.callback(elapsed); + t1 = t1.next; + } + + d3_timer_flush(); +}; + +// Flush after callbacks, to avoid concurrent queue modification. +function d3_timer_flush() { + var t0 = null, + t1 = d3_timer_queue, + then = Infinity; + while (t1) { + if (t1.flush) { + t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next; + } else { + then = Math.min(then, t1.then + t1.delay); + t1 = (t0 = t1).next; + } + } + return then; +} + +var d3_timer_frame = window.requestAnimationFrame + || window.webkitRequestAnimationFrame + || window.mozRequestAnimationFrame + || window.oRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 17); }; +function d3_noop() {} +d3.scale = {}; + +function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; +} +function d3_scale_nice(domain, nice) { + var i0 = 0, + i1 = domain.length - 1, + x0 = domain[i0], + x1 = domain[i1], + dx; + + if (x1 < x0) { + dx = i0; i0 = i1; i1 = dx; + dx = x0; x0 = x1; x1 = dx; + } + + if (dx = x1 - x0) { + nice = nice(dx); + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + } + + return domain; +} + +function d3_scale_niceDefault() { + return Math; +} +d3.scale.linear = function() { + return d3_scale_linear([0, 1], [0, 1], d3.interpolate, false); +}; + +function d3_scale_linear(domain, range, interpolate, clamp) { + var output, + input; + + function rescale() { + var linear = domain.length == 2 ? d3_scale_bilinear : d3_scale_polylinear, + uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3.interpolate); + return scale; + } + + function scale(x) { + return output(x); + } + + // Note: requires range is coercible to number! + scale.invert = function(y) { + return input(y); + }; + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3.interpolateRound); + }; + + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + + scale.tickFormat = function(m) { + return d3_scale_linearTickFormat(domain, m); + }; + + scale.nice = function() { + d3_scale_nice(domain, d3_scale_linearNice); + return rescale(); + }; + + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + + return rescale(); +}; + +function d3_scale_linearRebind(scale, linear) { + scale.range = d3.rebind(scale, linear.range); + scale.rangeRound = d3.rebind(scale, linear.rangeRound); + scale.interpolate = d3.rebind(scale, linear.interpolate); + scale.clamp = d3.rebind(scale, linear.clamp); + return scale; +} + +function d3_scale_linearNice(dx) { + dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1); + return { + floor: function(x) { return Math.floor(x / dx) * dx; }, + ceil: function(x) { return Math.ceil(x / dx) * dx; } + }; +} + +// TODO Dates? Ugh. +function d3_scale_linearTickRange(domain, m) { + var extent = d3_scaleExtent(domain), + span = extent[1] - extent[0], + step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), + err = m / span * step; + + // Filter ticks to get closer to the desired count. + if (err <= .15) step *= 10; + else if (err <= .35) step *= 5; + else if (err <= .75) step *= 2; + + // Round start and stop values to step interval. + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * .5; // inclusive + extent[2] = step; + return extent; +} + +function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); +} + +function d3_scale_linearTickFormat(domain, m) { + return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f"); +} +function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), + i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; +} +function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], + i = [], + j = 0, + n = domain.length; + + while (++j < n) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + + return function(x) { + var j = d3.bisect(domain, x, 1, domain.length - 1) - 1; + return i[j](u[j](x)); + }; +} +d3.scale.log = function() { + return d3_scale_log(d3.scale.linear(), d3_scale_logp); +}; + +function d3_scale_log(linear, log) { + var pow = log.pow; + + function scale(x) { + return linear(log(x)); + } + + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(pow); + log = x[0] < 0 ? d3_scale_logn : d3_scale_logp; + pow = log.pow; + linear.domain(x.map(log)); + return scale; + }; + + scale.nice = function() { + linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault)); + return scale; + }; + + scale.ticks = function() { + var extent = d3_scaleExtent(linear.domain()), + ticks = []; + if (extent.every(isFinite)) { + var i = Math.floor(extent[0]), + j = Math.ceil(extent[1]), + u = Math.round(pow(extent[0])), + v = Math.round(pow(extent[1])); + if (log === d3_scale_logn) { + ticks.push(pow(i)); + for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k); + } else { + for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } + for (i = 0; ticks[i] < u; i++) {} // strip small values + for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values + ticks = ticks.slice(i, j); + } + return ticks; + }; + + scale.tickFormat = function(n, format) { + if (arguments.length < 2) format = d3_scale_logFormat; + if (arguments.length < 1) return format; + var k = n / scale.ticks().length, + f = log === d3_scale_logn ? (e = -1e-15, Math.floor) : (e = 1e-15, Math.ceil), + e; + return function(d) { + return d / pow(f(log(d) + e)) < k ? format(d) : ""; + }; + }; + + scale.copy = function() { + return d3_scale_log(linear.copy(), log); + }; + + return d3_scale_linearRebind(scale, linear); +}; + +var d3_scale_logFormat = d3.format("e"); + +function d3_scale_logp(x) { + return Math.log(x) / Math.LN10; +} + +function d3_scale_logn(x) { + return -Math.log(-x) / Math.LN10; +} + +d3_scale_logp.pow = function(x) { + return Math.pow(10, x); +}; + +d3_scale_logn.pow = function(x) { + return -Math.pow(10, -x); +}; +d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1); +}; + +function d3_scale_pow(linear, exponent) { + var powp = d3_scale_powPow(exponent), + powb = d3_scale_powPow(1 / exponent); + + function scale(x) { + return linear(powp(x)); + } + + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(powb); + linear.domain(x.map(powp)); + return scale; + }; + + scale.ticks = function(m) { + return d3_scale_linearTicks(scale.domain(), m); + }; + + scale.tickFormat = function(m) { + return d3_scale_linearTickFormat(scale.domain(), m); + }; + + scale.nice = function() { + return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice)); + }; + + scale.exponent = function(x) { + if (!arguments.length) return exponent; + var domain = scale.domain(); + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + return scale.domain(domain); + }; + + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent); + }; + + return d3_scale_linearRebind(scale, linear); +}; + +function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; +} +d3.scale.sqrt = function() { + return d3.scale.pow().exponent(.5); +}; +d3.scale.ordinal = function() { + return d3_scale_ordinal([], {t: "range", x: []}); +}; + +function d3_scale_ordinal(domain, ranger) { + var index, + range, + rangeBand; + + function scale(x) { + return range[((index[x] || (index[x] = domain.push(x))) - 1) % range.length]; + } + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = {}; + var i = -1, n = x.length, xi; + while (++i < n) if (!index[xi = x[i]]) index[xi] = domain.push(xi); + return scale[ranger.t](ranger.x, ranger.p); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = {t: "range", x: x}; + return scale; + }; + + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = (stop - start) / (domain.length - 1 + padding); + range = domain.length < 2 ? [(start + stop) / 2] : d3.range(start + step * padding / 2, stop + step / 2, step); + rangeBand = 0; + ranger = {t: "rangePoints", x: x, p: padding}; + return scale; + }; + + scale.rangeBands = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = (stop - start) / (domain.length + padding); + range = d3.range(start + step * padding, stop, step); + rangeBand = step * (1 - padding); + ranger = {t: "rangeBands", x: x, p: padding}; + return scale; + }; + + scale.rangeRoundBands = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = Math.floor((stop - start) / (domain.length + padding)), + err = stop - start - (domain.length - padding) * step; + range = d3.range(start + Math.round(err / 2), stop, step); + rangeBand = Math.round(step * (1 - padding)); + ranger = {t: "rangeRoundBands", x: x, p: padding}; + return scale; + }; + + scale.rangeBand = function() { + return rangeBand; + }; + + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + + return scale.domain(domain); +}; +/* + * This product includes color specifications and designs developed by Cynthia + * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information. + */ + +d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); +}; + +d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); +}; + +d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); +}; + +d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); +}; + +var d3_category10 = [ + "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", + "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" +]; + +var d3_category20 = [ + "#1f77b4", "#aec7e8", + "#ff7f0e", "#ffbb78", + "#2ca02c", "#98df8a", + "#d62728", "#ff9896", + "#9467bd", "#c5b0d5", + "#8c564b", "#c49c94", + "#e377c2", "#f7b6d2", + "#7f7f7f", "#c7c7c7", + "#bcbd22", "#dbdb8d", + "#17becf", "#9edae5" +]; + +var d3_category20b = [ + "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", + "#637939", "#8ca252", "#b5cf6b", "#cedb9c", + "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", + "#843c39", "#ad494a", "#d6616b", "#e7969c", + "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" +]; + +var d3_category20c = [ + "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", + "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", + "#31a354", "#74c476", "#a1d99b", "#c7e9c0", + "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", + "#636363", "#969696", "#bdbdbd", "#d9d9d9" +]; +d3.scale.quantile = function() { + return d3_scale_quantile([], []); +}; + +function d3_scale_quantile(domain, range) { + var thresholds; + + function rescale() { + var k = 0, + n = domain.length, + q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + + function scale(x) { + if (isNaN(x = +x)) return NaN; + return range[d3.bisect(thresholds, x)]; + } + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.filter(function(d) { return !isNaN(d); }).sort(d3.ascending); + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.quantiles = function() { + return thresholds; + }; + + scale.copy = function() { + return d3_scale_quantile(domain, range); // copy on write! + }; + + return rescale(); +}; +d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [0, 1]); +}; + +function d3_scale_quantize(x0, x1, range) { + var kx, i; + + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + + scale.domain = function(x) { + if (!arguments.length) return [x0, x1]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); // copy on write + }; + + return rescale(); +}; +d3.svg = {}; +d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, + outerRadius = d3_svg_arcOuterRadius, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle; + + function arc() { + var r0 = innerRadius.apply(this, arguments), + r1 = outerRadius.apply(this, arguments), + a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, + a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, + da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0), + df = da < Math.PI ? "0" : "1", + c0 = Math.cos(a0), + s0 = Math.sin(a0), + c1 = Math.cos(a1), + s1 = Math.sin(a1); + return da >= d3_svg_arcMax + ? (r0 + ? "M0," + r1 + + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1) + + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + + "M0," + r0 + + "A" + r0 + "," + r0 + " 0 1,0 0," + (-r0) + + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + + "Z" + : "M0," + r1 + + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1) + + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + + "Z") + : (r0 + ? "M" + r1 * c0 + "," + r1 * s0 + + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + + "L" + r0 * c1 + "," + r0 * s1 + + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + + "Z" + : "M" + r1 * c0 + "," + r1 * s0 + + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + + "L0,0" + + "Z"); + } + + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3.functor(v); + return arc; + }; + + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3.functor(v); + return arc; + }; + + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3.functor(v); + return arc; + }; + + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3.functor(v); + return arc; + }; + + arc.centroid = function() { + var r = (innerRadius.apply(this, arguments) + + outerRadius.apply(this, arguments)) / 2, + a = (startAngle.apply(this, arguments) + + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + return [Math.cos(a) * r, Math.sin(a) * r]; + }; + + return arc; +}; + +var d3_svg_arcOffset = -Math.PI / 2, + d3_svg_arcMax = 2 * Math.PI - 1e-6; + +function d3_svg_arcInnerRadius(d) { + return d.innerRadius; +} + +function d3_svg_arcOuterRadius(d) { + return d.outerRadius; +} + +function d3_svg_arcStartAngle(d) { + return d.startAngle; +} + +function d3_svg_arcEndAngle(d) { + return d.endAngle; +} +function d3_svg_line(projection) { + var x = d3_svg_lineX, + y = d3_svg_lineY, + interpolate = "linear", + interpolator = d3_svg_lineInterpolators[interpolate], + tension = .7; + + function line(d) { + return d.length < 1 ? null : "M" + interpolator(projection(d3_svg_linePoints(this, d, x, y)), tension); + } + + line.x = function(v) { + if (!arguments.length) return x; + x = v; + return line; + }; + + line.y = function(v) { + if (!arguments.length) return y; + y = v; + return line; + }; + + line.interpolate = function(v) { + if (!arguments.length) return interpolate; + interpolator = d3_svg_lineInterpolators[interpolate = v]; + return line; + }; + + line.tension = function(v) { + if (!arguments.length) return tension; + tension = v; + return line; + }; + + return line; +} + +d3.svg.line = function() { + return d3_svg_line(Object); +}; + +// Converts the specified array of data into an array of points +// (x-y tuples), by evaluating the specified `x` and `y` functions on each +// data point. The `this` context of the evaluated functions is the specified +// "self" object; each function is passed the current datum and index. +function d3_svg_linePoints(self, d, x, y) { + var points = [], + i = -1, + n = d.length, + fx = typeof x === "function", + fy = typeof y === "function", + value; + if (fx && fy) { + while (++i < n) points.push([ + x.call(self, value = d[i], i), + y.call(self, value, i) + ]); + } else if (fx) { + while (++i < n) points.push([x.call(self, d[i], i), y]); + } else if (fy) { + while (++i < n) points.push([x, y.call(self, d[i], i)]); + } else { + while (++i < n) points.push([x, y]); + } + return points; +} + +// The default `x` property, which references d[0]. +function d3_svg_lineX(d) { + return d[0]; +} + +// The default `y` property, which references d[1]. +function d3_svg_lineY(d) { + return d[1]; +} + +// The various interpolators supported by the `line` class. +var d3_svg_lineInterpolators = { + "linear": d3_svg_lineLinear, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + "basis": d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + "bundle": d3_svg_lineBundle, + "cardinal": d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + "monotone": d3_svg_lineMonotone +}; + +// Linear interpolation; generates "L" commands. +function d3_svg_lineLinear(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("L", (p = points[i])[0], ",", p[1]); + return path.join(""); +} + +// Step interpolation; generates "H" and "V" commands. +function d3_svg_lineStepBefore(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); +} + +// Step interpolation; generates "H" and "V" commands. +function d3_svg_lineStepAfter(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); +} + +// Open cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 + ? d3_svg_lineLinear(points) + : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), + d3_svg_lineCardinalTangents(points, tension)); +} + +// Closed cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + d3_svg_lineHermite((points.push(points[0]), points), + d3_svg_lineCardinalTangents([points[points.length - 2]] + .concat(points, [points[1]]), tension)); +} + +// Cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinal(points, tension, closed) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + d3_svg_lineHermite(points, + d3_svg_lineCardinalTangents(points, tension)); +} + +// Hermite spline construction; generates "C" commands. +function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 + || (points.length != tangents.length + && points.length != tangents.length + 2)) { + return d3_svg_lineLinear(points); + } + + var quad = points.length != tangents.length, + path = "", + p0 = points[0], + p = points[1], + t0 = tangents[0], + t = t0, + pi = 1; + + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + + "," + p[0] + "," + p[1]; + } + } + + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + + "," + lp[0] + "," + lp[1]; + } + + return path; +} + +// Generates tangents for a cardinal spline. +function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], + a = (1 - tension) / 2, + p0, + p1 = points[0], + p2 = points[1], + i = 1, + n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]); + } + return tangents; +} + +// B-spline interpolation; generates "C" commands. +function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, + n = points.length, + pi = points[0], + x0 = pi[0], + y0 = pi[1], + px = [x0, x0, x0, (pi = points[1])[0]], + py = [y0, y0, y0, pi[1]], + path = [x0, ",", y0]; + d3_svg_lineBasisBezier(path, px, py); + while (++i < n) { + pi = points[i]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + i = -1; + while (++i < 2) { + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +// Open B-spline interpolation; generates "C" commands. +function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], + i = -1, + n = points.length, + pi, + px = [0], + py = [0]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; while (++i < n) { + pi = points[i]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +// Closed B-spline interpolation; generates "C" commands. +function d3_svg_lineBasisClosed(points) { + var path, + i = -1, + n = points.length, + m = n + 4, + pi, + px = [], + py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ + d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) + ]; + --i; while (++i < m) { + pi = points[i % n]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +function d3_svg_lineBundle(points, tension) { + var n = points.length - 1, + x0 = points[0][0], + y0 = points[0][1], + dx = points[n][0] - x0, + dy = points[n][1] - y0, + i = -1, + p, + t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + return d3_svg_lineBasis(points); +} + +// Returns the dot product of the given four-element vectors. +function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; +} + +// Matrix to transform basis (b-spline) control points to bezier +// control points. Derived from FvD 11.2.8. +var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0], + d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0], + d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6]; + +// Pushes a "C" Bézier curve onto the specified path array, given the +// two specified four-element arrays which define the control points. +function d3_svg_lineBasisBezier(path, x, y) { + path.push( + "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); +} + +// Computes the slope from points p0 to p1. +function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); +} + +// Compute three-point differences for the given points. +// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference +function d3_svg_lineFiniteDifferences(points) { + var i = 0, + j = points.length - 1, + m = [], + p0 = points[0], + p1 = points[1], + d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1])); + } + m[i] = d; + return m; +} + +// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite +// interpolation. Returns an array of tangent vectors. For details, see +// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation +function d3_svg_lineMonotoneTangents(points) { + var tangents = [], + d, + a, + b, + s, + m = d3_svg_lineFiniteDifferences(points), + i = -1, + j = points.length - 1; + + // The first two steps are done by computing finite-differences: + // 1. Compute the slopes of the secant lines between successive points. + // 2. Initialize the tangents at every point as the average of the secants. + + // Then, for each segment… + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + + // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set + // mk = m{k + 1} = 0 as the spline connecting these points must be flat to + // preserve monotonicity. Ignore step 4 and 5 for those k. + + if (Math.abs(d) < 1e-6) { + m[i] = m[i + 1] = 0; + } else { + // 4. Let ak = mk / dk and bk = m{k + 1} / dk. + a = m[i] / d; + b = m[i + 1] / d; + + // 5. Prevent overshoot and ensure monotonicity by restricting the + // magnitude of vector <ak, bk> to a circle of radius 3. + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + + // Compute the normalized tangent vector from the slopes. Note that if x is + // not monotonic, it's possible that the slope will be infinite, so we protect + // against NaN by setting the coordinate to zero. + i = -1; while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) + / (6 * (1 + m[i] * m[i])); + tangents.push([s || 0, m[i] * s || 0]); + } + + return tangents; +} + +function d3_svg_lineMonotone(points) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); +} +d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; +}; + +function d3_svg_lineRadial(points) { + var point, + i = -1, + n = points.length, + r, + a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] + d3_svg_arcOffset; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; +} +function d3_svg_area(projection) { + var x0 = d3_svg_lineX, + x1 = d3_svg_lineX, + y0 = 0, + y1 = d3_svg_lineY, + interpolate, + i0, + i1, + tension = .7; + + function area(d) { + if (d.length < 1) return null; + var points0 = d3_svg_linePoints(this, d, x0, y0), + points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1); + return "M" + i0(projection(points1), tension) + + "L" + i1(projection(points0.reverse()), tension) + + "Z"; + } + + area.x = function(x) { + if (!arguments.length) return x1; + x0 = x1 = x; + return area; + }; + + area.x0 = function(x) { + if (!arguments.length) return x0; + x0 = x; + return area; + }; + + area.x1 = function(x) { + if (!arguments.length) return x1; + x1 = x; + return area; + }; + + area.y = function(y) { + if (!arguments.length) return y1; + y0 = y1 = y; + return area; + }; + + area.y0 = function(y) { + if (!arguments.length) return y0; + y0 = y; + return area; + }; + + area.y1 = function(y) { + if (!arguments.length) return y1; + y1 = y; + return area; + }; + + area.interpolate = function(x) { + if (!arguments.length) return interpolate; + i0 = d3_svg_lineInterpolators[interpolate = x]; + i1 = i0.reverse || i0; + return area; + }; + + area.tension = function(x) { + if (!arguments.length) return tension; + tension = x; + return area; + }; + + return area.interpolate("linear"); +} + +d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter; +d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore; + +d3.svg.area = function() { + return d3_svg_area(Object); +}; + +function d3_svg_areaX(points) { + return function(d, i) { + return points[i][0]; + }; +} + +function d3_svg_areaY(points) { + return function(d, i) { + return points[i][1]; + }; +} +d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; +}; +d3.svg.chord = function() { + var source = d3_svg_chordSource, + target = d3_svg_chordTarget, + radius = d3_svg_chordRadius, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle; + + // TODO Allow control point to be customized. + + function chord(d, i) { + var s = subgroup(this, source, d, i), + t = subgroup(this, target, d, i); + return "M" + s.p0 + + arc(s.r, s.p1) + (equals(s, t) + ? curve(s.r, s.p1, s.r, s.p0) + : curve(s.r, s.p1, t.r, t.p0) + + arc(t.r, t.p1) + + curve(t.r, t.p1, s.r, s.p0)) + + "Z"; + } + + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), + r = radius.call(self, subgroup, i), + a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, + a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + return { + r: r, + a0: a0, + a1: a1, + p0: [r * Math.cos(a0), r * Math.sin(a0)], + p1: [r * Math.cos(a1), r * Math.sin(a1)] + }; + } + + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + + function arc(r, p) { + return "A" + r + "," + r + " 0 0,1 " + p; + } + + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3.functor(v); + return chord; + }; + + chord.source = function(v) { + if (!arguments.length) return source; + source = d3.functor(v); + return chord; + }; + + chord.target = function(v) { + if (!arguments.length) return target; + target = d3.functor(v); + return chord; + }; + + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3.functor(v); + return chord; + }; + + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3.functor(v); + return chord; + }; + + return chord; +}; + +function d3_svg_chordSource(d) { + return d.source; +} + +function d3_svg_chordTarget(d) { + return d.target; +} + +function d3_svg_chordRadius(d) { + return d.radius; +} + +function d3_svg_chordStartAngle(d) { + return d.startAngle; +} + +function d3_svg_chordEndAngle(d) { + return d.endAngle; +} +d3.svg.diagonal = function() { + var source = d3_svg_chordSource, + target = d3_svg_chordTarget, + projection = d3_svg_diagonalProjection; + + function diagonal(d, i) { + var p0 = source.call(this, d, i), + p3 = target.call(this, d, i), + m = (p0.y + p3.y) / 2, + p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3.functor(x); + return diagonal; + }; + + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3.functor(x); + return diagonal; + }; + + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + + return diagonal; +}; + +function d3_svg_diagonalProjection(d) { + return [d.x, d.y]; +} +d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), + projection = d3_svg_diagonalProjection, + projection_ = diagonal.projection; + + diagonal.projection = function(x) { + return arguments.length + ? projection_(d3_svg_diagonalRadialProjection(projection = x)) + : projection; + }; + + return diagonal; +}; + +function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), + r = d[0], + a = d[1] + d3_svg_arcOffset; + return [r * Math.cos(a), r * Math.sin(a)]; + }; +} +d3.svg.mouse = function(container) { + return d3_svg_mousePoint(container, d3.event); +}; + +// https://bugs.webkit.org/show_bug.cgi?id=44083 +var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0; + +function d3_svg_mousePoint(container, e) { + var point = (container.ownerSVGElement || container).createSVGPoint(); + if ((d3_mouse_bug44083 < 0) && (window.scrollX || window.scrollY)) { + var svg = d3.select(document.body) + .append("svg:svg") + .style("position", "absolute") + .style("top", 0) + .style("left", 0); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + if (d3_mouse_bug44083) { + point.x = e.pageX; + point.y = e.pageY; + } else { + point.x = e.clientX; + point.y = e.clientY; + } + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [point.x, point.y]; +}; +d3.svg.touches = function(container) { + var touches = d3.event.touches; + return touches ? d3_array(touches).map(function(touch) { + var point = d3_svg_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; +}; +d3.svg.symbol = function() { + var type = d3_svg_symbolType, + size = d3_svg_symbolSize; + + function symbol(d, i) { + return (d3_svg_symbols[type.call(this, d, i)] + || d3_svg_symbols.circle) + (size.call(this, d, i)); + } + + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3.functor(x); + return symbol; + }; + + // size of symbol in square pixels + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3.functor(x); + return symbol; + }; + + return symbol; +}; + +function d3_svg_symbolSize() { + return 64; +} + +function d3_svg_symbolType() { + return "circle"; +} + +// TODO cross-diagonal? +var d3_svg_symbols = { + "circle": function(size) { + var r = Math.sqrt(size / Math.PI); + return "M0," + r + + "A" + r + "," + r + " 0 1,1 0," + (-r) + + "A" + r + "," + r + " 0 1,1 0," + r + + "Z"; + }, + "cross": function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + + "H" + -r + + "V" + -3 * r + + "H" + r + + "V" + -r + + "H" + 3 * r + + "V" + r + + "H" + r + + "V" + 3 * r + + "H" + -r + + "V" + r + + "H" + -3 * r + + "Z"; + }, + "diamond": function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), + rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + + "L" + rx + ",0" + + " 0," + ry + + " " + -rx + ",0" + + "Z"; + }, + "square": function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + + "L" + r + "," + -r + + " " + r + "," + r + + " " + -r + "," + r + + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + + "L" + rx +"," + -ry + + " " + -rx + "," + -ry + + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + + "L" + rx +"," + ry + + " " + -rx + "," + ry + + "Z"; + } +}; + +d3.svg.symbolTypes = d3.keys(d3_svg_symbols); + +var d3_svg_symbolSqrt3 = Math.sqrt(3), + d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180); +d3.svg.axis = function() { + var scale = d3.scale.linear(), + orient = "bottom", + tickMajorSize = 6, + tickMinorSize = 6, + tickEndSize = 6, + tickPadding = 3, + tickArguments_ = [10], + tickFormat_, + tickSubdivide = 0; + + function axis(selection) { + selection.each(function(d, i, j) { + var g = d3.select(this); + + // If selection is a transition, create subtransitions. + var transition = selection.delay ? function(o) { + var id = d3_transitionInheritId; + try { + d3_transitionInheritId = selection.id; + return o.transition() + .delay(selection[j][i].delay) + .duration(selection[j][i].duration) + .ease(selection.ease()); + } finally { + d3_transitionInheritId = id; + } + } : Object; + + // Ticks. + var ticks = scale.ticks.apply(scale, tickArguments_), + tickFormat = tickFormat_ == null ? scale.tickFormat.apply(scale, tickArguments_) : tickFormat_; + + // Minor ticks. + var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), + subtick = g.selectAll(".minor").data(subticks, String), + subtickEnter = subtick.enter().insert("svg:line", "g").attr("class", "tick minor").style("opacity", 1e-6), + subtickExit = transition(subtick.exit()).style("opacity", 1e-6).remove(), + subtickUpdate = transition(subtick).style("opacity", 1); + + // Major ticks. + var tick = g.selectAll("g").data(ticks, String), + tickEnter = tick.enter().insert("svg:g", "path").style("opacity", 1e-6), + tickExit = transition(tick.exit()).style("opacity", 1e-6).remove(), + tickUpdate = transition(tick).style("opacity", 1), + tickTransform; + + // Domain. + var range = d3_scaleExtent(scale.range()), + path = g.selectAll(".domain").data([0]), + pathEnter = path.enter().append("svg:path").attr("class", "domain"), + pathUpdate = transition(path); + + // Stash the new scale and grab the old scale. + var scale0 = this.__chart__ || scale; + this.__chart__ = scale.copy(); + + tickEnter.append("svg:line").attr("class", "tick"); + tickEnter.append("svg:text"); + tickUpdate.select("text").text(tickFormat); + + switch (orient) { + case "bottom": { + tickTransform = d3_svg_axisX; + subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize); + tickUpdate.select("line").attr("x2", 0).attr("y2", tickMajorSize); + tickUpdate.select("text").attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding).attr("dy", ".71em").attr("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize); + break; + } + case "top": { + tickTransform = d3_svg_axisX; + subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize); + tickUpdate.select("line").attr("x2", 0).attr("y2", -tickMajorSize); + tickUpdate.select("text").attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("dy", "0em").attr("text-anchor", "middle"); + pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize); + break; + } + case "left": { + tickTransform = d3_svg_axisY; + subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0); + tickUpdate.select("line").attr("x2", -tickMajorSize).attr("y2", 0); + tickUpdate.select("text").attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "end"); + pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize); + break; + } + case "right": { + tickTransform = d3_svg_axisY; + subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0); + tickUpdate.select("line").attr("x2", tickMajorSize).attr("y2", 0); + tickUpdate.select("text").attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0).attr("dy", ".32em").attr("text-anchor", "start"); + pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize); + break; + } + } + + tickEnter.call(tickTransform, scale0); + tickUpdate.call(tickTransform, scale); + tickExit.call(tickTransform, scale); + + subtickEnter.call(tickTransform, scale0); + subtickUpdate.call(tickTransform, scale); + subtickExit.call(tickTransform, scale); + }); + } + + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x; + return axis; + }; + + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = arguments; + return axis; + }; + + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + + axis.tickSize = function(x, y, z) { + if (!arguments.length) return tickMajorSize; + var n = arguments.length - 1; + tickMajorSize = +x; + tickMinorSize = n > 1 ? +y : tickMajorSize; + tickEndSize = n > 0 ? +arguments[n] : tickMajorSize; + return axis; + }; + + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + + axis.tickSubdivide = function(x) { + if (!arguments.length) return tickSubdivide; + tickSubdivide = +x; + return axis; + }; + + return axis; +}; + +function d3_svg_axisX(selection, x) { + selection.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; }); +} + +function d3_svg_axisY(selection, y) { + selection.attr("transform", function(d) { return "translate(0," + y(d) + ")"; }); +} + +function d3_svg_axisSubdivide(scale, ticks, m) { + subticks = []; + if (m && ticks.length > 1) { + var extent = d3_scaleExtent(scale.domain()), + subticks, + i = -1, + n = ticks.length, + d = (ticks[1] - ticks[0]) / ++m, + j, + v; + while (++i < n) { + for (j = m; --j > 0;) { + if ((v = +ticks[i] - j * d) >= extent[0]) { + subticks.push(v); + } + } + } + for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1];) { + subticks.push(v); + } + } + return subticks; +} +d3.behavior = {}; +d3.behavior.drag = function() { + var event = d3.dispatch("drag", "dragstart", "dragend"); + + function drag() { + this + .on("mousedown.drag", mousedown) + .on("touchstart.drag", mousedown); + + d3.select(window) + .on("mousemove.drag", d3_behavior_dragMove) + .on("touchmove.drag", d3_behavior_dragMove) + .on("mouseup.drag", d3_behavior_dragUp, true) + .on("touchend.drag", d3_behavior_dragUp, true) + .on("click.drag", d3_behavior_dragClick, true); + } + + // snapshot the local context for subsequent dispatch + function start() { + d3_behavior_dragEvent = event; + d3_behavior_dragEventTarget = d3.event.target; + d3_behavior_dragOffset = d3_behavior_dragPoint((d3_behavior_dragTarget = this).parentNode); + d3_behavior_dragMoved = 0; + d3_behavior_dragArguments = arguments; + } + + function mousedown() { + start.apply(this, arguments); + d3_behavior_dragDispatch("dragstart"); + } + + drag.on = function(type, listener) { + event[type].add(listener); + return drag; + }; + + return drag; +}; + +var d3_behavior_dragEvent, + d3_behavior_dragEventTarget, + d3_behavior_dragTarget, + d3_behavior_dragArguments, + d3_behavior_dragOffset, + d3_behavior_dragMoved, + d3_behavior_dragStopClick; + +function d3_behavior_dragDispatch(type) { + var o = d3.event, p = d3_behavior_dragTarget.parentNode, dx = 0, dy = 0; + + if (p) { + p = d3_behavior_dragPoint(p); + dx = p[0] - d3_behavior_dragOffset[0]; + dy = p[1] - d3_behavior_dragOffset[1]; + d3_behavior_dragOffset = p; + d3_behavior_dragMoved |= dx | dy; + } + + try { + d3.event = {dx: dx, dy: dy}; + d3_behavior_dragEvent[type].dispatch.apply(d3_behavior_dragTarget, d3_behavior_dragArguments); + } finally { + d3.event = o; + } + + o.preventDefault(); +} + +function d3_behavior_dragPoint(container) { + return d3.event.touches + ? d3.svg.touches(container)[0] + : d3.svg.mouse(container); +} + +function d3_behavior_dragMove() { + if (!d3_behavior_dragTarget) return; + var parent = d3_behavior_dragTarget.parentNode; + + // O NOES! The drag element was removed from the DOM. + if (!parent) return d3_behavior_dragUp(); + + d3_behavior_dragDispatch("drag"); + d3_behavior_dragCancel(); +} + +function d3_behavior_dragUp() { + if (!d3_behavior_dragTarget) return; + d3_behavior_dragDispatch("dragend"); + d3_behavior_dragTarget = null; + + // If the node was moved, prevent the mouseup from propagating. + // Also prevent the subsequent click from propagating (e.g., for anchors). + if (d3_behavior_dragMoved && d3_behavior_dragEventTarget === d3.event.target) { + d3_behavior_dragStopClick = true; + d3_behavior_dragCancel(); + } +} + +function d3_behavior_dragClick() { + if (d3_behavior_dragStopClick && d3_behavior_dragEventTarget === d3.event.target) { + d3_behavior_dragCancel(); + d3_behavior_dragStopClick = false; + d3_behavior_dragEventTarget = null; + } +} + +function d3_behavior_dragCancel() { + d3.event.stopPropagation(); + d3.event.preventDefault(); +} +// TODO unbind zoom behavior? +// TODO unbind listener? +d3.behavior.zoom = function() { + var xyz = [0, 0, 0], + event = d3.dispatch("zoom"); + + function zoom() { + this + .on("mousedown.zoom", mousedown) + .on("mousewheel.zoom", mousewheel) + .on("DOMMouseScroll.zoom", mousewheel) + .on("dblclick.zoom", dblclick) + .on("touchstart.zoom", touchstart); + + d3.select(window) + .on("mousemove.zoom", d3_behavior_zoomMousemove) + .on("mouseup.zoom", d3_behavior_zoomMouseup) + .on("touchmove.zoom", d3_behavior_zoomTouchmove) + .on("touchend.zoom", d3_behavior_zoomTouchup) + .on("click.zoom", d3_behavior_zoomClick, true); + } + + // snapshot the local context for subsequent dispatch + function start() { + d3_behavior_zoomXyz = xyz; + d3_behavior_zoomDispatch = event.zoom.dispatch; + d3_behavior_zoomEventTarget = d3.event.target; + d3_behavior_zoomTarget = this; + d3_behavior_zoomArguments = arguments; + } + + function mousedown() { + start.apply(this, arguments); + d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget)); + d3_behavior_zoomMoved = false; + d3.event.preventDefault(); + window.focus(); + } + + // store starting mouse location + function mousewheel() { + start.apply(this, arguments); + if (!d3_behavior_zoomZooming) d3_behavior_zoomZooming = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget)); + d3_behavior_zoomTo(d3_behavior_zoomDelta() + xyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomZooming); + } + + function dblclick() { + start.apply(this, arguments); + var mouse = d3.svg.mouse(d3_behavior_zoomTarget); + d3_behavior_zoomTo(d3.event.shiftKey ? Math.ceil(xyz[2] - 1) : Math.floor(xyz[2] + 1), mouse, d3_behavior_zoomLocation(mouse)); + } + + // doubletap detection + function touchstart() { + start.apply(this, arguments); + var touches = d3_behavior_zoomTouchup(), + touch, + now = Date.now(); + if ((touches.length === 1) && (now - d3_behavior_zoomLast < 300)) { + d3_behavior_zoomTo(1 + Math.floor(xyz[2]), touch = touches[0], d3_behavior_zoomLocations[touch.identifier]); + } + d3_behavior_zoomLast = now; + } + + zoom.on = function(type, listener) { + event[type].add(listener); + return zoom; + }; + + return zoom; +}; + +var d3_behavior_zoomDiv, + d3_behavior_zoomPanning, + d3_behavior_zoomZooming, + d3_behavior_zoomLocations = {}, // identifier -> location + d3_behavior_zoomLast = 0, + d3_behavior_zoomXyz, + d3_behavior_zoomDispatch, + d3_behavior_zoomEventTarget, + d3_behavior_zoomTarget, + d3_behavior_zoomArguments, + d3_behavior_zoomMoved, + d3_behavior_zoomStopClick; + +function d3_behavior_zoomLocation(point) { + return [ + point[0] - d3_behavior_zoomXyz[0], + point[1] - d3_behavior_zoomXyz[1], + d3_behavior_zoomXyz[2] + ]; +} + +// detect the pixels that would be scrolled by this wheel event +function d3_behavior_zoomDelta() { + + // mousewheel events are totally broken! + // https://bugs.webkit.org/show_bug.cgi?id=40441 + // not only that, but Chrome and Safari differ in re. to acceleration! + if (!d3_behavior_zoomDiv) { + d3_behavior_zoomDiv = d3.select("body").append("div") + .style("visibility", "hidden") + .style("top", 0) + .style("height", 0) + .style("width", 0) + .style("overflow-y", "scroll") + .append("div") + .style("height", "2000px") + .node().parentNode; + } + + var e = d3.event, delta; + try { + d3_behavior_zoomDiv.scrollTop = 1000; + d3_behavior_zoomDiv.dispatchEvent(e); + delta = 1000 - d3_behavior_zoomDiv.scrollTop; + } catch (error) { + delta = e.wheelDelta || (-e.detail * 5); + } + + return delta * .005; +} + +// Note: Since we don't rotate, it's possible for the touches to become +// slightly detached from their original positions. Thus, we recompute the +// touch points on touchend as well as touchstart! +function d3_behavior_zoomTouchup() { + var touches = d3.svg.touches(d3_behavior_zoomTarget), + i = -1, + n = touches.length, + touch; + while (++i < n) d3_behavior_zoomLocations[(touch = touches[i]).identifier] = d3_behavior_zoomLocation(touch); + return touches; +} + +function d3_behavior_zoomTouchmove() { + var touches = d3.svg.touches(d3_behavior_zoomTarget); + switch (touches.length) { + + // single-touch pan + case 1: { + var touch = touches[0]; + d3_behavior_zoomTo(d3_behavior_zoomXyz[2], touch, d3_behavior_zoomLocations[touch.identifier]); + break; + } + + // double-touch pan + zoom + case 2: { + var p0 = touches[0], + p1 = touches[1], + p2 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2], + l0 = d3_behavior_zoomLocations[p0.identifier], + l1 = d3_behavior_zoomLocations[p1.identifier], + l2 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2, l0[2]]; + d3_behavior_zoomTo(Math.log(d3.event.scale) / Math.LN2 + l0[2], p2, l2); + break; + } + } +} + +function d3_behavior_zoomMousemove() { + d3_behavior_zoomZooming = null; + if (d3_behavior_zoomPanning) { + d3_behavior_zoomMoved = true; + d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning); + } +} + +function d3_behavior_zoomMouseup() { + if (d3_behavior_zoomPanning) { + if (d3_behavior_zoomMoved && d3_behavior_zoomEventTarget === d3.event.target) { + d3_behavior_zoomStopClick = true; + } + d3_behavior_zoomMousemove(); + d3_behavior_zoomPanning = null; + } +} + +function d3_behavior_zoomClick() { + if (d3_behavior_zoomStopClick && d3_behavior_zoomEventTarget === d3.event.target) { + d3.event.stopPropagation(); + d3.event.preventDefault(); + d3_behavior_zoomStopClick = false; + d3_behavior_zoomEventTarget = null; + } +} + +function d3_behavior_zoomTo(z, x0, x1) { + var K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]), + x = d3_behavior_zoomXyz[0] = x0[0] - K * x1[0], + y = d3_behavior_zoomXyz[1] = x0[1] - K * x1[1], + o = d3.event, // Events can be reentrant (e.g., focus). + k = Math.pow(2, z); + + d3.event = { + scale: k, + translate: [x, y], + transform: function(sx, sy) { + if (sx) transform(sx, x); + if (sy) transform(sy, y); + } + }; + + function transform(scale, o) { + var domain = scale.__domain || (scale.__domain = scale.domain()), + range = scale.range().map(function(v) { return (v - o) / k; }); + scale.domain(domain).domain(range.map(scale.invert)); + } + + try { + d3_behavior_zoomDispatch.apply(d3_behavior_zoomTarget, d3_behavior_zoomArguments); + } finally { + d3.event = o; + } + + o.preventDefault(); +} +})(); +(function(){d3.chart = {}; +// Inspired by http://informationandvisualization.de/blog/box-plot +d3.chart.box = function() { + var width = 1, + height = 1, + duration = 0, + domain = null, + value = Number, + whiskers = d3_chart_boxWhiskers, + quartiles = d3_chart_boxQuartiles, + tickFormat = null; + + // For each small multiple… + function box(g) { + g.each(function(d, i) { + d = d.map(value).sort(d3.ascending); + var g = d3.select(this), + n = d.length, + min = d[0], + max = d[n - 1]; + + // Compute quartiles. Must return exactly 3 elements. + var quartileData = d.quartiles = quartiles(d); + + // Compute whiskers. Must return exactly 2 elements, or null. + var whiskerIndices = whiskers && whiskers.call(this, d, i), + whiskerData = whiskerIndices && whiskerIndices.map(function(i) { return d[i]; }); + + // Compute outliers. If no whiskers are specified, all data are "outliers". + // We compute the outliers as indices, so that we can join across transitions! + var outlierIndices = whiskerIndices + ? d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n)) + : d3.range(n); + + // Compute the new x-scale. + var x1 = d3.scale.linear() + .domain(domain && domain.call(this, d, i) || [min, max]) + .range([height, 0]); + + // Retrieve the old x-scale, if this is an update. + var x0 = this.__chart__ || d3.scale.linear() + .domain([0, Infinity]) + .range(x1.range()); + + // Stash the new scale. + this.__chart__ = x1; + + // Note: the box, median, and box tick elements are fixed in number, + // so we only have to handle enter and update. In contrast, the outliers + // and other elements are variable, so we need to exit them! Variable + // elements also fade in and out. + + // Update center line: the vertical line spanning the whiskers. + var center = g.selectAll("line.center") + .data(whiskerData ? [whiskerData] : []); + + center.enter().insert("svg:line", "rect") + .attr("class", "center") + .attr("x1", width / 2) + .attr("y1", function(d) { return x0(d[0]); }) + .attr("x2", width / 2) + .attr("y2", function(d) { return x0(d[1]); }) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .style("opacity", 1) + .attr("y1", function(d) { return x1(d[0]); }) + .attr("y2", function(d) { return x1(d[1]); }); + + center.transition() + .duration(duration) + .style("opacity", 1) + .attr("y1", function(d) { return x1(d[0]); }) + .attr("y2", function(d) { return x1(d[1]); }); + + center.exit().transition() + .duration(duration) + .style("opacity", 1e-6) + .attr("y1", function(d) { return x1(d[0]); }) + .attr("y2", function(d) { return x1(d[1]); }) + .remove(); + + // Update innerquartile box. + var box = g.selectAll("rect.box") + .data([quartileData]); + + box.enter().append("svg:rect") + .attr("class", "box") + .attr("x", 0) + .attr("y", function(d) { return x0(d[2]); }) + .attr("width", width) + .attr("height", function(d) { return x0(d[0]) - x0(d[2]); }) + .transition() + .duration(duration) + .attr("y", function(d) { return x1(d[2]); }) + .attr("height", function(d) { return x1(d[0]) - x1(d[2]); }); + + box.transition() + .duration(duration) + .attr("y", function(d) { return x1(d[2]); }) + .attr("height", function(d) { return x1(d[0]) - x1(d[2]); }); + + // Update median line. + var medianLine = g.selectAll("line.median") + .data([quartileData[1]]); + + medianLine.enter().append("svg:line") + .attr("class", "median") + .attr("x1", 0) + .attr("y1", x0) + .attr("x2", width) + .attr("y2", x0) + .transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1); + + medianLine.transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1); + + // Update whiskers. + var whisker = g.selectAll("line.whisker") + .data(whiskerData || []); + + whisker.enter().insert("svg:line", "circle, text") + .attr("class", "whisker") + .attr("x1", 0) + .attr("y1", x0) + .attr("x2", width) + .attr("y2", x0) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1) + .style("opacity", 1); + + whisker.transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1) + .style("opacity", 1); + + whisker.exit().transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1) + .style("opacity", 1e-6) + .remove(); + + // Update outliers. + var outlier = g.selectAll("circle.outlier") + .data(outlierIndices, Number); + + outlier.enter().insert("svg:circle", "text") + .attr("class", "outlier") + .attr("r", 5) + .attr("cx", width / 2) + .attr("cy", function(i) { return x0(d[i]); }) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("cy", function(i) { return x1(d[i]); }) + .style("opacity", 1); + + outlier.transition() + .duration(duration) + .attr("cy", function(i) { return x1(d[i]); }) + .style("opacity", 1); + + outlier.exit().transition() + .duration(duration) + .attr("cy", function(i) { return x1(d[i]); }) + .style("opacity", 1e-6) + .remove(); + + // Compute the tick format. + var format = tickFormat || x1.tickFormat(8); + + // Update box ticks. + var boxTick = g.selectAll("text.box") + .data(quartileData); + + boxTick.enter().append("svg:text") + .attr("class", "box") + .attr("dy", ".3em") + .attr("dx", function(d, i) { return i & 1 ? 6 : -6 }) + .attr("x", function(d, i) { return i & 1 ? width : 0 }) + .attr("y", x0) + .attr("text-anchor", function(d, i) { return i & 1 ? "start" : "end"; }) + .text(format) + .transition() + .duration(duration) + .attr("y", x1); + + boxTick.transition() + .duration(duration) + .text(format) + .attr("y", x1); + + // Update whisker ticks. These are handled separately from the box + // ticks because they may or may not exist, and we want don't want + // to join box ticks pre-transition with whisker ticks post-. + var whiskerTick = g.selectAll("text.whisker") + .data(whiskerData || []); + + whiskerTick.enter().append("svg:text") + .attr("class", "whisker") + .attr("dy", ".3em") + .attr("dx", 6) + .attr("x", width) + .attr("y", x0) + .text(format) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("y", x1) + .style("opacity", 1); + + whiskerTick.transition() + .duration(duration) + .text(format) + .attr("y", x1) + .style("opacity", 1); + + whiskerTick.exit().transition() + .duration(duration) + .attr("y", x1) + .style("opacity", 1e-6) + .remove(); + }); + d3.timer.flush(); + } + + box.width = function(x) { + if (!arguments.length) return width; + width = x; + return box; + }; + + box.height = function(x) { + if (!arguments.length) return height; + height = x; + return box; + }; + + box.tickFormat = function(x) { + if (!arguments.length) return tickFormat; + tickFormat = x; + return box; + }; + + box.duration = function(x) { + if (!arguments.length) return duration; + duration = x; + return box; + }; + + box.domain = function(x) { + if (!arguments.length) return domain; + domain = x == null ? x : d3.functor(x); + return box; + }; + + box.value = function(x) { + if (!arguments.length) return value; + value = x; + return box; + }; + + box.whiskers = function(x) { + if (!arguments.length) return whiskers; + whiskers = x; + return box; + }; + + box.quartiles = function(x) { + if (!arguments.length) return quartiles; + quartiles = x; + return box; + }; + + return box; +}; + +function d3_chart_boxWhiskers(d) { + return [0, d.length - 1]; +} + +function d3_chart_boxQuartiles(d) { + return [ + d3.quantile(d, .25), + d3.quantile(d, .5), + d3.quantile(d, .75) + ]; +} +// Chart design based on the recommendations of Stephen Few. Implementation +// based on the work of Clint Ivy, Jamie Love, and Jason Davies. +// http://projects.instantcognition.com/protovis/bulletchart/ +d3.chart.bullet = function() { + var orient = "left", // TODO top & bottom + reverse = false, + duration = 0, + ranges = d3_chart_bulletRanges, + markers = d3_chart_bulletMarkers, + measures = d3_chart_bulletMeasures, + width = 380, + height = 30, + tickFormat = null; + + // For each small multiple… + function bullet(g) { + g.each(function(d, i) { + var rangez = ranges.call(this, d, i).slice().sort(d3.descending), + markerz = markers.call(this, d, i).slice().sort(d3.descending), + measurez = measures.call(this, d, i).slice().sort(d3.descending), + g = d3.select(this); + + // Compute the new x-scale. + var x1 = d3.scale.linear() + .domain([0, Math.max(rangez[0], markerz[0], measurez[0])]) + .range(reverse ? [width, 0] : [0, width]); + + // Retrieve the old x-scale, if this is an update. + var x0 = this.__chart__ || d3.scale.linear() + .domain([0, Infinity]) + .range(x1.range()); + + // Stash the new scale. + this.__chart__ = x1; + + // Derive width-scales from the x-scales. + var w0 = d3_chart_bulletWidth(x0), + w1 = d3_chart_bulletWidth(x1); + + // Update the range rects. + var range = g.selectAll("rect.range") + .data(rangez); + + range.enter().append("svg:rect") + .attr("class", function(d, i) { return "range s" + i; }) + .attr("width", w0) + .attr("height", height) + .attr("x", reverse ? x0 : 0) + .transition() + .duration(duration) + .attr("width", w1) + .attr("x", reverse ? x1 : 0); + + range.transition() + .duration(duration) + .attr("x", reverse ? x1 : 0) + .attr("width", w1) + .attr("height", height); + + // Update the measure rects. + var measure = g.selectAll("rect.measure") + .data(measurez); + + measure.enter().append("svg:rect") + .attr("class", function(d, i) { return "measure s" + i; }) + .attr("width", w0) + .attr("height", height / 3) + .attr("x", reverse ? x0 : 0) + .attr("y", height / 3) + .transition() + .duration(duration) + .attr("width", w1) + .attr("x", reverse ? x1 : 0); + + measure.transition() + .duration(duration) + .attr("width", w1) + .attr("height", height / 3) + .attr("x", reverse ? x1 : 0) + .attr("y", height / 3); + + // Update the marker lines. + var marker = g.selectAll("line.marker") + .data(markerz); + + marker.enter().append("svg:line") + .attr("class", "marker") + .attr("x1", x0) + .attr("x2", x0) + .attr("y1", height / 6) + .attr("y2", height * 5 / 6) + .transition() + .duration(duration) + .attr("x1", x1) + .attr("x2", x1); + + marker.transition() + .duration(duration) + .attr("x1", x1) + .attr("x2", x1) + .attr("y1", height / 6) + .attr("y2", height * 5 / 6); + + // Compute the tick format. + var format = tickFormat || x1.tickFormat(8); + + // Update the tick groups. + var tick = g.selectAll("g.tick") + .data(x1.ticks(8), function(d) { + return this.textContent || format(d); + }); + + // Initialize the ticks with the old scale, x0. + var tickEnter = tick.enter().append("svg:g") + .attr("class", "tick") + .attr("transform", d3_chart_bulletTranslate(x0)) + .style("opacity", 1e-6); + + tickEnter.append("svg:line") + .attr("y1", height) + .attr("y2", height * 7 / 6); + + tickEnter.append("svg:text") + .attr("text-anchor", "middle") + .attr("dy", "1em") + .attr("y", height * 7 / 6) + .text(format); + + // Transition the entering ticks to the new scale, x1. + tickEnter.transition() + .duration(duration) + .attr("transform", d3_chart_bulletTranslate(x1)) + .style("opacity", 1); + + // Transition the updating ticks to the new scale, x1. + var tickUpdate = tick.transition() + .duration(duration) + .attr("transform", d3_chart_bulletTranslate(x1)) + .style("opacity", 1); + + tickUpdate.select("line") + .attr("y1", height) + .attr("y2", height * 7 / 6); + + tickUpdate.select("text") + .attr("y", height * 7 / 6); + + // Transition the exiting ticks to the new scale, x1. + tick.exit().transition() + .duration(duration) + .attr("transform", d3_chart_bulletTranslate(x1)) + .style("opacity", 1e-6) + .remove(); + }); + d3.timer.flush(); + } + + // left, right, top, bottom + bullet.orient = function(x) { + if (!arguments.length) return orient; + orient = x; + reverse = orient == "right" || orient == "bottom"; + return bullet; + }; + + // ranges (bad, satisfactory, good) + bullet.ranges = function(x) { + if (!arguments.length) return ranges; + ranges = x; + return bullet; + }; + + // markers (previous, goal) + bullet.markers = function(x) { + if (!arguments.length) return markers; + markers = x; + return bullet; + }; + + // measures (actual, forecast) + bullet.measures = function(x) { + if (!arguments.length) return measures; + measures = x; + return bullet; + }; + + bullet.width = function(x) { + if (!arguments.length) return width; + width = x; + return bullet; + }; + + bullet.height = function(x) { + if (!arguments.length) return height; + height = x; + return bullet; + }; + + bullet.tickFormat = function(x) { + if (!arguments.length) return tickFormat; + tickFormat = x; + return bullet; + }; + + bullet.duration = function(x) { + if (!arguments.length) return duration; + duration = x; + return bullet; + }; + + return bullet; +}; + +function d3_chart_bulletRanges(d) { + return d.ranges; +} + +function d3_chart_bulletMarkers(d) { + return d.markers; +} + +function d3_chart_bulletMeasures(d) { + return d.measures; +} + +function d3_chart_bulletTranslate(x) { + return function(d) { + return "translate(" + x(d) + ",0)"; + }; +} + +function d3_chart_bulletWidth(x) { + var x0 = x(0); + return function(d) { + return Math.abs(x(d) - x0); + }; +} +// Implements a horizon layout, which is a variation of a single-series +// area chart where the area is folded into multiple bands. Color is used to +// encode band, allowing the size of the chart to be reduced significantly +// without impeding readability. This layout algorithm is based on the work of +// J. Heer, N. Kong and M. Agrawala in "Sizing the Horizon: The Effects of Chart +// Size and Layering on the Graphical Perception of Time Series Visualizations", +// CHI 2009. http://hci.stanford.edu/publications/2009/heer-horizon-chi09.pdf +d3.chart.horizon = function() { + var bands = 1, // between 1 and 5, typically + mode = "offset", // or mirror + interpolate = "linear", // or basis, monotone, step-before, etc. + x = d3_chart_horizonX, + y = d3_chart_horizonY, + w = 960, + h = 40, + duration = 0; + + var color = d3.scale.linear() + .domain([-1, 0, 1]) + .range(["#d62728", "#fff", "#1f77b4"]); + + // For each small multiple… + function horizon(g) { + g.each(function(d, i) { + var g = d3.select(this), + n = 2 * bands + 1, + xMin = Infinity, + xMax = -Infinity, + yMax = -Infinity, + x0, // old x-scale + y0, // old y-scale + id; // unique id for paths + + // Compute x- and y-values along with extents. + var data = d.map(function(d, i) { + var xv = x.call(this, d, i), + yv = y.call(this, d, i); + if (xv < xMin) xMin = xv; + if (xv > xMax) xMax = xv; + if (-yv > yMax) yMax = -yv; + if (yv > yMax) yMax = yv; + return [xv, yv]; + }); + + // Compute the new x- and y-scales. + var x1 = d3.scale.linear().domain([xMin, xMax]).range([0, w]), + y1 = d3.scale.linear().domain([0, yMax]).range([0, h * bands]); + + // Retrieve the old scales, if this is an update. + if (this.__chart__) { + x0 = this.__chart__.x; + y0 = this.__chart__.y; + id = this.__chart__.id; + } else { + x0 = d3.scale.linear().domain([0, Infinity]).range(x1.range()); + y0 = d3.scale.linear().domain([0, Infinity]).range(y1.range()); + id = ++d3_chart_horizonId; + } + + // We'll use a defs to store the area path and the clip path. + var defs = g.selectAll("defs") + .data([data]); + + var defsEnter = defs.enter().append("svg:defs"); + + // The clip path is a simple rect. + defsEnter.append("svg:clipPath") + .attr("id", "d3_chart_horizon_clip" + id) + .append("svg:rect") + .attr("width", w) + .attr("height", h); + + defs.select("rect").transition() + .duration(duration) + .attr("width", w) + .attr("height", h); + + // The area path is rendered with our resuable d3.svg.area. + defsEnter.append("svg:path") + .attr("id", "d3_chart_horizon_path" + id) + .attr("d", d3_chart_horizonArea + .interpolate(interpolate) + .x(function(d) { return x0(d[0]); }) + .y0(h * bands) + .y1(function(d) { return h * bands - y0(d[1]); })) + .transition() + .duration(duration) + .attr("d", d3_chart_horizonArea + .x(function(d) { return x1(d[0]); }) + .y1(function(d) { return h * bands - y1(d[1]); })); + + defs.select("path").transition() + .duration(duration) + .attr("d", d3_chart_horizonArea); + + // We'll use a container to clip all horizon layers at once. + g.selectAll("g") + .data([null]) + .enter().append("svg:g") + .attr("clip-path", "url(#d3_chart_horizon_clip" + id + ")"); + + // Define the transform function based on the mode. + var transform = mode == "offset" + ? function(d) { return "translate(0," + (d + (d < 0) - bands) * h + ")"; } + : function(d) { return (d < 0 ? "scale(1,-1)" : "") + "translate(0," + (d - bands) * h + ")"; }; + + // Instantiate each copy of the path with different transforms. + var u = g.select("g").selectAll("use") + .data(d3.range(-1, -bands - 1, -1).concat(d3.range(1, bands + 1)), Number); + + // TODO don't fudge the enter transition + u.enter().append("svg:use") + .attr("xlink:href", "#d3_chart_horizon_path" + id) + .attr("transform", function(d) { return transform(d + (d > 0 ? 1 : -1)); }) + .style("fill", color) + .transition() + .duration(duration) + .attr("transform", transform); + + u.transition() + .duration(duration) + .attr("transform", transform) + .style("fill", color); + + u.exit().transition() + .duration(duration) + .attr("transform", transform) + .remove(); + + // Stash the new scales. + this.__chart__ = {x: x1, y: y1, id: id}; + }); + d3.timer.flush(); + } + + horizon.duration = function(x) { + if (!arguments.length) return duration; + duration = +x; + return horizon; + }; + + horizon.bands = function(x) { + if (!arguments.length) return bands; + bands = +x; + color.domain([-bands, 0, bands]); + return horizon; + }; + + horizon.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return horizon; + }; + + horizon.colors = function(x) { + if (!arguments.length) return color.range(); + color.range(x); + return horizon; + }; + + horizon.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x + ""; + return horizon; + }; + + horizon.x = function(z) { + if (!arguments.length) return x; + x = z; + return horizon; + }; + + horizon.y = function(z) { + if (!arguments.length) return y; + y = z; + return horizon; + }; + + horizon.width = function(x) { + if (!arguments.length) return w; + w = +x; + return horizon; + }; + + horizon.height = function(x) { + if (!arguments.length) return h; + h = +x; + return horizon; + }; + + return horizon; +}; + +var d3_chart_horizonArea = d3.svg.area(), + d3_chart_horizonId = 0; + +function d3_chart_horizonX(d) { + return d[0]; +} + +function d3_chart_horizonY(d) { + return d[1]; +} +// Based on http://vis.stanford.edu/protovis/ex/qqplot.html +d3.chart.qq = function() { + var width = 1, + height = 1, + duration = 0, + domain = null, + tickFormat = null, + n = 100, + x = d3_chart_qqX, + y = d3_chart_qqY; + + // For each small multiple… + function qq(g) { + g.each(function(d, i) { + var g = d3.select(this), + qx = d3_chart_qqQuantiles(n, x.call(this, d, i)), + qy = d3_chart_qqQuantiles(n, y.call(this, d, i)), + xd = domain && domain.call(this, d, i) || [d3.min(qx), d3.max(qx)], // new x-domain + yd = domain && domain.call(this, d, i) || [d3.min(qy), d3.max(qy)], // new y-domain + x0, // old x-scale + y0; // old y-scale + + // Compute the new x-scale. + var x1 = d3.scale.linear() + .domain(xd) + .range([0, width]); + + // Compute the new y-scale. + var y1 = d3.scale.linear() + .domain(yd) + .range([height, 0]); + + // Retrieve the old scales, if this is an update. + if (this.__chart__) { + x0 = this.__chart__.x; + y0 = this.__chart__.y; + } else { + x0 = d3.scale.linear().domain([0, Infinity]).range(x1.range()); + y0 = d3.scale.linear().domain([0, Infinity]).range(y1.range()); + } + + // Stash the new scales. + this.__chart__ = {x: x1, y: y1}; + + // Update diagonal line. + var diagonal = g.selectAll("line.diagonal") + .data([null]); + + diagonal.enter().append("svg:line") + .attr("class", "diagonal") + .attr("x1", x1(yd[0])) + .attr("y1", y1(xd[0])) + .attr("x2", x1(yd[1])) + .attr("y2", y1(xd[1])); + + diagonal.transition() + .duration(duration) + .attr("x1", x1(yd[0])) + .attr("y1", y1(xd[0])) + .attr("x2", x1(yd[1])) + .attr("y2", y1(xd[1])); + + // Update quantile plots. + var circle = g.selectAll("circle") + .data(d3.range(n).map(function(i) { + return {x: qx[i], y: qy[i]}; + })); + + circle.enter().append("svg:circle") + .attr("class", "quantile") + .attr("r", 4.5) + .attr("cx", function(d) { return x0(d.x); }) + .attr("cy", function(d) { return y0(d.y); }) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("cx", function(d) { return x1(d.x); }) + .attr("cy", function(d) { return y1(d.y); }) + .style("opacity", 1); + + circle.transition() + .duration(duration) + .attr("cx", function(d) { return x1(d.x); }) + .attr("cy", function(d) { return y1(d.y); }) + .style("opacity", 1); + + circle.exit().transition() + .duration(duration) + .attr("cx", function(d) { return x1(d.x); }) + .attr("cy", function(d) { return y1(d.y); }) + .style("opacity", 1e-6) + .remove(); + + var xformat = tickFormat || x1.tickFormat(4), + yformat = tickFormat || y1.tickFormat(4), + tx = function(d) { return "translate(" + x1(d) + "," + height + ")"; }, + ty = function(d) { return "translate(0," + y1(d) + ")"; }; + + // Update x-ticks. + var xtick = g.selectAll("g.x.tick") + .data(x1.ticks(4), function(d) { + return this.textContent || xformat(d); + }); + + var xtickEnter = xtick.enter().append("svg:g") + .attr("class", "x tick") + .attr("transform", function(d) { return "translate(" + x0(d) + "," + height + ")"; }) + .style("opacity", 1e-6); + + xtickEnter.append("svg:line") + .attr("y1", 0) + .attr("y2", -6); + + xtickEnter.append("svg:text") + .attr("text-anchor", "middle") + .attr("dy", "1em") + .text(xformat); + + // Transition the entering ticks to the new scale, x1. + xtickEnter.transition() + .duration(duration) + .attr("transform", tx) + .style("opacity", 1); + + // Transition the updating ticks to the new scale, x1. + xtick.transition() + .duration(duration) + .attr("transform", tx) + .style("opacity", 1); + + // Transition the exiting ticks to the new scale, x1. + xtick.exit().transition() + .duration(duration) + .attr("transform", tx) + .style("opacity", 1e-6) + .remove(); + + // Update ticks. + var ytick = g.selectAll("g.y.tick") + .data(y1.ticks(4), function(d) { + return this.textContent || yformat(d); + }); + + var ytickEnter = ytick.enter().append("svg:g") + .attr("class", "y tick") + .attr("transform", function(d) { return "translate(0," + y0(d) + ")"; }) + .style("opacity", 1e-6); + + ytickEnter.append("svg:line") + .attr("x1", 0) + .attr("x2", 6); + + ytickEnter.append("svg:text") + .attr("text-anchor", "end") + .attr("dx", "-.5em") + .attr("dy", ".3em") + .text(yformat); + + // Transition the entering ticks to the new scale, y1. + ytickEnter.transition() + .duration(duration) + .attr("transform", ty) + .style("opacity", 1); + + // Transition the updating ticks to the new scale, y1. + ytick.transition() + .duration(duration) + .attr("transform", ty) + .style("opacity", 1); + + // Transition the exiting ticks to the new scale, y1. + ytick.exit().transition() + .duration(duration) + .attr("transform", ty) + .style("opacity", 1e-6) + .remove(); + }); + } + + qq.width = function(x) { + if (!arguments.length) return width; + width = x; + return qq; + }; + + qq.height = function(x) { + if (!arguments.length) return height; + height = x; + return qq; + }; + + qq.duration = function(x) { + if (!arguments.length) return duration; + duration = x; + return qq; + }; + + qq.domain = function(x) { + if (!arguments.length) return domain; + domain = x == null ? x : d3.functor(x); + return qq; + }; + + qq.count = function(z) { + if (!arguments.length) return n; + n = z; + return qq; + }; + + qq.x = function(z) { + if (!arguments.length) return x; + x = z; + return qq; + }; + + qq.y = function(z) { + if (!arguments.length) return y; + y = z; + return qq; + }; + + qq.tickFormat = function(x) { + if (!arguments.length) return tickFormat; + tickFormat = x; + return qq; + }; + + return qq; +}; + +function d3_chart_qqQuantiles(n, values) { + var m = values.length - 1; + values = values.slice().sort(d3.ascending); + return d3.range(n).map(function(i) { + return values[~~(i * m / n)]; + }); +} + +function d3_chart_qqX(d) { + return d.x; +} + +function d3_chart_qqY(d) { + return d.y; +} +})(); +(function(){d3.layout = {}; +// Implements hierarchical edge bundling using Holten's algorithm. For each +// input link, a path is computed that travels through the tree, up the parent +// hierarchy to the least common ancestor, and then back down to the destination +// node. Each path is simply an array of nodes. +d3.layout.bundle = function() { + return function(links) { + var paths = [], + i = -1, + n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; +}; + +function d3_layout_bundlePath(link) { + var start = link.source, + end = link.target, + lca = d3_layout_bundleLeastCommonAncestor(start, end), + points = [start]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; +} + +function d3_layout_bundleAncestors(node) { + var ancestors = [], + parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; +} + +function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), + bNodes = d3_layout_bundleAncestors(b), + aNode = aNodes.pop(), + bNode = bNodes.pop(), + sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; +} +d3.layout.chord = function() { + var chord = {}, + chords, + groups, + matrix, + n, + padding = 0, + sortGroups, + sortSubgroups, + sortChords; + + function relayout() { + var subgroups = {}, + groupSums = [], + groupIndex = d3.range(n), + subgroupIndex = [], + k, + x, + x0, + i, + j; + + chords = []; + groups = []; + + // Compute the sum. + k = 0, i = -1; while (++i < n) { + x = 0, j = -1; while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + + // Sort groups… + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + + // Sort subgroups… + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + + // Convert the sum to scaling factor for [0, 2pi]. + // TODO Allow start and end angle to be specified. + // TODO Allow padding to be specified as percentage? + k = (2 * Math.PI - padding * n) / k; + + // Compute the start and end angle for each group and subgroup. + x = 0, i = -1; while (++i < n) { + x0 = x, j = -1; while (++j < n) { + var di = groupIndex[i], + dj = subgroupIndex[di][j], + v = matrix[di][dj]; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: x, + endAngle: x += v * k, + value: v + }; + } + groups.push({ + index: di, + startAngle: x0, + endAngle: x, + value: (x - x0) / k + }); + x += padding; + } + + // Generate chords for each (non-empty) subgroup-subgroup link. + i = -1; while (++i < n) { + j = i - 1; while (++j < n) { + var source = subgroups[i + "-" + j], + target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value + ? {source: target, target: source} + : {source: source, target: target}); + } + } + } + + if (sortChords) resort(); + } + + function resort() { + chords.sort(function(a, b) { + return sortChords( + (a.source.value + a.target.value) / 2, + (b.source.value + b.target.value) / 2); + }); + } + + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + + return chord; +}; +// A rudimentary force layout using Gauss-Seidel. +d3.layout.force = function() { + var force = {}, + event = d3.dispatch("tick"), + size = [1, 1], + drag, + alpha, + friction = .9, + linkDistance = d3_layout_forceLinkDistance, + linkStrength = d3_layout_forceLinkStrength, + charge = -30, + gravity = .1, + theta = .8, + interval, + nodes = [], + links = [], + distances, + strengths, + charges; + + function repulse(node) { + return function(quad, x1, y1, x2, y2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, + dy = quad.cy - node.y, + dn = 1 / Math.sqrt(dx * dx + dy * dy); + + /* Barnes-Hut criterion. */ + if ((x2 - x1) * dn < theta) { + var k = quad.charge * dn * dn; + node.px -= dx * k; + node.py -= dy * k; + return true; + } + + if (quad.point && isFinite(dn)) { + var k = quad.pointCharge * dn * dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + + function tick() { + var n = nodes.length, + m = links.length, + q, + i, // current index + o, // current object + s, // current source + t, // current target + l, // current distance + k, // current force + x, // x-distance + y; // y-distance + + // gauss-seidel relaxation for links + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = (x * x + y * y)) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + + // apply gravity forces + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + + // compute quadtree center of mass and apply charge forces + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + + // position verlet integration + i = -1; while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + + event.tick.dispatch({type: "tick", alpha: alpha}); + + // simulated annealing, basically + return (alpha *= .99) < .005; + } + + force.on = function(type, listener) { + event[type].add(listener); + return force; + }; + + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = d3.functor(x); + return force; + }; + + // For backwards-compatibility. + force.distance = force.linkDistance; + + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = d3.functor(x); + return force; + }; + + force.friction = function(x) { + if (!arguments.length) return friction; + friction = x; + return force; + }; + + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = x; + return force; + }; + + force.theta = function(x) { + if (!arguments.length) return theta; + theta = x; + return force; + }; + + force.start = function() { + var i, + j, + n = nodes.length, + m = links.length, + w = size[0], + h = size[1], + neighbors, + o; + + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + + distances = []; + strengths = []; + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + distances[i] = linkDistance.call(this, o, i); + strengths[i] = linkStrength.call(this, o, i); + ++o.source.weight; + ++o.target.weight; + } + + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + + charges = []; + if (typeof charge === "function") { + for (i = 0; i < n; ++i) { + charges[i] = +charge.call(this, nodes[i], i); + } + } else { + for (i = 0; i < n; ++i) { + charges[i] = charge; + } + } + + // initialize node position based on first neighbor + function position(dimension, size) { + var neighbors = neighbor(i), + j = -1, + m = neighbors.length, + x; + while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x; + return Math.random() * size; + } + + // initialize neighbors lazily + function neighbor() { + if (!neighbors) { + neighbors = []; + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + return neighbors[i]; + } + + return force.resume(); + }; + + force.resume = function() { + alpha = .1; + d3.timer(tick); + return force; + }; + + force.stop = function() { + alpha = 0; + return force; + }; + + // use `node.call(force.drag)` to make nodes draggable + force.drag = function() { + if (!drag) drag = d3.behavior.drag() + .on("dragstart", dragstart) + .on("drag", d3_layout_forceDrag) + .on("dragend", d3_layout_forceDragEnd); + + this.on("mouseover.force", d3_layout_forceDragOver) + .on("mouseout.force", d3_layout_forceDragOut) + .call(drag); + }; + + function dragstart(d) { + d3_layout_forceDragOver(d3_layout_forceDragNode = d); + d3_layout_forceDragForce = force; + } + + return force; +}; + +var d3_layout_forceDragForce, + d3_layout_forceDragNode; + +function d3_layout_forceDragOver(d) { + d.fixed |= 2; +} + +function d3_layout_forceDragOut(d) { + if (d !== d3_layout_forceDragNode) d.fixed &= 1; +} + +function d3_layout_forceDragEnd() { + d3_layout_forceDrag(); + d3_layout_forceDragNode.fixed &= 1; + d3_layout_forceDragForce = d3_layout_forceDragNode = null; +} + +function d3_layout_forceDrag() { + d3_layout_forceDragNode.px += d3.event.dx; + d3_layout_forceDragNode.py += d3.event.dy; + d3_layout_forceDragForce.resume(); // restart annealing +} + +function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, + cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, + n = nodes.length, + i = -1, + c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + // jitter internal nodes that are coincident + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; +} + +function d3_layout_forceLinkDistance(link) { + return 20; +} + +function d3_layout_forceLinkStrength(link) { + return 1; +} +d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), + size = [1, 1]; // width, height + + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children && (n = children.length)) { + var i = -1, + n, + c, + d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + + function depth(node) { + var children = node.children, + d = 0; + if (children && (n = children.length)) { + var i = -1, + n; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + + return d3_layout_hierarchyRebind(partition, hierarchy); +}; +d3.layout.pie = function() { + var value = Number, + sort = null, + startAngle = 0, + endAngle = 2 * Math.PI; + + function pie(data, i) { + + // Compute the start angle. + var a = +(typeof startAngle === "function" + ? startAngle.apply(this, arguments) + : startAngle); + + // Compute the angular range (end - start). + var k = (typeof endAngle === "function" + ? endAngle.apply(this, arguments) + : endAngle) - startAngle; + + // Optionally sort the data. + var index = d3.range(data.length); + if (sort != null) index.sort(function(i, j) { + return sort(data[i], data[j]); + }); + + // Compute the numeric values for each data element. + var values = data.map(value); + + // Convert k into a scale factor from value to angle, using the sum. + k /= values.reduce(function(p, d) { return p + d; }, 0); + + // Compute the arcs! + var arcs = index.map(function(i) { + return { + data: data[i], + value: d = values[i], + startAngle: a, + endAngle: a += d * k + }; + }); + + // Return the arcs in the original data's order. + return data.map(function(d, i) { + return arcs[index[i]]; + }); + } + + /** + * Specifies the value function *x*, which returns a nonnegative numeric value + * for each datum. The default value function is `Number`. The value function + * is passed two arguments: the current datum and the current index. + */ + pie.value = function(x) { + if (!arguments.length) return value; + value = x; + return pie; + }; + + /** + * Specifies a sort comparison operator *x*. The comparator is passed two data + * elements from the data array, a and b; it returns a negative value if a is + * less than b, a positive value if a is greater than b, and zero if a equals + * b. + */ + pie.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return pie; + }; + + /** + * Specifies the overall start angle of the pie chart. Defaults to 0. The + * start angle can be specified either as a constant or as a function; in the + * case of a function, it is evaluated once per array (as opposed to per + * element). + */ + pie.startAngle = function(x) { + if (!arguments.length) return startAngle; + startAngle = x; + return pie; + }; + + /** + * Specifies the overall end angle of the pie chart. Defaults to 2Ï€. The + * end angle can be specified either as a constant or as a function; in the + * case of a function, it is evaluated once per array (as opposed to per + * element). + */ + pie.endAngle = function(x) { + if (!arguments.length) return endAngle; + endAngle = x; + return pie; + }; + + return pie; +}; +// data is two-dimensional array of x,y; we populate y0 +d3.layout.stack = function() { + var values = Object, + order = d3_layout_stackOrders["default"], + offset = d3_layout_stackOffsets["zero"], + out = d3_layout_stackOut, + x = d3_layout_stackX, + y = d3_layout_stackY; + + function stack(data, index) { + + // Convert series to canonical two-dimensional representation. + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + + // Convert each series to canonical [[x,y]] representation. + var points = series.map(function(d, i) { + return d.map(function(v, i) { + return [x.call(stack, v, i), y.call(stack, v, i)]; + }); + }); + + // Compute the order of series, and permute them. + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + + // Compute the baseline… + var offsets = offset.call(stack, points, index); + + // And propagate it to other series. + var n = series.length, + m = series[0].length, + i, + j, + o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + + return data; + } + + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders[x]; + return stack; + }; + + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets[x]; + return stack; + }; + + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + + return stack; +} + +function d3_layout_stackX(d) { + return d.x; +} + +function d3_layout_stackY(d) { + return d.y; +} + +function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; +} + +var d3_layout_stackOrders = { + + "inside-out": function(data) { + var n = data.length, + i, + j, + max = data.map(d3_layout_stackMaxIndex), + sums = data.map(d3_layout_stackReduceSum), + index = d3.range(n).sort(function(a, b) { return max[a] - max[b]; }), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + + "reverse": function(data) { + return d3.range(data.length).reverse(); + }, + + "default": function(data) { + return d3.range(data.length); + } + +}; + +var d3_layout_stackOffsets = { + + "silhouette": function(data) { + var n = data.length, + m = data[0].length, + sums = [], + max = 0, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + + "wiggle": function(data) { + var n = data.length, + x = data[0], + m = x.length, + max = 0, + i, + j, + k, + s1, + s2, + s3, + dx, + o, + o0, + y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + + "expand": function(data) { + var n = data.length, + m = data[0].length, + k = 1 / n, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; + else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + + "zero": function(data) { + var j = -1, + m = data[0].length, + y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + +}; + +function d3_layout_stackMaxIndex(array) { + var i = 1, + j = 0, + v = array[0][1], + k, + n = array.length; + for (; i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; +} + +function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); +} + +function d3_layout_stackSum(p, d) { + return p + d[1]; +} +d3.layout.histogram = function() { + var frequency = true, + valuer = Number, + ranger = d3_layout_histogramRange, + binner = d3_layout_histogramBinSturges; + + function histogram(data, i) { + var bins = [], + values = data.map(valuer, this), + range = ranger.call(this, values, i), + thresholds = binner.call(this, range, values, i), + bin, + i = -1, + n = values.length, + m = thresholds.length - 1, + k = frequency ? 1 : 1 / n, + x; + + // Initialize the bins. + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + + // Fill the bins, ignoring values outside the range. + i = -1; while(++i < n) { + x = values[i]; + if ((x >= range[0]) && (x <= range[1])) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + + return bins; + } + + // Specifies how to extract a value from the associated data. The default + // value function is `Number`, which is equivalent to the identity function. + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + + // Specifies the range of the histogram. Values outside the specified range + // will be ignored. The argument `x` may be specified either as a two-element + // array representing the minimum and maximum value of the range, or as a + // function that returns the range given the array of values and the current + // index `i`. The default range is the extent (minimum and maximum) of the + // values. + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3.functor(x); + return histogram; + }; + + // Specifies how to bin values in the histogram. The argument `x` may be + // specified as a number, in which case the range of values will be split + // uniformly into the given number of bins. Or, `x` may be an array of + // threshold values, defining the bins; the specified array must contain the + // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x` + // may be a function which is evaluated, being passed the range, the array of + // values, and the current index `i`, returning an array of thresholds. The + // default bin function will divide the values into uniform bins using + // Sturges' formula. + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" + ? function(range) { return d3_layout_histogramBinFixed(range, x); } + : d3.functor(x); + return histogram; + }; + + // Specifies whether the histogram's `y` value is a count (frequency) or a + // probability (density). The default value is true. + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + + return histogram; +}; + +function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); +} + +function d3_layout_histogramBinFixed(range, n) { + var x = -1, + b = +range[0], + m = (range[1] - b) / n, + f = []; + while (++x <= n) f[x] = m * x + b; + return f; +} + +function d3_layout_histogramRange(values) { + return [d3.min(values), d3.max(values)]; +} +d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, + children = d3_layout_hierarchyChildren, + value = d3_layout_hierarchyValue; + + // Recursively compute the node depth and value. + // Also converts the data representation into a standard hierarchy structure. + function recurse(data, depth, nodes) { + var childs = children.call(hierarchy, data, depth), + node = d3_layout_hierarchyInline ? data : {data: data}; + node.depth = depth; + nodes.push(node); + if (childs && (n = childs.length)) { + var i = -1, + n, + c = node.children = [], + v = 0, + j = depth + 1; + while (++i < n) { + d = recurse(childs[i], j, nodes); + d.parent = node; + c.push(d); + v += d.value; + } + if (sort) c.sort(sort); + if (value) node.value = v; + } else if (value) { + node.value = +value.call(hierarchy, data, depth) || 0; + } + return node; + } + + // Recursively re-evaluates the node value. + function revalue(node, depth) { + var children = node.children, + v = 0; + if (children && (n = children.length)) { + var i = -1, + n, + j = depth + 1; + while (++i < n) v += revalue(children[i], j); + } else if (value) { + v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0; + } + if (value) node.value = v; + return v; + } + + function hierarchy(d) { + var nodes = []; + recurse(d, 0, nodes); + return nodes; + } + + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + + // Re-evaluates the `value` property for the specified hierarchy. + hierarchy.revalue = function(root) { + revalue(root, 0); + return root; + }; + + return hierarchy; +}; + +// A method assignment helper for hierarchy subclasses. +function d3_layout_hierarchyRebind(object, hierarchy) { + object.sort = d3.rebind(object, hierarchy.sort); + object.children = d3.rebind(object, hierarchy.children); + object.links = d3_layout_hierarchyLinks; + object.value = d3.rebind(object, hierarchy.value); + + // If the new API is used, enabling inlining. + object.nodes = function(d) { + d3_layout_hierarchyInline = true; + return (object.nodes = object)(d); + }; + + return object; +} + +function d3_layout_hierarchyChildren(d) { + return d.children; +} + +function d3_layout_hierarchyValue(d) { + return d.value; +} + +function d3_layout_hierarchySort(a, b) { + return b.value - a.value; +} + +// Returns an array source+target objects for the specified nodes. +function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return {source: parent, target: child}; + }); + })); +} + +// For backwards-compatibility, don't enable inlining by default. +var d3_layout_hierarchyInline = false; +d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), + size = [1, 1]; + + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0]; + + // Recursively compute the layout. + root.x = 0; + root.y = 0; + d3_layout_packTree(root); + + // Scale the layout to fit the requested size. + var w = size[0], + h = size[1], + k = 1 / Math.max(2 * root.r / w, 2 * root.r / h); + d3_layout_packTransform(root, w / 2, h / 2, k); + + return nodes; + } + + pack.size = function(x) { + if (!arguments.length) return size; + size = x; + return pack; + }; + + return d3_layout_hierarchyRebind(pack, hierarchy); +}; + +function d3_layout_packSort(a, b) { + return a.value - b.value; +} + +function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; +} + +function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; +} + +function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, + dy = b.y - a.y, + dr = a.r + b.r; + return (dr * dr - dx * dx - dy * dy) > .001; // within epsilon +} + +function d3_layout_packCircle(nodes) { + var xMin = Infinity, + xMax = -Infinity, + yMin = Infinity, + yMax = -Infinity, + n = nodes.length, + a, b, c, j, k; + + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + + // Create node links. + nodes.forEach(d3_layout_packLink); + + // Create first node. + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + + // Create second node. + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + + // Create third node and build chain. + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + + // Now iterate through the rest. + for (var i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + + // Search for the closest intersection. + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + if (s2 < s1) { + isect = -1; + j = k; + } + break; + } + } + } + + // Update node chain. + if (isect == 0) { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } else if (isect > 0) { + d3_layout_packSplice(a, j); + b = j; + i--; + } else { // isect < 0 + d3_layout_packSplice(j, b); + a = j; + i--; + } + } + } + } + + // Re-center the circles and return the encompassing radius. + var cx = (xMin + xMax) / 2, + cy = (yMin + yMax) / 2, + cr = 0; + for (var i = 0; i < n; i++) { + var node = nodes[i]; + node.x -= cx; + node.y -= cy; + cr = Math.max(cr, node.r + Math.sqrt(node.x * node.x + node.y * node.y)); + } + + // Remove node links. + nodes.forEach(d3_layout_packUnlink); + + return cr; +} + +function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; +} + +function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; +} + +function d3_layout_packTree(node) { + var children = node.children; + if (children && children.length) { + children.forEach(d3_layout_packTree); + node.r = d3_layout_packCircle(children); + } else { + node.r = Math.sqrt(node.value); + } +} + +function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = (x += k * node.x); + node.y = (y += k * node.y); + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } +} + +function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, + dx = b.x - a.x, + dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, + dc = Math.sqrt(dx * dx + dy * dy), + cos = Math.max(-1, Math.min(1, (db * db + dc * dc - da * da) / (2 * db * dc))), + theta = Math.acos(cos), + x = cos * (db /= dc), + y = Math.sin(theta) * db; + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } +} +// Implements a hierarchical layout using the cluster (or dendogram) algorithm. +d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), + separation = d3_layout_treeSeparation, + size = [1, 1]; // width, height + + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0], + previousNode, + x = 0, + kx, + ky; + + // First walk, computing the initial x & y values. + d3_layout_treeVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + + // Compute the left-most, right-most, and depth-most nodes for extents. + var left = d3_layout_clusterLeft(root), + right = d3_layout_clusterRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + + // Second walk, normalizing x & y to the desired size. + d3_layout_treeVisitAfter(root, function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - node.y / root.y) * size[1]; + }); + + return nodes; + } + + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + + cluster.size = function(x) { + if (!arguments.length) return size; + size = x; + return cluster; + }; + + return d3_layout_hierarchyRebind(cluster, hierarchy); +}; + +function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); +} + +function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; +} + +function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; +} + +function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; +} +// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm +d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), + separation = d3_layout_treeSeparation, + size = [1, 1]; // width, height + + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0]; + + function firstWalk(node, previousSibling) { + var children = node.children, + layout = node._tree; + if (children && (n = children.length)) { + var n, + firstChild = children[0], + previousChild, + ancestor = firstChild, + child, + i = -1; + while (++i < n) { + child = children[i]; + firstWalk(child, previousChild); + ancestor = apportion(child, previousChild, ancestor); + previousChild = child; + } + d3_layout_treeShift(node); + var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim); + if (previousSibling) { + layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); + layout.mod = layout.prelim - midpoint; + } else { + layout.prelim = midpoint; + } + } else { + if (previousSibling) { + layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); + } + } + } + + function secondWalk(node, x) { + node.x = node._tree.prelim + x; + var children = node.children; + if (children && (n = children.length)) { + var i = -1, + n; + x += node._tree.mod; + while (++i < n) { + secondWalk(children[i], x); + } + } + } + + function apportion(node, previousSibling, ancestor) { + if (previousSibling) { + var vip = node, + vop = node, + vim = previousSibling, + vom = node.parent.children[0], + sip = vip._tree.mod, + sop = vop._tree.mod, + sim = vim._tree.mod, + som = vom._tree.mod, + shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop._tree.ancestor = node; + shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift); + sip += shift; + sop += shift; + } + sim += vim._tree.mod; + sip += vip._tree.mod; + som += vom._tree.mod; + sop += vop._tree.mod; + } + if (vim && !d3_layout_treeRight(vop)) { + vop._tree.thread = vim; + vop._tree.mod += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom._tree.thread = vip; + vom._tree.mod += sip - som; + ancestor = node; + } + } + return ancestor; + } + + // Initialize temporary layout variables. + d3_layout_treeVisitAfter(root, function(node, previousSibling) { + node._tree = { + ancestor: node, + prelim: 0, + mod: 0, + change: 0, + shift: 0, + number: previousSibling ? previousSibling._tree.number + 1 : 0 + }; + }); + + // Compute the layout using Buchheim et al.'s algorithm. + firstWalk(root); + secondWalk(root, -root._tree.prelim); + + // Compute the left-most, right-most, and depth-most nodes for extents. + var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), + right = d3_layout_treeSearch(root, d3_layout_treeRightmost), + deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2, + y1 = deep.depth || 1; + + // Clear temporary layout variables; transform x and y. + d3_layout_treeVisitAfter(root, function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = node.depth / y1 * size[1]; + delete node._tree; + }); + + return nodes; + } + + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + + tree.size = function(x) { + if (!arguments.length) return size; + size = x; + return tree; + }; + + return d3_layout_hierarchyRebind(tree, hierarchy); +}; + +function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; +} + +// function d3_layout_treeSeparationRadial(a, b) { +// return (a.parent == b.parent ? 1 : 2) / a.depth; +// } + +function d3_layout_treeLeft(node) { + var children = node.children; + return children && children.length ? children[0] : node._tree.thread; +} + +function d3_layout_treeRight(node) { + var children = node.children, + n; + return children && (n = children.length) ? children[n - 1] : node._tree.thread; +} + +function d3_layout_treeSearch(node, compare) { + var children = node.children; + if (children && (n = children.length)) { + var child, + n, + i = -1; + while (++i < n) { + if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) { + node = child; + } + } + } + return node; +} + +function d3_layout_treeRightmost(a, b) { + return a.x - b.x; +} + +function d3_layout_treeLeftmost(a, b) { + return b.x - a.x; +} + +function d3_layout_treeDeepest(a, b) { + return a.depth - b.depth; +} + +function d3_layout_treeVisitAfter(node, callback) { + function visit(node, previousSibling) { + var children = node.children; + if (children && (n = children.length)) { + var child, + previousChild = null, + i = -1, + n; + while (++i < n) { + child = children[i]; + visit(child, previousChild); + previousChild = child; + } + } + callback(node, previousSibling); + } + visit(node, null); +} + +function d3_layout_treeShift(node) { + var shift = 0, + change = 0, + children = node.children, + i = children.length, + child; + while (--i >= 0) { + child = children[i]._tree; + child.prelim += shift; + child.mod += shift; + shift += child.shift + (change += child.change); + } +} + +function d3_layout_treeMove(ancestor, node, shift) { + ancestor = ancestor._tree; + node = node._tree; + var change = shift / (node.number - ancestor.number); + ancestor.change += change; + node.change -= change; + node.shift += shift; + node.prelim += shift; + node.mod += shift; +} + +function d3_layout_treeAncestor(vim, node, ancestor) { + return vim._tree.ancestor.parent == node.parent + ? vim._tree.ancestor + : ancestor; +} +// Squarified Treemaps by Mark Bruls, Kees Huizing, and Jarke J. van Wijk +// Modified to support a target aspect ratio by Jeff Heer +d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), + round = Math.round, + size = [1, 1], // width, height + padding = null, + pad = d3_layout_treemapPadNull, + sticky = false, + stickies, + ratio = 0.5 * (1 + Math.sqrt(5)); // golden ratio + + // Compute the area for each child based on value & scale. + function scale(children, k) { + var i = -1, + n = children.length, + child, + area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + + // Recursively arranges the specified node's children into squarified rows. + function squarify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), + row = [], + remaining = children.slice(), // copy-on-write + child, + best = Infinity, // the best row score so far + score, // the current row score + u = Math.min(rect.dx, rect.dy), // initial orientation + n; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = remaining.length) > 0) { + row.push(child = remaining[n - 1]); + row.area += child.area; + if ((score = worst(row, u)) <= best) { // continue with this orientation + remaining.pop(); + best = score; + } else { // abort, and try a different orientation + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + children.forEach(squarify); + } + } + + // Recursively resizes the specified node's children into existing rows. + // Preserves the existing layout! + function stickify(node) { + var children = node.children; + if (children && children.length) { + var rect = pad(node), + remaining = children.slice(), // copy-on-write + child, + row = []; + scale(remaining, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = remaining.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length); + row.length = row.area = 0; + } + } + children.forEach(stickify); + } + } + + // Computes the score for the specified row, as the worst aspect ratio. + function worst(row, u) { + var s = row.area, + r, + rmax = 0, + rmin = Infinity, + i = -1, + n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s + ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio)) + : Infinity; + } + + // Positions the specified row of nodes. Modifies `rect`. + function position(row, u, rect, flush) { + var i = -1, + n = row.length, + x = rect.x, + y = rect.y, + v = u ? round(row.area / u) : 0, + o; + if (u == rect.dx) { // horizontal subdivision + if (flush || v > rect.dy) v = v ? rect.dy : 0; // over+underflow + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = v ? round(o.area / v) : 0; + } + o.z = true; + o.dx += rect.x + rect.dx - x; // rounding error + rect.y += v; + rect.dy -= v; + } else { // vertical subdivision + if (flush || v > rect.dx) v = v ? rect.dx : 0; // over+underflow + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = v ? round(o.area / v) : 0; + } + o.z = false; + o.dy += rect.y + rect.dy - y; // rounding error + rect.x += v; + rect.dx -= v; + } + } + + function treemap(d) { + var nodes = stickies || hierarchy(d), + root = nodes[0]; + root.x = 0; + root.y = 0; + root.dx = size[0]; + root.dy = size[1]; + if (stickies) hierarchy.revalue(root); + scale([root], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + + treemap.padding = function(x) { + if (!arguments.length) return padding; + + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null + ? d3_layout_treemapPadNull(node) + : d3_layout_treemapPad(node, typeof p === "number" ? [p, p, p, p] : p); + } + + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull + : (type = typeof x) === "function" ? padFunction + : type === "number" ? (x = [x, x, x, x], padConstant) + : padConstant; + return treemap; + }; + + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + + return d3_layout_hierarchyRebind(treemap, hierarchy); +}; + +function d3_layout_treemapPadNull(node) { + return {x: node.x, y: node.y, dx: node.dx, dy: node.dy}; +} + +function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], + y = node.y + padding[0], + dx = node.dx - padding[1] - padding[3], + dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { x += dx / 2; dx = 0; } + if (dy < 0) { y += dy / 2; dy = 0; } + return {x: x, y: y, dx: dx, dy: dy}; +} +})(); +(function(){d3.time = {}; + +var d3_time = Date; +d3.time.format = function(template) { + var n = template.length; + + function format(date) { + var string = [], + i = -1, + j = 0, + c, + f; + while (++i < n) { + if (template.charCodeAt(i) == 37) { + string.push( + template.substring(j, i), + (f = d3_time_formats[c = template.charAt(++i)]) + ? f(date) : c); + j = i + 1; + } + } + string.push(template.substring(j, i)); + return string.join(""); + } + + format.parse = function(string) { + var date = new d3_time(1900, 0, 1), + i = d3_time_parse(date, template, string, 0); + if (i != string.length) return null; + if (date.hour12) { + var hours = date.getHours() % 12; + date.setHours(date.hour12pm ? hours + 12 : hours); + } + delete date.hour12; + delete date.hour12pm; + return date; + }; + + format.toString = function() { + return template; + }; + + return format; +}; + +function d3_time_parse(date, template, string, j) { + var c, + p, + i = 0, + n = template.length, + m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c == 37) { + p = d3_time_parsers[template.charAt(i++)]; + if (!p || ((j = p(date, string, j)) < 0)) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; +} + +var d3_time_zfill2 = d3.format("02d"), + d3_time_zfill3 = d3.format("03d"), + d3_time_zfill4 = d3.format("04d"), + d3_time_sfill2 = d3.format("2d"); + +var d3_time_formats = { + a: function(d) { return d3_time_weekdays[d.getDay()].substring(0, 3); }, + A: function(d) { return d3_time_weekdays[d.getDay()]; }, + b: function(d) { return d3_time_months[d.getMonth()].substring(0, 3); }, + B: function(d) { return d3_time_months[d.getMonth()]; }, + c: d3.time.format("%a %b %e %H:%M:%S %Y"), + d: function(d) { return d3_time_zfill2(d.getDate()); }, + e: function(d) { return d3_time_sfill2(d.getDate()); }, + H: function(d) { return d3_time_zfill2(d.getHours()); }, + I: function(d) { return d3_time_zfill2(d.getHours() % 12 || 12); }, + j: d3_time_dayOfYear, + L: function(d) { return d3_time_zfill3(d.getMilliseconds()); }, + m: function(d) { return d3_time_zfill2(d.getMonth() + 1); }, + M: function(d) { return d3_time_zfill2(d.getMinutes()); }, + p: function(d) { return d.getHours() >= 12 ? "PM" : "AM"; }, + S: function(d) { return d3_time_zfill2(d.getSeconds()); }, + U: d3_time_weekNumberSunday, + w: function(d) { return d.getDay(); }, + W: d3_time_weekNumberMonday, + x: d3.time.format("%m/%d/%y"), + X: d3.time.format("%H:%M:%S"), + y: function(d) { return d3_time_zfill2(d.getFullYear() % 100); }, + Y: function(d) { return d3_time_zfill4(d.getFullYear() % 10000); }, + Z: d3_time_zone, + "%": function(d) { return "%"; } +}; + +var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour12, + // j: function(d, s, i) { /*TODO day of year [001,366] */ return i; }, + L: d3_time_parseMilliseconds, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + // U: function(d, s, i) { /*TODO week number (sunday) [00,53] */ return i; }, + // w: function(d, s, i) { /*TODO weekday [0,6] */ return i; }, + // W: function(d, s, i) { /*TODO week number (monday) [00,53] */ return i; }, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear + // , + // Z: function(d, s, i) { /*TODO time zone */ return i; }, + // "%": function(d, s, i) { /*TODO literal % */ return i; } +}; + +// Note: weekday is validated, but does not set the date. +function d3_time_parseWeekdayAbbrev(date, string, i) { + return string.substring(i, i += 3).toLowerCase() in d3_time_weekdayAbbrevLookup ? i : -1; +} + +var d3_time_weekdayAbbrevLookup = { + sun: 3, + mon: 3, + tue: 3, + wed: 3, + thu: 3, + fri: 3, + sat: 3 +}; + +// Note: weekday is validated, but does not set the date. +function d3_time_parseWeekday(date, string, i) { + d3_time_weekdayRe.lastIndex = 0; + var n = d3_time_weekdayRe.exec(string.substring(i, i + 10)); + return n ? i += n[0].length : -1; +} + +var d3_time_weekdayRe = /^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/ig; + +var d3_time_weekdays = [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" +]; + +function d3_time_parseMonthAbbrev(date, string, i) { + var n = d3_time_monthAbbrevLookup[string.substring(i, i += 3).toLowerCase()]; + return n == null ? -1 : (date.setMonth(n), i); +} + +var d3_time_monthAbbrevLookup = { + jan: 0, + feb: 1, + mar: 2, + apr: 3, + may: 4, + jun: 5, + jul: 6, + aug: 7, + sep: 8, + oct: 9, + nov: 10, + dec: 11 +}; + +function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.substring(i, i + 12)); + return n ? (date.setMonth(d3_time_monthLookup[n[0].toLowerCase()]), i += n[0].length) : -1; +} + +var d3_time_monthRe = /^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig; + +var d3_time_monthLookup = { + january: 0, + february: 1, + march: 2, + april: 3, + may: 4, + june: 5, + july: 6, + august: 7, + september: 8, + october: 9, + november: 10, + december: 11 +}; + +var d3_time_months = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" +]; + +function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); +} + +function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); +} + +function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); +} + +function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + return n ? (date.setFullYear(n[0]), i += n[0].length) : -1; +} + +function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setFullYear(d3_time_century() + +n[0]), i += n[0].length) : -1; +} + +function d3_time_century() { + return ~~(new Date().getFullYear() / 1000) * 1000; +} + +function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setMonth(n[0] - 1), i += n[0].length) : -1; +} + +function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setDate(+n[0]), i += n[0].length) : -1; +} + +// Note: we don't validate that the hour is in the range [0,23]. +function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setHours(+n[0]), i += n[0].length) : -1; +} + +// Note: we don't validate that the hour is in the range [1,12]. +function d3_time_parseHour12(date, string, i) { + date.hour12 = true; + return d3_time_parseHour24(date, string, i); +} + +function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setMinutes(+n[0]), i += n[0].length) : -1; +} + +function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setSeconds(+n[0]), i += n[0].length) : -1; +} + +function d3_time_parseMilliseconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 3)); + return n ? (date.setMilliseconds(+n[0]), i += n[0].length) : -1; +} + +// Note: we don't look at the next directive. +var d3_time_numberRe = /\s*\d+/; + +function d3_time_parseAmPm(date, string, i) { + var n = d3_time_amPmLookup[string.substring(i, i += 2).toLowerCase()]; + return n == null ? -1 : (date.hour12pm = n, i); +} + +var d3_time_amPmLookup = { + am: 0, + pm: 1 +}; + +function d3_time_year(d) { + return new d3_time(d.getFullYear(), 0, 1); +} + +function d3_time_daysElapsed(d0, d1) { + return ~~((d1 - d0) / 864e5 - (d1.getTimezoneOffset() - d0.getTimezoneOffset()) / 1440); +} + +function d3_time_dayOfYear(d) { + return d3_time_zfill3(1 + d3_time_daysElapsed(d3_time_year(d), d)); +} + +function d3_time_weekNumberSunday(d) { + var d0 = d3_time_year(d); + return d3_time_zfill2(~~((d3_time_daysElapsed(d0, d) + d0.getDay()) / 7)); +} + +function d3_time_weekNumberMonday(d) { + var d0 = d3_time_year(d); + return d3_time_zfill2(~~((d3_time_daysElapsed(d0, d) + (d0.getDay() + 6) % 7) / 7)); +} + +// TODO table of time zone offset names? +function d3_time_zone(d) { + var z = d.getTimezoneOffset(), + zs = z > 0 ? "-" : "+", + zh = ~~(Math.abs(z) / 60), + zm = Math.abs(z) % 60; + return zs + d3_time_zfill2(zh) + d3_time_zfill2(zm); +} +d3.time.format.utc = function(template) { + var local = d3.time.format(template); + + function format(date) { + try { + d3_time = d3_time_format_utc; + var utc = new d3_time(); + utc._ = date; + return local(utc); + } finally { + d3_time = Date; + } + } + + format.parse = function(string) { + try { + d3_time = d3_time_format_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_time = Date; + } + }; + + format.toString = local.toString; + + return format; +}; + +function d3_time_format_utc() { + this._ = new Date(Date.UTC.apply(this, arguments)); +} + +d3_time_format_utc.prototype = { + getDate: function() { return this._.getUTCDate(); }, + getDay: function() { return this._.getUTCDay(); }, + getFullYear: function() { return this._.getUTCFullYear(); }, + getHours: function() { return this._.getUTCHours(); }, + getMilliseconds: function() { return this._.getUTCMilliseconds(); }, + getMinutes: function() { return this._.getUTCMinutes(); }, + getMonth: function() { return this._.getUTCMonth(); }, + getSeconds: function() { return this._.getUTCSeconds(); }, + getTimezoneOffset: function() { return 0; }, + valueOf: function() { return this._.getTime(); }, + setDate: function(x) { this._.setUTCDate(x); }, + setDay: function(x) { this._.setUTCDay(x); }, + setFullYear: function(x) { this._.setUTCFullYear(x); }, + setHours: function(x) { this._.setUTCHours(x); }, + setMilliseconds: function(x) { this._.setUTCMilliseconds(x); }, + setMinutes: function(x) { this._.setUTCMinutes(x); }, + setMonth: function(x) { this._.setUTCMonth(x); }, + setSeconds: function(x) { this._.setUTCSeconds(x); } +}; +var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ"); + +d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso; + +function d3_time_formatIsoNative(date) { + return date.toISOString(); +} + +d3_time_formatIsoNative.parse = function(string) { + return new Date(string); +}; + +d3_time_formatIsoNative.toString = d3_time_formatIso.toString; +function d3_time_range(floor, step, number) { + return function(t0, t1, dt) { + var time = floor(t0), times = []; + if (time < t0) step(time); + if (dt > 1) { + while (time < t1) { + var date = new Date(+time); + if (!(number(date) % dt)) times.push(date); + step(time); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time); + } + return times; + }; +} +d3.time.second = function(date) { + return new Date(~~(date / 1e3) * 1e3); +}; + +d3.time.second.utc = d3.time.second; +d3.time.seconds = d3_time_range(d3.time.second, function(date) { + date.setTime(date.getTime() + 1e3); +}, function(date) { + return date.getSeconds(); +}); + +d3.time.seconds.utc = d3.time.seconds; +d3.time.minute = function(date) { + return new Date(~~(date / 6e4) * 6e4); +}; + +d3.time.minute.utc = d3.time.minute;d3.time.minutes = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) { + return date.getMinutes(); +}); + +d3.time.minutes.utc = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) { + return date.getUTCMinutes(); +}); + +function d3_time_minutesStep(date) { + date.setTime(date.getTime() + 6e4); // assumes no leap seconds +} +d3.time.hour = function(date) { + var offset = date.getTimezoneOffset() / 60; + return new Date((~~(date / 36e5 - offset) + offset) * 36e5); +}; + +d3.time.hour.utc = function(date) { + return new Date(~~(date / 36e5) * 36e5); +}; +d3.time.hours = d3_time_range(d3.time.hour, d3_time_hoursStep, function(date) { + return date.getHours(); +}); + +d3.time.hours.utc = d3_time_range(d3.time.hour.utc, d3_time_hoursStep, function(date) { + return date.getUTCHours(); +}); + +function d3_time_hoursStep(date) { + date.setTime(date.getTime() + 36e5); +} +d3.time.day = function(date) { + return new Date(date.getFullYear(), date.getMonth(), date.getDate()); +}; + +d3.time.day.utc = function(date) { + return new Date(~~(date / 864e5) * 864e5); +}; +d3.time.days = d3_time_range(d3.time.day, function(date) { + date.setDate(date.getDate() + 1); +}, function(date) { + return date.getDate() - 1; +}); + +d3.time.days.utc = d3_time_range(d3.time.day.utc, function(date) { + date.setUTCDate(date.getUTCDate() + 1); +}, function(date) { + return date.getUTCDate() - 1; +}); +d3.time.week = function(date) { + (date = d3.time.day(date)).setDate(date.getDate() - date.getDay()); + return date; +}; + +d3.time.week.utc = function(date) { + (date = d3.time.day.utc(date)).setUTCDate(date.getUTCDate() - date.getUTCDay()); + return date; +}; +d3.time.weeks = d3_time_range(d3.time.week, function(date) { + date.setDate(date.getDate() + 7); +}, function(date) { + return ~~((date - new Date(date.getFullYear(), 0, 1)) / 6048e5); +}); + +d3.time.weeks.utc = d3_time_range(d3.time.week.utc, function(date) { + date.setUTCDate(date.getUTCDate() + 7); +}, function(date) { + return ~~((date - Date.UTC(date.getUTCFullYear(), 0, 1)) / 6048e5); +}); +d3.time.month = function(date) { + return new Date(date.getFullYear(), date.getMonth(), 1); +}; + +d3.time.month.utc = function(date) { + return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1)); +}; +d3.time.months = d3_time_range(d3.time.month, function(date) { + date.setMonth(date.getMonth() + 1); +}, function(date) { + return date.getMonth(); +}); + +d3.time.months.utc = d3_time_range(d3.time.month.utc, function(date) { + date.setUTCMonth(date.getUTCMonth() + 1); +}, function(date) { + return date.getUTCMonth(); +}); +d3.time.year = function(date) { + return new Date(date.getFullYear(), 0, 1); +}; + +d3.time.year.utc = function(date) { + return new Date(Date.UTC(date.getUTCFullYear(), 0, 1)); +}; +d3.time.years = d3_time_range(d3.time.year, function(date) { + date.setFullYear(date.getFullYear() + 1); +}, function(date) { + return date.getFullYear(); +}); + +d3.time.years.utc = d3_time_range(d3.time.year.utc, function(date) { + date.setUTCFullYear(date.getUTCFullYear() + 1); +}, function(date) { + return date.getUTCFullYear(); +}); +// TODO nice +function d3_time_scale(linear, methods, format) { + + function scale(x) { + return linear(x); + } + + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + + scale.ticks = function(m, k) { + var extent = d3_time_scaleExtent(scale.domain()); + if (typeof m !== "function") { + var span = extent[1] - extent[0], + target = span / m, + i = d3.bisect(d3_time_scaleSteps, target, 1, d3_time_scaleSteps.length - 1); + if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i; + m = methods[i]; + k = m[1]; + m = m[0]; + } + return m(extent[0], extent[1], k); + }; + + scale.tickFormat = function() { + return format; + }; + + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + + // TOOD expose d3_scale_linear_rebind? + scale.range = d3.rebind(scale, linear.range); + scale.rangeRound = d3.rebind(scale, linear.rangeRound); + scale.interpolate = d3.rebind(scale, linear.interpolate); + scale.clamp = d3.rebind(scale, linear.clamp); + + return scale; +} + +// TODO expose d3_scaleExtent? +function d3_time_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; +} + +function d3_time_scaleDate(t) { + return new Date(t); +} + +function d3_time_scaleFormat(formats) { + return function(date) { + var i = formats.length - 1, f = formats[i]; + while (!f[1](date)) f = formats[--i]; + return f[0](date); + }; +} + +var d3_time_scaleSteps = [ + 1e3, // 1-second + 5e3, // 5-second + 15e3, // 15-second + 3e4, // 30-second + 6e4, // 1-minute + 3e5, // 5-minute + 9e5, // 15-minute + 18e5, // 30-minute + 36e5, // 1-hour + 108e5, // 3-hour + 216e5, // 6-hour + 432e5, // 12-hour + 864e5, // 1-day + 1728e5, // 2-day + 6048e5, // 1-week + 1728e6, // 1-month + 7776e6, // 3-month + 31536e6 // 1-year +]; + +var d3_time_scaleLocalMethods = [ + [d3.time.seconds, 1], + [d3.time.seconds, 5], + [d3.time.seconds, 15], + [d3.time.seconds, 30], + [d3.time.minutes, 1], + [d3.time.minutes, 5], + [d3.time.minutes, 15], + [d3.time.minutes, 30], + [d3.time.hours, 1], + [d3.time.hours, 3], + [d3.time.hours, 6], + [d3.time.hours, 12], + [d3.time.days, 1], + [d3.time.days, 2], + [d3.time.weeks, 1], + [d3.time.months, 1], + [d3.time.months, 3], + [d3.time.years, 1] +]; + +var d3_time_scaleLocalFormats = [ + [d3.time.format("%Y"), function(d) { return true; }], + [d3.time.format("%B"), function(d) { return d.getMonth(); }], + [d3.time.format("%b %d"), function(d) { return d.getDate() != 1; }], + [d3.time.format("%a %d"), function(d) { return d.getDay() && d.getDate() != 1; }], + [d3.time.format("%I %p"), function(d) { return d.getHours(); }], + [d3.time.format("%I:%M"), function(d) { return d.getMinutes(); }], + [d3.time.format(":%S"), function(d) { return d.getSeconds() || d.getMilliseconds(); }] +]; + +var d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats); + +d3.time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); +}; +var d3_time_scaleUTCMethods = [ + [d3.time.seconds.utc, 1], + [d3.time.seconds.utc, 5], + [d3.time.seconds.utc, 15], + [d3.time.seconds.utc, 30], + [d3.time.minutes.utc, 1], + [d3.time.minutes.utc, 5], + [d3.time.minutes.utc, 15], + [d3.time.minutes.utc, 30], + [d3.time.hours.utc, 1], + [d3.time.hours.utc, 3], + [d3.time.hours.utc, 6], + [d3.time.hours.utc, 12], + [d3.time.days.utc, 1], + [d3.time.days.utc, 2], + [d3.time.weeks.utc, 1], + [d3.time.months.utc, 1], + [d3.time.months.utc, 3], + [d3.time.years.utc, 1] +]; + +var d3_time_scaleUTCFormats = [ + [d3.time.format.utc("%Y"), function(d) { return true; }], + [d3.time.format.utc("%B"), function(d) { return d.getUTCMonth(); }], + [d3.time.format.utc("%b %d"), function(d) { return d.getUTCDate() != 1; }], + [d3.time.format.utc("%a %d"), function(d) { return d.getUTCDay() && d.getUTCDate() != 1; }], + [d3.time.format.utc("%I %p"), function(d) { return d.getUTCHours(); }], + [d3.time.format.utc("%I:%M"), function(d) { return d.getUTCMinutes(); }], + [d3.time.format.utc(":%S"), function(d) { return d.getUTCSeconds() || d.getUTCMilliseconds(); }] +]; + +var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats); + +d3.time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat); +}; +})(); +// Place your application-specific JavaScript functions and classes here +// This file is automatically included by javascript_include_tag :defaults + +$(document).ready(function(){ + + $('.alert-message.flash').slideDown('fast', function() { + $('.alert-message').delay(5000).slideUp('slow'); + }); + + // overlay + $(".module_link").overlay({ + top: 160, + mask: '#fff' + }); + +}); + + + + + +$(document).ready(function(){ + + $(".sync_help").click(function() { + $(this).parents("li").find(".help").slideDown(); + return false; + }); + + $(".sync_what_is").click(function() { + $(this).parents("li").find(".what_is").slideDown(); + return false; + }); + + $(".close").click(function() { + $(this).parent(".block-message").slideUp(); + return false; + }); + +}); +// This is a manifest file that'll be compiled into including all the files listed below. +// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically +// be included in the compiled file accessible from http://example.com/assets/application.js +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the +// the compiled file. +// +; diff --git a/public/assets/application.js.gz b/public/assets/application.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..981686a9c9f59e04a730afa48658451809ea804f GIT binary patch literal 244024 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ΜpbUDHVG$Hc^6+3f`3R$5S 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%0Dv0#dECYAz4!A~y=T>*G<znpb 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 Q9vwdVKT}v6vGbn|019dc-~a#s literal 0 HcmV?d00001 diff --git a/public/assets/autodiscover/bitbucket.png b/public/assets/autodiscover/bitbucket.png new file mode 100644 index 0000000000000000000000000000000000000000..af1b012654ab66d75a7d81eaa8113b68d7ec55d1 GIT binary patch literal 5189 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 literal 0 HcmV?d00001 diff --git a/public/assets/autodiscover/git_hub.png b/public/assets/autodiscover/git_hub.png new file mode 100644 index 0000000000000000000000000000000000000000..9d8cbf404dcfa087c3862262cb9540a4ddbdb045 GIT binary patch literal 3627 zcmV+`4%G39P)<h;3K|Lk000e1NJLTq001%o000>X1^@s6b5wmq0008+X+uL$Nkc;* zP;zf(X>4Tx0C)j~RL^S@K@|QrZmG~B2wH0nvUrdpNm;9CMbtL^5n^i$+aI<?kYqDS z)^0ZI?k2URh~(nYD&9ryp$Gqf9(wR(FG_`4MJV2@C}N=(E%D86Otz)!z|Ma2-Z$@k zZ+71R4RX>n^?(HA4aZWV5ov6ELTdbo0FI&wK{O>*+w4vx20?>!`FrQsdJlnHR>OPy zcd~b_n$otK2Za4V;76L-DzNVtaSB-y0*E}{p()372;bw_^6ZZ}PI-92wGS&j#91PI zKs7DSe@(bk%_Y-7gGe}(^>I=@oY#w#*Bu9GZf3^F5WP>3rn}7Ut74&?PWBFvy`A)a zPP5)V!Xd&78LdA?xQ(9mjMYElVd13a#D+Z_7&Y|xU=_C-srWU*6kiZcC!$nw*)9$7 zn6CX+@=AhmkT}X@VSsa5NKe;HZuq)~1$`#h6R+ZTR#D-3j}vF!)ZOnz+5)dI4jl{{ z44Mr{P!L4~VVJN`K!!XTF*LGrKO?IK8<Tr7btG!LbYeuYL3=jbJ-1P$-8}v%B5{;M zwFr{@LH;VQ$xr2Z`O93e*jD$Ht(%&<^58qg<(at}9@o>z<8w`3e3jI8lUGNUta*C8 zn(P`s>{pjD=7Kek#B;Fw@hxAK%$F&Q6vg9J^Xf~4by_hu-=A!MJ3Znq&n~srbFGPs zH&&aMXZ>nO`|hf|ljc?VPhR!${AbO?W8x_>CU%PFA&Hm8F7cAsOREdwU~R_;ot1_u z(ruCYB-LPGn!NQdT|ZlRy+(fw^-+`=%+gee_kY4FWHg<*4sZI8+sFJD<oAl_pC|$^ zY~aY5x@}W&?+~G7rEYVs0vEs0eekw!YomTR`~+A$s}`+NHJ>270UUORdLHO0nA4V) z%{fwsET5CQ>B?eK%uw4yQc~9?*JVo<vzb+5>2}ze(;aRcp*ceL#HUJSllrgm5wQKR zQu+C;QrUh^8rFfA`ftFz{YAidi-`aL010qNS#tmY3ljhU3ljkVnw%H_01D$tL_t(o z3Eh}^aL(5n$A8J2RT@cDB4`%7G{n9pE~3`ZOEv1YD7UJ&<rb5nYPrNdMMt=5uC-;x zT8a|GZOf>Nj8I}}?IB_pOCp=R`Q6X=$eX4!ZU4VLGbiVHo^#Igd-mtNakFjP`ZEmo zKZ6p|;SUvYD<3*ovu4c%(93Pxwmq_A$BrJNX>8rP)lvCea&oe}udnZNXji*;@4oNq z)vNtD=4KB6vX-O2y>Qo|oflqsp(pS$=K1yO*Uy3!Dmu7}pU~$+q4j%{6Q1Rv=Ucsc z^}XPVLwm!94R@f&SH72#kzvk?78Dees&ntXH_E<q=gxj;Rm#u0SHAOmFn2w)hw%mg zmxveqozVJ<K4ZoV@o^LEn!oahG-b%bE_xYEG)la@ylx4oU%$T9s#U8Hz$oFa0qvO! ze)jBHfnbNj!*X|b_W(5f@Lq)_&6oI&R@XhP<+wTTa5#z~6^ZWS<E?W}!7so3vfy7O zw@Y9#kQFqfc^SC&^dV{QEGsLUiB}fSo;~|^L`1}H_WsM>-<X^G^yxF_?Afzzpjiqn ze}8`y8l|PB7WX8KruFdQLwALuV10;Draz#f8ClBlQk}uGo?10ZOP%tJQ7SPp5pTbz zy<d#*oR3xECJuRt_6M^bdnQC0Hf*>9X7-dRQ|#Q_++D6ak&%&xK4#1qJ3l{vFLYnm zp4Kf}wm2%|mEa0FL}PSe=8<#ug$oyopmnWu*2q{MX2vpxz=i0LkdTFefq}b#H&m@! z^`ES-GLt7vm@pbkj{siBoH1w4oSr1|MBr?u{n~4<*)Yt1|NZyp63dOFqocQrK5*bb zd-?L^SKGB~w+Vc0`}XaJBZ#+zLD~M$Hq@(EZ^hcRYX^(Q2qrJ)vhEl=cI-P7Cr%s# z{HR*BYW9j1D~cvfnxs5kkEiBMo;<lpWu;t7v?3gS=8(9Vsms7mgn#<!r+Hs~`Q>%N zZ@>Mvedy4kTvn5WQBhIKBLgQTCE0iH-rd!+XHSKmjj$E`gd?PQZAAd(*d)>7<Kyk4 zM~~)0YXlyMmz9h5vSrH(sg6g19|&hE+$#9>?c4X-v17-Exs)++iO}=&^70x{TCFu} z)|7nw@yFK)6$$9ywQE<aO`A4e<w;vWPN*!F#>B*IW<TqvpMG*f7|(Iz#ubwA#h#v? zPR^Lv&dSQN5)u-uY15`zO`0^ZZr!?NasKtomoFy|8#c@&uAiTuh4+2nr8|Wl9v-=@ zR+TDM92A%;fD&HA4UbsEhYvT%?%lh?$;*F(#2SJ$Vo2!HRjXEk+FP+u4ER2#y=2J} z(Ke4BJ$jMwH{X2IMwm=!&B4DA4L92enGP)u1B5qg*35XMM~@zMW@ct?VPWCqrcImb zeyO~&Z{NN<l<=M4`ThI%x6hn8bCbJ~;C^`c9IK5iPY_lfxhH(vwrw_i_N-gC?p^S+ zqKzLv-oAJ5-g@p<G(=^;152}5sl;?<?b@|X<?!*5v8)_ieL+C^@M2Yo%@>a4EE4iD z;9=tT`qQURWf)Vc>(r@}36Hs_PoI|cp2{nDsw%L`x2hwH@rI(q1~&v?sxS2$8dD{g z66}*Qbm-8PRL@M&@QCGfI^zVJ&|*y&g0|MonKOHntkZLHayp0>78a%@k7>?I`|{xm z2dku{#Cr1NiIfY_9s-ynIt$&DObE&&DQ^+RZuA;oK*N);6;oqO?Yjo0yW(SbL!oHO zIL1=$T7<E_<t<nmTg2%UthgpMH8q@>2uaiW<daV<DveyLeE5rKFxR3Xz#!h<-WJ6| zA2Ncvtg5qo$m9!q(#}|0iZXTHR<FUTq8Foh9=TM}SixQ1QO*c9iWL+T80%sT6|3jQ zVAG=3e~XqI1#7(Z)?3!bjT^1Og9qnOj>kbd*PuZIf9?I^`HCd8?%%&}J$m#=A2LEy zxnzCUS(jC{8kmH31_uW#EbSkE{LwmoJVV}zfOj-Ph5+lXnsLP)^2jIxtpf%!(L&@X zq#x?M@knTBs2^}s5vV@a^y$-2pul|4W6Uh36%Y_mVV!bInH;Ge9Bl2`v&VYy;6XI8 zzm9&gyIZ$zesu8PQbb<Rv&F7kx9%lC-y1h>_@|^S@!Ys^(`Vowgmev^VaU?vybubC zlj@gJqehJ&@+=UN`j;Ddt={rnk(XY2spS0m^MxYZzJ1#|aNxjw4t<NjrWA@^TwE+= z74ue6QIWhOs~-pq2uQkg>5_Hj$`x61AXTXsmB+*~aV^)oLQ4s5ge)v7^5e~R4*WQC zCSFl~sZv@P(88k@p7G+Fx)UTion1z6Ay|Wc<VJP84Y*pk@d(}c8JcB@uxZmK%`Si$ zB>Jh|y?d{wtL~=i9HE?Mg2!-H-q71@PvgdoC(?h$VvLY@`bn)?weFKM=`^f%ojZ4q zpwhUkn%k*Ur*E4zi|N^bhbJSS`*TUyVm$cw4jnqwr#C%4b?Vg5C|0vkqefxyxzeRe zm+NtHaox$CJPdq^T&{}@RhehV%gOLjDaJok7Lt82U>+Ck{sRWsdX&-JOnh>o^vIDT z$(-{VHEL8GJx0%ow&amQ@kQNVv}jS->eZ_!A3uJ43f5FP^h`@ji$(cCRJ4{nU4nG( z`|rOGqR+$;?*lpis%V-t&4d#tP7DR^v~uOjR@=94?~K=9fnU^u1q)&bw^!KffPtgn z*^%fOxpU{vU%k7GN6>OCA6Hkm5c~kI)RieIDGgzi1QUP4Z47zfNKa4q88BeL1DcpG zB{ZIzUT@Z{S)0g>b2o3^3?;;Zc{YUdv4DjO7y3~ETF|ua@!@x{v@E-YWKH8!<3^4g z*@^w`D0~+Kwp_Y&X)Z<Q$o1>jn-E@AQ6`OC3c+wK`Azc>&+LR}b6y$M=pVrt|CQ|Q z>`pZ5b@0nFibx3!++0HSTF%@`%=dv*1{0N5M`2-pG)>8iSbYHAh|*kq?b@}?JR4po zy!;j~UVM}=`uc|-e&~i5#*mcR<VbUbiR{?1V_A53cm({uW_HI&oj?5W!}LLe202@_ zXwl<?4?Z|Nb?Q{Nix)2@VVs-f+0|XUb`3|Ng4V5D7o%Jh^0emX!@a|Y4>zVc-$3bW z(91A-ZRE`|H5lf4#i}xRkrxxN+BPoy2T}leVeyc&`}FCzijw>V6)l{%Svx+GjZ%9F ziIcpQ!srEMd}s>~$_!|M{KTz=Lhd|g8lYhC<HwJcS1KsJ7$TJQAeAi@%R1n74&hSq z>U~PH-f}ru`y$EiM*nd3>eVX)gN9M9nqUxb_C3D)?z>wUuK^0Rhu8DpAqXB%d0oKA zT8iizgpqmhVYOu>+jd;~S3)2X!F<2^>MIWfE%@l8j~?*>=jWe)9!W_(jR(}1n#RV) zKIU9Lp;H4TYf|Fxju<iGUz|Jt%{SjHpfA-T5BKp_YEH=3;aQZ;litBz1U;q%FXm91 ziwM;h3E#VfYdYcfDxqJU^SLKao-8D+yy<mn5z|ewDd89)BybXC?GPWk!n2)6>g8kX zjc4jP;yruz?4h`F8n{Yj?Ed}xmjaJtszkOqc<|t&w2ZWW@Zd{CnIX_4`}OPBn139M zLWn8k#JkYc;r-^#o0o(V$q3c#jW^yHhIc<BR}+Q|8PY{XgYuiWckkX9k~)ENDlj4Q x=g*HOHxrRFmgty@fhIt&&3x_=82{go{{hv5Z!5RlVJ!dv002ovPDHLkV1gguIT8Q> literal 0 HcmV?d00001 diff --git a/public/assets/background.png b/public/assets/background.png new file mode 100644 index 0000000000000000000000000000000000000000..b13d3e7625bf775ab5277fee644e9ffedf207a28 GIT binary patch literal 8715 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 literal 0 HcmV?d00001 diff --git a/public/assets/bitbucket_info_logo.png b/public/assets/bitbucket_info_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3256b753373af1abc956e763c468f6389908b36a GIT binary patch literal 9922 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 AzyJUM literal 0 HcmV?d00001 diff --git a/public/assets/close.png b/public/assets/close.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d1849e44c3a7f7adcb7250fccf1a57bad0459e GIT binary patch literal 2154 zcmV-w2$lDVP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00009a7bBm000XU z000XU0RWnu7ytkW97#k$R9Fe6SPM{;RTMt>KwUvGD^!dWA|6>pF_wUYo1#W$G?|Uf zsG}K^L#P8uPEMucOyDCiEio;5R8CqsI%oldjfya$WdbXV2B?WZ@hnAYVd;E#|Fit; zE<Wnae4P6@_ulV6=iJBQ(%s!ncPcI{I$J4=)^(9gsx+@5b-j(#vdf*=YDBQGJ^Ja| zWC1J=STwCK)9uLJl8_w{EDrS7LFz(O76+LwJ4hcictJbJ0EZTC(1k`wK*JUoXs3lB zH`_eZ$z{N-LF&*TYeDp#k#g{m6R!vfSDpwM#2Bn;AqP?rd^J1+BL8UUV0}|p2PxPn zV)mqZc}Pb_Jc9)RkQl-+0B&w>L$_?%5)~2>@}#%7chI0ggWS38{>H|}YO~qge(~bP zvg5~(mn0`ApJMxV4L4W=APB-BhG<xNkwPd1=x5+-;fbLPUq%RH8e^W1k56)GX=!~+ zOG_svxt-M2)pg|L<ecHLag3K3k&Fq92N?K3d@Md*MT+OM7Pvw3M(-JT#fRYuWM*bA zh>eY%?C$Ok8#-;Oprb$kN+-)q)OPI}ovs{8&xX2?yTL${f+x_-@JZz5c^^!vwzjr? z)v8sWXJ=;@bG4rFC*v{$VU^@p-)GAqb{!UicMwL9L3kcxjH#%oNC^lCP_q}GEu&3Y zd+4WM;LKag8!wKf_*Y+6#M;~2Evr|r&fdIva~_YXWmGaGgo+dxDMDKA2q7da-098; zFDNK@$7nPLSS%JrBqj44H{ZGVj&7ihiSZQq<m1%Y*-7#7@t^J3vEvBOaFTJ20aD6S z%*Uc9B)dt-c%-MNr^dy_Me_h!mYPOi{s>S1H_7;5Ce3;#f|{F~JN^CrSMmnP<(b+T z*BRJ_YWE2tcn5^w9VD{{V`P1OeSxQ^r|ZXG@1r$4f90nCCr8p3Qn0@taSAjA1qD6F zvo$gPW?&~`_jUEN3zy{2kYmS=EdrU!noAC3W=wLWPv4os<NKC%OG9bi^pU*`-re>Y zA@qTPfg_hMUmnDrveS^eaEkR0YuWC$Gsn-*ZxReX-t#S#O&;}Wqn+<1)7<G(DQj(v ztzBP8O?aB#oD)kQB_&YAW5`#l6qmcwcLhgPW%1(0bGU$r;D~`EKuGN@)=DI7u8E0> zfulx^3b<U~K;PsyOTW@()x+tNZ@yRMn8{(3ZAWT7lX*RMmg@iVP%agg;^TW{&ky;k z;^pOq^T;V7cn4&J&_JWn_&7!tpDl-SkdzD)ZOHsuwLhmL1u}~@GP@5PqNKDUhp|V` zxKLeV6O9-#!h7!AxntP?-T`aC<{>?){=UAxf!s-Dzg0sy6?;-8*-Ld~4m%|y6Cp1l z(b3WVtb~wigI7evOa1v?8iB^9R_w~YMNi6itd}y}eGp_$^gW1s{%C1Y{i8>ZzLyJF z7Y<R-6H-Rn9~Jm6i_<5I-i|y+-qWjougCCSb>|hV?OgPP)WeC*EH`i7#MwX|Za9+q zmQ5?dY5wywl);(G^GeT(45y4WIAZ#i;o7`yZEb(Cm8^>a-9iYB>V3kx>+033DtY`K zM9w)EkXiVGb>XiL=h4(RGif8=agf`Q^7FRNTU1n3#pddSX05_uPY9jnl9H0MtZCu| zoL!Exep#4}Ojgd1l(6BbGWu|LIi+S;cb}D%<2e=Vca4y59EG;6Ten`|fkFrlQ3)k3 zLxUoel$2D`+S+<0_~C~rGDH!Ft&$18f3XL`R5|0|542*_ajnOy)@Pb*q^5+1P<U|9 z!3c|3W27?VD44i_>q1?utg(JKwj2bjVk8K`=mrlc_weu-yKLSZI(DY#v@Wk2MvK;@ z(Dbm0^g;SBZ0aZ=W$wzNay~XroK^cn83p;Y+Hx*GKR<^XajBXa;w9Vj1EW9=C#M_3 zBO)TgCpS0ufWcsJiRYVs&;PjTc|Ijyyg!p>M@7)3OP8*X8#it$H{x<dV&lfQUank# zz(W!;xbQ|{Vd2$Nr%oa1DCMm<ni4AMhL*dRx90~cGF@F=v~JzHY@R`$9TGB?I<ksA zA-M8-R8-W)3l}c5xfzB~`nyRK6JfY}COqQ3H$rITf_ZA}zJ2?OcJ11QlT*ARA%jDD zy{SPCp~H=j(BTkzg5gzNU7b39{CGDrzxZ~1caX9U<x$n|y`L6r=O9l#YNi#hy+YHT z3RQiTm6d<;)8lQf)G<mKcn85lDu--OSZ>fi@<9qu0+4!`aX(|sxpU{%;vK_fYUC?r zZ~jk|TU<hgd|B$no1d(qf&MD#XFn580|yMCj*gCQe&8QjvSbND)u5q<HORn2*ihip z^AiYV7I+ECjYmG-)B%hz2Hq2kwr}5_cjd~Jb~RG>r|S3GZc|lFcSBRNuGLyRfBt-P zOiWA)k4Ma=F+v#Q8Hhik0SBm;E05?288?cT@X0U&Id}@d%ML&o4coSDn`|^1pXE2r zBg2Lb8^dij;YlqG4Gk4FH8rJs_wLP0OH0GA0^|$Ag9knG6P}T+-s^{=V#b{|(Vny* zB{>C;2{D8bfCmAz4@gKz@L^(uO(s+0{{8zA5`+PZVsQXlTA)v2wX@($?pNYK2(5Oc zKn|n;xEN4Gw6b^;c9>X>4=gMYkD!izfx|x>oD$*zLJCEAO7Afc06<VrMo$O}%E=Ec z5W;YZ%`4n*lRgQFh2||(g_LMLQM8H3qT&UqLn{(}k--GFB_yjTV`it-p#`c-YlpHe gtS{e+gl;VT3(py%kik<4s{jB107*qoM6N<$f_7*9*#H0l literal 0 HcmV?d00001 diff --git a/public/assets/coder_wall_info_logo.png b/public/assets/coder_wall_info_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d39424588f870e373c8a5a612ffb821eef73936 GIT binary patch literal 5120 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 literal 0 HcmV?d00001 diff --git a/public/assets/css3buttons/icons.png b/public/assets/css3buttons/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..1c76039d948d1e884436b7c5f297cc3cafe99854 GIT binary patch literal 3948 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 GLSTX(2v3Xv literal 0 HcmV?d00001 diff --git a/public/assets/default_company.png b/public/assets/default_company.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ab09c1df5103809f1359756e3795a67ccfb9fc GIT binary patch literal 1702 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 literal 0 HcmV?d00001 diff --git a/public/assets/default_talk.png b/public/assets/default_talk.png new file mode 100644 index 0000000000000000000000000000000000000000..956c6a017d7d6d6f5f3e711df6634a7a6fd34504 GIT binary patch literal 4095 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 literal 0 HcmV?d00001 diff --git a/public/assets/experience.png b/public/assets/experience.png new file mode 100644 index 0000000000000000000000000000000000000000..c00b3bb9adbee0a9e591e90478a9726427f37176 GIT binary patch literal 1625 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 Xuxxq(Te|vr00000NkvXXu0mjfJjm-s literal 0 HcmV?d00001 diff --git a/public/assets/git_hub_info_logo.png b/public/assets/git_hub_info_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e0596e58777af8b7b0a8f8a68377406a024c7d01 GIT binary patch literal 3234 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 UaC6qT3jhEB07*qoM6N<$f~+<tB>(^b literal 0 HcmV?d00001 diff --git a/public/assets/homepage/home_services.png b/public/assets/homepage/home_services.png new file mode 100644 index 0000000000000000000000000000000000000000..5f964709eb9ac0421a0696aa0cbbeadf04e210b0 GIT binary patch literal 41038 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/codemav_icon.png b/public/assets/icons/codemav_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7f11449eae68229ec0f9956e19b4afc57e99e5b1 GIT binary patch literal 4440 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/git_hub_icon.png b/public/assets/icons/git_hub_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce738a7b09fc4c4725e99261626379320afd816 GIT binary patch literal 5551 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/github-logo.png b/public/assets/icons/github-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8075d5d0ace6add9fd868d5023ea3631467695ab GIT binary patch literal 47650 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%0AGh|zV5rrp@>P6BPHs{OOA}9@QPA1d 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/github_followers_icon.png b/public/assets/icons/github_followers_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..35b74b6a863cff930dd5fe99b0f9458090058568 GIT binary patch literal 1131 zcmV-x1eE)UP)<h;3K|Lk000e1NJLTq000yK000sQ1^@s6ThRUx00009a7bBm000XU z000XU0RWnu7ytkS9Z5t%R5%f3Q*BIJWfVT|y|=d?x6qFj3X~SswWyWh+%%cEDNap{ zW@MU7`G|u=(e20L78YX+D)TGGKQsO@nThg4M>c;g5|lWEghY_75vNoGbqa&RSVv1Q zgRZ^sdd^*oES}`tbKdv9&v~Eo@dD=@NIN?_g`971ZEfvtY;61#*8$YRcszdh)YR0y z=og^|o0^(FX=!QcM&F6L84D8RWPE&_ksFCbDtmi-UszaJVBv81fXQS^B@&5J1d0U( z1@Ww=nWK}FWkp3r9M66n3WXN)Si)}vqy-5cNSn>(B)X1?i3zX1`QOKucO^+$!OQ-K z*V851D0<2r9UVulib5Ofs9H|f(2~+x_eD|Q4Gj&a37b=<$H^`7^)uDh)(#_x0%ijx zP9E}=@bY3O_qZIqs@%=1eZ^dsL<-D<!QeH-S5l0DfdPqZo-(l^F{DzdLUKMkeuy1@ z=|#vSZ@_BeI&da{QI^5%@x#T@QTD`<w;-8P&CzH?2?Rn=S64@ufIuG<scUf1gw~v1 z<7!QX8xFtP48Qh_z>QfIY~`h3w<%!W;)dbwet2+u4YVD29MqeuX$)o{JYi8mnx39M zgkw>Cm(gg5#bz@1@7S?&dGI@c^et{yENdEH7qlgnWmFX;!2(P+tb-_MtE*|*<tj?W zu3l}Pnwc@6WUN+eQeccpq9|Tb6s0elT|0a3%vbG#qjc=l>93`#$3miayN5|wc8kFX zvW3C!raEE#w=sEmA_i@3FP|#&dcVMKe~SUb7)QI^8RCl4)7N+3NO<&>_G9heH$UI7 zdz%%Waa!c9>D84&s*PlnHN1FcES8GaJiPDoH%}Ztrvo>Cs570p4lQy1^s$rg{<Z($ zvqQM=T1fM!6q|Dq&+A<$+j``+j|j6#Mf8RIOCyH*3(0|uXuW$LeWd?pChb!b$>nRa zG0|?bFAIX8;RKZIdSF-2g$w=lR4T;MOzK07mIP<v_6BWI;9IECw?FvsIe&@gy<)p_ z$hF0lG#TY(tWVnEu*XGU6oeSknB=E~wn*-vPKWXXuBX&>{`~76Uxn%oRLy(+fqA#D zGWBGA{UDwTAp=TPKeyTD2b-c3LmF_)*?8u}AEMmy!^otU`?eaGMX|~ScF^Xg;U9xz z@6kV(ehMb}&wCQ-_jfu>LkMJefu8zCm%qUq58^u=RH3C;fv!1h#o{k<p1Lx>ZgphA z?yrEq2QG74RkdIbnuNl8tg!7mOukVJJCVflNlgD8B(%XWlDnZwhLMYL7|Jl%YpiiG zu((7)22inb&WGy2?gl6>1CZx<%CE35DHtkXusa#jCJLoZKTMa_VBe(~t#&rf{MtIW x1qL$KD(NU>v;I={`+k$~BR*~9p-UbI{{n#87!4?Fy%qof002ovPDHLkV1f%^AUps7 literal 0 HcmV?d00001 diff --git a/public/assets/icons/logo_twitter_withbird_1000_allblue.png b/public/assets/icons/logo_twitter_withbird_1000_allblue.png new file mode 100644 index 0000000000000000000000000000000000000000..9b62808576e02f3e827c3cdf1b672aec5d838385 GIT binary patch literal 10421 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 literal 0 HcmV?d00001 diff --git a/public/assets/icons/twitter_logo.acorn b/public/assets/icons/twitter_logo.acorn new file mode 100644 index 0000000000000000000000000000000000000000..d66a8e7fa71fd8329440663cb955d39e2cceb59d GIT binary patch literal 20480 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%0AEr;5#lr7sYt^dlXPMe@38lcR*WiN1C>i*- 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 Q_pLVY*PFlp`2YWZ0VN`NZ2$lO literal 0 HcmV?d00001 diff --git a/public/assets/icons/twitter_logo.png b/public/assets/icons/twitter_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa60ed1ccf8ee30666e735f005d2fc9e69ffd1d GIT binary patch literal 3566 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 literal 0 HcmV?d00001 diff --git a/public/assets/linkedin_info_logo.png b/public/assets/linkedin_info_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..da044489b9a0be8de62c9f4788923b73e46f0f3b GIT binary patch literal 4730 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 IM6N<$f*Xx2Y5)KL literal 0 HcmV?d00001 diff --git a/public/assets/location_pin.png b/public/assets/location_pin.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9819bc6664966d38d445f17fe8ccda1b82633c GIT binary patch literal 444 zcmV;t0Ym<YP)<h;3K|Lk000e1NJLTq000jF000vR1^@s6Pr_HK0004lNkl<ZILnok zv5ta35Qcpm3k#u8V~iLrEVTCxd;(&Ojl{yv2e7lX(byXZls<(KdJt4JG5PQQP1rjQ z<s!*s*_rufW@i=(VHo23DSRr|>ou(if&iZ9VK$qg)9IjCETYk9U^E)NOdwyPD1vR< zXti1>m&>SBDyY?JVpS9c^?DtqX~Oq?q+o)s>k5$0%(mHV@O(b8Ua!TTdImTik6Cy! znFt3>(}Y|u7m<ZF?isjRtztYLBaUN8n1}CnyJ$9>Xt&!U!)mp{`FzH5xfGeHr=5O} z$KwZP$7x`6I?-8GRg_94u_i%j=R2#BFuOb)4kes8G05+rT<OP3CCu~fc01|xPH5k5 zx9KzU3@l|Z805mVv&!URrRID%9NuQ9-f<iOXD&(7xaoA73BbLs>$2RJFy(YQq1WrB z;C{a^uI>GPe+_e{Tp4}8-={ikS(cn_Ze|KI%;$3fE*6VSxw&vsiD4MH-EMC`*<6?v mBp2c%_&?!fKKgU~)qMdy?+0U9!zn@l0000<MNUMnLSTX_WyxRw literal 0 HcmV?d00001 diff --git a/public/assets/main_code_mav_icon.png b/public/assets/main_code_mav_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..961370419853467732793826b51a3f42fc806ec6 GIT binary patch literal 10904 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 literal 0 HcmV?d00001 diff --git a/public/assets/main_code_mav_logo.png b/public/assets/main_code_mav_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..046b4d3adb924aeca07f6fb7b0fe1bc6b2d80a11 GIT binary patch literal 6278 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 literal 0 HcmV?d00001 diff --git a/public/assets/overlay/close.png b/public/assets/overlay/close.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d1849e44c3a7f7adcb7250fccf1a57bad0459e GIT binary patch literal 2154 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 literal 0 HcmV?d00001 diff --git a/public/assets/overlay/white.png b/public/assets/overlay/white.png new file mode 100644 index 0000000000000000000000000000000000000000..bcba9c6f679ad1ac19435b681088fa3d60b41591 GIT binary patch literal 4233 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 MciH1y=M;YG-z+yT-T(jq literal 0 HcmV?d00001 diff --git a/public/assets/silver_badge.png b/public/assets/silver_badge.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1362073b3e1f069bad8c0ac0f6b54a47d157a2 GIT binary patch literal 862 zcmV-k1EKthP)<h;3K|Lk000e1NJLTq001oj001Zm1^@s6YS(iq0009eNkl<ZSi{ws zJ!>*S5Xb#iLK^)5h7b^&SV$U4lTNI}!X~|fU}s^G#!ir=3pQfoD@IX4@jV*f8ehP9 z_%B>o&%5*1yFB59f#q&@=6AERGrOyeEcmk-8GJk*X|vhTWHO;{w@b}tlWMgZl}aTh zXyX~)p%40E%%4DSw_66$YPG0XED8z6U@Ua}7wE&`zzlwVehS0N1v;P$I)4p%y<StN z(^2&vLZIL8(`YneFc7ry4DZxt1v;VIbm;kfPW5{I#8|mpW-!y~R7fxeV|iWB4I8FG ze|>#XwOT#%jwq~L<g*4Fuw@t;U(W->L%m+lFt8-h#d{sL^myE+6~lZ;Kq2DOEMQ5X zlXnbkUW##>T9)9a58n6<U>=<JIBaWW6-8*Qd_LYpLn52a(%ajcaH#M$!Jr!&NuSTd zqKj@k9@E3a0~55bU7TQ0D?m0aFJsC?r#h8Nk=<@*^7{HJJf05|HE-MGdkMY>h~{BT zvCHN9fks<&Ex;yUw3PNLC(zi?@Np&TrD!zz11w2A9v9ZbGk{4Gnhy<prHCP<DyP$V z290O!c3VgnKif(nastgyjaF!2%0E6nD49%BC=?>E*Lw!b%gxOV>k|%#*_d1|N5kPz zSBRjk35~t4)LAVSBaw(EpoqM@yr?=w;sBE-G&b#0XYA0F6r#*NK0X=-_WS*`SS%E6 zz_!EzCQWFZHuzXlQix3rz>$Zq1@`%T3>dnUZ18IfOopK)aJ+ZB-NL{gkB5y{0~UtX z6CRSxW-}TL26TISs~h<4?vCljSS{T`;h|?C%E8m=v~K83CUX&3cp>UddA!78G2PIK zL_)YKUQBt{6c^-az0gRPrWcoM$~aP&Ug+oNXY<SWH5;b;`}?zW_Wu6P1Z{cdFnz-$ zx;4dq86_G(Pft%&C=}R<W3^f_K|7z%vv=s@a5&80nu;C*DwPTagF%*-_WQkJg<CF{ z>>c_B0s(3?8s;AYM2=gij8Odj{e97c_@Lcxr<(E%9k(odu(jkBf@LpjEPE|x*$YU^ oUiDh`Qr)tDUs(E&qQCzA1CdxHs4&QnHvj+t07*qoM6N<$g8iA0f&c&j literal 0 HcmV?d00001 diff --git a/public/assets/slide_share_info_logo.png b/public/assets/slide_share_info_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..99ec01d0f7d00bab938278b9c241a8e01920784b GIT binary patch literal 11087 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 V`^0QC=Mn$_002ovPDHLkV1n40de;B| literal 0 HcmV?d00001 diff --git a/public/assets/speaker_rate_find_id.png b/public/assets/speaker_rate_find_id.png new file mode 100644 index 0000000000000000000000000000000000000000..ebbf01be002454f6b12c6555c2d2de885513d06f GIT binary patch literal 10813 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 azjPHKdK_f-bAf3UKt@7QyjIls*Z%=2$mB5q literal 0 HcmV?d00001 diff --git a/public/assets/speaker_rate_info_logo.png b/public/assets/speaker_rate_info_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8785067e0ee5dd3caaf974e4793827f3ae8a25f7 GIT binary patch literal 8355 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 literal 0 HcmV?d00001 diff --git a/public/assets/stack_over_flow_info_logo.png b/public/assets/stack_over_flow_info_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c61c043eafb9a054bee0d5953200c7623302c1b8 GIT binary patch literal 2397 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 P00000NkvXXu0mjfv~OW^ literal 0 HcmV?d00001 diff --git a/public/assets/stack_overflow_find_id.png b/public/assets/stack_overflow_find_id.png new file mode 100644 index 0000000000000000000000000000000000000000..b6643514449a72ee025d4c1ca4b654e73982f092 GIT binary patch literal 12188 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	yP$W$6Cq=vZ^GV$k3~$t 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 literal 0 HcmV?d00001 diff --git a/public/assets/stack_overflow_points_icon.png b/public/assets/stack_overflow_points_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..73ba9ae0b65277bae22e13f7fe864a817315081d GIT binary patch literal 1063 zcmV+?1laqDP)<h;3K|Lk000e1NJLTq000~S001Be1^@s60ks%H000B-Nkl<ZNXNaG zOKcle6oyBzWyc-~l`R61MI|;xY*<tXHI-lmRER(q1!_BXjN>@A6SXC6OcMgFs*<!O zwrSePRno+X?IbvUHTBrB{EBDB@7NtX4@FsI{c~s1L|CLDe&EGf%(-*Vcg}y$xnom% zdwbZ~*}=xfMoWwmfUSaw!0qkr)&e&-H(LvAN}y5!>y9DhOdTjQ^#2bm=NY7WUI+Uf zg;H?3$-rU?rI3+Sm8tTl2j2(#HHGzsTTKL(i^%=i4pt!q)>o}%jbDMiK%wwZ+C*Tb zjKZ8k1akcp_@wJ_tuS{3%oh}Lx6fmPFEvrpQWhEG2Vf->GQYQp&w{@gcnr3KLh9Pv zs1(>nfR%qY39}6D3ME#Wx5@T>TnL<;RNh4$+o{I_D-|9gs}!NfGVleiYOSzr*q2sM zq>arGxhqKZodSFD<(-;HB#sB>lU~^MuVI>GzV!2ZNP0$5CNp=ip0k_<dznJ^_M4=8 zIb`pADxPCu_WF_WqS5H_z;ZDM#%qN8w+}I+q+nA~@Q$`49h!PEe^I0iuY&CqAU_~) zRe|}E$oxotbi8u;WKF}9!Hzfv;JEq*rbzI4-7BCczeh3868TJENiwNHB4v06CDJ_Q z)asFOglqJrz+#ROO*orFUnY!a6BjYBr9`k};4MU*1{7R_1hP{9UCNi%;V?;I{pB2% zt^J62CXh+4;5qS&XB&0m>HYI~LYl@kat3@c-`M3{%yXC>`xd6YHjHcDfl1efM~1Vo z-TMaKscVSSHsqKfVhh8_M4XL%Ez;@zJMwuk4KC&e?Ys-8S%S%%AH&>#8h`Y@3$y+- zCP@PR*_)^cits!cp-SyQlgWZeBucu87dxtICi!(RVFzgY2o^0Q0mDaFb&en$iNkDp zfOtGnJ5VZ9fTn{8`4{lumJZXVVa!k7#nKZC{EO4Xzl8WI4JJw>8nBa@%p=J#xO7PZ zx7%Aguv7jc{5~HX)=^x&{0V-Np2L8wU9{_+?YN=%3`5<Y<5yh=?i-X?i$xG13CcRV z;Pv|Is8A}$%E~ijxiwOO3jwzc9{U6qtYet5jKF$t01xl<VSGpq^RNO;A_9-c2f0F3 zA5bEZi<0tunViWQ){@K%V~KPu7$yZKnM5oSMl4J&YmS3g01{>D0?Oq|vBF?5gzoNM z^z>*CO`{P^2TiXYT5UhHx+_>*{0lyxABuV_JlGfr&`_(Zf&VnMS}P{xaxFIw6waiU zK^7Eg2sk!o#N3?y#AY;(i~EF1YX+)R8Yq=&(Ym_2|I-fM754f4PfrHi+S+REFYn#m h-PQtyziO?7{tY5=FO;Wm#6JK4002ovPDHLkV1l-w@)ZC8 literal 0 HcmV?d00001 diff --git a/public/assets/syncable/bitbucket_logo.png b/public/assets/syncable/bitbucket_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8f78e904ccdfc14963c3c88e255b0a2b15a1b2 GIT binary patch literal 9037 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 literal 0 HcmV?d00001 diff --git a/public/assets/syncable/coder_wall_logo.png b/public/assets/syncable/coder_wall_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..604d87db393473e526861b02eb6057bc677c0c96 GIT binary patch literal 5369 zcmV<V6b9>wP)<h;3K|Lk000e1NJLTq003+N001Zm1^@s68?PU?00009a7bBm000XU z000XU0RWnu7ytkit4TybRCodHTj_ID*Ofmlb+?vo?P@Iu?SKFYFpJm>wjhQ9I~jW_ z8N13!W;|1sFEiy2{txE=n5oQ%sZ=uMFdjQ$vB5YKaM%|M5Qs&9_I=-4QcLsuo%`<V z*ODN3D)T{AdXD<Od+xbsKj)tN?D!TI7G(8VITlD-IijvgN(-zyY=y<as>4<tw!$p1 z!o*$8uvLexFbk|OaaS{Jg*nUzdHJ{ctPl(MRxi#g#8Zx#t0i$|`AdAi`1q46uP!sI zCq8BQFzP2QXZ|V#UWEE0_^Z(TJ~&JGH~?3d??G${t>yRfqaRWKl8-+a4DOB-e3>Mc zwH3qp25F}*k(bf1NH4*m0o@109X2lLFZN<(u;X%sU$$oPUxM@hpo>2mosKR3{!0<` zQHItd3z}3`yrnp1%W||V1&68$yX73=D(G4Cyt@0nFRmaCe-55KKGLL6uc8b0E~e+D z<&aK5;lzVO67J*jbRfig89vbxh#S$J-B7_Nel#7)i?Lk(3-b=Hh4@_AEX0&XOVW&9 zo)!=8#-g)=S1Y$2b?0Jld&rWrrDaIPX?f6=yt+-*tLVbrE)zq_;i40}^h&xYExW_e ziWBj``Kpd}a6C&!n79NB(7|s6Ou%yOsxMw6`hcelK-@cecqKT%f!l$KE?!s878sXJ zw`gK`XuF%Kpvq-8S`N#ME=^~T-LhDhWwxqp%fJoDta@?Wcb8{;vsV{|x^g&j#Zec% zxm4A$ey)0A*C4w%?u!F=xGZ=^k3*TVi*_h=69IIV$rBy1Pw_qbMd=z=<e*$U>+U{M z)%|8PJGg;6_;{qSucYIMZBU$vhv(vIu~Z)tGyA-{C_Qp@WwmnHmAEce1g|a@E56@A z4F5P!%IBY_;$()urEDxII}(e};?aRR0^3ysHTZ^yS+N140%F0{)1hnSSuBxNh^2vR z?%XnR2raJ%czd1m0v#+Vl^XOYaa<mSI&+UMmLWzJA+C^@oW7e~#B=s9!nNzl32TP8 z841G~W|UV1{=DGv5+aI~@dfBh!1GX@QMKe*Oc)5Wv6#%y$IKy{?ALM0KG)zzCA%Is zv4wa?$4Fif-j|Uo0Yi6r*m!jzzxlbCIv~lHBuU9h5`+8;^UxO=pX5(gy{(l=>(BAC z%;UQ7&Fs=M%q&>6<ws>?g~q6XVdu+lQK%JAm3EE1bc3cpl%&G-^*g1ys!E1NM�^ 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 X87+>nc-okU00000NkvXXu0mjf@GMV_ literal 0 HcmV?d00001 diff --git a/public/assets/syncable/git_hub_logo.png b/public/assets/syncable/git_hub_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6acec7efe444e362002c68a77d904cd2102235 GIT binary patch literal 4481 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 T1&l>t00000NkvXXu0mjfvumgF literal 0 HcmV?d00001 diff --git a/public/assets/syncable/linkedin_logo.png b/public/assets/syncable/linkedin_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad6ff4a1e2c5b98104267e8df2eb25bcdfaec4e GIT binary patch literal 3678 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 literal 0 HcmV?d00001 diff --git a/public/assets/syncable/mini_speaker_rate_logo.png b/public/assets/syncable/mini_speaker_rate_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f12ef80ccd15f0510b811076e691a193ffc30500 GIT binary patch literal 4559 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 literal 0 HcmV?d00001 diff --git a/public/assets/syncable/mini_stack_overflow_logo.png b/public/assets/syncable/mini_stack_overflow_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5076b58fe83407bf517f5e86ebdeb3fea5246365 GIT binary patch literal 1187 zcmV;U1YG-xP)<h;3K|Lk000e1NJLTq000~S001Be1^@s60ks%H00009a7bBm000XU z000XU0RWnu7ytkSRY^oaR7ef&mS0R;RUF5^=ib{tV8KpSsK8)A14zo|gea1+smmUW z(H9?lF!8|$6P3j1j1NBeuqR*UgIRR(We*y%#B7lm_k_kQfMkr;{ozkb*GgG|w*1}N z(o0*8zuVfI-a<>!g(q)va(?G`&-s1M?|aXm%Q)va$VWIxn8NxWShC^|hQ8)=1Ml&m zd!p!~kV=kNq+`(U=JJj6*j`_OuKkT7J^#fw3<vJ>1?TrXyx>zascC3s%-jZSf}jr` zFEBRz8KPI-fjskrCa_>>2a*6^oz?jB8~a|Rg4vdi5&z>0EV*u|S&G#i;M<hp%3MA} z)804G*!eyr`%B;}q~ORW2rvAVh6+_SFassI?nY>SR-K53MvZ*~Ewx8k`3vX4EEL=| zfz3M?(=jD;1DKg4UAqgu`7ocOw)X@&e>%sVgP-!Hd5=2ln$|vMIQdmN$kzA;EKOeL zHMSFsRkna{0IA5L3dl94r>A*Qpx-shm+yXuz{my6Tzw0!k;^LdNZ-dyf8sS-BtU$) zAK`$9i#1)~F#-l>ayhD<N~MZR+R)a^8qa(KbJHt`1s(8Re;1>d-{fBB&uOr+_e%&3 zA`%`S;v}tLp#{ZA)>ue|<QjInov~7GizV9FVfP?{w=QCH#ScS;fGT@Gtlj-!%j1at z_%^|SvNOK`i3G$$ji_mPme4z&g22F>JDo*cW2-ta;JeKiZe7CK)FsFf0#w^zeeMH1 zspHVsog~QfYTuoxjHe)QXy6==tol$@-vzU!6{f?DXlly@^xylHFFL-(^5j)iG@Qn% z4}aeil%0T-HFE2K-@_AIQN-5$h=#qG7bTL>3fEX2uY9T*=Gx=1_IwUg{b`h2I&z2Z zY46C;>-F*G<|ein@bc*T0ydUhSPxBNBjh0&Lr5iLh@t@o(_z%MpGD8BAC;V)G8+wW zVBiYx?6iZ*u0h<lhxntA3lCTBV{LH?&BtB`t9}_%llO4^SSLC<p4oL=ZrU12Cmc?+ zwY9=I_8Xu5a~S27hoCo>LvMHj#&Q!3WhRtadQkCn4=lD-*t^d%m)p%pN5*iZzCJf@ zL0bb91lm(uG9tk_cwG(%f&j)clU6Dw=%CZ-A?b}URa8MLv+_th0fSLbefLZ*JqZnP zJC%e$3&duB5!U(^#N#o@n~xwzqhv?1CC8AY3CVO;3T&GofE<^p77J#S|3U*){uo73 z#8F#2o0<YQ(FQlAM=;7%IYfxSlcYkN?jZu|%E(6>av#5%8lWVJP|iDt!^y8*8`Q{@ zQC6W6mJyiBslHwqjRsZr{A_k>Yk-V`B$Fg-`rB!{XObWZ$Vk#ns~m}<SoG}I2Kc9? z0V+NvaCdhXqq6IOeCN%Z<LM(X-(RS`12{YDK_n6>IY=m!xf!ynxezGp*8n9+g3IMj zmr`z#EJPWXwX=Z>)tZy0P^ZV~-~U(tkMsiv{te^rrL5s%u5ADS002ovPDHLkV1m%# BIBfs` literal 0 HcmV?d00001 diff --git a/public/assets/syncable/slide_share_logo.png b/public/assets/syncable/slide_share_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bd113d5b53d727cf2693aa517ac10e6cecd26014 GIT binary patch literal 10920 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 KMNUMnLSTY;K{vGk literal 0 HcmV?d00001 diff --git a/public/assets/syncable/speaker_rate_logo.png b/public/assets/syncable/speaker_rate_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d0883b6c50a89700697de95a59e795bc5fa44525 GIT binary patch literal 8621 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 literal 0 HcmV?d00001 diff --git a/public/assets/syncable/stack_over_flow_logo.png b/public/assets/syncable/stack_over_flow_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2408bf19fd55e7eb407d1ebdc588d008f8158e9f GIT binary patch literal 2976 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 W7Hb23Lun@f0000<MNUMnLSTYmRi~T) literal 0 HcmV?d00001 diff --git a/public/assets/syncable/stack_overflow_logo.png b/public/assets/syncable/stack_overflow_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2408bf19fd55e7eb407d1ebdc588d008f8158e9f GIT binary patch literal 2976 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 W7Hb23Lun@f0000<MNUMnLSTYmRi~T) literal 0 HcmV?d00001 diff --git a/public/assets/syncable/twitter_logo.png b/public/assets/syncable/twitter_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d14468f8e200333c8b3258350a684f2898c1223f GIT binary patch literal 4873 zcmV+k6ZY(hP)<h;3K|Lk000e1NJLTq004Xd001Zm1^@s6JOQ3x00009a7bBm000XU z000XU0RWnu7ytkgyGcYrRCodHnh9`S)p^JN_r3cTNw#GR3}y@9Knliqk)GtR717X? z#7-F&0Rv$vG^C|jfOgVpNF%AxDbUg~B)BCL25_gr*l}Azi-)DPrUo2qvoW^89WaF5 z3*IDadCR^1edoO^o{cOE1D&SQk?y<qp7WjWeEavE^PU%mp~l<Tkw9$husY7ENnl*z zW6Tc56+W);F(!dA#_qU>k1KqPNnnhzJMQ6QOyT|*<M-E!U9VNKrWx{#=%pJKhRq5- zDFfcG%fXB1!8m6`#s5#r_W%9)XxaNLc>P!*-CL^od2R9`=3~wKq~bM8=RnZT1jAOI zBYZ~BWm5cL^jtPdxCrlOaW@`}4pZbv_|32l#(1q=tr_*5x<0c;-)UH*^Ji|<1e@!O ze<UO$jhTlZ>;eGq3SBgaV0lLg2cP>%VanG%ttCvB;oF~{eclbOd~P&vxV~uYv%2rU zX5)&`SIhA7(~>Z5bkwd5FKT!te7$~s*k9KkZkn??{C(>;TnCyv8v2L4<v>OeS(`0| zwVhSlsVinbts{63%xVub@6+gap3S<MHXS~1z3#5OSdZ7W>!K3wux_<x)phHt+3h;f z=qsnkyukVlwzgfFhPApX^SnOi;4D4-FEo>#Epx&fO4Yxl3z1)g(Y2ycdCSKxT9(Ps z-oqvp3@(w<kG+^q2nLX`uU>zGPH5=RX-0obvqOAHJdBvbozQUN^IGNi&esh}=pKKv zstSAc3-3K$zxqr1z$xWZC?<xJzlCfkfVFD&r>MnBmO_uV2E95nOlxW^p=JIg9Zg@S z26TCQMw^jB450)TK9?Z8hF5j22DL0+rNfx_9OIY%a;CO?mUKtFu$I@-Dz6#&)W4{o zdnsMy<@Io|S5JmLdbaa??KW7Wbt!k_^~8sjKD<spk5_7bZilicJrPU6RE0d0zdhft zKkm+GQN&-g)@bh|dT3Kv^x%Q3^i?mde+UCr<@ex8F`b`HtJW5&TTskP#++T{3!6~s z7<P>j$G~F@HI<NgzK%337@DA?3Pq=J-`|c;)Y17}2qmdZ5a^4Jo-XKN-K9;%iq^~N zLQ{5bJMX^EE(DrqaE;B5wteU=EoV%45q(C#Jx60B-Q7H!Te{2}H<YUEd{%c6Z??v# z=z6b0i(^OXiA;xXn!8q$%`jDBc4`J$$2GsOM+H+h>zSgJ-=RG3hx;i#Sif2q+8m1r zBhfS5*ocg5V=<eQ>(epuNj&87qkvGES1#`JMw?!zz!<a3NeV?-zX{61mU&z2egZ2W zvuA^knhDo%8AIEq7S}Ii^<aLxI)a>b1^v3ey<Qub<b{3Af*unHnXO<rCiXx_v%<!< zqT)^M!JrYx6+nNfP36_ru_yu!{1=-Qf%X*9ZuHypNX4Oz4b3azjc}XcnencvS4Uxo zZXSG3+ZgjP(sN=}x<BD*Mg1CGL!YA`qQ2>&W@Kzs73s2jTz<Y6<4(zsP0|k<+BD5l z1BG1DB5{%WgMW@}A#EUN<jN@*X1Uw4hB}7qaz(*x{x_vgeqDw9M0s^Ls?gb_93YlI zgPBjMCS9piXS3d8mTOL-2r%=ks&hF_48NkchsJCkW3$((Dz!^B?TvcN#=2_xU#a<F zT*pj)M(Z`(Ni}A!1U-&jl<An>@s?62{Yd#0-zJbZO7k`VVkTwL3P|9bV2$p~yYO`* z+&MIEzR~T*txmzHD|}x;utj^|Ybg9Wk1Wl>F=I<gbIv36om_)lPLfjX7*sO~VtIon z|4t(;{~@E*VNQ9B*yI?GS7;6%{YYJ>PJ_&6mC{*3pBqEU+@r=b{3c0D1)^N0P(`Ye z9$P;{*?r(5_ygQW%;6R?%!(l9#zc)Cu&@G=J_5{f{U?_AHgu$5$_@m;g?IMp=?-!X zh0^TAB;Adr9vkk}?H%*9IKr1%rBevU_rSarC3khq)uL#u_5~duOY2^Wlv4_Wy0_zW zJurKPej|OPZbv02<@f5*u8jVg!lorQQO)GT0^S|xZzZ{I6Y5GsTRh0>KRWN%qRe-6 zXFR1_b2}Bpl1^xC2z4_Qr@cV2{GgucenN}P&`d_Pt8}hkrOQbprv-V{Amki@^PO-| zE8$~t=UIBwlxVQ<&c6gdr>jB>@Y<7NR$^JNhe!75+3s3B9KqFh>+h&VZpKrE1G%|; z7Ff$it`>o|fp|(-7%@}_$R~!}R$!eE!}}D{*_!Tp{g=@dtz~o#*G8xCZha$Bt)GxD zEzr2AfVB!jODsELWyJ*{x3AEvGsr%_mzt)VEj01o6>QZ7osIgyX4J3MU5Uf>JuF?+ z1h0~>&g?!%WDtq5?;#Y+cgpS3w%#}O`AMJGp8)?u%i&?adb2$`J?865X!=Xbbr@RQ z(PJ48wHaL~+-Ui&Sf$QJKz~6>D40j_EEh8IV>18*HvrCyG1BGr>vRKi?}3kMTi^IG z)mlohccNN1*G-+Xw3=>L95%e9>zH!~*D)xp*no933@Qtc3p(cLnO5Li*xcd>*HVN0 z8L(dfCy-7_fhh~REL~bJuOl?@fZxMt-U4trb;-i+2EAxFKxjA**euu`yji&1j|8mH ztW>77^2@48lwHlrX_TS-PDfk}1z8mknkOr%NmSO#p?<tE=2anJnuU9qo?wb~W2k8I zk*Y>9)fk2qE;(@L3A0ClzZAra<eOm`9Vo;ph)^j!&Wbx1qKi<#7~K)g&<{)!8vOcI znu{^~4b)c`b}I|*dve>fD!Wy`<b4lDo5cWX@!*AXR-s&$VM};9^e*K280gEnS|Xyu za2uyF$G6(rFc4IU7!OC;$FYv7)k&2P3*R1e1qW5OF%qdXt`rET#$%e|_-ifVi+COG z?!0xlfqnYS<|6Ag5<T9sdNqt`H%vr+9u^3vkiLwZyE4<IZ`$%^iG<EDn=fK$+lGfv zMG4Hp(v9{opD!t;g}ir(3K)kQBcuk|JqqyT0L7SC5+!DHJb%czg~Pml6%@1;1;=rh zG+z0PzeUf7$LqWyl_OS!`a0KkX!G+q7yf_ISxd#dMhj8=WK%3TH37ccWBvLWG{nM6 zU5C-#mfuaWTB%w;sY_V>zF1thfv1AJn!^|pC~`AtXos=Q8Wr5197yX4VAa@I<R6~< zNGX^DTTb@aCHa|5t&PS31J;UR*j>Os3C%C}4``j6-8^Ip?sd42krm!poC34vc_!e% z?g(U0*sE`mm!Gk1MJ}m4p6sP2DtK|0@K0dKt3x3UW&$gjXmvXsQ)b_;p&&11QNdb^ zySuSyIG{|#id}sMgbQ}|?%)jwC0h6-+I$~F``J0qY0AzT<tS#zlv2Y6C0N5;D@HE2 z;`3HQ?BhmvKl%Tav()p&<(d>bUNbC8n8Bc$JUA~8C+T8J_<*R8;>v+0u(fEX;N5l9 z8J{B>g`^ELkVgjwbW3l)c2^xCKi#jOvkv9bAl685F4I0o3vq^(&~r78U@4>q+{Q_f zC!27f1{AV48e*iO`@8D(Py~vAtcEf?Beszh-p1TUgcVbdg;~&X?8j%Q%0dbGnmO9V z$VVD*mX};(ei)BaHPbq&iW@e%;;%>@W4S_c%nB#QilN$=D^53UACM6Q7f?-G7<b#L zm1k>bX&Re(#p{1q+&<E0=Lg7`FiR_^J3oQFJzj17B_mBF4%5sy`QBExzCwTTInHS| zwaojx9mQA*oW&F|sDFBC9tS$+xhih|Y^%1k)m7_Jd?eh+#}Hm(556@qO*PaOZjB*k zc^$TyFxX*`c6{hr?@^Q*9LAIAs^jEt6v{UE5f$FnSPX{KU(sWmr>hZWzftI;LQg2^ zSL(ZS+Vv)N%?AiQ(NEZ}=qG}wwEKlKWa8Ol!k~CEVoo89olD=Nb64x+M3sKi@;~7+ zM9|0jd3}YkpUz&bW0Prp+4+JAGSFVaZhzXmE>gMkaV6N`Z?$|3g)yh3l>Uf<=w%K# zUQ1Re-TRJu!zJpe-=H^G-{e^U&b<8=j$}8b0=-SRO=n-#_6-}gC3CTQEp6aICY3(& z_riQyFL?z`fRBJJp=aJt`ss(>rG=!v%KF7v<58RuL71t!E~4RPsi{e_?OH1bJXW_f zHY#Yb@yL!-T1kpn3}1H8G6~v@LsRQV8@=X0mg=lgjQ+jt77Q<iFcrz@+lW=Vp^1+0 z>>Qngg5`M9MDkOCFc#<j0fg*=9{iL)E7xLr&Fj$(g-XrFL;e}!0vMt+(+<$B<oW^v zJe2~+0$GTV$@1)RJ+<+EB4e|dll2c{&)KKP`j+XM$|n5?BfF9O8d8ky;#l&c!9cI2 zCg=t59S2;_!Yal^Y3K5I3ix+e|N8zdDzH6lCrVVaW*#^nLt~Ss?a*BTZLbdw=-NbF zzsv66UOTyimL$d5!|?V~Ot%kZnzF+@^-8!y@2*{-cN)6&bxzD4V9iQ+vx4msLhKW! zgf<)n#m{73o;33^G<~E|p!%7w=?{Rp6WXc{7}m`MP&PCb5|fpnn0$n^aGfD!$Wle* z3f6Vdc2I>I22&_l1NP&8n><Xnuw4qtS$PVOgv)8Rq^(TgN=%iq?`siZ>)M8OdLmw} z1$c|?-{Tx{dbY)3PwND4bE(#y&k{YX&@t=HvPVyXzlT{Dz}yS-Ue+TJaSaO31J^^5 zbd_zR2xs5r{a(X~;Il-Fq}3Q!sk4m}!dc!iQ(wz$)UENP?zUY6g3S^ylIATY<irv3 za$EF|{kwHj)lqtig6K?k2zhoJ9JzoC+?G;Me#j}8RU+%+y_|E$h<H_ckVs`-9)qV# zI~(+`GnXp4zDe2IH9DHuev^5=H>iIf+^hG9JRXr^GS>_Y_e$h?fz=IMCP7o}{>@Zv zN5Y<8&6&Y&J<i7VT04V}9C7~%2YYv6=wLu<EkeNf4>-_YND=4pB}&4C>zZM)i*RU4 z2hMGU;(@-6LZ1TGr@Hk}iVK-2!wzOQqTr{98XgL^J*8vWuR+;^+KDk;Z^}0Og#o>b zVuc5q5^@xP?^r*%>pqO&`>Z{P^(Rq?!(pk!8njs55OgllJ$T?9Mk9htqSOe^L+KVS zW9u790Ry^`gPiC1LdJ&&+hNF`2wNB<%8kK;IFy-Hh-((b-204s(3D`^0W@aOMKd7R zrgqQOyWsr^Jf7-J(u&IIdXgj2e*yP0KdnXZcLDOSU4ylvvQ6!d9JnlPCy`AYdOhU$ z<AL4!x>GhJMW=mk#>e;=m4_QX+apJ(QJJ-xPbj<svQCCD)Ne(w^8zbkHsFD`b)Ko$ zY@QvjRvtyg>uEkpK8o?ZsO|aeUOnXhiX!J!T?(EHF_B|XNI&Bp>;M*ZoS`))I13#1 zwWg}{SB%XB?mkZD9<(!XzHo5o`20BF+%Tyt89SW`Nfd3K{s#8<r>kau7*hFa^>_RV zUB*Gh45~NVBPYP}-;`Ll5ivFyy>_IUJW`i2b^+gPO*12bK661+M+M&bEIPVv-6jn* zoT@)(D|iLb;-SiIx@Scr)qRQPR$QRj&Ezm?Bj@9xTKGO<nq}NPXAmyZSZ(6mgiph7 z+g&08_&lp8;3LEl)`IiS_SsevkYY{Q7?nLAN*lGp4LJ+D&~DG?k%M{`6f0hPw?-)R zYF24*MKg?JAbg2oQbJtP$;*|hK0@&%R$VIUtlKpUgX!s*!FyEk3x>8bZmmdwrr^5i zoXeNCIySMi29AWmv0hyr=Kx1R2PamAO>E5wtr1*gtX8?#T|)_JaL}80Ls{E7*!(8G z*@`?TqSp~v`Y^of?!cRu6a`Kc@Mb-w$``*}+KQHx9nC2ZyQe>`<B~PHn%dwZ>WC8{ znxunpsB!EM1NH3`kp4m5x6{9o2(mcbre)FBs3rsZ3N^xiNcYkFN}?PFioB+<_^XWa z{_<yFhJFoWzs`t$#Sy`@Fm9KPHI;th5sexCkH7=B&p7%Wdgs}2*u1DOy3@DsyaUj^ zAKXXijqpWxN8^6$4Y$6*@6Ti7hH%2%_V7!Yj__NVu5fYY#V|bM%`mL%3}55Ao&Kw9 zyTVz~T6RAWf8{Wveg0S;UT#t5dG5WnbdLs`Vcj`))KR=Uc!M2gynM{CfdCZywg@Kj z)O|-CF@Vq_dWKoYh8>>K!bP|YK5Aun&BN8=E+_8@WVm}P(Q(7l4<m@doc+8e4pwRb z80_$+ljya&e6B?ZzFswXx+qybcBs#Xtnfo!aIDWO8JySHrkLgYa(OToYr-h(C&|M( zMmg-EK94K>P$l;%%roVq__!LSsY{DL`uG&kj)-Dh;UkLY|KFf(I>y@=lEApa$B?p( v)p3Q7D}0PeV2rUl?&0GKA7c_2W9<G90Gv7oa9xlH00000NkvXXu0mjf#d3yT literal 0 HcmV?d00001 diff --git a/public/assets/tabs/code_selected.png b/public/assets/tabs/code_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..053c5f4c2619a0391fe42547c4d36c6c86a16fae GIT binary patch literal 751 zcmV<L0ucR)P)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQp-DtRR7efwQ%!3VQ4~FIX7V-3B$G5^indxxRixE|R$RCj6$_R~ z7j|J0y3vKdz>V0o6x_IRBZ5^@D^zgfrXrMDT2Zk96}6yNY(AUM$;^0PqS0n%Knh)m zmx1@@zI)F-@4S1NNro*lVT*9<u>S#gVsRDySLeXjzcoi$id7wD&1mA>c$S4OZ^y0Y zxu%bAH2rtXh6DOxcHNRG)o^^`1!|OcsyB?~H66)Z0D?CFy`0CsU;*8#fG5c;JR&f2 z=>Qb3)QSzO=VyrKjY4N`Ja|_F6J-cK0vFwYk0F^Cu$<9oAA@F8h$6E9bB8Us>XUG~ zPsPLc1V+XvnK4q3R$hR~Dt?W}*&YoFr*C79ntw<UBQik{(Gvlt;u01{U6?#0Vz=7x z118>lE7`y{To%oFH%!c~A<ZHrMTnwIB;sz|UCiS4d<r8+A{gomVR))aXADL$gOHKJ z#ba$4J{;Rn$in>kY#M2V>yO7-`-LjHR0)Zfc?cdE)34XDr%i&#tk!QO_!MM?2zWQO zngx7(a2NLO2sR#%qVpw<u3o`~qY(s@AkGhjvGlo&l2&WJL2pM8<Aa^8*!Hc+qsAT; zvG7%bUMXOwXC2p0Y{S8JFXmQCxbpZrR%;4Gw~Rxv8g8DHEx_Di+b#T{Q`RtVP?xwo zSSe~4x$_04&fC&OlKDv@4-7*`w?ZxHU=~?;T$!e4`W2r<lXR5`j9B`^kOC1}RRX4- zr}yCJlS{dJJkM)2N9N&x8wDzTu9t=;CE)3&#?_;KV1Lv^JFPQs89IVqcqLno&YEkw z3Hm6pF?~b#3iz0p&=u5hKOSf$Y5Q+ql0sb~YXbAk%L5`}zADE0?WfTW-7-XWL7VkC hGT$uVpLzc-_zz{`*MfmAj<x^*002ovPDHLkV1l-mPTv3k literal 0 HcmV?d00001 diff --git a/public/assets/tabs/code_unselected.png b/public/assets/tabs/code_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..05568edfa71dc32a408cd3deee9bb4c489349ee0 GIT binary patch literal 812 zcmV+{1JnG8P)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQ-bqA3R7efwR7+12Q562>-RVpVv?awph}bA3A|#;1M0_PKbm@O_ z;csx`Kkx^bxHZPag>hksDGL-tKtNK;qqLa5X4;wQc<zu8+L;<zu=1qIz4zR6zWdF0 z&M7zZs_o)}jK3gU5B5I*um4;?;q`N{^<S;8EFG(bj@>@RX>I4BB*tJBmQH<a<96(> z^VtIz)Gbb{frGa%;JPlf>@@7=Z*ZalQIEl{m*LW*d`O2``~e6Yl8>K3kkzxe-d^;1 z$RSdKGMEBn?F3i~dBD84CSW%z=$LgV!<XT<4G26J1cN|uUJfHQK8;ePMoBaV98W(A z<v8%fP!f|&4-YVz7($C4?F39qAh<($jdGd5ByfU^u&Q8kY8tAhp;4=0`Rfu4vklj2 zqf$DAIuc0S&zyBbW8*W#NCMKph^OzBiCN_Hi>Php5zWnF{Q3=i%Tw3T7d5NLsJ?p% zEjI`K>Yc7veBEMhEs(wmh+3R-1#q1<_U#CoyDJdFgS4*V&=~;imM4{{$00_CVQepU z0keZomZ^tNvGZ#iMvGdEG`7qp>Xj05Q@2srEh3Xn;pk`&cH4v$ihvb)=+YQ6qxVtl zf%h@5YgtUr-9t1IrlPsvMH#i__i*(j<{v$QqsCEN`QZ84eN+!);^sV9Ua$F>S52U5 zx)6!A>)7CxFdWOk#-}$}w=EA;&|+TKuzOJyuvQLe6?)0XoW0(0EF5mG(9Wgdks*<; z@=zLbEDecPHcZUV?)TT1ym*$^Yd+>IfX#%WN8wUIv!hwmsr@RIW3L9XBq5^fP(mRb z>=mI7k3bM5rjXA9$Db6zM7-lwyVMe(5{0!dA7QjDsIrJ_w;sT9fEZ1@Np<fhOCWQ` zVzqpt82f)=mKn=oXX86kqnELDeBvuqePp{Ff#58n_cIMGjhVX{6lw%)bYb*8^abzD qU|qCKU34A`?3VKY{4MrE!T$gda0&3GBn&730000<MNUMnLSTYuXn7(4 literal 0 HcmV?d00001 diff --git a/public/assets/tabs/experience_selected.png b/public/assets/tabs/experience_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..a6379e20ef2fadbcf11bddcaedb76e0ca527827d GIT binary patch literal 716 zcmV;-0yF)IP)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQen~_@R7ef&l+SAuK@`WoJ3G6Z-TaWIO*K?S@S>m;L<@=vB7*ef zUm$q!<Uzse!K)W<S`Y;P01sX~2mukKLW>7QD`=&l!CGP<m9{2nez-rzHxoBz-B2&h zLGUe;oqhA>GjHGfW;H>E0T~+*S7HBMIR9H&W)@d*v#^A6&F_Y8PwBXJW+x^O=DNPV z6WP$s?9}vo@ut*_ge<PK#EIMQBEEhPnsoM_`gGwNZarC6nQBG?dLpBih37)hrOAsM z%ICLg5N;D$hhd7|<lOjZFA6dE$>|SR7byZ*&~#42fCzjV9w7732+qjQbO_(0L5F%j zkk;y$ySy&~kJVg)_0%vJ0VGJ8gx{a!IGpErTk&z>v8&*aFF*$dv|g*L(8y0L^B2o4 z+<66jTqBkKf(MjY(5xbG+hB$TW@o^-*#QxJ)Cn+kMBwyZI|7eo{%C#`_s;G>r4e9e zDZtBefQHLZT6gfhVPKohF*d}I;6C<`Xqd<|9LSltQ7999Y;$;Fp^9h4HYRr4IJzf^ zONT62Ttn72ktYd$TJzBI1Xk)kzE)j4oNwStu?f#>N5JwSmN~Oha7iVzU)q@cyhim7 zD2y5zib|D=dZ8N2I?bg$sz-m|V{naX$`fe>rlZsVYF3iFn7jB}X5)7&q$aAlMsQM; z1PdXPh+6+|3vFT~LEW^WTS;tq240t%YUlIfh5}2!T$gcS<D=+4Wf`(H)Ow?28EBk; zP(skI(_v}onUUTIHP2Wb+4e5PGQWDv!El1UBVmmxno$pUCI>USOMw~v!MY};X#2Q+ y-08Z)NlfSA!dBd4nQsL&Wc-JRm5AI2T9%&;l_pU3JAT6e0000<MNUMnLSTYPgGTrO literal 0 HcmV?d00001 diff --git a/public/assets/tabs/experience_unselected.png b/public/assets/tabs/experience_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..75d480bfd61e67831348f085bc972a0d1a0fff5b GIT binary patch literal 737 zcmV<70v`Q|P)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQlSxEDR7ef&mA!A%Kp4iKv(I)C$Iv7#0+o`|01Fa@QkA6(6A}Yr zX5{~Zfr$YLRqB9*5Ca2IC88h*LWm+7(g@O|X_`7t{K;!KapI^S40P*7*1h-j^K<V# z=dgvRriT+M!U=H$>?!=f?D7M9`<+JR6Pkq;xW;ZcO^79NcK$xp*~PH$u;57e-se|X zdhi(ME=-5(8}%)$tvvZBI2*O1UM`|lTn&`^3b~pAV+^j<13VYhfFQ--c^+)N0k^vc zro=IEgLX1^CloLUBFa0ZH;|H(5Hgp*xD0_S@Ei-SZ4Ken&qN7a%fPcuxMml7-`*V$ z2dR})(*&02<tz~3IW`uSmypU#p|#yWVJ%N^4na|A+@lv*Fq;Fd(K?crEZfBT_jPnS zMvwx3s%v#&x9e~y1tI~tMmv+^eToM~;+VUV!=^af?;BQ;w3Lb;Fu!~cf@7fm=Qo<$ z+pwJ&4Ccb56v+t{@iQrKQl8W_+D!&AEset4RcN=5fwwDP@cv~PvCIt8)0c5Rn}f(X z)OZ}pq>9!~3th`bucM>g-o@9C1?aV(@GJw`P;eMUl=DP7$feoZLbXvr6%Lt%zH8); z;1L8c!9NR;YKlb}qMC-=(?j5B5P|!-lmZu6<PvfM9i|8ucOO0q*Svo5jO?fooCmJ) z58rZ~aC|g~z=Husiu}d&2;>G^-$B0g3v&7*dbJ+`SWHZeG7gO+a9N=XLcf6x2QO>p zpTjm<;E5EJ$?O=+gCr|sef!M_Ja_#j${QOnZGW47ZdqVIHZ==Q7e*w<u+WA+VBd-} zxm&3D&9M@JTj{G<%wB^mj?Frv*&`j*Htm+K#(0Uqn>3+m_-Xk+<@BHEz&!p11@PZF Tn%xe(00000NkvXXu0mjf{z6L# literal 0 HcmV?d00001 diff --git a/public/assets/tabs/social_selected.png b/public/assets/tabs/social_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..d99ee69e6a44b4dbe7742f9822132408df02df9c GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^;vmey1|%P7U0DF6I14-?iy0WWg+Z8+Vb&Z8px{(b z7sn6}-nWzQay2OMwBDWY;;+0JNAWc#$HThPB^Ue6XFuAv^RVEhZFhXR^B=vtA%8FA zy1BnK|4r`8GO|uZj~~b~giQTVw>@H?^K?<knk$=y!f(tuv^L@0@<Ylu<L0mnKIA!e zD{|*D>#h%~ER)ZrKIi|jM`pXZxaoNYrBg4Tt~hk_amOpstqY?ve@;y`7mbVC^5lH$ ZdWHkqd<G_ri9iQ3c)I$ztaD0e0ss%(SbG2f literal 0 HcmV?d00001 diff --git a/public/assets/tabs/social_unselected.png b/public/assets/tabs/social_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..f545b2ccd2f3836096d75bce64d747b94346f368 GIT binary patch literal 736 zcmV<60w4W}P)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQl1W5CR7efAlnZVfF$_dSX}1UJfqT%}67wFlHjp4LkhW1`TjG*4 z!;dz8{`#Hmn^ylO+=4y+6+Fm0a<+_(WEr~q747fA*8%{L1Eh%dsBO>QR%Q!o@^x@g z=B@S7TOtvh`jl`p=m3Kpxn6^tE@9;)KoHdK+42}I#xQG){LiKEeeOqtlD%;+l*=l% z@u@;UJ>}_lPz~xqk-I;TCH_vvS^)FgMV`HE9QO(y_DT&1o(tKvshV1<5S$i%cves- z*OsK01XVL{2pXHPkPXOc48YSs9277vJI0)*E79dcR>~95mJXYFzmp9<eO$`zysS#- zfR;B7Fm{QQOp{8LDOs8Uk+O)9Pn{MsPJ6QL_!Dh{1g(L)q@_;n5UHuSsWgh0&9qEH zmmgc9?Ex5?rrjn8u>$C7o!tS#Gp8dLDYCa&d7sqWvT&#csRtdBrXtJ?J0EfEL2uM8 zGyrO?pMj{gL^@i}hT<AU{Ul$LW*h4nVui>hup+3<5$nd`D5H)^Q^X3Imj}U>mqDmH zgQihF0U(psKg+h=2((1vVdwJF09b3uNct*n%&+AD^-9;8OU9y8X4{+|oXV!F&$yR0 z0Pei5YXM|{YR}zBBB?!Kb8GiXyHXqKXu>|LT6FC8@5zMeK-g{=m&HwxzLR73gArB5 zqi_42LE>Z@?W8oDuvq;1c=QTeC-v>LBzH9Ny`fI_%3Bh$(bt+@nHc?Q9m0xQSGNdA z+j>H}&L7V-H=(yf-&b(&?Tn?$>@7LjFdH}-t-6kvbCG|@`9033CoZGf4Rk7yiz+Wd zHS8j;*TJXZe>U>Mb6&68!y8U;U!BPW?Ye$l@q_YMP6NtqXXjS=0`k`WkM#x)>v<x? S+)>;B0000<MNUMnLSTXj!CJro literal 0 HcmV?d00001 diff --git a/public/assets/tabs/speaking_selected.png b/public/assets/tabs/speaking_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..06ae1a4b5fa393273d09dce154a6013679d05159 GIT binary patch literal 630 zcmV-+0*U>JP)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQC`m*?R7ef&l+9`rQ5462_s&PYW|Ei~ZABshK?;Hh7TmZHL<FVa zM!|*P3-|!y6Vyeax)7v`M(`1IBieLfTZMw6pjfK~X-cu7Cbb{aOyX&!A!eps6te4q zVa}X6_jm63&$*+TVsy!Lm$=*519+&qU6sWQEh)j-U#k=+%6urVF}Jiq%+lmD7S~Q^ zxOuJ@L#y4Ew&E&m6o+2U@nmWl!*)<s1ZBt`WMZ5CCJk?uzO2u)JAJ(WStIAzoXEyn zz;-7f%jnbsBhwyM`WR;F2!@lzOdP^=G8pb*iS_Wg>M&edpt|1R%A=2rPR_S8TYdmO z@@@sw6<{ohwxZ~*T`NhGOB<GS6URuTc|KF;d?6)8b37>3c=e^yg6=p0_#YKV3t$_# zlhuA#3T;O4RD`&#Nw^8=C`)m=+Mc!T2jKnr7)k(p+1C4$8I$#T6K}IA9me=x4bDaY ze(!=q(ys5tCaQhzUraJSyMixrDQ(b`iUigK;Q6%0(}5^G2`SL=Pcv16%LSj}fQ@4- z247cXk}OGUaQm!C*<rz6B;k0{;HbU9lCl}RWJ@7MucL7V_-WB&Y^KWNHx)e7#f+NV z?N?kq6@-V*dFksilk-h(oN+0n|JC=Ui-+TjjD1_9R@eAuoZo(oT)e@HTP{Y(X9|UP zbQk(qUhx@v>oM^|4wX}5_<EkGoZ@!dH@qFPoBw~Q-Lm!>KY)h{*Hu~m0&Gm2B2#nQ Qj{pDw07*qoM6N<$f>AXkm;e9( literal 0 HcmV?d00001 diff --git a/public/assets/tabs/speaking_unselected.png b/public/assets/tabs/speaking_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..640ddfbfb625a09d15261bc46d1d95b3df0961dd GIT binary patch literal 651 zcmV;60(AX}P)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQJxN4CR7ef&l*?|@P!NXyb9~}UE>2P>D3B_sMFpye2B9F3SX5%g znwQ{lcmo~-i4_PIuwl^!5K<|$s40acYC?1Mm2sp>ILDz2lwFTx+2a|1GxN_mX7^s$ z0amp5inw#^B|KK$mC7PwQ_@Rk@DpcW-@@r1!yWd(ga(n!!KmyYv-JpI7uUt&w&Gy# zB}U&qLZtHGT8h9b5Crg@Dg1FCOf^t^{0w&Y09-ebFt5bcC{=#ee23|eCiK!xC`M)u zW?UgQ9S7fqKP$|;8h&|=bg_)~tLMn>JVEBxu9QH6+wD)#3KejYAcUST#^{M`MWHS@ zhf8vqwOw?r>lnAF%X9%oxq2Qxze~a~H3@EHBjCsvl!dD)x(p0G6{=Z4Vr?DH(Ox7h zG$i<1X`O}@midoG{&Y4E&n1~Wp9Y<!yDNPl!OPoq2p;}!mi=-9@W4Z*dLM4Dg&-`1 z3na7F#qf@2;%@yRR1xNlCg8*=Sb6e4z^{qGu=yT5p;4HJ(#CBGE)UcL4kjrGcyOrY zYV8g*O^0sKEJOnBlP*3tn&|I;fReK4orcZL4S3cKU=rm^@X-DHsDZSuW4l(x33X!6 z0DBZ*(0Bu<cL+uu8CDs-Vn7H6R@}nrC<+d(*h6IMfT=Qc#sOx3&FN}}AxA!i<guq? z9PT&JIsOjUo+4L&N;@?X$q);VL@Y5>Is(@ynMsn59H4a?goik?Vr7X$EHUhGHvI+K lLaekE7ySQaUczJL`vccAuv{_CbI<?)002ovPDHLkV1f_a9E$(| literal 0 HcmV?d00001 diff --git a/public/assets/tabs/summary_selected.png b/public/assets/tabs/summary_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..2b53bd32ce9c87d3648abb8111b4af5f03e74f1d GIT binary patch literal 632 zcmV-;0*C#HP)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQDoI2^R7ef&R6S@^K@k3S_x<Jlz>yOqfq-(LMKHD!OF>W&tb+Cy zf}o87J1s1=6f3J>rJ%78Y;$NMTEw3sigI|OM7<PVa$LN3>+HU}+`hL@LyA<o@ZQbr z%zQKR&Aek$O6=C*y9KOp{{is#-#U6YS08_px9VTz>n|JI4vYP5pbwUR$c5)EtbFgG zR`sxWuEq}C_#nXrWN#CPCj_paoW%ZWz{+OllwGR33-=pxsnG}b5;%zq5&Y7wJcz;l z5HjuI)!GK;7Mi#-Hz8*xBP&7aK<6JdWxXjN;&F(uLSPY+$kX6VIN**C;f30^=~ZxP zaaG%jFAMzH$F_Vzor|af;f{e31*L~EVuw2NW3<u`cVD)w8Cc*C->!oP2?bK61TZ|@ z3e7AkIj1g`8X0XvfAwo|zPu{IoIJ2{481Io80Mod``{ixf8bJ}61d7OcP#MrlsGL= zp*L#qH}T^9_z>OzQu7E6Jrk`}JacbNzWYgzY{Z!Cr%1bP^gC^eqRs}%byBr8^R<$M zCA7>=xmbBa0ERoGM2c6&sZrU_RTztIPB)cNd4t=FM`AW6QqxBdHrtGd_B|Orw4$e{ zlf18?S>VccW!A3Hh}jaWK@XRY#zv1@CM}eLpE}^Po5wgpx6pwRJC&rkeZn_xY|$EM z(dAmbE1!O5XmzMS+L)QW!0~;++3CS<76S}@TX4g7$6_fhJ4X3Kz<=;kVtxY*44T)Q Sj+VIq0000<MNUMnLSTZ6jw3<< literal 0 HcmV?d00001 diff --git a/public/assets/tabs/summary_unselected.png b/public/assets/tabs/summary_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..fe7d73b3f4a098b0678160ee9c932ed542405b2c GIT binary patch literal 707 zcmV;!0zCbRP)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQbxA})R7ef&l}l?AQ547jci!n_CP|a&!%(b>Afymb5xW-s0D{YY z2K^X*2f>X?(VZW_O+~az7d{BKh)oPlnvlnIo}Ni2ues9}gzP*Ja_8K0f9Kr)Ig_y4 zFP#ueGGR&F5%xbkRb467n{aylHUeh|$*|D=^cvDi9+`3lO6h7Ma`Ev(c<;vt^uO=J z?KPpA7OY3laMrBBlU4L;A0cN;DBODjIk&M$jh|BCf#;yL{|aum0ZA`HGfL285lj%F z5J=JsklZu)bff0`7bx!TLAAEI1gX<<`uPofyH5wMLn)N0!XgwshmhU~CaDlKW9%z# zLCKfVJ$Q?Nk|m9U+x4$-I}NC-<&m~bQi#Y1oOsvBCy+d{xdyr#hKC19HaNI<`~?yn z5LBI@@iu`O!FXeI6B!~kIPCo5wmHrHK^J1CFayU&1aTZXO+pEEBa29@P*orV&gJls zQR76J3!KRE;PGCh(#ZPmEX?+R!_!6SxXLp|4tAK3fM}hQ2HbbgaZHs8BJ}|Q6&)a& zthI+vA!W>2rg+7{bJiy8dILn521g?(>8sR04WUmZ&Y9rb$Yf2p{+u&ja&Tj-f<N`& zv>jbBz5z8>P%@*>JR%G{Y+5A@QovChH!W>{1vhW)P=)85n9@VY0)u(2I`t$M9NY^4 zr*H#1)hYxQRlnGzF(8Dd$f(@iMblA}%;_^HOSID-QoFP=?%dDgsP+x5Rtv66T2mg= zG+?c-qj+T-Kf5A)D&{<67yZpC)YFYDLyn50pO%sJXq;O%a5A9zPP^1xrqs$O`wq!| p)VYK(2~PRuG*5~7XV+5Ue*ro3yo*<z=Z63Q002ovPDHLkV1lgAJ_rB+ literal 0 HcmV?d00001 diff --git a/public/assets/tabs/writing_selected.png b/public/assets/tabs/writing_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..85f1a67ba22be9856ec86185e1eaa5965d58c2aa GIT binary patch literal 558 zcmV+}0@3}6P)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkP;7LS5R7efw)JrG?aU2Km@60~zZfm_35pq~@QBEEyX|<)q!37th zlw4d$$<0Bnq+H}Ago9^@HXK}>BuQS`#m#yYdF*R;#{a)Hw9V|p#zFp<nfXui`G4m( zzxgu)8Th5a{*oJD|0zDW=|J<uF<#u9Y;|KU%j~`rGe=$=JZR89cL}$Tmn`sY+|LV` zKe$DGQ7TIF)1Ztu;^aw(t_6n#S4w8WOi;Lc$qw838;+bjMr$(Az3sx@jRCpoKFO0z zw0%zDo@EENu34~ZEd<UBi%E@v>U6A~xzJFkiw&o6@5&WyS1c6zB(Taj@SF$y`!hO< zb?7WNN?<w>u`CqsTm6C+DlNb;fdxwQ3}`Dc$ij3oY*|Ej!_JVz$xx^?<O$LPWXCAW z<S=5<LZx6r;vu_*!u=$%99*6i8Kx_S#3{Tklei+A!*Esj#Nw;S;xu)!DFqsRLQp9x zbNsNHql0CW-@kg%GI<KKNsqDGc<9w+M;3Sl;3yM^On!0a!r>i*#;F?^)I6qZRcI>U zU?p&vZzp;|M@hFhUwqiHyD_x;j6|gyi><jx)<x{tAoTNs{-NUFNU`h2PlfY)k8t_u w6<j`EycN??lKgYkA2^ZimLG5f#NWj~00hPerl^4WP5=M^07*qoM6N<$f*siZqyPW_ literal 0 HcmV?d00001 diff --git a/public/assets/tabs/writing_unselected.png b/public/assets/tabs/writing_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..ec676ce0534967441a54d989afe428e0a74ac322 GIT binary patch literal 597 zcmV-b0;>IqP)<h;3K|Lk000e1NJLTq000*N000*V1^@s6;40Lh00009a7bBm000XU z000XU0RWnu7ytkQ2T4RhR7efw(_c^1P#DMYZ@WK5!p7FYma$EUpb=(R;s_>2FTC*1 zH{c61#v5-m8Y6}`An}Tz7`ZdVL>(H5VGG-s-C(%3o_0aEwv0`)E6+{a)AsW`=a+M& zs}GM&hBV|Mxi<Ts;?;Mn6kpy$KR)zK_pf8oK5oz~e#SI(D(jCh^q;N*gX5-w1)smN zOnfefGBE>^Oy%`c7w&h>^qLTGdE*I3#R5BxD!CiC`MSNuJ|?Of#c=#9^}Ww6_{}p~ z^$Nbx2*#0y63ehC3N-c#1QVC|R_i`8{l#Lzo6pf32PkTWKsZ4#lB8MQ<^9$s#)KQT z7IAhgHoStal?ke8<dHEuW0X<i(-)b{UZYs=?)W5~-uQ2LpMaYB1B?0Sc$n$z5`_cl z#ByCv$1V8n3(;{K_Kk$v9ouk-%tGFVP4A}dLZ@bK!L1)9yW>t+jf6<g=h+b*_ku0m z8yDTB=N3?+DLUa;G)(Gpo-ehtVNbkuSfljn0fG1|x#jElWs#{U7K?<L8UXghO>GaO zsqty;F}rn%#rzV<M2smbimIs7BV!Bf9IjYGYJ%*|JK{w9`M$nFp(-;zle6K@AN#rQ zKA~dyrM3H9xOJCg$cO*j7#}J=bmzJ5M;707<6>fdQle04uf3@c7K5{<YoBkI1_;%u jIi6jaJKq1(<52NmsrbtIvw<`v00000NkvXXu0mjfWNjVW literal 0 HcmV?d00001 diff --git a/public/assets/talk/bitbucket.png b/public/assets/talk/bitbucket.png new file mode 100644 index 0000000000000000000000000000000000000000..fca4eaf2dcd126343fb9b51f7faaf248fd5b8872 GIT binary patch literal 6735 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 literal 0 HcmV?d00001 diff --git a/public/assets/talk/git_hub.png b/public/assets/talk/git_hub.png new file mode 100644 index 0000000000000000000000000000000000000000..2468edf78025d9777892bb7ff7f40f141524df59 GIT binary patch literal 3109 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 literal 0 HcmV?d00001 diff --git a/public/assets/talk/movie.png b/public/assets/talk/movie.png new file mode 100644 index 0000000000000000000000000000000000000000..f60d0a8734b446529e641ad0e092eb5a09b5b371 GIT binary patch literal 1224 zcmV;(1ULJMP)<h;3K|Lk000e1NJLTq001-q001-y1^@s6#dsU*0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$YDq*vRCwC#S#3xZQ54->2Sf0e5Cnn{ z2tr^4K_LWzKcpZMqbQ0@(b_Z(OVjmpGflTuE3*#`Lo12`36i2ff+Qgj1VQR=AP7Pr zY!nO8%yjPdmZtID*~z|UHXj`BGH=ezJA3cD@7`UnuInB*kMrS+yJ4;a<3Nqq$$~mV zy_;cjf#)rOx<$$SI+!;=hPbp(al*pSb@gP!Y!Hi&V}qC;Yil|)D&uLIK4K6<W79tq z6zmL@!5kBdPh)Od0Q?NU3TB7ta<1=BEx5J4E7xK!PgAuaU<;52co>wnw*;0X{2a`M zCHH6lvWJ@5I<gHRVhoo?U`}#>I?O#FCBdWnyUw*vNcgFOFY{{7PYY^jK3f8lNAYSA zE>l2{jIXNdWtjB|Uh@{HXZY<fn;D+^Q(3Mq&`M%P65RF?*w`EDcqic(!8}U9{|sye ze^$cZ2J@2fZUm@RPMv9_5U4VI<H1Wk-DBpvaUXrF12%M5ga1y#rxZJECtrX+E8){R z?+7sqBAn-hH|M~aq5G6CU)0C2`GPk(a4Eb@O!cYy6cM-S2^KR3zBI++J?0cE8<Sk9 zf}aIbOakzZCGG(VVlq#Brf;=|iQ9nKH&$bjOR<$FYbzuv);!27#n-R&sj^9kcxz`{ zkRTG01C$P3yBsm!;6G7A8?epBvx>oAlJM!-eTGZ(@i2*p40toY>$o66^w9C)!GTHh zWcl&xG!bg437&Hm{0YXp6wbAA0k|*nCl72z)3k@MPvxbB)+fBTq7+L50&e`x3WQDD zN6L;<%s(?-o;PL|!tGmwvrZ~#rGgHZ`YFU70PlgBxPZGOLlKX|hu7`>P|^!h(D7}D z4Fg;3v@Xr{r-K&V<7rchHkT#^;7>DL%BW8ahrD@E7A*un%JAuUNmt+@+AHg9hzYec z)UskaFZ5Mdh@nO71b>?0rivOb-=cyj1V75~b43DE6_2jl5z~(rxY43jE)#t{FD6j; zn&GC11jJPmQ-U95_;jqi0M^Dr&c+tH+1glF!%cQ{_a25BvZ$Q*fIrD_<27Ot!zYjK z0zb;|vyEbeAWKD~=;!?wzXj|S?L-PAW*_*^IX>P^)%Sj8nvRPC@FUE-vxJz;ACiKu zYux+pQ}x45wx7SS+oJQN0`pL?xnbObPhKstC{zo;k1*U!Atq~C+HULUmbr*phy&>7 zRVSwAU}uOLy;rh1pRVa16PADpr;3Srs3kBZS$7OR+CwH}0AZsS9ftV+lS0w>J!BN* zq!HU9+`1KVQ-a}hnwZ!JX5DV{kXK~TRSy}z5l0I8k36Jlt`x+r+p6?&q9E=2IiztO za#hF~evwL!kn`9GIhQ5{edQi<(!uIm^^glnpI`D2O@0E_I7Co%r5-Z2)gRoH<$O$| zlwRhq%6DqVinSf&8a!|5(aNOyE!a+R>MlVx8a$VIDB1pffFAnKKQl@6ET9U|%Ynsj mM~<sO8p>Dy!E^ffD!>2*EXEGJ;(%cQ0000<MNUMnLSTZVtvv1k literal 0 HcmV?d00001 diff --git a/public/assets/talk/movie_off.png b/public/assets/talk/movie_off.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb24ce98c465196d5a0eaf4a2969cc8f464ca83 GIT binary patch literal 1803 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 literal 0 HcmV?d00001 diff --git a/public/assets/talk/slide_share.png b/public/assets/talk/slide_share.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc3f81405df1bdc9bef3495be1d882921b45828 GIT binary patch literal 10985 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 literal 0 HcmV?d00001 diff --git a/public/assets/talk/slides.png b/public/assets/talk/slides.png new file mode 100644 index 0000000000000000000000000000000000000000..c833c158a8265cba448f8a584f40055e77f179fd GIT binary patch literal 619 zcmV-x0+juUP)<h;3K|Lk000e1NJLTq001-q001-y1^@s6#dsU*0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!4M{{nRCwC#n!ic|K@i60?pDD<ZNy$k zYhxvd4<XoCC<q$=p@N7I#7ZO}B8U=D5yhm*YgkzdK7f^-2x1xwcbzp+a(BDgEC@S$ z-h?klHW!#5GxOc$?wAk)I>o`^@fdEVP{TkwUQk!exSN0(d>;V%F@%~h0$~Mvz@O+f zR|o|76kSv(wRF8#+P<fd{C@dp95?grYhf2HS4Y);L<L5M%te}7yBNCIG=5h`6;wZp zSd?@<SNT7oO1nE-_4q)<TPVcOr>MgBI&F=h&XqIKCWd9|^JwM=O*77Xb1}t?$AJ_s zHiyGjCE{YUxVg0f3X?8D1*YX<)ntAupqR@E;w@*&FV%9OKRFGYvuKX&wlhR*=&enG zc7=p}g~$Ry4%7iC$SdRwh-V9kdsLyI$z!Mx|Hm#D=B7Xch!eMMZU@APSBP6zh!bx) zZm@06b5qEHa-bZj8O7Dj)SR=VOHexwY4U@`l?|ESWD3aF3gP-1Zbq{Nq+HhlamP@? zbdkgsNG>)|{f=PX|Exmj9MMJP<g*3TaM^A$myXz~)0^bAVN?+vByv4FG6$K9?%KA{ zyi_e$ky=<@2g+ePL*yfKK)M<7w?Y~s=Ib3vO(8zW-|(`CXVjgyEmym_Jj<3TXo5ku zcpytN^xJZ8pm;)qXuO(skbhy9P!Ar!JVN48GF5yDFaYj(0(k^ZFe?B6002ovPDHLk FV1g-53@!iw literal 0 HcmV?d00001 diff --git a/public/assets/talk/slides_off.png b/public/assets/talk/slides_off.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3337424f6bcef17b51eca50428b76f900d6e77 GIT binary patch literal 1059 zcmV+;1l;?HP)<h;3K|Lk000e1NJLTq001-q001-y1^@s6#dsU*00009a7bBm000XU z000XU0RWnu7ytkR)k#D_RA>d&TES`+F%(TQGf(PDH-aGDD~RI4FK{D8@E=q}ih`SV zRpe2qSSa)Z+_-Sxg-gG{g(&I=2&EP2LQwGWW|DYsX42j_lSy9XbtaQXm`rjfId@L( zNhU4VS~FkT+S<LWL~%7q#Ce}x-)*^Oe@ANiF%1DxBEOy_$tYykcYDU!QqD)qL5CPi zg)ICm_U()vUul^Ld((a`+M6P5nS-HO)G{ePy;xh@pRMiZZoIvHC6Vb(I(m>HDfHKg z(qC+j#Tj&>#3G?&GX%)Xot<k+@;jV~i_}wF&e(`$nZ09dYkT+Pro)or@>izB`}Otb z-{`RD3Qa;waktGGYS?#K=;T7d)IC3roTXZ;jBD<<i=>q^ey#z9QUqlX1qC)q!)`bg zCn`Jz(5V7{I3Y;q`QFCH`sWxN+T46~gJ;?O(_k?wr+_8<i^Umq0<l<J_F8wYfN5qk zwxwtYbF*$2(LIL5{3$gdG-!W_DoiDcLb)u>{|>sfBygPr({_}HR2orm(%Ls~<&GFt z%a=|>&RCVQt(@4MmA<|g+*Uah>XmZjknPapUAG7LVKsuPg;hGqa8`Eh5W|@8B}z~+ z1=)rQy0H45?V~N=4nUga$ixt?M6o7ZCw++$gqGFT$N5kkUjC2D#m$h9A8ex>6(9;o z4yTpJ9R$B-k1fx#fI;p_w3X*(FDDsyuS1@0I&5-A0~w!q1pXjH5Oz(O!}y6JhC-sy zP&s@7I`kIE3+cLeN=-nOQ%pA*>Kb?JctM89lw$>)DVUzzuOW&lhaurhlBgV7`WTAB zA-_A|!R$t1_zczAGv7lZ=Ck-9MKp-ugb|Oi@EMzl$5y)gx*8}Jm%S2vu&L%;f<HF1 z97F+C4rGqnVYyLJH|Xl#;A<J|!RqQV(FA4|R<pAZ=zpB4O|~CCd3GD7*QL5DRG;9^ zAc}(}k8IZj&M;y=A25<?DH_UJfk3=4Q9Hs03VaOVQE^{?Tg9=<)WQ(POF{z(t#bw3 z;42_`JRV!Vu+u+1W#f>+La-T}0LYg>4kY!59UdOtB2M|9J<~SCfLMI~;0i=@_4$Cf z@Ub$1!OH%@(aNL8Pi<AdSKp_ALlw+nJw#W(pcgp0*=@IJ{Q}2Xd{?C^H2N)f3XSUc zD+<^bq>Y)ytKD||_?-xG4@VQsw4$1Fw0f9jrP=RdNqisdlzaQ;^#|9hHw+QgcG(Q7 zuG}dM3bG$;ig6Xkw%QML-d5b4PGHJ4|3hQm9y+vx1Gh<NIKd13jwRwp$guBrIIaFE dQoR?#@efoUkrPxo0F3|u002ovPDHLkV1l@r@CX0^ literal 0 HcmV?d00001 diff --git a/public/assets/talk/source.png b/public/assets/talk/source.png new file mode 100644 index 0000000000000000000000000000000000000000..9797ee0a3de722345047287167e373ed25de521b GIT binary patch literal 1594 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 literal 0 HcmV?d00001 diff --git a/public/assets/talk/speaker_rate.png b/public/assets/talk/speaker_rate.png new file mode 100644 index 0000000000000000000000000000000000000000..92c3b7ee2209bdfca8130e3ebeb40113e28dd882 GIT binary patch literal 7210 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 literal 0 HcmV?d00001 diff --git a/public/assets/wait_bar_green.gif b/public/assets/wait_bar_green.gif new file mode 100644 index 0000000000000000000000000000000000000000..4daf31fd313158fcfac2f1c54d54d7d135c38fdd GIT binary patch literal 6126 zcma*qX*ARixCijx%=|1fjK+|i?1aW-$(qKRt$#v=C_;7>C6WB>V;f`N8A~zNv1Kd9 zmOavDNev-Fgh~>(|GoE|`{v$r?(^n(^*!f#_4%IXtcj7jhLbW33-kg&OyjAb5`4)^ z%dl#df>E>TDTlNk-K2KC@;8^s9j8;ebaDobGWztA>8G>$4f2MK<66~{I<(^3)NW)0 z|DO>%Wc$a^+Dc#7!cYl^N5KAO#D0Mw_usAXZ~osi0H#BRB+132z`dfzd$r@1!q^?3 zkLm*J`xr1n)I~OVQ#{rgoJVi~y~UPO>^db@SK(X!aEhUGz`LF6{hTJ>kr^Z|$QOgU zEz_`ibGBgdV98DE-dQiih3n4dp_hYgO-x+9!$SNLoZLB+Gl-_*Xe1Ji&beb*R9s$+ zO@CxmR7OSLj<4n{rj=(m`WV+07CyX@*wI<y7v$7Z7uRjsS6<W>I$&5!E$f1MdJB_- zW}2y$jWI*ihEb#U=n4O)Wwf&8>BsMi#ZkXd+quZS!(Ry+CttIQ5`g<OzSr;m84y9T zA+{=yUeFEKTa>#o<5F4Nd<wg7_|&+@u`l+5!68m^CF-)FZNIFMw=v#4f`~UWrOI|g zV~I@<P{Ko4R#l>Yj1mwh<uQ@Ol#e<`ub^5NZg(8LaO(|32r_CDAhee0Ue5R`;NVJu zRtiA3qUgDxH$JLumWu*it7#Q4Xby&W$6FN7sV*Xya+a%M(R{D_@6$%w0WYPQ*xA|N zCaC+34`vVYcu=yG5o0(RFCO8EJ01z14pt(WB$ef%6Kv8;Ra5>$BkgK#K2h0z^U;Op zwwXn{VOwb&#acF^voPP1YIf_7ALul0=9#jyZq=es?;!36o}^sOKkY+X96kF^5cXh) zX|3d#af{5spD*uBw(<ifE}Z2HeKYVGI79@QQ1Tx<d}MX);S8ELDs(QSFFAzCwBPXj zhbR@{hmtAomqF&V@?ylwvq!~oQGe3s<9AQo;OCK;;B(eQjoUcKJ5_!DL~>MRNZjQy zJt>ihiku{n6!)AAk8|w}FmN~#lLcwB4&sNzM4=Tzf;e8<(U?t}vXtYAqqzonKfmwl zYgx+wIfpZH@>9OgL_bjIdFt1@0!Z2;5&`LKN+reW5K1q7m(rB6K~CN;%M}wKFBeZn zWiJP3+6sJz?}(w?@0}q!@`0R_CiEPzcW()E*L|-dr*6rVr_!V2i&s_L6Pr~8ea}<@ z=3DoLP}2`@cem4*C9hVGNV9bv7LFbaQ6=>a2y4x+bR4UzUo8z4yWZK{tE>YJ%FhXh z)@Yrup2b<<XmRzHaj>8BUQW+OGJaQ8bkj7e0r)F6Sm&RPHhJ*JDQ^OAK1VX4iq)BY z&0qyLLql-;du?{T>adOL|D!`dRr9KuLzGu(-Ow<&CZOBO-(LZBGcV*R!`Rm3bbG;l zb9(Q|m(%oT8vf?;LqC-;^%Y;o>mb0!Ex+mY$(7r6Zyi}8g!wK<<TnlN8C_|dve{7o zfpKj(2OPgzJNjhC14ajCY)Z~?2nXaQstH=i(wl*YpPBm*G5*30A`>ECRRAphg&NgE z-*I;?Fx2V$od0D#)x$ZAHUxYu+SoEglr`h%D?Tyi>VRv{LC{Cn1T=m0i8J~)qhNKt zeJXa9Lzm$wQLPD_j_}daYzxk9TD4IW4c;96Sn~|X560=fr2Q-iGOPT_acZ;R%8MVZ z!)EwrjCa9b>A&rG4<lJGA{YRC|L4cfKasx+4w;D^iX%6nKU{>b70<Q6t+Cq+uRg8{ z5rO5Cx57Cd5cWG90aQT^1c*W`Q$N)KNgx8T@PYaJXI-=}EsO)4g9(?@(FNlXm?{DA zM~vQ~?dC(S^63NZ7Q#ItdIT$wy*7zA5IC^Fp57_M%6CO`SXuyQ3<h`&jJu8(vjHr` z>xcCN(T7Zd767;40I#ocR~P4t1OxkdUedDe;<<=eHwAI-+gZ<#pHxix*7K2znE}E1 zw#YHP*N?Fvp?6}~<g3=708MveP`f@nekYIh*nMNTLJAs1E0xk%Ii(s+PK_~uL^vlP zctT2QfXX7=!ec<dl2Z&DxG3eUA*DA_4?J<{;{rF$SWQz>%6k{Sv+F|Ff-Fg)`>w~! zB#oE;)C1#!L@}a?8Teoe$=tG}Qr3IUn%OEBp$@5cYCtUe*u;+@ggd73k361{S+Oq- z4h;?(+sz?=?z^5kM26iL#}-(#>k&L`$DBG+^S`X!IL(<75ofnk%r{zYq&D=D^aL&n z{!cBy02pu*hWWP^9RJpW3fM)_tCCDMLFTUjjlQ-M6^W}QAb1h+-d>SHytIE@0$Z@2 zWhD(5yg^$g!X6p<@~Rtn<clksXws$9l^f2pC-h}msc2}O)j9Xz%0*6eR5TJ96&Ruz z8=Zs=I}=MvLfiO-D@LV9Lx$Fz`FUu)lsg%v=s+jqlBC<`%1dGkk5}W;l1Q%g8q}Do zoX8k*Sq(iZt0Q-?(5{G-P8xQ*LqbhWPrpe(&M+$deC{w9fa95^=`s21*wv}be#LJn zq_^+KZ_nO#{^<U&ekDdRRWo>21+8)!W8E6KJra4prAAmo5-lpNoiz&eCyD$%83)w6 z^jxuK9H#FN5Ef|ZqKG96;FU8xNYYE7{M1XP(VY3L#j4f|=7@ZB(M#$eA<Rq&Ngmpv zZd0>vYL*%8BDWuRJrd=|Z^~wL!Gh336({1UF>OtrsX-A}0zRvsLp_gE#i-3%wmHYQ z8CPc1+O)PjnOKy!(X*yAZ-qGst*koI!<3_juG~{Z^jdrmc%i^~)2V6wYTOM5rD^rG zg~MO+XM8<`m|a$Vq0}bdX$}GTaR)(jS!TKeqISev{q{S%kg<QhGN5aP_0$<7lNi;z z(>H3h9)8H_vPQNJ1|N;f(?0)nK^Xl0Q!i+hX?I(YlIa+9aCqsNBRv$<bbNmi#0F*@ zx-Ls)9YgrErbdJ!ag%uwyV+$^S_4k*Vj*Zp<C$Qy*mA&*8*5{9B-~)UC_+FpEuP5s zU|;~^GdlI+2%iq)69VI_{wc{o$3o&XGq;ILg6Sd+N;zXhNP?f&YbD&V*b5You)gsN zh~)~RI{RPM*>pOO3mPm{yC`>GGQ#ABhV;FEf(C^`9PFs+2wUtX0AntI>w*{eRwQ7= z8aFhriNKyrF_A}gIrZVCxMhU1T;Fm@Xn+8f!l@3dlw{UuaDr%pr)(*kO&=T)LyB{M z{FR0YD=XbwkpmMeP%An9=AIspLgfUiKpID-C*cW>vHIwU>@CrfF+H>EhYj_Y<UPO& z6k|2-KFyKPlxd0zYgqW2*+)f+eyMI>WUgldi&Its&i7MaR@;fwlUC2(=+G6w^%OID zM)U11s0;LNudSG<(W-^*Z<*2IDW(t(#=}MN?Jn0DzNxnj-&a6<NMY|nv#~O^h82~e z4Q@4nEH|S5Gkk*c#Hamw`ql>uG={&@q6`Rdt^4)pa#gAHzg11FpSV2KUJnY%`>2e{ zTUDuy3)WXP0!n7~4RBkoYNd%I2@Xv+^pZ|MokpUw$}d57{Lc~lGZ6h%{A-`>kCAMf z&BIq-u@lB(1ivaxKH~54`Gh-G(892?I#B02t4}^P5_;`w^Wi&6=hKmw%^mhF!)%); z)K_BEI+_?ZTE4$0!rsk7ONQ-N@6DL9pwuQRek-(ba&R9}9`FCx_wlpGPA^bI&p|tr zYK7WAUb4|OQ~>iAr*~YBbpF|8&Et3oMwgs_HqT5s*0y0}pVYCLj35(!zuypU+};WX zIx1v3zIh~tPHv0*`61J}busB`q~OPuui@Ii#2CTj>JZaLU-NP8BO!2$LQ4$sG{=?` z3Prxg>Y&EdIeQaQfYV{dvZpzVdsx{l#Mq0v2s=`w8yacHn9C@-ze3E#MXZZhw+TJV z8Z>4r;xSf@dwO@&DS*w$b)L%udH~-)@pdY64$PP{RSM!j!pe-(Yz@nE1*~I?thTdY zox6(c+nb~tLgJbN7J$Z+Z^Qt5ArUqTU5<kQe`p{fYO4at&)1Q|Xkh^JF9V~D+awQ{ zqR-5~o^uF@MMYFOA4TH_;N~<IpDalcPT;H{St+f0XI@kcX?RqKl6Kc%5fH%-!`@<n zSkM`FVGz>2N=wIBEDH7Q4qxZkO7lfN=3yEif~j*Q^}G&OnlT>bn4ZYG%MSZr0T%^y zQ@Hcp1<<<qrxG5;v8cMQqC*XF^NO?O3njXC8c_Lb`T3Nd$LHa%PsH{a!=VT3G*!3Z z;QS~bha!c$2Z>Hk*H(TUn4WK%ekG88mUQ>Rz2m{2A!uSO5=o2-u!~JbV?B}*5>n9i zVP3?nWcj<7$tjtTMSgZxu&H)o_MLJAbZsNL$hq1)GdZj5YD{)PRnoKMw7m9iVs5?k zaP!4B>8!%6QMzP4>iz8Oq^A_}!vgvuB4l9!m{|GpzC|~D<9$y0*A3+7@J~CPb7RZL zMVCw|9WK(K9N<=VO~<1IoF4ve?5M47E-;?EoIr#lMD?The;St#MsVLhe4v6%feq>? z7-Dz$xLm@6y*$Hv-<m!j%38u0je9^&Y0R1zQU>``!@@I_u#)+<^D<`T^Hn*e0=kt0 zxq4hme8ZH*NrbwYis*30n)H1y?nc*2ZpZLem-r5t>^r(mr^{+a@0GXZ2~FNGWsDGK z?X{kH?q*e564lw|1xD-PaKH0>XZ(!eiQlcaG7B!6B|WoIf+JWsc<2S|(A_k!(RJ)? zu4OcAnl4zX`c0t4cL2)`l%2DEEx_F7w)#A;`itMReSAOZujKBl6WQBB-*ei%nLlvO zcYK9l7m=M)5qFnzwAQ~}NNYG^de{`k1TgbaU_Eovj4&JYUCJTELEwH94lj-x55?f< zfZK9aop2;pvxE@Eqd5THIT~P-52B%E;Guy9YZ1Ihl{Oa+f!_>6j<$WyQy0ZKiW6|S zNqY`{EGGkDES<d&rDaN{!%gK@KHXwApq7$M65x;0jg9c{W9)Tkga9WUKtj(kdaxMD zk*2W_i%R<i#g?~TlFpFP;a^JQY8!l$VQ<;bOSwS0KP~GcZbC0k&>;{a)O9gk8KC6g z@`EX|h3lg@B~!>LMbCDnJYHv0`dE&pW<^Pbo)i_4801+IAt5VTS&`m`f+6xV+Lo#O zBn+&wG^1kmae-2t+v8Lov$Z5GGTp1L04uq62p`Pw^pv{BN3MRd>maz=Ofh0mfkBQH zz4MsB-#(8hdeC}1C?cQ_k1x)>No6-=TW#kMt@CYMDp)<<cy0gpI^wM!w9yXcP33~@ zgnf@vCgqBaV#JhII85-SIUP<h#Vf+Zxh!tp#Hf(hpZ|GIxzz!GZNJ_3B9;b?YQGzS z=$D89G<<s7JO!u4>!958K8^xSoVuq@!%FKX`gV#-Lb%tKicA3FlJbcmtgJt}5nDZp zQiYLr(p1J=4<EQsyUGhI1F3dC<^C9LpS$neQ#S*~SPjs3#xdF!Efd~q=)b7*cC-Kv zENH?+sv_=`p=p-Z{n7Z#q#u6)=Y96;wfJj?#$H=Fn9|%SwTM01DKp<~cudkk8;~rh zqXu9p@7qTclTPn^J{?c`fe30ocX!=TzBUpu9zmjiPy0-If_Qgt<Ijo<a31=(V0Hxf zzHm>G&Q%>;aPZwvFzMho>ww5Z@ad}~9bb2NeGhhbB3^Ga8g;H|kb?KPY<>f~I@_a) zA*-)MfX0l@oxa+;7{*m5!E*Yh82RB^11G>Seg*{BZe7|H1=pL?&?y^{9<*@So(#ZK zuaAslb7UDL5ca0VQEZesj_O+gZ&0nDF5C4(J!59<kDIQo#$xE~0TzjXjc@}$heH(I zP$5W{g`H8%*KgC)Ec}6d&sj)<{bx6cKaLaTTvf=Qj_**3O9u3<!{H3pvs$Jn;{QGu z!XJ$d15_wLNTUQdtQFGrI~jh`g#{@b3mHzk101(pV4}82VOB!w)%{{YmgD{Ji}cB) zUI|oFxe0EbBT5rbkas;RdFMe&ihhEt{2?EB-ZLe&Nr(;$$R37iGcr+CQUG?P|9W(C z%37rq=&LcHDz}|YDs@#9qmQVd=-IuIQb4&!|IKd8toHxIaz{}P#J`+Zdkdl^?ib7D zwqS(F(hltk!qhvaFdxjz8W+<)q&C;FKzox&^J}Upfb9LgX|w=Bh3fo1)7a}#M4j#~ zawNT{f96Dv&&||(c2_Qh8KGl{NMy_dZ=-l(GS<sVE}oo>z8WPLlSNc?b+gY#XF`^N zj~*vnyP;E<9YFP|N{%m*sQo9iIi}pPsq*oI+U|msH2=Ef+{WmhR_zjU7WoCfEBZez zCt?4!+{Vx6ujMxBoL^=qlyo-V=M1fUM}8juj-t<rt889gOHdE}t^RDArDj4sWZmdj zd)aXQnfuFm?2%`050V_@xcT@@QX~oYq^u65tBe(;OqgZ9wJ6x)XGfBeoBXXB*xWj9 z@tZkT1Fr}@cywS*-rFVVh)~VG<JBvY%OhDT&%c!lSRQ|*V8o5*8+MeOLR=6eJD3H$ z!f0QgN^uath1u5|eX_=SIeLF=U3d9#A~-F2x+#=@oaxtB-;dqLv645uplh!N17&V& zu1%hpBoqJ0apX05yLZ?8C=ih!1D%;UgcOM9W^`BaNYAmy`I%B^L{o$sQ2-XOIZKw3 zWxd*7Uw(=`;MIrfU)g?3O|3kIxY;h)1mUjQPYqPS&nfl}|DnWL7@`IXHIGs8LBU&2 z8O_H`z0&^M@(YXqT29^kco+uL#9X+<jw15Nuo(?NZv0fyE0JvG?)h*b+~x=We+>GI zVy2D92}BM?vlS6l+T;`ov7a=&Ek=^<<3~nLI$0l8T7Hk^kLsfTm*tXi4N!{dfw5Sc z>6d{t&hwVBF5rc*@<jxj`@MzClYaAynK;kgMTGw2a(d1Y%C6OIFFV`I8P=vA`7kez zUoT|?Ep792!;A*sus^_3mWz*I7@|5D1F{s%1Q#bRC@X2VQVeqQtfZzzSIFibxiRft zo>=gOTAJXu2jxE}j6;=WSQ>CiCSj$b*yn}69!QPTl&irA4IVE`!cO&+bu$OA)MNRs z$d~Q@X`>(3mFQ3i)Nf9?K26C545&H2W{3*(?@h6Q%w#ia8OGiW7e*Z=L&eMUTAupD zB(oZX>Ar?O*uPY{++el4x{grIzg64ry2n%9p08)R*_!8jWdq5~=S{0FFcnpV9pfU@ z-mJgwh3`~uEQbJmzmR|5ST+qBQCG&`xoSq^8b)OJ{kO;P%I1Ueid^W1n9v`1m6xE( z779QTo;AL%IZ0^*jN&K2L5sqtCCGKT+3zGw)+YV!^=<EPxZ{|R@-RSr`W>O=1_Rz- zk$B%bD$E8EMj{mRoB2I?5By)B&Hda{**N96{4b>N(vnuFR%+^}}*j2+v7|KXCa zKBjpjB9x>Kgq7(0d{K!oYgxuC-cp~h))(1cs5B$ge^qu~SAUUTN!p#Rd57Cy$~*La z%Flrz(RW^#J=EHH<91$iti$cvpKZWk<IfHpqo>jJ>3psKr#ZHQ4rS-FjDy|MT3^E6 z+lKSN!Qdqqqc<yDz^)K<=BdMxkQG73e*NW+RTw^Gbz1;rZ6R!gkleuD!e5VX1N&n1 zfcwsR%>6RJ?$iKyv`U1o=N|o=X*^QOvHM`6xmy)K7xpPaOiM223=A~41=I;BYJX$h z33`N}iyq52nI}m^T8znqKFph+JzQ<Kf|v%1c^de1pRv<nSJ<7Am3;b*04pxRuBwQ4 zBhwI!<b-Vs&K!(q8N$iQNYt$o!Iw6@Tv&+YlQ0i#u@1mhzD2Uhx*(3I0mwDZL{@bd zetwFvo^cTfmv!MyR|QT@aFSeHVpdQdXL;(sCPSbY8`@$3-g}$XZ$MI%^Hx8WR!<IT zOjcNF8BixPfa;M&j0k1m7?ui_vzOpa2!pnE*bL01l)#%nb3lcQT>HRGsd>2vqokbG Rq~d(?nFin(eG&w;{sR^C@0I`n literal 0 HcmV?d00001