diff --git a/.gitignore b/.gitignore index ac610a619..6b0c00cda 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,6 @@ _site _posts assets/styles -lib/labels/labels.yaml -lib/labels/labels-malformed.yaml graph.dot nbproject *.rc @@ -14,3 +12,5 @@ backlogs.dev redmine_backlogs *~ \#*\# + +/.project diff --git a/.no-travis.yml b/.travis.yml similarity index 52% rename from .no-travis.yml rename to .travis.yml index ea6b9100f..01bca4b22 100644 --- a/.no-travis.yml +++ b/.travis.yml @@ -1,34 +1,20 @@ --- language: ruby -release: 1.0.6 +release: v1.2.0 +sudo: false services: - mysql - postgresql rvm: -- 1.9.3 - 2.0.0 env: -- REDMINE_VER=2.2.4 DB=mysql CLUSTER=CLUSTER1 -- REDMINE_VER=2.2.4 DB=mysql CLUSTER=CLUSTER2 -- REDMINE_VER=2.2.4 DB=postgresql CLUSTER=CLUSTER1 -- REDMINE_VER=2.2.4 DB=postgresql CLUSTER=CLUSTER2 -- REDMINE_VER=2.3.3 DB=postgresql CLUSTER=CLUSTER1 -- REDMINE_VER=2.3.3 DB=postgresql CLUSTER=CLUSTER2 -- REDMINE_VER=2.5.1 DB=postgresql CLUSTER=CLUSTER1 -- REDMINE_VER=2.5.1 DB=postgresql CLUSTER=CLUSTER2 +- REDMINE_VER=3.0.3 DB=postgresql CLUSTER=CLUSTER1 +- REDMINE_VER=3.0.3 DB=postgresql CLUSTER=CLUSTER2 +- REDMINE_VER=3.0.3 DB=mysql CLUSTER=CLUSTER1 +- REDMINE_VER=3.0.3 DB=mysql CLUSTER=CLUSTER2 matrix: allow_failures: - - rvm: jruby-18mode - - rvm: jruby-19mode exclude: - - rvm: 2.0.0 - env: REDMINE_VER=2.2.4 DB=mysql CLUSTER=CLUSTER1 - - rvm: 2.0.0 - env: REDMINE_VER=2.2.4 DB=mysql CLUSTER=CLUSTER2 - - rvm: 2.0.0 - env: REDMINE_VER=2.2.4 DB=postgresql CLUSTER=CLUSTER1 - - rvm: 2.0.0 - env: REDMINE_VER=2.2.4 DB=postgresql CLUSTER=CLUSTER2 install: echo skip bundle install before_script: - sh -c "if [ '$DB' = 'postgresql' ]; then psql -c 'DROP DATABASE IF EXISTS backlogs;' diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc deleted file mode 100644 index d4a406035..000000000 --- a/CHANGELOG.rdoc +++ /dev/null @@ -1,1227 +0,0 @@ -== 2013-10-20 v1.0.6 - -* Release Multiview (see http://www.redminebacklogs.net/topics/release_multiview.html) -* Update supported version to RM 2.3.3 -* A handful of bug fixes (thanks to contributers!) -* Filter closed stories on taskboard -* Enable wiki-formatting for release descriptions - -More details: -* Merge pull request "No longer removes search field" from ande3577/bug/removes_search_bar -* Update travis to RM 2.3.3 -* Remove unused function -* Refactor estimated series + show estimate end date along with releases when showing multiview. -* Merge pull request "Fix not showing link to task board if sprint starts on current day" from ande3577/bug/sprint_not_active_if_beginning_date -* Correct sorting of releases in multiselect fields. -* Fix missing menu update when creating stories in sprints ("Menu is not refreshed after adding first User Story") -* Fix typo causing release end dates not to be saved when editing on master backlog. -* Might help on "bug when trying to add migrate column "remaining_hours" twice" -* Sort releases by end date -* Enable basic test of burnchart view -* Added trendlines to multiview burnchart. -* Display release multiview graph -* Merge pull request "FR translation update" from LaurentCoignot/master -* Merge pull request "Update de.yml" from holgerfriedrich/master -* Stacked release data calculation -* Initial CRUD support for creating "Release Multiview" inspired by http://blog.gdinwiddie.com/2012/12/04/multi-release-burnup/. -* Allow wiki formatting for release description (fixes "Allow wiki formatting for release description") -* Merge pull request "Allow state of issues to be changed" from MadEgg/master -* Allow state of issues to be changed, even if they are in a different subproject than the story. Related to issue "Move tasks while on the storyboard" -* Merge pull request "Finished translation of remaining topics" from sandrix/master -* Merged patch suggested by @geoff-mci. Closes "Tooltip and drop down give error with sqlite installation". -* Translation of field task color as suggested by @cforce. Fixes "Make task colorn setting string in settings localized". -* Merge pull request "Now you can filter closed stories in taskboard view" from dmoreno/master -* Now you can filter closed stories in taskboard view -* Merge pull request "Update pt-BR.yml" from prialmeidaa/patch-1 -* Merge pull request "Create pl-PL.yml" from ksciana/master - -== 2013-07-31 v1.0.5 - -* Performance improvement on loading master backlog and taskboard -* Translations -* Unittests for default story tracker (thanks to stefan-langenmaier) - -More details: -* Issue #27131: Change le termes dans le backlogs plugin. -* Sort all locales using rails_locale_sorter -* Moving check for sharing type first in sql query seems to help databases avoid costly subselects if unnecessary. It was quite bad on performance when adding new sprints. (see "Slow project.js / app/views/show.js.erb" and "Performance of back log and board") -* Optimized SQL for droppable sprints/releases on master backlog. (Big performance improvement related to "Slow project.js / app/views/show.js.erb" and "Performance of back log and board") -* Utilize SQL for fetching release/sprint shared to projects. Huge improvement for "optimize loading time: preload menus" and improvement on total loading time for "Slow project.js / app/views/show.js.erb" and "Performance of back log and board". -* Change master backlog/taskboard tests related to default story tracker and other select fields into tests using full javascript stack. -* Allow other tests to create stories without specifying tracker. -* Remove issues assigned to release from product backlog query on issues tab. ("Product Backlog on Issues page query is wrong") -* enhanced the taskboard tests for assigned users -* Issue 27131: fix french translation -* added some tests on the taskboard - -== 2013-07-25 v1.0.4 - -* RM 2.3.2 supported -* Ability to choose default story tracker (thanks to stefan-langenmaier) -* Add releases to time report criteria. -* Fix for only showing visible project in scrum statistics. -* Setting for always showing priority field on taskboard (thanks to dpogue) -* Show shared releases in Release-tab. -* Integration with redmine header as default. -* Translations - -More details: -* Collect release_id information from parent issues to get the correct sum of hours for the time report view in redmine. -* fix typos in spanish translation -* Change travis to use RM 2.3.2 -* Fix select fields regression on master backlog/taskboard after merging "Issue #27130 : default story tracker". -* Issue #27130 : default story tracker -* Issue #27131 : Change les termes dans le backlogs plugin -* Issue #27131 : Change les termes dans le backlogs plugin -* Issue 27145: Force scrollbar -* Bugfix for only showing visible projects in scrum statistics. Possibly related to "Scrum Statistics: mysql2 SQL syntax error". -* Minor performance improvements for rb_server_variables. See "Slow project.js / app/views/show.js.erb". -* Fix deprecation warnings. -* Update Japanese locale -* Refactoring ja.yml's order same as en.yml. -* Add releases to time report criteria. See "time_entries/report allow Releases to be a criteria in the filter.". -* Give the setting a default of nil. -* Stub the priority string in other locales. -* Add a setting to always show task priority. -* Enable integration with redmine header as default. Fixes "Enable integration with redmine header as default". -* Show shared releases in Release-tab. - -== 2013-06-20 v1.0.3 - -* Fix JSON issue where remaining hours is reset when attribute is not in params array. -* Bulk edit release attributes across projects. -* Change release sidebar links to lead to an issue query. See "Releases sidebar links should lead to a query on issues page". -* Allow administrators DnD for all roles on taskboard. See "Can't move any feature as administrator". - -== 2013-05-29 v1.0.2 - -* RM 2.3.1 supported -* Fixes for release column in RM issue queries -* Release burnchart performance improvement (cached are now much faster, generating when cache is invalid is still rather slow) -* Merged pull request for JSON export (#918) -* Translation update -* Lock version 0.4.7 of faye-websocket to stay compatible with poltergeist (for development) - -== 2013-05-04 v1.0.1 - -* Only update release_id column when migrating releases. Should sort out "undefined method `release_relationship' for # when upgrading to v1.0.0" - -== 2013-04-30 v1.0.0 - -* Redmine 2.3.0 compatibiliy -** Issue queries refactored -* Release graph (experimental support) -** Release relationship adjustment (auto,added,continued) -** Trendlines for scope changes and closed points within release -* REST API (add release/story point to XML/JSON output) -* Translations -* Backlogs settings usability -** Only show project setting 'show stories from subprojects in backlog' when sharing is enabled. -** Move show project name setting into backlog page fieldset -* UI fixes -* Ensure project_id is always passed when creating stories in the master backlog. - -== 2013-03-22 v0.9.38 - -* rails 3.2.13 -* redmine 2.2.4 security release -* redmine 2.3.0 compatibiliy - -== 2013-03-15 v0.9.37 - -* Speed improvements on the backlog page -* Speed improvements on issues details page -* Auto-updater fixed for 'jumping stories' and sharing -* All translations updated - -* More details: -* use cached burndown data for statistics calculation. helps "very slow loading of stories." -* fix rb_application_controller not_configure render path error bpct/fix_not_configure -* fix tooltip url for sub-uri setups -* Update README.md -* fix typo in locale -* Updated simplified chinese locale -* fixed "misleading error messages when adding/dropping story to locked sprint" -* Config option for scrum statistics menu entry, fixes "Scrum Stats" menu entry on wrong position" -* user feedback if no closed sprints to show -* Speed improvements on loading backlogs page: -** remove tooltip from sprint title, it is not useful. -** render model_errors only if there are errors -** Load closed sprints on request using ajax -** load tooltips via ajax, speeding up backlog loading. "Very slow loading of Backlogs page" -** do not render higher_item_id on backlog std load -** make rank use scoped list_with_gaps_scope_condition -** refactor: remove some master backlog calculation loops and do not request closed sprint data if not enabled -** tests -* Auto updater fixed: -** Merge pull request "Bug/842 boardupdater4 - fix auto-refresh by scoping list_with_gaps higher/lower_item" from backlogs/bug/842-boardupdater4 -** list_with_gaps method rename: lower/higher_item are scoped, the unscoped ones are private -** shared last_update on master bl page -** scope taskboard updater to sprint -** updater checks for correct scope -** workaround effect of a ui race with auto-updater -** tests - -== 2013-02-22 v0.9.36 - -* Major features/changes: -* Releases reworked - issues are assignable to planned releases, and releases can be used on the master backlogs page to plan and priorize -* Floating layout - master backlog page is now resizable -* Configurable timezone for burndown, explicitly explain what happens with dates/times on burndown, Fixes "Burndown chart skips Friday and Saturday when set to skip Saturday & Sunday" -* jquery and jquery-ui updated to 1.7.2/1.8.21 and loading optimized, updated jqplot and other assets -* Redmine 2.2.3 support - -* More details: -* Fix a crash on the config page if the git binary wasn't on the PATH. from ctlajoie/fixcrash -* Fix error from bundler: The source :rubygems is deprecated because HTTP requests are insecure. -* Fix images in tooltips. from ctlajoie/ctl-fix-tooltip-images -* Some layout fine-tunings and fixes: give "close sprints" more room, give issue status more room, correct font-family for tooltips, use 12px for jquery widget font -* Fixes and tests for story following task states, some usability on settings page -* Re-use redmine project jump box to increase compatibility and usability -* Javascript code cleanups -* Show task board menu item -* Fix "Database Migration Failure: String can't be coerced into Fixnum" -* css: remove unused compact view styles for taskboard -* js: cleanup monkey-inheritance, refactor editor dialog classes, remove jeditable, we do not use it -* Sidebar: show burndown explanation only in full mode -* Inline release title editing on master backlog page -* Fix "Duplicate file upload entries on issue page after installing backlogs plugin" -* Fix "Firexfox exposes rendering bug on Taskboard" for floating table header -* Fix "Remaining Hours Migration Fails During Upgrade" -* Adapt to new travis workers: explicit exit travis script on error -* Note the limited support for themes when showing redmine header -* development: fix recursive links created by redmine install -* Fix story color on taskboard -* Adapt base layout to better support themes. For more tuning use x_backlogs_styleadapter plugin on github (support: best effort) -* Remove duplicate locale entries -* rake 10 support, fixes installation troubles -* Cleanups on release pages -* List releases in sidebar -* Add release to bulk edit -* Improvements for anonymous users and some more permission consistency -* Fix frontend error dialog -* Fix issues on project settings, fixes compatibility to redmineCRM -* More details in story tooltips: assignee, project and custom fields are now available -* Wiki page links fixed -* Fix ajax parameter injection issue resulting in broken redmine buttons - -== 2013-01-20 v0.9.35 - -* reworked fix for #669 (the infamous test-unit bundle conflict) from inger/master -* rake task to touch all stories in order to recalculate remaining story points after migration -* code climate -* fix mouse pointer for closed stories (draggable) and stories in closed sprints (not draggable) -* visually hint valid/invalid drops on shared backlog - -== 2013-01-18 v0.9.34 - -* Redmine 2.2.1, 2.1.6, 1.4.6 (security releases) -* Fixed Hudson Conflict, avoid unneccessary loading of js libraries -* Add <> to task assignee dropdown -* Backlogs page: fix duplication of story subject when editing -* Obey workflow on taskboard -* Re-enable taskboard drag-drop between stories -* Integrate with redmine menus (optional) -* Put backlogs main menu before issues so new issue is near issues tab -* Integration test scripts for home testing - -== 2013-01-12 v0.9.33 - -* allow skipping rebuilding history -- do this at your own risk -* "My page crash", needs testing -* Merge pull request "Sharing/auto share sprints" from patrickatamaniuk/sharing/auto-share-sprints -* Merge pull request "story status loosely follows tasks" from patrickatamaniuk/feature/story-status-loosely-follows-tasks -* avoid using a projects_helper function in settings for redmine 2.2 -* Share new sprints according to setting -* Merge pull request "Fix burndown settings for redmine in subdirectory" from patrickatamaniuk/bug/cookiepath -* remove debug code -* Merge pull request "fix datepicker visibility on editing sprint" from patrickatamaniuk/ui/datepicker -* Merge pull request "master backlog page relative positioning and css cleanups" from patrickatamaniuk/feature/relativepositioning3 -* clip overlong issue fields in master backlog -* Ignore deleted sprints ("Upgrade fails on burndown") -* Merge pull request "fix null constraint on email, ignore group.language" from patrickatamaniuk/anonymizer -* css: fixes - -== 2012-12-26 v0.9.32 - -* fix "can't convert Hash into Array" can't convert Hash into Array -* travis timeouts again. - -== 2012-12-24 v0.9.31 - -* migration error - -== 2012-12-24 v0.9.30 - -* RM2.2 support, despite the utterly moronic choices they sometimes make -* integrate private mode button into taskboard user select -* fix for "Upgrade to master distorts burndown data" -* No mysql support for ruby 1.8.7, because redmine causes the wrong gem to be installed -* fix printable cards loading -* Redmine 2.1.5 support - -== 2012-12-20 v0.9.29 - -* hide stories of projects not visible to the user on master_backlogs page -* fix information leak on shared backlogs: show only visible sprints; show only visible projects in the bl menu -* Feature: show only selected graphs in burndown print view; use global - cookie for burndown settings so print url has the same settings as - taskboard/masterbacklog burndown -* Nicer styling for save/cancel on issue-editor. -* workaround firefox15 bug 787944 - prevent editor to open on drag-end -* Migration fixes -* Burndown test added to test suit (Thank you Cecilia!) -* Adds a setting to hide the project name from backlogs - -== 2012-11-30 v0.9.28 - -* fixed build - -== 2012-11-28 v0.9.27 - -* fixes "Can't create new stories, issues", "Migration issue" -* Fixes "failed to initialize story positions based on existing priorities in Redmine" -* Fixes "close completed Sprints button on master backlogs." -* Russian translations. -* Hide projects from scrum statistics if they are not visible for current user + added project setting to show/hide a project from scrum statistics. -* Show remaining time on Story level -* Added spent hours vs accepted points to scrum stats -* 2.1.2 passes tests -* Use a higher drag distance threshold for tasks on the taskboard to prevent starting a drag when you intended to click. -* Added "Save" and "Cancel" links when creating or editing a story inline. -* german translations -* reorganize settings page, group related settings -* make sorting of sprints in mbp configurable -* Reverse the order of the sprints on the Master Backlog page. -* show nice qtip tooltips for project name and subject on master backlog - -== 2012-07-08 v0.9.26 - -* 2.0 travis build works again -* Javascript overrided new story placement (fixes "New Stories appear at the top of the Product Backlog" again) - -== 2012-07-04 v0.9.23 - -* Add "support" for 1.9.2 - -== 2012-07-04 v0.9.20 - -* Specify ruby versions -* Merge branch 'master' of github.com:backlogs/redmine_backlogs -* Clearer message for non-supported versions -* Try to make the via route work in ruby 1.8 -* Refactor releases routes -* Fixes "Burndown doesn't take updates of "Remaining time"" -- acts_as_journal acting_randomly. -* More DB wonkyness -* empty string means null -* More DB corruption handlers -* More DB corruption handling -* typo -* Old insert_at call -* More database brokenness workarounds -* Configuration oddities - -== 2012-06-30 v0.9.19 - -* Postgresql fixes - -== 2012-06-30 v0.9.16 - -* Fix redmine2 sidebar on apache with relative url root, from patrickatamaniuk/tests/sidebar -* Fix issues sidebar is not displayed when installed to suburi (Rails 3) -* give product owner modify_releases permission -* security enhancements -* more automated tests -* Fixes for releases -* Rails 3 compatibility fixes -* Select a default label if none was selected (fixes "Printable cards option not showing with Bitanmi Redmine 2.0.2") -* Postgresql compatibilities - -== 2012-06-13 v0.9.15 - -* Looser support restrictions -* "Locales are broken for 1.9.3" -* Fixes for CustomizedField - -== 2012-06-12 v0.9.14 - -* Online version check -* Fixes "Install task: can't modify frozen Hash ". -* Translations updated -* Give stories the same Start/Due date as the sprint -* Allow story cards to take on custom colours if assigned to a user -* fixes "My Pages Exception" - -== 2012-06-02 v0.9.13 - -* Ruby 1.9 supported -* Chiliproject fixes - -== 2012-05-31 v0.9.12 - -* Down migrations added -* Fixes "New Stories appear at the top of the Product Backlog" - -== 2012-05-31 v0.9.11 - -* Fixing issue "The users select is empty in the "Edit task" form (Redmine 2 only)" -* Skip authorize for rb_server_variables#index. Fixes "403 on rb_server_variables#index" -* Potential solution for "closing task generates 'Version has already been taken' error" -* RM 1.4.2 - -== 2012-05-28 v0.9.10 - -* Small fix to migrations - -== 2012-05-28 v0.9.9 - -* RM2.0 compatibility updates -* General cleanup -* acts_as_list replaced by a more performant replacement -* Removed obsolete migration -* Tests: Add SimpleCov report generation -* Tests: Add initial feature test for settings -* Tests: Improve test failure diagnostics -* Tests: Print meaningful error message if cucumber test fails -* Cucumber: Rails 3 compatibility - -== 2012-05-20 v0.9.8 - -* Make sure older migrations don't use the new journals stuff -* "Show warning on taskboard if tracker workflow is misconfigured" warn user if tasks workflow has no states -* Fixes "Slowness and unresponsiveness when moving issues" -* set all ticks so checkbox shows the correct state on load. helps with ""Show empty stories" should be selected by default (bug?)" -* Update Gemfile for running cucumber tests with Rails 3 -* Better CP support, not complete yet -* Use https instead of git to install cucumber-rails. -* Fixes "Subtasks not updated when changing custom fields" -* Use poltergeist driver for javascript testing. - -== 2012-05-13 v0.9.7 - -* Removes journal rebuild from the migration -* In-place fixes for test fixtures -* Merge pull request "Travis on master" from Vanuan/travis_on_master - -== 2012-05-11 v0.9.6 - -* Fixes "sub stories disappearing from task board", "Subtasks not updated when changing custom fields", "Dragging a closed story within a sprint causes it to be set to New" -* Removed unnecessary '.becomes(Issue)'. Apparenty this messed up the status field of the issue. Fixes "Status reset on changing remaining hours when adding time entry" and possibly affects "Dragging a closed story within a sprint causes it to be set to New". -* Merge pull request "Fix PBL Story update feedback off-by-one-post" from patrickatamaniuk/issue/493-blpage-sprint-ui-update-off-by-one -* Fix PBL Story update feedback off-by-one-post -* Prepping for 1.9 -* shell-based rbl-setup -* Rollback migration for unique_positions. - -== 2012-05-09 v0.9.5 - -* Duplicates positions after issue copy fixed -* Merge pull request "DB Query optimisation " from rbaranga/master -* fixed database query taking a lot of time when using story points -* Merge pull request "Working gem set for ruby 1.9" from Vanuan/ruby_19_gems (Working gem set for ruby 1.9) -* Closes "Cleanups and small fixes" -- will consider more of it's option after discussion -* Refactor rb_journal code -* Allow pre-calculation of scrum stats -* Fixes "Error creating new tasks" - -== 2012-05-03 v0.9.4 - -* Burndown charts work again -* Uninstalling plugin's database contents possible -* Hardened against DB corruption -* Merging unified-journals - -== 2012-04-30 v0.9.3 - -* Updates for RM 1.4 -* Faster "Backlog sorting" -* fix positioning on story creation from backlog page -* Fixes "ChiliProject migration issue" - -== 2012-04-26 v0.9.2 - -* Soft-fail on RM 1.3 (still unsupported though) -* Redmine 1.4.1 & Ruby 1.9.3 support -* Card loading order fixed - -== 2012-04-25 v0.9.1 - -* Prelim support for CP3.1.0 - -== 2012-04-25 v0.9.0 - -* RM 1.4.1 support -* Corrected previous taskboard color fix for groups. -* Fixed image location for css. -* Merge pull request "Change to "Show empty stories" behavior on taskboard" from backlogs/bohansen_taskboard_empty_stories -* Moved jquery css to its own subdir -* Added category field to tooltips (see "Option to Show Category on Master Backlogs and Taskboard") -* Changed taskboard user selection option 'Show empty stories' to show *really* empty stories only and not stories where all tasks are hidden. -* Add redmine group support to user selection on taskboard. -* Provides a workaround for "Sprint Taskboard - Internal Error", caused by a functional bug in Redmine. -* Fixes "Cannot export story points via REST API" -* Fixes "Redmine backlogs install doesn't create a new tracker" -* Fixes "Create new issue displays trackers not in use for the project" -* Fixes "Custom fields delete with sprint", with great thanks to Malti for the excellent analysis -* Merge pull request "Fix group assign on taskboard (#479)" from backlogs/bohansen_group_assign_on_taskboard -* Taskboard color fix for group assigned tasks -* Added ability to group assign on taskboard if enabled in Redmine itself -* Merge pull request "Redmine 1.4.0 compatibility" from Vanuan/master -* Card layout loading fix -* Merge pull request "Show burndown charts with User timezone dates" from dpogue/patch-1 -* Merge pull request "Added in ability to hide unused stories" from svolpe/master -* Merge pull request "Improve localization." from mikoto20000/locale-ja -* Merge pull request "TaskBoard with by user view using jquery multiselect" from svolpe/master -* Renaming some tests to prepare for sharing branch tests -* taskboard: finally fixed the css issue and user multiselect pull down -* taskboard: fix style sheet to allow selecting of projects. The user multiselection location is still too low. -* taskboard: Add changes to support multiselect of users -* taskboard: Added multiselect jquery widget to allow selecting of viewed tasks by user name. -* Merge pull request "fixed Japanese translation mistake." from alminium/locale-ja -* Merge pull request "Edit both issue name and description from TaskBoard #63" from marltu/taskboard-description -* Merge pull request "Taskboard private view" from alminium/taskboard-private-view -* Install without user prompt - -== 2012-03-10 v0.8.7 - -* Show error when migrations have not been run -* Merge pull request "Update remaining hours from time log" from bohansen/update_remaining_hours_from_time_log -* Added ability to adjust remaining hours when logging time using standard 'Log time'-view in Redmine -* Taskboard filter from YusukeKokubo (19a4d6307ed978f1469e88f0dc1543e86c37fa93), fixes "taskboard with by user view." -* Merge pull request "Fixes javascript error when showing burndown chart" from frisco82/master -* Merge pull request "Update config/locales/fr.yml" from yquenechdu/patch-1 -* Update config/locales/fr.yml - -== 2012-03-04 v0.8.6 - -* Improve debugging (dump pages) - -== 2012-03-04 v0.8.5 - -* Fix for timelog from taskboard - -== 2012-02-28 v0.8.4 - -* Update gem dependencies -* Improve i18n and add Japanese localization - -== 2012-02-01 v0.8.3 - -* Only include system_timer gem on unix-1.8.7 -* Fix many jslint problems - -== 2012-02-01 v0.8.2 - -* Only require system_timer for unix-1.8.x -* fix many jslint problems - -== 2012-01-30 v0.8.1 - -* ChiliProject fixes -* Report Hours per point in statistics page. Be careful how you use this. - -== 2012-01-21 v0.8.0 - -* Fixes for redmine group-assign -* ChiliProject support - -== 2012-01-20 v0.7.9 - -* Auto-set start date for tasks -* Prelimenary ChiliProject support - -== 2012-01-19 v0.7.8 - -* ie8/9 fixes -* Fixed error for non-logged in users -* Remove 'Not configured' message as soon as problem is corrected - -== 2012-01-16 v0.7.7 - -* Opera fixes - -== 2012-01-16 v0.7.6 - -* Fixed crash - -== 2012-01-16 v0.7.5 - -* Fixed crash - -== 2012-01-16 v0.7.4 - -* More graceful checking against bad installs - -== 2012-01-16 v0.7.3 - -* Better error reporting for incomplete installs -* Gem requirements updates -* Support for offline installations -* Card printing fixes - -== 2012-01-06 v0.7.2 - -* Always show ideal in burndown -* Fixes crash for stories with points -* Merge pull request "Allowed burndown chart to include saturday and sunday" from pinglamb/burndown_include_sat_and_sun -* Few changes to spanish translation from mauriciorivera -* Auto assign task to current user when he/she changes the task status and the task is not assigned yet, configurable in setting page -* Fixes for fractional story points - -== 2011-12-16 v0.7.1 - -* Tests run again -* Starting support for Redmine 1.3.0 -* Conflict with redmine hipchat plugin fixed -* Trackers sorted by id when adding new story -* Updated german language file from cgraumann -* Add permission setting to disable remaining hours - -== 2011-12-04 v0.7.0 - -* Fixing tooltips XSS from bohansen - -== 2011-12-02 v0.6.23 - -* More stringent version checks -* Fixes syntax error -* Replaced 028 migration with proper sum ("Stories does not sum remaining hours") -* Fixed crash on migration to latest version -* migration to accompany "Stories does not sum remaining hours" - -== 2011-11-28 v0.6.22 - -* Calendar tests finally run again - -== 2011-11-28 v0.6.21 - -* Remaining hours sum again, calendar feed works again -* Tests run again -* Fixed "Burndown suddenly drops to zero points, hours" -* Backlog sorting fixed -* Hide button and select box on taskboard print-out from siegerv -* Fixed estimated hours not set when creating task from bohansen -* Hide the add new task button and project selection box on the print-out of the taskboard. -* Fixed estimated hours not set when creating task -* Fixed master backlogs performance when there are too many sprints. from walf443 -* Change story point color in taskboard. from alminium -* Fixes "Update to v0.6.16 not working" -* Language updates -* Fixes "Error while printing burndown" -* Fix for burndown resizing bug from darklin -* Important performance fix from sauliusgrigaitis -* Added missing index on Issues table postition field -* Fixed sprint points calculation when adding story directly to sprint in backlogs view from bohansen -* Fixes "Crash on migration to latest version" -* Fixes "Scrum statistics tab missing despite permission enabled" - -== 2011-11-11 v0.6.20 - -* Fixes "Scrum Statistics page doesn't load" -* Fixes "Master Backlog positions always take position 1" -* Javascript errors -* Added defaults for burndown print size -* Burndown print size customization from darklin -* Validation of story description moved back to server from bohansen -* Tests pass again - -== 2011-11-09 v0.6.19 - -* Fixes "Crash on migration to latest version" -* Fix for float story points total sum on masterbacklog from bohansen -* Remove all hook rendering for "Error viewing issues after installing backlogs" -* Fix for float story points total sum on masterbacklog. - -== 2011-11-06 v0.6.18 - -* Story points with fractions -* Creating a task caused error, fix from ekohl -* Better cache management -* Added storypoints field to product backlog from bohansen -* Added tracker statistics tooltip on backlog view + fixed recalculation from bohansen - -== 2011-11-03 v0.6.17 - -* Added tracker statistics tooltip on backlog view + fixed recalculation of story points when updating story. -* Fix 500 error caused by the 'My page' block from dakota -* Fix issue with internal error caused by my page block typo -* Caching fixes -* Fixes "Internal Error when try to open an issue where Story Point is setted" -* Taskboard layout improvements from alminium,bohansen - -== 2011-10-31 v0.6.16 - -* Fixes "Migrating to estimated hours => remaining hours" -* Fixed decimal comma problem for remaining hours on taskboard from bohansen -* Brush up master backlogs. - -== 2011-10-31 v0.6.15 - -* All tests pass -* fixed story subject is overflow from alminium -* Improve ie support from alminium -* update jquery 1.6.2 and jquery-ui 1.8.16 to fix IE dnd problem. -* In taskboard, don't open task editor when move task. -* adjust the status in master backlog for IE. -* fixed dnd event handling. -* German translation updated from sureal -* Rebase to remaining_hours branch. -* Fixed overflow story title on masterbacklogs. -* fixed task dialog in taskboardd is transparent. -* Fixed rb_variable_server/how.js.erb that cause http status 500 from floreal -* special characters disappeared when stories are created via backlog page -* fixed burndown chart. -* fixed start end date order. -* update Japanese translation. -* Option to Not Show Burndown Chart on Sidebar -* Points not resolved" regression - -== 2011-10-05 v0.6.14 - -* update Japanese translation. -* All tests pass again -* Burndown fixes -* Auto-tagger - -== 2011-09-29 v0.6.13 -* Fixes "auto-refresh rate is too fast" (but my heart goes out to you if your production server can't handle 1 request per second) -* Fixes "Private issues is always shown in backlog lists" -* Fixes "Template Error on Master Backlog" -* Migration for "Display Error for Tasks and Their Sub-Tasks" -* Force tasks to the task tracker (related to "Display Error for Tasks and Their Sub-Tasks") -* update Japanese translations. -== 2011-09-18 v0.6.11 - -* various bugfixes - -== 2011-08-31 v0.6.10 - -* Allow resetting a sprint - This can be useful for when planning is done offline, and you enter stories/tasks after - the sprint start date. Use with care. - -== 2011-08-30 v0.6.9 - -* Burndown in sidebar conforms to currently selected sprint/story -* Time entry from task board (thank you bohansen!) -* And of course, several bugs fixed - -== 2011-08-25 v0.6.8 - -* Warning on the taskboard if no workflow is available -* Burndown seems to *finally* be fixed now, major thanks to bohansen for providing the test cases -* better error reporting for ajax dialogs -* various bug fixes -* stories now always get a position -* journals now reflect all changes (except positions changes, by design) - -== 2011-08-02 v0.6.6 - -* Javascript consolidated (this should fix the burndown. I know I've said so before) - -== 2011-08-01 v0.6.5 - -* jQuery conflicts resolved -* Migration fixed - -== 2011-08-01 v0.6.4 - -* Burndown finally fixed -* Facility to change the initial estimate -* New 021 migration - -== 2011-07-23 v0.6.3 - -* Burndown fixed -* IME enter-to-submit and escape-to-cancel fixed -* Copy open tasks fixed -* Download sprint data to excel - -== 2011-07-17 v0.6.2 - -Statistics page fixed after burndown reimplementation - -== 2011-07-16 v0.6.1 - -Reworked the burndown generation. It had become a tangled, hard-to-fix mess. -No longer requires the rake task to keep the burndown up-to-date. - -Tasks and stories can now be properly rejected (see website for docs) - -This version adds a migration -- make sure you run it! -== 2012-11-30 v0.9.28 - -* fixed build - -== 2012-11-28 v0.9.27 - -* fixes "Can't create new stories, issues", "Migration issue" -* Fixes "failed to initialize story positions based on existing priorities in Redmine" -* Fixes "close completed Sprints button on master backlogs." -* Russian translations. -* Hide projects from scrum statistics if they are not visible for current user + added project setting to show/hide a project from scrum statistics. -* Show remaining time on Story level -* Added spent hours vs accepted points to scrum stats -* 2.1.2 passes tests -* Use a higher drag distance threshold for tasks on the taskboard to prevent starting a drag when you intended to click. -* Added "Save" and "Cancel" links when creating or editing a story inline. -* german translations -* reorganize settings page, group related settings -* make sorting of sprints in mbp configurable -* Reverse the order of the sprints on the Master Backlog page. -* show nice qtip tooltips for project name and subject on master backlog - -== 2012-07-08 v0.9.26 - -* 2.0 travis build works again -* Javascript overrided new story placement (fixes "New Stories appear at the top of the Product Backlog" again) - -== 2012-07-04 v0.9.23 - -* Add "support" for 1.9.2 - -== 2012-07-04 v0.9.20 - -* Specify ruby versions -* Merge branch 'master' of github.com:backlogs/redmine_backlogs -* Clearer message for non-supported versions -* Try to make the via route work in ruby 1.8 -* Refactor releases routes -* Fixes "Burndown doesn't take updates of "Remaining time"" -- acts_as_journal acting_randomly. -* More DB wonkyness -* empty string means null -* More DB corruption handlers -* More DB corruption handling -* typo -* Old insert_at call -* More database brokenness workarounds -* Configuration oddities - -== 2012-06-30 v0.9.19 - -* Postgresql fixes - -== 2012-06-30 v0.9.16 - -* Fix redmine2 sidebar on apache with relative url root, from patrickatamaniuk/tests/sidebar -* Fix issues sidebar is not displayed when installed to suburi (Rails 3) -* give product owner modify_releases permission -* security enhancements -* more automated tests -* Fixes for releases -* Rails 3 compatibility fixes -* Select a default label if none was selected (fixes "Printable cards option not showing with Bitanmi Redmine 2.0.2") -* Postgresql compatibilities - -== 2012-06-13 v0.9.15 - -* Looser support restrictions -* "Locales are broken for 1.9.3" -* Fixes for CustomizedField - -== 2012-06-12 v0.9.14 - -* Online version check -* Fixes "Install task: can't modify frozen Hash ". -* Translations updated -* Give stories the same Start/Due date as the sprint -* Allow story cards to take on custom colours if assigned to a user -* fixes "My Pages Exception" - -== 2012-06-02 v0.9.13 - -* Ruby 1.9 supported -* Chiliproject fixes - -== 2012-05-31 v0.9.12 - -* Down migrations added -* Fixes "New Stories appear at the top of the Product Backlog" - -== 2012-05-31 v0.9.11 - -* Fixing issue "The users select is empty in the "Edit task" form (Redmine 2 only)" -* Skip authorize for rb_server_variables#index. Fixes "403 on rb_server_variables#index" -* Potential solution for "closing task generates 'Version has already been taken' error" -* RM 1.4.2 - -== 2012-05-28 v0.9.10 - -* Small fix to migrations - -== 2012-05-28 v0.9.9 - -* RM2.0 compatibility updates -* General cleanup -* acts_as_list replaced by a more performant replacement -* Removed obsolete migration -* Tests: Add SimpleCov report generation -* Tests: Add initial feature test for settings -* Tests: Improve test failure diagnostics -* Tests: Print meaningful error message if cucumber test fails -* Cucumber: Rails 3 compatibility - -== 2012-05-20 v0.9.8 - -* Make sure older migrations don't use the new journals stuff -* "Show warning on taskboard if tracker workflow is misconfigured" warn user if tasks workflow has no states -* Fixes "Slowness and unresponsiveness when moving issues" -* set all ticks so checkbox shows the correct state on load. helps with ""Show empty stories" should be selected by default (bug?)" -* Update Gemfile for running cucumber tests with Rails 3 -* Better CP support, not complete yet -* Use https instead of git to install cucumber-rails. -* Fixes "Subtasks not updated when changing custom fields" -* Use poltergeist driver for javascript testing. - -== 2012-05-13 v0.9.7 - -* Removes journal rebuild from the migration -* In-place fixes for test fixtures -* Merge pull request "Travis on master" from Vanuan/travis_on_master - -== 2012-05-11 v0.9.6 - -* Fixes "sub stories disappearing from task board", "Subtasks not updated when changing custom fields", "Dragging a closed story within a sprint causes it to be set to New" -* Removed unnecessary '.becomes(Issue)'. Apparenty this messed up the status field of the issue. Fixes "Status reset on changing remaining hours when adding time entry" and possibly affects "Dragging a closed story within a sprint causes it to be set to New". -* Merge pull request "Fix PBL Story update feedback off-by-one-post" from patrickatamaniuk/issue/493-blpage-sprint-ui-update-off-by-one -* Fix PBL Story update feedback off-by-one-post -* Prepping for 1.9 -* shell-based rbl-setup -* Rollback migration for unique_positions. - -== 2012-05-09 v0.9.5 - -* Duplicates positions after issue copy fixed -* Merge pull request "DB Query optimisation " from rbaranga/master -* fixed database query taking a lot of time when using story points -* Merge pull request "Working gem set for ruby 1.9" from Vanuan/ruby_19_gems (Working gem set for ruby 1.9) -* Closes "Cleanups and small fixes" -- will consider more of it's option after discussion -* Refactor rb_journal code -* Allow pre-calculation of scrum stats -* Fixes "Error creating new tasks" - -== 2012-05-03 v0.9.4 - -* Burndown charts work again -* Uninstalling plugin's database contents possible -* Hardened against DB corruption -* Merging unified-journals - -== 2012-04-30 v0.9.3 - -* Updates for RM 1.4 -* Faster "Backlog sorting" -* fix positioning on story creation from backlog page -* Fixes "ChiliProject migration issue" - -== 2012-04-26 v0.9.2 - -* Soft-fail on RM 1.3 (still unsupported though) -* Redmine 1.4.1 & Ruby 1.9.3 support -* Card loading order fixed - -== 2012-04-25 v0.9.1 - -* Prelim support for CP3.1.0 - -== 2012-04-25 v0.9.0 - -* RM 1.4.1 support -* Corrected previous taskboard color fix for groups. -* Fixed image location for css. -* Merge pull request "Change to "Show empty stories" behavior on taskboard" from backlogs/bohansen_taskboard_empty_stories -* Moved jquery css to its own subdir -* Added category field to tooltips (see "Option to Show Category on Master Backlogs and Taskboard") -* Changed taskboard user selection option 'Show empty stories' to show *really* empty stories only and not stories where all tasks are hidden. -* Add redmine group support to user selection on taskboard. -* Provides a workaround for "Sprint Taskboard - Internal Error", caused by a functional bug in Redmine. -* Fixes "Cannot export story points via REST API" -* Fixes "Redmine backlogs install doesn't create a new tracker" -* Fixes "Create new issue displays trackers not in use for the project" -* Fixes "Custom fields delete with sprint", with great thanks to Malti for the excellent analysis -* Merge pull request "Fix group assign on taskboard (#479)" from backlogs/bohansen_group_assign_on_taskboard -* Taskboard color fix for group assigned tasks -* Added ability to group assign on taskboard if enabled in Redmine itself -* Merge pull request "Redmine 1.4.0 compatibility" from Vanuan/master -* Card layout loading fix -* Merge pull request "Show burndown charts with User timezone dates" from dpogue/patch-1 -* Merge pull request "Added in ability to hide unused stories" from svolpe/master -* Merge pull request "Improve localization." from mikoto20000/locale-ja -* Merge pull request "TaskBoard with by user view using jquery multiselect" from svolpe/master -* Renaming some tests to prepare for sharing branch tests -* taskboard: finally fixed the css issue and user multiselect pull down -* taskboard: fix style sheet to allow selecting of projects. The user multiselection location is still too low. -* taskboard: Add changes to support multiselect of users -* taskboard: Added multiselect jquery widget to allow selecting of viewed tasks by user name. -* Merge pull request "fixed Japanese translation mistake." from alminium/locale-ja -* Merge pull request "Edit both issue name and description from TaskBoard #63" from marltu/taskboard-description -* Merge pull request "Taskboard private view" from alminium/taskboard-private-view -* Install without user prompt - -== 2012-03-10 v0.8.7 - -* Show error when migrations have not been run -* Merge pull request "Update remaining hours from time log" from bohansen/update_remaining_hours_from_time_log -* Added ability to adjust remaining hours when logging time using standard 'Log time'-view in Redmine -* Taskboard filter from YusukeKokubo (19a4d6307ed978f1469e88f0dc1543e86c37fa93), fixes "taskboard with by user view." -* Merge pull request "Fixes javascript error when showing burndown chart" from frisco82/master -* Merge pull request "Update config/locales/fr.yml" from yquenechdu/patch-1 -* Update config/locales/fr.yml - -== 2012-03-04 v0.8.6 - -* Improve debugging (dump pages) - -== 2012-03-04 v0.8.5 - -* Fix for timelog from taskboard - -== 2012-02-28 v0.8.4 - -* Update gem dependencies -* Improve i18n and add Japanese localization - -== 2012-02-01 v0.8.3 - -* Only include system_timer gem on unix-1.8.7 -* Fix many jslint problems - -== 2012-02-01 v0.8.2 - -* Only require system_timer for unix-1.8.x -* fix many jslint problems - -== 2012-01-30 v0.8.1 - -* ChiliProject fixes -* Report Hours per point in statistics page. Be careful how you use this. - -== 2012-01-21 v0.8.0 - -* Fixes for redmine group-assign -* ChiliProject support - -== 2012-01-20 v0.7.9 - -* Auto-set start date for tasks -* Prelimenary ChiliProject support - -== 2012-01-19 v0.7.8 - -* ie8/9 fixes -* Fixed error for non-logged in users -* Remove 'Not configured' message as soon as problem is corrected - -== 2012-01-16 v0.7.7 - -* Opera fixes - -== 2012-01-16 v0.7.6 - -* Fixed crash - -== 2012-01-16 v0.7.5 - -* Fixed crash - -== 2012-01-16 v0.7.4 - -* More graceful checking against bad installs - -== 2012-01-16 v0.7.3 - -* Better error reporting for incomplete installs -* Gem requirements updates -* Support for offline installations -* Card printing fixes - -== 2012-01-06 v0.7.2 - -* Always show ideal in burndown -* Fixes crash for stories with points -* Merge pull request "Allowed burndown chart to include saturday and sunday" from pinglamb/burndown_include_sat_and_sun -* Few changes to spanish translation from mauriciorivera -* Auto assign task to current user when he/she changes the task status and the task is not assigned yet, configurable in setting page -* Fixes for fractional story points - -== 2011-12-16 v0.7.1 - -* Tests run again -* Starting support for Redmine 1.3.0 -* Conflict with redmine hipchat plugin fixed -* Trackers sorted by id when adding new story -* Updated german language file from cgraumann -* Add permission setting to disable remaining hours - -== 2011-12-04 v0.7.0 - -* Fixing tooltips XSS from bohansen - -== 2011-12-02 v0.6.23 - -* More stringent version checks -* Fixes syntax error -* Replaced 028 migration with proper sum ("Stories does not sum remaining hours") -* Fixed crash on migration to latest version -* migration to accompany "Stories does not sum remaining hours" - -== 2011-11-28 v0.6.22 - -* Calendar tests finally run again - -== 2011-11-28 v0.6.21 - -* Remaining hours sum again, calendar feed works again -* Tests run again -* Fixed "Burndown suddenly drops to zero points, hours" -* Backlog sorting fixed -* Hide button and select box on taskboard print-out from siegerv -* Fixed estimated hours not set when creating task from bohansen -* Hide the add new task button and project selection box on the print-out of the taskboard. -* Fixed estimated hours not set when creating task -* Fixed master backlogs performance when there are too many sprints. from walf443 -* Change story point color in taskboard. from alminium -* Fixes "Update to v0.6.16 not working" -* Language updates -* Fixes "Error while printing burndown" -* Fix for burndown resizing bug from darklin -* Important performance fix from sauliusgrigaitis -* Added missing index on Issues table postition field -* Fixed sprint points calculation when adding story directly to sprint in backlogs view from bohansen -* Fixes "Crash on migration to latest version" -* Fixes "Scrum statistics tab missing despite permission enabled" - -== 2011-11-11 v0.6.20 - -* Fixes "Scrum Statistics page doesn't load" -* Fixes "Master Backlog positions always take position 1" -* Javascript errors -* Added defaults for burndown print size -* Burndown print size customization from darklin -* Validation of story description moved back to server from bohansen -* Tests pass again - -== 2011-11-09 v0.6.19 - -* Fixes "Crash on migration to latest version" -* Fix for float story points total sum on masterbacklog from bohansen -* Remove all hook rendering for "Error viewing issues after installing backlogs" -* Fix for float story points total sum on masterbacklog. - -== 2011-11-06 v0.6.18 - -* Story points with fractions -* Creating a task caused error, fix from ekohl -* Better cache management -* Added storypoints field to product backlog from bohansen -* Added tracker statistics tooltip on backlog view + fixed recalculation from bohansen - -== 2011-11-03 v0.6.17 - -* Added tracker statistics tooltip on backlog view + fixed recalculation of story points when updating story. -* Fix 500 error caused by the 'My page' block from dakota -* Fix issue with internal error caused by my page block typo -* Caching fixes -* Fixes "Internal Error when try to open an issue where Story Point is setted" -* Taskboard layout improvements from alminium,bohansen - -== 2011-10-31 v0.6.16 - -* Fixes "Migrating to estimated hours => remaining hours" -* Fixed decimal comma problem for remaining hours on taskboard from bohansen -* Brush up master backlogs. - -== 2011-10-31 v0.6.15 - -* All tests pass -* fixed story subject is overflow from alminium -* Improve ie support from alminium -* update jquery 1.6.2 and jquery-ui 1.8.16 to fix IE dnd problem. -* In taskboard, don't open task editor when move task. -* adjust the status in master backlog for IE. -* fixed dnd event handling. -* German translation updated from sureal -* Rebase to remaining_hours branch. -* Fixed overflow story title on masterbacklogs. -* fixed task dialog in taskboardd is transparent. -* Fixed rb_variable_server/how.js.erb that cause http status 500 from floreal -* special characters disappeared when stories are created via backlog page -* fixed burndown chart. -* fixed start end date order. -* update Japanese translation. -* Option to Not Show Burndown Chart on Sidebar -* Points not resolved" regression - -== 2011-10-05 v0.6.14 - -* update Japanese translation. -* All tests pass again -* Burndown fixes -* Auto-tagger - -== 2011-09-29 v0.6.13 -* Fixes "auto-refresh rate is too fast" (but my heart goes out to you if your production server can't handle 1 request per second) -* Fixes "Private issues is always shown in backlog lists" -* Fixes "Template Error on Master Backlog" -* Migration for "Display Error for Tasks and Their Sub-Tasks" -* Force tasks to the task tracker (related to "Display Error for Tasks and Their Sub-Tasks") -* update Japanese translations. -== 2011-09-18 v0.6.11 - -* various bugfixes - -== 2011-08-31 v0.6.10 - -* Allow resetting a sprint - This can be useful for when planning is done offline, and you enter stories/tasks after - the sprint start date. Use with care. - -== 2011-08-30 v0.6.9 - -* Burndown in sidebar conforms to currently selected sprint/story -* Time entry from task board (thank you bohansen!) -* And of course, several bugs fixed - -== 2011-08-25 v0.6.8 - -* Warning on the taskboard if no workflow is available -* Burndown seems to *finally* be fixed now, major thanks to bohansen for providing the test cases -* better error reporting for ajax dialogs -* various bug fixes -* stories now always get a position -* journals now reflect all changes (except positions changes, by design) - -== 2011-08-02 v0.6.6 - -* Javascript consolidated (this should fix the burndown. I know I've said so before) - -== 2011-08-01 v0.6.5 - -* jQuery conflicts resolved -* Migration fixed - -== 2011-08-01 v0.6.4 - -* Burndown finally fixed -* Facility to change the initial estimate -* New 021 migration - -== 2011-07-23 v0.6.3 - -* Burndown fixed -* IME enter-to-submit and escape-to-cancel fixed -* Copy open tasks fixed -* Download sprint data to excel - -== 2011-07-17 v0.6.2 - -Statistics page fixed after burndown reimplementation - -== 2011-07-16 v0.6.1 - -Reworked the burndown generation. It had become a tangled, hard-to-fix mess. -No longer requires the rake task to keep the burndown up-to-date. - -Tasks and stories can now be properly rejected (see website for docs) - -This version adds a migration -- make sure you run it! diff --git a/Gemfile b/Gemfile index 84784fd96..ce11fd89f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,85 +1,8 @@ -source 'https://rubygems.org' - -redmine_version_file = File.expand_path("../../../lib/redmine/version.rb",__FILE__) -if (!File.exists? redmine_version_file) - redmine_version_file = File.expand_path("lib/redmine/version.rb"); -end -version_file = IO.read(redmine_version_file) -redmine_version_minor = version_file.match(/MINOR =/).post_match.match(/\d/)[0].to_i -redmine_version_major = version_file.match(/MAJOR =/).post_match.match(/\d/)[0].to_i - -chiliproject_file = File.dirname(__FILE__) + "/lib/chili_project.rb" -chiliproject = File.file?(chiliproject_file) - -deps = Hash.new -@dependencies.map{|dep| deps[dep.name] = dep } -rails3 = Gem::Dependency.new('rails', '~>3.0') -RAILS_VERSION_IS_3 = rails3 =~ deps['rails'] - +gem "sidekiq" +gem 'erubis', '~> 2.7' gem "holidays", "~>1.0.3" gem "icalendar" -# Choose nokogiri depending on RM version. This is done to avoid conflict with -# RM 2.3 which pinned nokogiri at "<1.6.0" for group :test. -if (redmine_version_major == 2 && redmine_version_minor == 3) -gem "nokogiri", "< 1.6.0" -else -gem "nokogiri" -end gem "open-uri-cached" gem "prawn" gem 'json' -gem "system_timer" if RUBY_VERSION =~ /^1\.8\./ && RUBY_PLATFORM =~ /darwin|linux/ - -group :development do - gem "inifile" -end - -group :test do - gem 'chronic' - gem 'ZenTest', "=4.5.0" # 4.6.0 has a nasty bug that breaks autotest - gem 'autotest-rails' - if RAILS_VERSION_IS_3 - unless chiliproject - gem 'capybara', "~> 1.1" if ENV['IN_RBL_TESTENV'] == 'true' # redmine 2.3 conflicts - gem "faye-websocket", "~>0.4.7" - gem "poltergeist", "~>1.0" - end - gem 'cucumber-rails', :require => false - gem "culerity" - else - unless chiliproject - gem "capybara", "~>1.1.0" - gem "poltergeist", "~>0.6.0" - end - gem "cucumber", "=1.1.0" - gem 'cucumber-rails2', "~> 0.3.5" - gem "culerity", "=0.2.15" - end - gem "database_cleaner" - if RAILS_VERSION_IS_3 - gem "gherkin", "~> 2.6" - else - gem "gherkin", "~> 2.5.0" - end - gem "redgreen" if RUBY_VERSION < "1.9" - if RAILS_VERSION_IS_3 - gem "rspec", '~>2.11.0' - gem "rspec-rails", '~> 2.11.0' - else - gem "rspec", "=1.3.1" - gem "rspec-rails", "=1.3.3" - end - if RUBY_VERSION >= "1.9" - gem "simplecov", "~>0.6" - else - gem "rcov", "=0.9.11" - end - gem "ruby-prof", :platforms => [:ruby] - gem "spork" - gem "test-unit", "=1.2.3" if RUBY_VERSION >= "1.9" and ENV['IN_RBL_TESTENV'] == 'true' - gem "timecop", '~> 0.3.5' -end - -# moved out of the dev group so backlogs can be tested by the user after install. Too many issues of weird setups with apache, nginx, etc. -# thin doesn't work for jruby -gem "thin", :platforms => [:ruby] +gem 'matrix' diff --git a/app/controllers/rb_all_projects_controller.rb b/app/controllers/rb_all_projects_controller.rb index 217707fe1..58a88d14b 100644 --- a/app/controllers/rb_all_projects_controller.rb +++ b/app/controllers/rb_all_projects_controller.rb @@ -1,7 +1,7 @@ class RbAllProjectsController < ApplicationController unloadable - before_filter :authorize_global + before_action :authorize_global def statistics backlogs_projects = RbCommonHelper.find_backlogs_enabled_active_projects diff --git a/app/controllers/rb_application_controller.rb b/app/controllers/rb_application_controller.rb index c9c652f02..978c60be2 100644 --- a/app/controllers/rb_application_controller.rb +++ b/app/controllers/rb_application_controller.rb @@ -2,7 +2,7 @@ class RbApplicationController < ApplicationController unloadable - before_filter :load_project, :authorize, :check_if_plugin_is_configured + before_action :load_project, :authorize, :check_if_plugin_is_configured #provide list of javascript_include_tags which must be rendered before common.js def rb_jquery_plugins @@ -35,9 +35,13 @@ def load_project def check_if_plugin_is_configured @settings = Backlogs.settings - if @settings[:story_trackers].blank? || @settings[:task_tracker].blank? +# make a copy to workaround RuntimeError (can't modify frozen ActionController::Parameters): + s1 = @settings.dup + if s1[:story_trackers].blank? || s1[:task_tracker].blank? + puts("check_if_plugin_is_configured: something is blank, halting. #{s1}") respond_to do |format| - format.html { render :file => "backlogs/not_configured" } + format.html { render :template => "backlogs/not_configured", :handlers => [:erb], :formats => [:html] } + format.js { } end end end diff --git a/app/controllers/rb_burndown_charts_controller.rb b/app/controllers/rb_burndown_charts_controller.rb index b0e820489..fec430766 100644 --- a/app/controllers/rb_burndown_charts_controller.rb +++ b/app/controllers/rb_burndown_charts_controller.rb @@ -11,7 +11,7 @@ def show def embedded respond_to do |format| - format.html { render :template => 'rb_burndown_charts/show.html.erb', :layout => false } + format.html { render :template => 'rb_burndown_charts/show', :layout => false, :handlers => [:erb], :formats => [:html] } end end diff --git a/app/controllers/rb_calendars_controller.rb b/app/controllers/rb_calendars_controller.rb index 425bf5bea..657150c63 100644 --- a/app/controllers/rb_calendars_controller.rb +++ b/app/controllers/rb_calendars_controller.rb @@ -5,7 +5,7 @@ class RbCalendarsController < RbApplicationController case Backlogs.platform when :redmine - before_filter :require_admin_or_api_request, :only => :ical + before_action :require_admin_or_api_request, :only => :ical accept_api_auth :ical when :chiliproject accept_key_auth :ical @@ -23,7 +23,7 @@ def generate_ical cal = Icalendar::Calendar.new # current + future sprints - RbSprint.find(:all, :conditions => ["not sprint_start_date is null and not effective_date is null and project_id = ? and effective_date >= ?", @project.id, Date.today]).each {|sprint| + RbSprint.where("not sprint_start_date is null and not effective_date is null and project_id = ? and effective_date >= ?", @project.id, Date.today).find_each {|sprint| summary_text = l(:event_sprint_summary, { :project => @project.name, :summary => sprint.name } ) description_text = "#{sprint.name}: #{url_for(:controller => 'rb_queries', :only_path => false, :action => 'show', :project_id => @project.id, :sprint_id => sprint.id)}\n#{sprint.description}" @@ -84,7 +84,7 @@ def generate_ical conditions << @project.id conditions << Date.today - issues = Issue.find(:all, :include => :status, :conditions => conditions).each {|issue| + issues = Issue.where(conditions).joins(:status).includes(:status).find_each {|issue| summary_text = l(:todo_issue_summary, { :type => issue.tracker.name, :summary => issue.subject } ) description_text = "#{issue.subject}: #{url_for(:controller => 'issues', :only_path => false, :action => 'show', :id => issue.id)}\n#{issue.description}" # I know this should be "cal.todo do", but outlook in it's diff --git a/app/controllers/rb_hooks_render_controller.rb b/app/controllers/rb_hooks_render_controller.rb index ed1670b75..d7ab045ff 100644 --- a/app/controllers/rb_hooks_render_controller.rb +++ b/app/controllers/rb_hooks_render_controller.rb @@ -13,7 +13,7 @@ def view_issues_sidebar } respond_to do |format| - format.html { render :template => 'backlogs/view_issues_sidebar.html.erb', :layout => false, :locals => locals } + format.html { render :template => 'backlogs/view_issues_sidebar', :layout => false, :locals => locals, :handlers => [:erb], :formats => [:html] } end end diff --git a/app/controllers/rb_impediments_controller.rb b/app/controllers/rb_impediments_controller.rb index 78c5f9f58..8b565fd1e 100644 --- a/app/controllers/rb_impediments_controller.rb +++ b/app/controllers/rb_impediments_controller.rb @@ -8,7 +8,7 @@ def create begin @impediment = RbTask.create_with_relationships(params, User.current.id, @project.id, true) rescue => e - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 + render :plain => e.message.blank? ? e.to_s : e.message, :status => 400 return end @@ -27,7 +27,7 @@ def update begin result = @impediment.update_with_relationships(params) rescue => e - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 + render :plain => e.message.blank? ? e.to_s : e.message, :status => 400 return end status = (result ? 200 : 400) diff --git a/app/controllers/rb_master_backlogs_controller.rb b/app/controllers/rb_master_backlogs_controller.rb index 29f9649f1..4b590dad2 100644 --- a/app/controllers/rb_master_backlogs_controller.rb +++ b/app/controllers/rb_master_backlogs_controller.rb @@ -44,14 +44,14 @@ def _menu_new if projects.length > 1 links << {:label => l(label_new), :url => '#', :sub => []} projects.each{|project| - links.first[:sub] << {:label => project.name, :url => '#', :classname => "#{add_class} project_id_#{project.id}"} + links.first[:sub] << {:label => project.name, :url => 'javascript:void(0);', :classname => "#{add_class} project_id_#{project.id}"} } else - links << {:label => l(label_new), :url => '#', :classname => "#{add_class} project_id_#{projects[0].id}"} + links << {:label => l(label_new), :url => 'javascript:void(0);', :classname => "#{add_class} project_id_#{projects[0].id}"} end end else #no sharing, only own project in the menu - links << {:label => l(label_new), :url => '#', :classname => add_class} + links << {:label => l(label_new), :url => 'javascript:void(0);', :classname => add_class} end return links end @@ -59,7 +59,8 @@ def _menu_new def menu links = [] - links += _menu_new if User.current.allowed_to?(:create_stories, @project) + is_closed_sprint = @sprint && @sprint.status.eql?('closed') + links += _menu_new if User.current.allowed_to?(:create_stories, @project) && !is_closed_sprint links << {:label => l(:label_new_sprint), :url => '#', :classname => 'add_new_sprint' } unless @sprint || !User.current.allowed_to?(:create_sprints, @project) @@ -91,7 +92,7 @@ def menu links << {:label => l(:label_reset), :url => url_for(:controller => 'rb_sprints', :action => 'reset', :sprint_id => @sprint, :only_path => true), :warning => view_context().escape_javascript(l(:warning_reset_sprint)).gsub(/\/n/, "\n") - } if @sprint && @sprint.sprint_start_date && User.current.allowed_to?(:reset_sprint, @project) + } if @sprint && @sprint.sprint_start_date && User.current.allowed_to?(:reset_sprint, @project) && !is_closed_sprint links << {:label => l(:label_version), :url => url_for(:controller => 'versions', :action => 'show', :id => @sprint, :target => '_blank', :only_path => true) } if @sprint @@ -100,7 +101,7 @@ def menu } if @release links << {:label => l(:label_sprint_close), :url => url_for(:controller => 'rb_sprints', :action => 'close', :sprint_id => @sprint, :only_path => true) - } if @sprint && @sprint.open? && @sprint.stories.open.none? && User.current.allowed_to?(:update_sprints, @project) + } if @sprint && @sprint.open? && @sprint.stories.open.none? && User.current.allowed_to?(:update_sprints, @project) respond_to do |format| @@ -108,12 +109,6 @@ def menu end end - if Rails::VERSION::MAJOR < 3 - def view_context - @template - end - end - def closed_sprints c_sprints = @project.closed_shared_sprints @backlogs = RbStory.backlogs_by_sprint(@project, c_sprints) diff --git a/app/controllers/rb_queries_controller.rb b/app/controllers/rb_queries_controller.rb index 012c0bf98..4de7b3b99 100644 --- a/app/controllers/rb_queries_controller.rb +++ b/app/controllers/rb_queries_controller.rb @@ -2,7 +2,7 @@ class RbQueriesController < RbApplicationController unloadable def show - @query = __IssueQueryClass.new(:name => "_") + @query = IssueQuery.new(:name => "_") @query.project = @project group_by = nil @@ -25,28 +25,18 @@ def show column_names = @query.columns.collect{|col| col.name} column_names = column_names + ['position'] unless column_names.include?('position') - session[:query] = {:project_id => @query.project_id, :filters => @query.filters, :column_names => column_names, :group_by => group_by} + session[:issue_query] = {:project_id => @query.project_id, :filters => @query.filters, :column_names => column_names, :group_by => group_by} redirect_to :controller => 'issues', :action => 'index', :project_id => @project.id, :sort => 'position' end def impediments - @query = __IssueQueryClass.new(:name => "_") + @query = IssueQuery.new(:name => "_") @query.project = @project @query.add_filter("status_id", 'o', ['']) # only open @query.add_filter("fixed_version_id", '=', [params[:sprint_id]]) @query.add_filter("backlogs_issue_type", '=', ['impediment']) - session[:query] = {:project_id => @query.project_id, :filters => @query.filters } + session[:issue_query] = {:project_id => @query.project_id, :filters => @query.filters } redirect_to :controller => 'issues', :action => 'index', :project_id => @project.id end - private - - def __IssueQueryClass - if (Redmine::VERSION::MAJOR > 2) || (Redmine::VERSION::MAJOR == 2 && Redmine::VERSION::MINOR >= 3) - IssueQuery - else - Query - end - end - end diff --git a/app/controllers/rb_releases_controller.rb b/app/controllers/rb_releases_controller.rb index d382ff4cb..ef1e7da71 100644 --- a/app/controllers/rb_releases_controller.rb +++ b/app/controllers/rb_releases_controller.rb @@ -22,18 +22,23 @@ def show end def new - @release = RbRelease.new(:project => @project) - if request.post? - @release.attributes = params[:release] - if @release.save - flash[:notice] = l(:notice_successful_create) - redirect_to :action => 'index', :project_id => @project - end + @release = RbRelease.new + @release.project = @project + end + + def create + @release = RbRelease.new(release_params) + @release.project = @project + if @release.save + flash[:notice] = l(:notice_successful_create) + redirect_to :action => 'index', :project_id => @project + else + render action: :new end end def edit - if request.post? and @release.update_attributes(params[:release]) + if request.post? and @release.update(release_params) flash[:notice] = l(:notice_successful_update) redirect_to :controller => 'rb_releases', :action => 'show', :release_id => @release # else @@ -44,13 +49,13 @@ def edit def update except = ['id', 'project_id'] attribs = params.select{|k,v| (!except.include? k) and (RbRelease.column_names.include? k) } - attribs = Hash[*attribs.flatten] + attribs = attribs.to_enum.to_h begin - result = @release.update_attributes attribs + result = @release.update attribs rescue => e Rails.logger.debug e Rails.logger.debug e.backtrace.join("\n") - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 + render :plain => e.message.blank? ? e.to_s : e.message, :status => 400 return end @@ -64,4 +69,10 @@ def destroy redirect_to :controller => 'rb_releases', :action => 'index', :project_id => @project end + private + + def release_params + params.require(:release).permit(:name, :description, :status, :release_start_date, :release_end_date, :planned_velocity, :sharing) + end + end diff --git a/app/controllers/rb_releases_multiview_controller.rb b/app/controllers/rb_releases_multiview_controller.rb index ef891298e..00961ee87 100644 --- a/app/controllers/rb_releases_multiview_controller.rb +++ b/app/controllers/rb_releases_multiview_controller.rb @@ -19,7 +19,7 @@ def new if request.post? # Convert id's into numbers and remove blank params[:release_multiview][:release_ids]=selected_ids(params[:release_multiview][:release_ids]) - @release_multiview.attributes = params[:release_multiview] + @release_multiview.attributes = allowed_params if @release_multiview.save flash[:notice] = l(:notice_successful_create) @@ -34,7 +34,7 @@ def edit # Convert id's into numbers and remove blank params[:release_multiview][:release_ids]=selected_ids(params[:release_multiview][:release_ids]) - if @release_multiview.update_attributes(params[:release_multiview]) + if @release_multiview.update(allowed_params) flash[:notice] = l(:notice_successful_update) redirect_to :controller => 'rb_releases_multiview', :action => 'show', :release_multiview_id => @release_multiview end @@ -49,4 +49,10 @@ def destroy redirect_to :controller => 'rb_releases', :action => 'index', :project_id => @project end + private + + def allowed_params + params.require(:release_multiview).permit(:name, :description, {:release_ids => []}) + end + end diff --git a/app/controllers/rb_server_variables_controller.rb b/app/controllers/rb_server_variables_controller.rb index 2e71a810e..409b976c2 100644 --- a/app/controllers/rb_server_variables_controller.rb +++ b/app/controllers/rb_server_variables_controller.rb @@ -1,18 +1,29 @@ class RbServerVariablesController < RbApplicationController unloadable + #FIXME this effectively allows csrf attacks on /rb/server_variables.js FIXME + skip_before_action :verify_authenticity_token, if: :js_request? + + skip_before_action :verify_authenticity_token # for index there's no @project # (eliminates the need of RbAllProjectsController) - skip_before_filter :load_project, :authorize, :only => [:index] + skip_before_action :load_project, :authorize, :only => [:index] def index @context = params[:context] + respond_to do |format| + #Rails.logger.warn("Format problem #{format}") format.html { render_404 } - format.js { render :file => 'rb_server_variables/show.js.erb', :layout => false } + format.js { render :template => 'rb_server_variables/show', :layout => false, :handlers => [:erb], :formats => [:js] } + #format.js { render js: "alert('Hello Rails');" } end end alias :project :index alias :sprint :index + + def js_request? + request.format.js? + end end diff --git a/app/controllers/rb_sprints_controller.rb b/app/controllers/rb_sprints_controller.rb index fbbb13aeb..658ef71b9 100644 --- a/app/controllers/rb_sprints_controller.rb +++ b/app/controllers/rb_sprints_controller.rb @@ -11,9 +11,7 @@ class RbSprintsController < RbApplicationController accept_api_auth :download def create - attribs = params.select{|k,v| k != 'id' and RbSprint.column_names.include? k } - attribs = Hash[*attribs.flatten] - @sprint = RbSprint.new(attribs) + @sprint = RbSprint.new(rb_sprint_params) #share the sprint according to the global setting default_sharing = Backlogs.setting[:sharing_new_sprint_sharingmode] @@ -24,37 +22,28 @@ def create end begin - @sprint.save! + result = @sprint.save! rescue => e - Rails.logger.debug e - Rails.logger.debug e.backtrace.join("\n") - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 + render :plain => e.message.blank? ? e.to_s : e.message, :status => 400 return end - - result = @sprint.errors.size - status = (result == 0 ? 200 : 400) + status = (result ? 200 : 400) respond_to do |format| - format.html { render :partial => "sprint", :status => status, :locals => { :sprint => @sprint, :cls => 'model sprint' } } + format.html { render partial: "sprint", status: status = (result ? 200 : 400), locals: {sprint: @sprint, cls: 'model sprint'} } end end def update - except = ['id', 'project_id'] - attribs = params.select{|k,v| (!except.include? k) and (RbSprint.column_names.include? k) } - attribs = Hash[*attribs.flatten] begin - result = @sprint.update_attributes attribs + result = @sprint.update! rb_sprint_params rescue => e - Rails.logger.debug e - Rails.logger.debug e.backtrace.join("\n") - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 + render :plain => e.message.blank? ? e.to_s : e.message, :status => 400 return end respond_to do |format| - format.html { render :partial => "sprint", :status => (result ? 200 : 400), :locals => { :sprint => @sprint, :cls => 'model sprint' } } + format.html { render partial: "sprint", status: (result ? 200 : 400), locals: {sprint: @sprint, cls: 'model sprint'} } end end @@ -87,15 +76,15 @@ def download def reset unless @sprint.sprint_start_date - render :text => 'Sprint without start date cannot be reset', :status => 400 + render :plain => 'Sprint without start date cannot be reset', :status => 400 return end ids = [] - status = IssueStatus.default.id - Issue.find(:all, :conditions => ['fixed_version_id = ?', @sprint.id]).each {|issue| + default_status_id = Tracker.find(Backlogs.setting[:task_tracker]).default_status_id + Issue.where(fixed_version_id: @sprint.id).find_each {|issue| ids << issue.id.to_s - issue.update_attributes!(:created_on => @sprint.sprint_start_date.to_time, :status_id => status) + issue.update!(:created_on => @sprint.sprint_start_date.to_time, :status_id => default_status_id) } if ids.size != 0 ids = ids.join(',') @@ -110,7 +99,7 @@ def reset where journalized_type = 'Issue' and journalized_id in (#{ids})") end - redirect_to :controller => 'rb_master_backlogs', :action => 'show', :project_id => @project.identifier + redirect_to controller: 'rb_master_backlogs', action: 'show', project_id: @project.identifier end def close_completed @@ -123,9 +112,21 @@ def close if @sprint.stories.open.any? flash[:error] = l(:error_cannot_close_sprint_with_open_stories) else - @sprint.update_attributes({:status => 'closed'}) + @sprint.update({:status => 'closed'}) end redirect_to :controller => 'rb_master_backlogs', :action => 'show', :project_id => @project end + private + + def rb_sprint_params + permitted = [:name, :sprint_start_date, :effective_date, :description] + + case action_name + when 'create' + params.permit(*permitted).merge(project_id: @project.id) + when 'update' + params.permit(*permitted) + end + end end diff --git a/app/controllers/rb_stories_controller.rb b/app/controllers/rb_stories_controller.rb index 51d970c14..08df873ea 100644 --- a/app/controllers/rb_stories_controller.rb +++ b/app/controllers/rb_stories_controller.rb @@ -1,5 +1,4 @@ require 'prawn' -require 'backlogs_printable_cards' include RbCommonHelper @@ -9,14 +8,14 @@ class RbStoriesController < RbApplicationController def index if ! BacklogsPrintableCards::CardPageLayout.selected - render :text => "No label stock selected. How did you get here?", :status => 500 + render :plain => "No label stock selected. How did you get here?", :status => 500 return end begin cards = BacklogsPrintableCards::PrintableCards.new(params[:sprint_id] ? @sprint.stories : RbStory.product_backlog(@project), params[:sprint_id], current_language) rescue Prawn::Errors::CannotFit - render :text => "There was a problem rendering the cards. A possible error could be that the selected font exceeds a render box", :status => 500 + render :plain => "There was a problem rendering the cards. A possible error could be that the selected font exceeds a render box", :status => 500 return end @@ -28,34 +27,26 @@ def index end def create - params['author_id'] = User.current.id - begin - story = RbStory.create_and_position(params) - rescue => e - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 - return - end - status = (story.id ? 200 : 400) + # lft and rgt fields are handled by acts_as_nested_set + attribs = params.select{|k,v| !['prev', 'next', 'id', 'lft', 'rgt'].include?(k) && RbStory.column_names.include?(k) } + attribs[:author_id] = User.current.id + attribs[:status] = RbStory.class_default_status + attribs = attribs.to_enum.to_h + story = RbStory.new(attribs) + result = RbStory.save_and_position(story, params) respond_to do |format| - format.html { render :partial => "story", :object => story, :status => status } + format.html { render partial: "story", status: (result ? 200 : 400), locals: {story: story} } end end def update story = RbStory.find(params[:id]) - begin - result = story.update_and_position!(params) - rescue => e - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 - return - end - - status = (result ? 200 : 400) + result = story.update_and_position(params) respond_to do |format| - format.html { render :partial => "story", :object => story, :status => status } + format.html { render partial: "story", status: (result ? 200 : 400), locals: {story: story} } end end diff --git a/app/controllers/rb_taskboards_controller.rb b/app/controllers/rb_taskboards_controller.rb index 7c5be5e8d..fc3e5c134 100644 --- a/app/controllers/rb_taskboards_controller.rb +++ b/app/controllers/rb_taskboards_controller.rb @@ -19,7 +19,7 @@ def show enabled = {} statuses.each{|s| enabled[s.id] = false} # enable all statuses held by current tasks, regardless of whether the current user has access - RbTask.find(:all, :conditions => ['fixed_version_id = ?', @sprint.id]).each {|task| enabled[task.status_id] = true } + RbTask.where(fixed_version_id: @sprint.id).find_each {|task| enabled[task.status_id] = true } roles = User.current.roles_for_project(@project) #@transitions = {} @@ -41,20 +41,18 @@ def show if @sprint.stories.size == 0 @last_updated = nil else - @last_updated = RbTask.find(:first, - :conditions => ['tracker_id = ? and fixed_version_id = ?', RbTask.tracker, @sprint.stories[0].fixed_version_id], - :order => "updated_on DESC") + @last_updated = RbTask.where(tracker_id: RbTask.tracker, fixed_version_id: @sprint.stories[0].fixed_version_id).order("updated_on DESC").first end respond_to do |format| - format.html { render :layout => "rb" } + format.html { render layout: 'rb' } end end def current sprint = @project.active_sprint if sprint - redirect_to :controller => 'rb_taskboards', :action => 'show', :sprint_id => sprint + redirect_to controller: 'rb_taskboards', action: 'show', sprint_id: sprint return end respond_to do |format| diff --git a/app/controllers/rb_tasks_controller.rb b/app/controllers/rb_tasks_controller.rb index 7a6e47f13..f32ec3324 100644 --- a/app/controllers/rb_tasks_controller.rb +++ b/app/controllers/rb_tasks_controller.rb @@ -4,12 +4,13 @@ class RbTasksController < RbApplicationController unloadable def create + params.permit! @settings = Backlogs.settings @task = nil begin @task = RbTask.create_with_relationships(params, User.current.id, @project.id) rescue => e - render :text => e.message.blank? ? e.to_s : e.message, :status => 400 + render :plain => e.message.blank? ? e.to_s : e.message, :status => 400 return end @@ -23,7 +24,12 @@ def create end def update + params.permit! @task = RbTask.find_by_id(params[:id]) + if @task.nil? + render :plain => l(:error_task_not_exist), :status => 400 + return + end @settings = Backlogs.settings result = @task.update_with_relationships(params) status = (result ? 200 : 400) diff --git a/app/controllers/rb_updated_items_controller.rb b/app/controllers/rb_updated_items_controller.rb index 570db3224..95a5f750f 100644 --- a/app/controllers/rb_updated_items_controller.rb +++ b/app/controllers/rb_updated_items_controller.rb @@ -8,6 +8,7 @@ class RbUpdatedItemsController < RbApplicationController # should return def show @settings = Backlogs.settings + @sprint_estimated_hours = params[:sprint] ? RbSprint.find(params[:sprint]).estimated_hours.to_f : 0 only = (params[:only] ? params[:only].split(/, ?/).map{|v| v.to_sym} : [:sprints, :stories, :tasks, :impediments]) @items = HashWithIndifferentAccess.new @include_meta = true @@ -16,6 +17,7 @@ def show latest_updates = [] if only.include? :stories @items[:stories] = RbStory.find_all_updated_since(params[:since], @project.id) + @sprint_estimated_hours = if @items[:stories].length > 0 latest_updates << @items[:stories].sort{ |a,b| a.updated_on <=> b.updated_on }.last end diff --git a/app/helpers/rb_common_helper.rb b/app/helpers/rb_common_helper.rb index 4b6abd934..3d7c4a2b5 100644 --- a/app/helpers/rb_common_helper.rb +++ b/app/helpers/rb_common_helper.rb @@ -1,10 +1,10 @@ -require 'color' require 'nokogiri' module RbCommonHelper unloadable include CustomFieldsHelper + include RbPartialsHelper def assignee_id_or_empty(story) story.new_record? ? "" : story.assigned_to_id @@ -98,11 +98,21 @@ def sprint_status_label_or_default(sprint) end def status_id_or_default(story) - story.new_record? ? IssueStatus.default.id : story.status.id + #story.new_record? ? IssueStatus.default.id : story.status.id + if story.new_record? + story.default_status ? story.default_status.id : 0 + else + story.status ? story.status.id : 0 + end end def status_label_or_default(story) - story.new_record? ? IssueStatus.default.name : story.status.name + #story.new_record? ? IssueStatus.default.name : story.status.name + if story.new_record? + story.default_status ? story.default_status.name : "" + else + story.status ? story.status.name : "" + end end def sprint_html_id_or_empty(sprint) @@ -204,10 +214,11 @@ def release_burndown_to_csv(release) end def self.find_backlogs_enabled_active_projects - projects = EnabledModule.find(:all, - :conditions => ["enabled_modules.name = 'backlogs' and status = ?", Project::STATUS_ACTIVE], - :include => :project, - :joins => :project).collect { |mod| mod.project} + #projects = + EnabledModule.where(name: 'backlogs') + .includes(:project) + .joins(:project).where(projects: {status: Project::STATUS_ACTIVE}) + .collect { |mod| mod.project} end # Returns a collection of users allowed to log time for the current project. (see app/views/rb_taskboards/show.html.erb for usage) @@ -246,13 +257,14 @@ def users_assignable_options_for_select(collection) end def release_options_for_select(releases, selected=nil) + releases = releases.all.to_a unless releases.is_a? Array grouped = Hash.new {|h,k| h[k] = []} selected = [selected].compact unless selected.kind_of?(Array) releases.each do |release| grouped[release.project.name] << [release.name, release.id] end # Add in the selected - (selected - releases).each{|s| grouped[s.project.name] << [s.name, s.id] } + (selected.to_a - releases.to_a).each{|s| grouped[s.project.name] << [s.name, s.id] } if grouped.keys.size > 1 grouped_options_for_select(grouped, selected.collect{|s| s.id}) @@ -264,7 +276,7 @@ def release_options_for_select(releases, selected=nil) # Convert selected ids to integer and remove blank values. def selected_ids(options) return nil if options.nil? - options.collect{|o| o.to_i unless o.blank?}.compact! + options.collect{|o| o.to_i unless o.blank?}.compact! end def format_release_sharing(v) @@ -273,10 +285,6 @@ def format_release_sharing(v) #fixup rails base uri which is not obeyed IF url_for is used in a redmine layout hook def url_for_prefix_in_hooks - if Rails::VERSION::MAJOR < 3 - '' #actionpack-2.3.14/lib/action_controller/url_rewriter.rb is injecting relative_url_root - else - Redmine::Utils.relative_url_root #actionpack-3* is not??? - end + '' end end diff --git a/app/helpers/rb_form_helper.rb b/app/helpers/rb_form_helper.rb index 961060674..c1311325c 100644 --- a/app/helpers/rb_form_helper.rb +++ b/app/helpers/rb_form_helper.rb @@ -3,31 +3,19 @@ module RbFormHelper def rb_form_for(*args, &proc) form_string = form_for(*args, &proc) - if Rails::VERSION::MAJOR < 3 - form_string - else - concat(form_string) - end + concat(form_string) end # Streamline the difference between <%= %> and <% %> def rb_labelled_fields_for(*args, &proc) fields_string = labelled_fields_for(*args, &proc) - if Rails::VERSION::MAJOR < 3 - fields_string - else - concat(fields_string) - end + concat(fields_string) end # Streamline the difference between <%= %> and <% %> def rb_labelled_form_for(*args, &proc) form_string = labelled_form_for(*args, &proc) - if Rails::VERSION::MAJOR < 3 - form_string - else - concat(form_string) - end + concat(form_string) end end diff --git a/app/helpers/rb_partials_helper.rb b/app/helpers/rb_partials_helper.rb new file mode 100644 index 000000000..3926201bd --- /dev/null +++ b/app/helpers/rb_partials_helper.rb @@ -0,0 +1,37 @@ +module RbPartialsHelper + PLUGIN_VIEWS_PATH = File.expand_path('../../views', __FILE__) + + class << self + + def def_erb_method(method_name_and_args, filename) + erb_data = File.read(filename) + eruby = Erubis::FastEruby.new(erb_data) + eruby.def_method(self, method_name_and_args) + method_name = method_name_and_args[/^[^(]+/].strip.to_sym + define_method "#{method_name}_with_html_safe" do |*args, &block| + send("#{method_name}_without_html_safe", *args, &block).html_safe + end + alias_method "#{method_name}_without_html_safe", method_name + alias_method method_name, "#{method_name}_with_html_safe" + method_name + end + + def def_rb_partial_method(method_name_and_args, rb_partial_filename) + filename = File.expand_path(rb_partial_filename, PLUGIN_VIEWS_PATH) + def_erb_method(method_name_and_args, filename) + end + + end + + + def_rb_partial_method 'render_rb_task(task)', 'rb_tasks/_task.html.erb' + + def render_rb_task_collection(tasks) + capture do + tasks.each do |task| + concat render_rb_task(task) + end + end + end + +end diff --git a/app/helpers/rb_server_variables_helper.rb b/app/helpers/rb_server_variables_helper.rb index e2a8cb1fd..f03b765d5 100644 --- a/app/helpers/rb_server_variables_helper.rb +++ b/app/helpers/rb_server_variables_helper.rb @@ -6,15 +6,15 @@ module RbServerVariablesHelper # # workflow_transitions(RbStory) def workflow_transitions(klass) - default_status = IssueStatus.default - default_status = default_status.id.to_s if default_status roles = User.current.admin ? Role.all : User.current.roles_for_project(@project) - transitions = {:states => {}, :transitions => {} , :default => default_status } + transitions = {:states => {}, :transitions => {} , :default => 1 } klass.trackers.each {|tracker_id| tracker = Tracker.find(tracker_id) tracker_id = tracker_id.to_s + default_status = tracker.default_status + transitions[:default] = default_status if default_status transitions[:transitions][tracker_id] = {} tracker.issue_statuses.each {|status| diff --git a/app/models/rb_issue_history.rb b/app/models/rb_issue_history.rb index 515343b8f..ce023104d 100644 --- a/app/models/rb_issue_history.rb +++ b/app/models/rb_issue_history.rb @@ -28,9 +28,9 @@ def self.burndown_timezone(recalc=nil) def self.statuses Hash.new{|h, k| - s = IssueStatus.find_by_id(k.to_i) + s = IssueStatus.where(:id => k.to_i).take if s.nil? - s = IssueStatus.default + s = IssueStatus.first puts "IssueStatus #{k.inspect} not found, using default #{s.id} instead" end h[k] = {:id => s.id, :open => ! s.is_closed?, :success => s.is_closed? ? (s.default_done_ratio.nil? || s.default_done_ratio == 100) : false } @@ -41,7 +41,7 @@ def self.statuses def filter(sprint, status=nil) h = Hash[*(self.expand.collect{|d| [d[:date], d]}.flatten)] filtered = sprint.days.collect{|d| h[d] ? h[d] : {:date => d, :origin => :filter}} - + # see if this issue was closed after sprint end if filtered[-1][:status_open] self.history.select{|h| h[:date] > sprint.effective_date}.each{|h| @@ -88,11 +88,14 @@ def filter_release(days) end def self.issue_type(tracker_id) - return nil if tracker_id.nil? || tracker_id == '' - tracker_id = tracker_id.to_i - return :story if RbStory.trackers && RbStory.trackers.include?(tracker_id) - return :task if tracker_id == RbTask.tracker - return nil + return nil if tracker_id.blank? + if RbStory.trackers_include?(tracker_id) + :story + elsif RbTask.tracker?(tracker_id) + :task + else + nil + end end def expand @@ -105,7 +108,7 @@ def expand end def self.rebuild_issue(issue, status=nil) - rb = RbIssueHistory.find_or_initialize_by_issue_id(issue.id) + rb = RbIssueHistory.where(:issue_id => issue.id).first_or_initialize rb.history = [{:date => issue.created_on.to_date - 1, :origin => :rebuild}] @@ -167,12 +170,12 @@ def self.rebuild_issue(issue, status=nil) when 'release_id' then full_journal[date][:release] = {:new => j.value ? j.value.to_i : nil} when 'estimated_hours' then full_journal[date][:estimated_hours] = {:new => j.value ? j.value.to_f : nil} when 'remaining_hours' then full_journal[date][:remaining_hours] = {:new => j.value ? j.value.to_f : nil} - + else raise "Unexpected property #{j.property}: #{j.value.inspect}" end - + #:status_id is not in rb_journals - + full_journal[date][:tracker] ||= {:new => case when issue.is_story? then :story @@ -196,7 +199,7 @@ def self.rebuild_issue(issue, status=nil) } # Wouldn't be needed if redmine just created journals for update_parent_properties - subissues = Issue.find(:all, :conditions => ['parent_id = ?', issue.id]).to_a + subissues = Issue.where(parent_id: issue.id).to_a subhists = [] subdates = [] subissues.each{|i| @@ -306,7 +309,7 @@ def self.rebuild_issue(issue, status=nil) if rb.history.detect{|h| h[:tracker] == :story } rb.history.collect{|h| h[:sprint] }.compact.uniq.each{|sprint_id| - sprint = RbSprint.find_by_id(sprint_id) + sprint = RbSprint.find(sprint_id.to_i) next unless sprint sprint.burndown.touch!(issue.id) } @@ -316,13 +319,17 @@ def self.rebuild_issue(issue, status=nil) def self.rebuild RbSprintBurndown.delete_all - status = self.statuses + status = self.statuses # self.class.statuses ??? issues = Issue.count - Issue.find(:all, :order => 'root_id asc, lft desc').each_with_index{|issue, n| - puts "#{issue.id.to_s.rjust(6, ' ')} (#{(n+1).to_s.rjust(6, ' ')}/#{issues})..." - RbIssueHistory.rebuild_issue(issue, status) - } + begin + Issue.order('root_id asc, lft desc').each_with_index{|issue, n| + puts "#{issue.id.to_s.rjust(6, ' ')} (#{(n+1).to_s.rjust(6, ' ')}/#{issues})..." + RbIssueHistory.rebuild_issue(issue, status) + } + rescue ActiveRecord::RecordNotFound => e + Rails.logger.warn e; Rails.logger.warn e.backtrace.join("\n"); + end end def init_history @@ -365,8 +372,12 @@ def init_history def touch_sprint self.history.select{|h| h[:sprint]}.uniq{|h| "#{h[:sprint]}::#{h[:tracker]}"}.each{|h| - sprint = RbSprint.find_by_id(h[:sprint]) - next unless sprint + begin + sprint = RbSprint.find(h[:sprint].to_i) + next unless sprint + rescue + next + end sprint.burndown.touch!(h[:tracker] == :story ? self.issue.id : nil) } end @@ -386,7 +397,7 @@ def update_parent(date=nil) date ||= self.history[0][:date] # the after_create calls this function without a parameter, so we know it's the creation call. Get the `yesterday' entry. parent_history_index = p.history.history.index{|d| d[:date] == date} # does the parent have an history entry on that date? if parent_history_index.nil? # if not, stretch the history to get the values at that date - parent_data = p.history.expand.detect{|d| d[:date] == date} + parent_data = p.history.expand.detect{|d| d[:date] == date} else # if so, grab that entry parent_data = p.history.history[parent_history_index] end diff --git a/app/models/rb_journal.rb b/app/models/rb_journal.rb index 76a61920d..941a37d84 100644 --- a/app/models/rb_journal.rb +++ b/app/models/rb_journal.rb @@ -1,3 +1,2 @@ class RbJournal < ActiveRecord::Base - unloadable end diff --git a/app/models/rb_project_settings.rb b/app/models/rb_project_settings.rb index e3bca6e35..40b43228d 100644 --- a/app/models/rb_project_settings.rb +++ b/app/models/rb_project_settings.rb @@ -1,5 +1,4 @@ class RbProjectSettings < ActiveRecord::Base - unloadable belongs_to :project end diff --git a/app/models/rb_release.rb b/app/models/rb_release.rb index ca839e665..5778b5d9c 100644 --- a/app/models/rb_release.rb +++ b/app/models/rb_release.rb @@ -1,5 +1,4 @@ require 'date' -require 'linear_regression' class ReleaseBurndown def initialize(release) @@ -39,7 +38,7 @@ def calculate_burndown(release) baseline = [0] * @days.size - series = Backlogs::MergedArray.new + series = BacklogsMergedArray.new series.merge(:total_points => baseline.dup) series.merge(:added_points => baseline.dup) series.merge(:closed_points => baseline.dup) @@ -171,10 +170,14 @@ class RbRelease < ActiveRecord::Base validates_length_of :name, :maximum => 64 validate :dates_valid? - scope :open, :conditions => {:status => 'open'} - scope :closed, :conditions => {:status => 'closed'} - scope :visible, lambda {|*args| { :include => :project, - :conditions => Project.allowed_to_condition(args.first || User.current, :view_releases) } } + scope :open, -> { + where(:status => 'open') + } + scope :closed, -> { + where(:status => 'closed') + } + scope :visible, lambda {|*args| joins(:project).includes(:project). + where(Project.allowed_to_condition(args.first || User.current, :view_releases)) } include Backlogs::ActiveRecord::Attributes @@ -195,7 +198,7 @@ def stories #compat # Returns current stories + stories previously scheduled for this release def stories_all_time - RbStory.includes(:journals => :details).where( + RbStory.joins(:journals => :details).includes(:journals => :details).where( "(release_id = ?) OR ( journal_details.property ='attr' and journal_details.prop_key = 'release_id' and @@ -268,7 +271,7 @@ def burndown end def today - ReleaseBurndownDay.find(:first, :conditions => { :release_id => self, :day => Date.today }) + ReleaseBurndownDay.where(release_id: self, day: Date.today).first end def remaining_story_points #FIXME merge bohansen_release_chart removed this @@ -304,14 +307,15 @@ def shared_to_projects(scope_project) r = self.project.root? ? self.project : self.project.root # Project used for other sharings p = self.project - Project.visible.scoped(:include => :releases, - :conditions => ["#{RbRelease.table_name}.id = #{id}" + + Project.visible.joins('LEFT OUTER JOIN releases ON releases.project_id = projects.id'). + includes(:releases). + where("#{RbRelease.table_name}.id = #{id}" + " OR (#{Project.table_name}.status <> #{Project::STATUS_ARCHIVED} AND (" + " 'system' = ? " + " OR (#{Project.table_name}.lft >= #{r.lft} AND #{Project.table_name}.rgt <= #{r.rgt} AND ? = 'tree')" + " OR (#{Project.table_name}.lft > #{p.lft} AND #{Project.table_name}.rgt < #{p.rgt} AND ? IN ('hierarchy', 'descendants'))" + " OR (#{Project.table_name}.lft < #{p.lft} AND #{Project.table_name}.rgt > #{p.rgt} AND ? = 'hierarchy')" + - "))",sharing,sharing,sharing,sharing]).order('lft') + "))",sharing,sharing,sharing,sharing).order('lft').distinct end @shared_projects end diff --git a/app/models/rb_release_burnchart_day_cache.rb b/app/models/rb_release_burnchart_day_cache.rb index 773eed3d1..72bd20a5c 100644 --- a/app/models/rb_release_burnchart_day_cache.rb +++ b/app/models/rb_release_burnchart_day_cache.rb @@ -1,8 +1,6 @@ # Release burnchart cache per day per story. # Table layout optimized for quickly summing up release burncharts. class RbReleaseBurnchartDayCache < ActiveRecord::Base - unloadable belongs_to :issue belongs_to :release - end diff --git a/app/models/rb_release_multiview.rb b/app/models/rb_release_multiview.rb index a64702eaf..265ef4086 100644 --- a/app/models/rb_release_multiview.rb +++ b/app/models/rb_release_multiview.rb @@ -1,30 +1,30 @@ class RbReleaseMultiview < ActiveRecord::Base self.table_name = 'rb_releases_multiview' - unloadable - belongs_to :project serialize :release_ids validates_presence_of :project_id, :name + validates_length_of :name, :maximum => 64 include Backlogs::ActiveRecord::Attributes def releases - RbRelease.find(:all, - :conditions => {:id => self.release_ids}, - :order => "release_end_date ASC, release_start_date ASC") + RbRelease.where(id: self.release_ids) + .order("release_end_date ASC, release_start_date ASC").all end def has_burnchart? - releases.inject(false) {|result,release| result |= release.has_burndown?} + false #FIXME release burndown broken + #releases.inject(false) {|result,release| result |= release.has_burndown?} end def burnchart - return nil unless self.has_burnchart? - @cached_burnchart ||= RbReleaseMultiviewBurnchart.new(self) - return @cached_burnchart + return nil #FIXME release burndown broken + #return nil unless self.has_burnchart? + #@cached_burnchart ||= RbReleaseMultiviewBurnchart.new(self) + #return @cached_burnchart end end diff --git a/app/models/rb_sprint.rb b/app/models/rb_sprint.rb index 3bed08b24..7ffd1cf16 100644 --- a/app/models/rb_sprint.rb +++ b/app/models/rb_sprint.rb @@ -4,41 +4,33 @@ class RbSprint < Version unloadable validate :start_and_end_dates + validate :duration_3months def start_and_end_dates - errors.add(:base, "sprint_end_before_start") if self.effective_date && self.sprint_start_date && self.sprint_start_date >= self.effective_date + errors.add(:base, I18n.t("error_sprint_end_before_start")) if self.effective_date && self.sprint_start_date && self.sprint_start_date >= self.effective_date end - def self.rb_scope(symbol, func) - if Rails::VERSION::MAJOR < 3 - named_scope symbol, func - else - scope symbol, func - end + def duration_3months + errors.add(:base, I18n.t('error_sprint_duration_maximum_three_months')) if self.effective_date && self.sprint_start_date && self.effective_date > self.sprint_start_date + 3.months end - rb_scope :open_sprints, lambda { |project| - order = Backlogs.setting[:sprint_sort_order] == 'desc' ? 'DESC' : 'ASC' - { - :order => "CASE sprint_start_date WHEN NULL THEN 1 ELSE 0 END #{order}, - sprint_start_date #{order}, - CASE effective_date WHEN NULL THEN 1 ELSE 0 END #{order}, - effective_date #{order}", - :conditions => [ "status = 'open' and project_id = ?", project.id ] #FIXME locked, too? - } - } - - #TIB ajout du scope :closed_sprints - rb_scope :closed_sprints, lambda { |project| - order = Backlogs.setting[:sprint_sort_order] == 'desc' ? 'DESC' : 'ASC' - { - :order => "CASE sprint_start_date WHEN NULL THEN 1 ELSE 0 END #{order}, - sprint_start_date #{order}, - CASE effective_date WHEN NULL THEN 1 ELSE 0 END #{order}, - effective_date #{order}", - :conditions => [ "status = 'closed' and project_id = ?", project.id ] - } - } + scope :open_sprints, lambda { |project| open_or_locked.by_date.in_project(project) } + scope :closed_sprints, lambda { |project| closed.by_date.in_project(project) } + + scope :closed, -> { where(:status => 'closed') } + scope :open_or_locked, -> { where(:status => ['open', 'locked']) } + + def self.by_date_clause + dir = Backlogs.setting[:sprint_sort_order] == 'desc' ? 'DESC' : 'ASC' + Arel.sql( + "CASE #{table_name}.sprint_start_date WHEN NULL THEN 1 ELSE 0 END #{dir}, + #{table_name}.sprint_start_date #{dir}, + CASE #{table_name}.effective_date WHEN NULL THEN 1 ELSE 0 END #{dir}, + #{table_name}.effective_date #{dir}" + ) + end + scope :by_date, -> { order(by_date_clause) } + scope :in_project, lambda {|project| where(:project_id => project) } #depending on sharing mode #return array of projects where this sprint is visible @@ -49,14 +41,15 @@ def shared_to_projects(scope_project) r = self.project.root? ? self.project : self.project.root # Project used for other sharings p = self.project - Project.visible.scoped(:include => :versions, - :conditions => ["#{Version.table_name}.id = #{id}" + + Project.visible.joins('LEFT OUTER JOIN versions ON versions.project_id = projects.id'). + includes(:versions). + where(["#{Version.table_name}.id = #{id}" + " OR (#{Project.table_name}.status <> #{Project::STATUS_ARCHIVED} AND (" + " 'system' = ? " + " OR (#{Project.table_name}.lft >= #{r.lft} AND #{Project.table_name}.rgt <= #{r.rgt} AND ? = 'tree')" + " OR (#{Project.table_name}.lft > #{p.lft} AND #{Project.table_name}.rgt < #{p.rgt} AND ? IN ('hierarchy', 'descendants'))" + " OR (#{Project.table_name}.lft < #{p.lft} AND #{Project.table_name}.rgt > #{p.rgt} AND ? = 'hierarchy')" + - "))",sharing,sharing,sharing,sharing]).order('lft') + "))",sharing,sharing,sharing,sharing]).order('lft').distinct end @shared_projects end @@ -146,8 +139,8 @@ def activity end def impediments - @impediments ||= Issue.find(:all, - :conditions => ["id in ( + @impediments ||= Issue.where( + ["id in ( select issue_from_id from issue_relations ir join issues blocked diff --git a/app/models/rb_sprint_burndown.rb b/app/models/rb_sprint_burndown.rb index 6a038573d..f36d6cca1 100644 --- a/app/models/rb_sprint_burndown.rb +++ b/app/models/rb_sprint_burndown.rb @@ -27,6 +27,11 @@ def touch!(story_id = nil) end self.burndown = nil self.save! + #begin + # self.save! + #rescue => e + # Rails.logger.warn e; Rails.logger.warn e.backtrace.join("\n") + #end end # This causes a recursive call to recalculate. I don't know why yet @@ -41,14 +46,14 @@ def series(remove_empty = true) @series ||= {} key = "#{@direction}_#{remove_empty ? 'filled' : 'all'}" if @series[key].nil? - @series[key] = self.burndown[@direction].keys.collect{|k| k.to_s}.sort + @series[key] = self.get_burndown[@direction].keys.collect{|k| k.to_s}.sort if remove_empty # delete :points_committed if flatline - @series[key].delete('points_committed') if self.burndown[@direction][:points_committed].uniq.compact.size < 1 + @series[key].delete('points_committed') if self.get_burndown[@direction][:points_committed].uniq.compact.size < 1 # delete any series that is flat-line 0/nil @series[key].each {|k| - @series[key].delete(k) if k != 'points_committed' && self.burndown[@direction][k.intern].collect{|d| d.to_f }.uniq == [0.0] + @series[key].delete(k) if k != 'points_committed' && self.get_burndown[@direction][k.intern].collect{|d| d.to_f }.uniq == [0.0] } end end @@ -58,14 +63,14 @@ def series(remove_empty = true) #compatibility def days - return self.burndown[:days] + return self.get_burndown[:days] end def cached_data return self.cached_burndown[@direction] end def data - return self.burndown[@direction] + return self.get_burndown[@direction] end def init @@ -76,10 +81,10 @@ def init def cached_burndown cb = read_attribute(:burndown) return cb unless cb.nil? || cb.empty? - burndown + get_burndown end - def burndown + def get_burndown return @_burndown if defined?(@_burndown) @_burndown = read_attribute(:burndown) @@ -97,7 +102,7 @@ def burndown [:hours_remaining, :points_committed, :points_accepted, :points_resolved].each{|k| @_burndown[k] = [nil] * ndays } statuses = RbIssueHistory.statuses - RbStory.find(:all, :conditions => ['id in (?)', self.stories]).each{|story| + RbStory.where(id: self.stories).find_each{|story| bd = story.burndown(sprint, statuses) next unless bd bd.each_pair {|k, data| diff --git a/app/models/rb_stacked_data.rb b/app/models/rb_stacked_data.rb index 9b815afa3..dde4d0e73 100644 --- a/app/models/rb_stacked_data.rb +++ b/app/models/rb_stacked_data.rb @@ -126,8 +126,12 @@ def stack_total(arrays,object,create_estimate) # before previous start date with points from first day in the # previous series for now. end - # Accumulate value for the day to the new stacked total series - tmp_total << arrays[:total_points][i] + last[:total_points][idx] + # Accumulate value for the day to the new stacked total series + begin + tmp_total << arrays[:total_points][i] + last[:total_points][idx] + rescue + tmp_total = 0 + end } # Add the new stacked total series @total_data << {:days => arrays[:days], :total_points => tmp_total, :object => object} diff --git a/app/models/rb_stats.rb b/app/models/rb_stats.rb index b2f8942b6..826dd9b30 100644 --- a/app/models/rb_stats.rb +++ b/app/models/rb_stats.rb @@ -55,7 +55,7 @@ def self.create_journal(j, prop, issue_id, timestamp) status = nil end changes = [ { :property => 'status_open', :value => status && !status.is_closed }, - { :property => 'status_success', :value => status && !status.backlog_is?(:success) } ] + { :property => 'status_success', :value => status && !status.backlog_is?(:success, RbStory.trackers(:trackers)[0]) } ] else changes = [ { :property => journal_property_key(prop), :value => journal_property_value(prop, j) } ] end @@ -90,10 +90,11 @@ def self.rebuild(issue) case Backlogs.platform when :redmine - JournalDetail.find(:all, :order => "journals.created_on asc" , :joins => :journal, - :conditions => ["property = 'attr' and prop_key in (?) + JournalDetail.where(["property = 'attr' and prop_key in (?) and journalized_type = 'Issue' and journalized_id = ?", - RbJournal::REDMINE_PROPERTIES, issue.id]).each {|detail| + RbJournal::REDMINE_PROPERTIES, issue.id]) + .order("journals.created_on asc") + .joins(:journal).find_each {|detail| changes[detail.prop_key] << {:time => detail.journal.created_on, :old => detail.old_value, :new => detail.value} } @@ -138,7 +139,7 @@ def self.rebuild(issue) changes['status_id'].each{|change| status = issue_status[change[:new]] changes['status_open'] << change.merge(:new => status && !status.is_closed?) - changes['status_success'] << change.merge(:new => status && status.backlog_is?(:success)) + changes['status_success'] << change.merge(:new => status && status.backlog_is?(:success, RbStory.trackers(:trackers)[0])) } changes.delete('status_id') diff --git a/app/models/rb_story.rb b/app/models/rb_story.rb index 1845ca675..06e2f968c 100644 --- a/app/models/rb_story.rb +++ b/app/models/rb_story.rb @@ -1,6 +1,5 @@ class RbStory < Issue - unloadable - + acts_as_list_with_gaps :default => (Backlogs.setting[:new_story_position] == 'bottom' ? 'bottom' : 'top') RELEASE_RELATIONSHIP = %w(auto initial continued added) private @@ -32,7 +31,7 @@ def self.__find_options_sprint_condition(project_id, sprint_ids) and fixed_version_id IN (?)", self.trackers, sprint_ids] else [" - project_id = ? + issues.project_id = ? and tracker_id in (?) and fixed_version_id IN (?)", project_id, self.trackers, sprint_ids] end @@ -40,7 +39,7 @@ def self.__find_options_sprint_condition(project_id, sprint_ids) def self.__find_options_release_condition(project_id, release_ids) [" - project_id in (#{Project.find(project_id).projects_in_shared_product_backlog.map{|p| p.id}.join(',')}) + issues.project_id in (#{Project.find(project_id).projects_in_shared_product_backlog.map{|p| p.id}.join(',')}) and tracker_id in (?) and fixed_version_id is NULL and release_id in (?)", self.trackers, release_ids] @@ -48,7 +47,7 @@ def self.__find_options_release_condition(project_id, release_ids) def self.__find_options_pbl_condition(project_id) [" - project_id in (#{Project.find(project_id).projects_in_shared_product_backlog.map{|p| p.id}.join(',')}) + issues.project_id in (#{Project.find(project_id).projects_in_shared_product_backlog.map{|p| p.id}.join(',')}) and tracker_id in (?) and release_id is NULL and fixed_version_id is NULL @@ -57,6 +56,15 @@ def self.__find_options_pbl_condition(project_id) public + def self.class_default_status + begin + RbStory.trackers(:trackers)[0].default_status + rescue + Rails.logger.error("Story has no trackers configured") + nil + end + end + def self.find_options(options) options = options.dup @@ -75,26 +83,36 @@ def self.find_options(options) sprint_ids = self.__find_options_normalize_option(options.delete(:sprint)) release_ids = self.__find_options_normalize_option(options.delete(:release)) + options[:joins] ||= [] + options[:joins] [options[:joins]] unless options[:joins].is_a?(Array) + options[:joins] << :project if sprint_ids Backlogs::ActiveRecord.add_condition(options, self.__find_options_sprint_condition(project_id, sprint_ids)) + options[:joins] << :fixed_version elsif release_ids Backlogs::ActiveRecord.add_condition(options, self.__find_options_release_condition(project_id, release_ids)) + options[:joins] << :release else #product backlog Backlogs::ActiveRecord.add_condition(options, self.__find_options_pbl_condition(project_id)) - options[:joins] ||= [] - options[:joins] [options[:joins]] unless options[:joins].is_a?(Array) options[:joins] << :status options[:joins] << :project end - - options + #options + joins(options[:joins]).includes(options[:joins]).where(options[:conditions]) end - scope :backlog_scope, lambda{|opts| RbStory.find_options(opts) } + scope :backlog_scope, lambda{|opts={}| self.find_options(opts) } + + def list_with_gaps_options + { + :project => self.project_id, + :sprint => self.fixed_version_id, + :release => self.release_id + } + end def self.inject_lower_higher prev = nil - i = 1 all.map {|story| #optimization: set virtual attributes to avoid hundreds of sql queries # this requires that the scope is clean - meaning exactly ONE backlog is queried here. @@ -105,7 +123,8 @@ def self.inject_lower_higher end def self.backlog(project_id, sprint_id, release_id, options={}) - self.visible.order("#{self.table_name}.position"). + self.visible. + order("#{self.table_name}.position"). backlog_scope( options.merge({ :project => project_id, @@ -146,19 +165,15 @@ def self.backlogs_by_release(project, releases, options={}) end end - def self.create_and_position(params) + def self.save_and_position(story, params) params['prev'] = params.delete('prev_id') if params.include?('prev_id') params['next'] = params.delete('next_id') if params.include?('next_id') params['prev'] = nil if (['next', 'prev'] - params.keys).size == 2 - # lft and rgt fields are handled by acts_as_nested_set - attribs = params.select{|k,v| !['prev', 'next', 'id', 'lft', 'rgt'].include?(k) && RbStory.column_names.include?(k) } - attribs = Hash[*attribs.flatten] - s = RbStory.new(attribs) - s.save! - s.position!(params) + result = story.save + story.position!(params) - return s + return result end scope :updated_since, lambda {|since| @@ -168,7 +183,7 @@ def self.create_and_position(params) def self.find_all_updated_since(since, project_id) #look in backlog, sprint and releases. look in shared sprints and shared releases - project = Project.select("id,lft,rgt").find_by_id(project_id) + project = Project.select("id,lft,rgt,parent_id,name").find(project_id) sprints = project.open_shared_sprints.map{|s|s.id} releases = project.open_releases_by_date.map{|s|s.id} #following will execute 3 queries and join it as array @@ -191,7 +206,7 @@ def self.trackers(options = {}) trackers = [] if trackers.blank? end - trackers = Tracker.find_all_by_id(trackers) + trackers = Tracker.where(:id => trackers).all trackers = trackers & options[:project].trackers if options[:project] trackers = trackers.sort_by { |t| [t.position] } @@ -203,6 +218,12 @@ def self.trackers(options = {}) end end + def self.trackers_include?(tracker_id) + tracker_ids = Backlogs.setting[:story_trackers] || [] + tracker_ids = tracker_ids.map(&:to_i) + tracker_ids.include?(tracker_id.to_i) + end + def self.has_settings_table ActiveRecord::Base.connection.tables.include?('settings') end @@ -228,14 +249,14 @@ def points_display(notsized='-') return story_points.to_s end - def update_and_position!(params) + def update_and_position(params) params['prev'] = params.delete('prev_id') if params.include?('prev_id') params['next'] = params.delete('next_id') if params.include?('next_id') self.position!(params) # lft and rgt fields are handled by acts_as_nested_set attribs = params.select{|k,v| !['prev', 'id', 'project_id', 'lft', 'rgt'].include?(k) && RbStory.column_names.include?(k) } - attribs = Hash[*attribs.flatten] + attribs = attribs.to_enum.to_h return self.journalized_update_attributes attribs end @@ -263,11 +284,10 @@ def update_release_burnchart_data(days,release_burndown_id) end def save_release_burnchart_data(series,release_burndown_id) - RbReleaseBurnchartDayCache.delete_all( - ["issue_id = ? AND release_id = ? AND day IN (?)", - self.id, - release_burndown_id, - series.series(:day)]) + RbReleaseBurnchartDayCache.where(["issue_id = ? AND release_id = ? AND day IN (?)", + self.id, + release_burndown_id, + series.series(:day)]).delete_all series.each{|s| RbReleaseBurnchartDayCache.create(:issue_id => self.id, @@ -291,7 +311,7 @@ def save_release_burnchart_data(series,release_burndown_id) def calculate_release_burndown_data(days, release_burndown_id) baseline = [0] * days.size - series = Backlogs::MergedArray.new + series = BacklogsMergedArray.new series.merge(:total_points => baseline.dup) series.merge(:closed_points => baseline.dup) series.merge(:added_points => baseline.dup) @@ -356,7 +376,7 @@ def continued_story? self.relations.each{|r| if r.relation_type == IssueRelation::TYPE_COPIED_TO from_story = RbStory.find(r.issue_from_id) - if from_story.status.backlog_is?(:failure) + if from_story.status.backlog_is?(:failure, RbStory.trackers(:trackers)[0]) #FIXME check from_story is in the same release as this story at the # point in time being examined. return true @@ -386,15 +406,6 @@ def burndown(sprint = nil, status=nil) return bd end - def list_with_gaps_scope_condition(options={}) - return options if self.new_record? - self.class.find_options(options.dup.merge({ - :project => self.project_id, - :sprint => self.fixed_version_id, - :release => self.release_id - })) - end - def story_follow_task_state return if Setting.plugin_redmine_backlogs[:story_follow_task_status] != 'close' && Setting.plugin_redmine_backlogs[:story_follow_task_status] != 'loose' return if self.status.is_closed? #bail out if we are closed @@ -434,6 +445,17 @@ def set_closed_status_if_following_to_close end end + def descendants(*args) + descendants = super + descendants.each do |issue| + next unless issue.is_task? + if self.id == (issue.parent_id || issue.parent_issue_id) + issue.instance_variable_set(:@rb_story, self) + end + end + descendants + end + private def calc_total_auto(p,days,in_release_first) diff --git a/app/models/rb_task.rb b/app/models/rb_task.rb index 7042828c7..ed1ba37e7 100644 --- a/app/models/rb_task.rb +++ b/app/models/rb_task.rb @@ -9,10 +9,43 @@ def self.tracker return Integer(task_tracker) end + def self.class_default_status + begin + t = Tracker.find(self.tracker) + return t.default_status + rescue => e + Rails.logger.error("Task has no trackers configured #{e}") + puts("Task has no trackers configured #{e}") + nil + end + end + + def self.tracker?(tracker_id) + self.tracker == tracker_id.to_i + end + # unify api between story and task. FIXME: remove this when merging to tracker-free-tasks # required for RbServerVariablesHelper.workflow_transitions - def self.trackers - [self.tracker] + def self.trackers(options = {}) + options = {:type => options} if options.is_a?(Symbol) + + # somewhere early in the initialization process during first-time migration this gets called when the table doesn't yet exist + trackers = [self.tracker] + + begin + trackers = Tracker.where(id: trackers) + rescue ActiveRecord::RecordNotFound => e + trackers = nil + end + trackers = trackers & options[:project].trackers if options[:project] + trackers = trackers.sort_by { |t| [t.position] } + + case options[:type] + when :trackers then return trackers + when :array, nil then return trackers.collect{|t| t.id} + when :string then return trackers.collect{|t| t.id.to_s}.join(',') + else raise "Unexpected return type #{options[:type].inspect}" + end end def self.rb_safe_attributes(params) @@ -26,7 +59,7 @@ def self.rb_safe_attributes(params) attribs = params.select {|k,v| safe_attributes_names.include?(k) } # lft and rgt fields are handled by acts_as_nested_set attribs = attribs.select{|k,v| k != 'lft' and k != 'rgt' } - attribs = Hash[*attribs.flatten] if attribs.is_a?(Array) + attribs = attribs.to_enum.to_h if attribs.is_a?(Array) return attribs end @@ -49,7 +82,8 @@ def self.create_with_relationships(params, user_id, project_id, is_impediment = end end - task = new(attribs) + attribs = attribs.to_enum.to_h + task = RbTask.new(attribs) if params['parent_issue_id'] parent = Issue.find(params['parent_issue_id']) task.start_date = parent.start_date @@ -68,16 +102,19 @@ def self.create_with_relationships(params, user_id, project_id, is_impediment = # TODO: there's an assumption here that impediments always have the # task-tracker as their tracker, and are top-level issues. def self.find_all_updated_since(since, project_id, find_impediments = false, sprint_id = nil) - #find all updated visible on taskboard - which may span projects. - if sprint_id.nil? - find(:all, - :conditions => ["project_id = ? AND updated_on > ? AND tracker_id in (?) and parent_id IS #{ find_impediments ? '' : 'NOT' } NULL", project_id, Time.parse(since), tracker], - :order => "updated_on ASC") - else - find(:all, - :conditions => ["fixed_version_id = ? AND updated_on > ? AND tracker_id in (?) and parent_id IS #{ find_impediments ? '' : 'NOT' } NULL", sprint_id, Time.parse(since), tracker], - :order => "updated_on ASC") + #find all updated visible on taskboard - which may span projects. This returns a Relation/scope + + if sprint_id.nil? #FIXME this branch makes no sense, we are on a taskboard which may be sharing across projects + Rails.logger.warn("DEPRECATION WARNING: RbTask.find_all_updated_since used without sprint") + scope = where(:project_id => project_id) + else #this should be the only branch here. + scope = where(:fixed_version_id => sprint_id) end + scope.where(["updated_on > ? + AND tracker_id in (?) + AND parent_id IS #{ find_impediments ? '' : 'NOT' } NULL", + Time.parse(since), tracker]). + order("updated_on ASC") end def update_with_relationships(params, is_impediment = false) @@ -99,7 +136,7 @@ def update_with_relationships(params, is_impediment = false) true end - if valid_relationships && result = self.journalized_update_attributes!(attribs) + if valid_relationships && result = self.journalized_update_attributes(attribs) move_before params[:next] unless is_impediment # impediments are not hosted under a single parent, so you can't tree-order them update_blocked_list params[:blocks].split(/\D+/) if params[:blocks] @@ -122,11 +159,11 @@ def update_with_relationships(params, is_impediment = false) def update_blocked_list(for_blocking) # Existing relationships not in for_blocking should be removed from the 'blocks' list - relations_from.find(:all, :conditions => "relation_type='blocks'").each{ |ir| + relations_from.where(relation_type: 'blocks').find_each{ |ir| ir.destroy unless for_blocking.include?( ir[:issue_to_id] ) } - already_blocking = relations_from.find(:all, :conditions => "relation_type='blocks'").map{|ir| ir.issue_to_id} + already_blocking = relations_from.where(relation_type: 'blocks').map{|ir| ir.issue_to_id} # Non-existing relationships that are in for_blocking should be added to the 'blocks' list for_blocking.select{ |id| !already_blocking.include?(id) }.each{ |id| @@ -139,7 +176,7 @@ def update_blocked_list(for_blocking) def validate_blocks_list(list) if list.split(/\D+/).length==0 - errors.add :blocks, :must_have_comma_delimited_list + errors.add :blocks, :must_have_comma_delimited_list.to_s false else true @@ -151,9 +188,9 @@ def move_before(id) id = nil if id.respond_to?('blank?') && id.blank? if id.nil? sib = self.siblings - move_to_right_of sib[-1].id if sib.any? + move_to_right_of sib[-1] if sib.any? else - move_to_left_of id + move_to_left_of Issue.find(id) end end diff --git a/app/views/backlogs/_model_errors.html.erb b/app/views/backlogs/_model_errors.html.erb index 69a17d162..a1012f1a9 100644 --- a/app/views/backlogs/_model_errors.html.erb +++ b/app/views/backlogs/_model_errors.html.erb @@ -1,5 +1,5 @@
<%- model_errors.each do |a, err| %> -
<%= "#{l('field_' + a.to_s)} #{l('error_' + err.to_s)}" %>
+
<%= "#{l('field_' + a.to_s)} #{l('error_' + a.to_s)} #{err}" %>
<%- end %>
diff --git a/app/views/backlogs/_project_settings.html.erb b/app/views/backlogs/_project_settings.html.erb index 5cca7160f..3dd47060e 100644 --- a/app/views/backlogs/_project_settings.html.erb +++ b/app/views/backlogs/_project_settings.html.erb @@ -4,11 +4,7 @@ # so we duplicate the rb_form_for code here and do not monkeypatch RbFormHelper into ProjectsHelper. def rb_pr_form_for(*args, &proc) form_string = form_for(*args, &proc) - if Rails::VERSION::MAJOR < 3 - form_string - else - concat(form_string) - end + concat(form_string) end rb_pr_form_for @project, :as => :rb_project_settings, diff --git a/app/views/backlogs/_settings.html.erb b/app/views/backlogs/_settings.html.erb index 6bb90ee34..01b65263c 100644 --- a/app/views/backlogs/_settings.html.erb +++ b/app/views/backlogs/_settings.html.erb @@ -90,7 +90,7 @@ <% Tracker.all.each do |tracker| %> - <% states = tracker.issue_statuses.group_by {|status| status.backlog} %> + <% states = tracker.issue_statuses.group_by {|status| status.backlog(tracker)} %> <%= h tracker.name %> <%= h((states[:new] || []).join(', ')) %> @@ -273,7 +273,7 @@ ['10', '10000'], ['30', '30000'], ['60', '60000'], - ], Backlogs.setting[:autorefresh_wait])) %> + ], Backlogs.setting[:autorefresh_wait]), include_blank: true) %>

@@ -286,6 +286,14 @@ <%= check_box_tag("settings[show_project_name]",'enabled', Backlogs.setting[:show_project_name]) %>

+

+ <%= content_tag(:label, l(:rb_taskboard_view_story_order)) %> + <%= select_tag("settings[taskboard_view_story_order]", + options_for_select([ + [l(:rb_label_taskboard_view_story_order_by_position), 'position'], + [l(:rb_label_taskboard_view_story_order_by_alpha), 'alpha'] + ], Backlogs.setting[:taskboard_view_story_order])) %> +

diff --git a/app/views/backlogs/view_issues_sidebar.html.erb b/app/views/backlogs/view_issues_sidebar.html.erb index 09fa9c518..0e2c92fdf 100644 --- a/app/views/backlogs/view_issues_sidebar.html.erb +++ b/app/views/backlogs/view_issues_sidebar.html.erb @@ -35,7 +35,7 @@ :key => key }) %>"><%= l(:label_webcal) %>
<% end %> - <% releases = project.shared_releases +<% releases = project.shared_releases if releases && releases.size > 0 && User.current.allowed_to?(:view_releases, project) %>

<%= l(:label_release_plural) %>

<% project.shared_releases.each{|r| %> diff --git a/app/views/hooks/_rb_include_scripts.html.erb b/app/views/hooks/_rb_include_scripts.html.erb index 8f8865618..95af40a10 100644 --- a/app/views/hooks/_rb_include_scripts.html.erb +++ b/app/views/hooks/_rb_include_scripts.html.erb @@ -1,11 +1,12 @@ <%= stylesheet_link_tag 'jquery/jquery.jqplot.min.css', :plugin => 'redmine_backlogs' %> -<%= if (! ((Redmine::VERSION::MAJOR == 2) && (Redmine::VERSION::MINOR >= 1)) || +<%= # redmine uses new jquery, need some compat libs + if ((Redmine::VERSION::MAJOR == 2) && (Redmine::VERSION::MINOR >= 5)) || (Redmine::VERSION::MAJOR > 2) - ) || (controller.is_a? RbApplicationController) - javascript_include_tag 'jquery/jquery-1.7.2-ui-1.8.21-ujs-2.0.3.js', :plugin => 'redmine_backlogs' + javascript_include_tag('jquery/jquery.jqplot/jquery.browser.js', :plugin => 'redmine_backlogs') end %> +<%= javascript_include_tag 'jquery-migrate-1.2.1.js', :plugin => 'redmine_backlogs' %> <%= javascript_include_tag 'jquery/jquery.verticalfix-min.js', :plugin => 'redmine_backlogs' %> diff --git a/app/views/rb_stories/_story.html.erb b/app/views/rb_stories/_story.html.erb index b595f9516..fc5704711 100644 --- a/app/views/rb_stories/_story.html.erb +++ b/app/views/rb_stories/_story.html.erb @@ -1,6 +1,8 @@
  • -
    <%=h story.subject %> +
    + <%=h story.subject %> + (<%= story.estimated_hours.to_f %> est h, <%= story.priority.name %> )
    diff --git a/app/views/rb_stories/_tooltip.html.erb b/app/views/rb_stories/_tooltip.html.erb index ced3ea6ab..e2130ea62 100644 --- a/app/views/rb_stories/_tooltip.html.erb +++ b/app/views/rb_stories/_tooltip.html.erb @@ -9,6 +9,6 @@ <%= I18n.t :field_assigned_to %>: <%=h assignee_name_or_empty(tooltip) %>
    <%= I18n.t :field_project %>: <%=h project_name_or_empty(tooltip) %>
    <%= I18n.t :field_release %>: <%=h release_or_empty(tooltip) %>
    -
    <%= textilizable tooltip, :description, :attachments => tooltip.attachments%>
    +
    <%= I18n.t :field_description %>: <%= textilizable tooltip, :description, :attachments => tooltip.attachments%>
    <%=h custom_fields_or_empty(tooltip) %> diff --git a/app/views/rb_taskboards/show.html.erb b/app/views/rb_taskboards/show.html.erb index a40200962..d0ffde85d 100644 --- a/app/views/rb_taskboards/show.html.erb +++ b/app/views/rb_taskboards/show.html.erb @@ -23,7 +23,7 @@ :format => 'js') %>"> <%# Usability: display default cursor if tasks cannot be dragged %> - <% unless User.current.allowed_to?(:update_tasks, @project) %> + <% unless User.current.allowed_to?(:update_tasks, @project) %> @@ -42,9 +42,14 @@
    - - - - - - - - - - - - -
    This document is out of date.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqPlotOptions-txt.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqPlotOptions-txt.html deleted file mode 100644 index 9fbcfd619..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqPlotOptions-txt.html +++ /dev/null @@ -1,292 +0,0 @@ - - -jqPlot Options - - - - - - - - - -

    This document is out of date.  While the options described here should still be relavent and valid, it has not been updated for many new options.  Sorry for this inconvenience.

    This document describes the options available to jqPlot.  These are set with the third argument to the $.jqplot(‘target’, data, options) function.  Options are using the following convention:

    property: default, // notes

    This document is not complete!  Not all options are shown!  Also, Options marked with * in the notes are post 0.7.1 additions.  They will be available in the next release.  Further information about the options can be found in the online API documentation.  For details on how the options relate to the API documentation, see the Options Tutorial in the optionsTutorial.txt file.

    options =
    -{
    -    seriesColors: [ "#4bb2c5", "#c5b47f", "#EAA228", "#579575", "#839557", "#958c12",
    -        "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc"],  // colors that will
    -         // be assigned to the series.  If there are more series than colors, colors
    -         // will wrap around and start at the beginning again.
    -
    -    stackSeries: false, // if true, will create a stack plot.
    -                        // Currently supported by line and bar graphs.
    -
    -    title: '',      // Title for the plot.  Can also be specified as an object like:
    -
    -    title: {
    -        text: '',   // title for the plot,
    -        show: true,
    -    },
    -
    -    axesDefaults: {
    -        show: false,    // wether or not to renderer the axis.  Determined automatically.
    -        min: null,      // minimum numerical value of the axis.  Determined automatically.
    -        max: null,      // maximum numverical value of the axis.  Determined automatically.
    -        pad: 1.2,       // a factor multiplied by the data range on the axis to give the
    -                        // axis range so that data points don't fall on the edges of the axis.
    -        ticks: [],      // a 1D [val1, val2, ...], or 2D [[val, label], [val, label], ...]
    -                        // array of ticks to use.  Computed automatically.
    -        numberTicks: undefined,
    -        renderer: $.jqplot.LinearAxisRenderer,  // renderer to use to draw the axis,
    -        rendererOptions: {},    // options to pass to the renderer.  LinearAxisRenderer
    -                                // has no options,
    -        tickOptions: {
    -            mark: 'outside',    // Where to put the tick mark on the axis
    -                                // 'outside', 'inside' or 'cross',
    -            showMark: true,
    -            showGridline: true, // wether to draw a gridline (across the whole grid) at this tick,
    -            markSize: 4,        // length the tick will extend beyond the grid in pixels.  For
    -                                // 'cross', length will be added above and below the grid boundary,
    -            show: true,         // wether to show the tick (mark and label),
    -            showLabel: true,    // wether to show the text label at the tick,
    -            formatString: '',   // format string to use with the axis tick formatter
    -        }
    -        showTicks: true,        // wether or not to show the tick labels,
    -        showTickMarks: true,    // wether or not to show the tick marks
    -    },
    -
    -    axes: {
    -        xaxis: {
    -            // same options as axesDefaults
    -        },
    -        yaxis: {
    -            // same options as axesDefaults
    -        },
    -        x2axis: {
    -            // same options as axesDefaults
    -        },
    -        y2axis: {
    -            // same options as axesDefaults
    -        }
    -    },
    -
    -    seriesDefaults: {
    -        show: true,     // wether to render the series.
    -        xaxis: 'xaxis', // either 'xaxis' or 'x2axis'.
    -        yaxis: 'yaxis', // either 'yaxis' or 'y2axis'.
    -        label: '',      // label to use in the legend for this line.
    -        color: '',      // CSS color spec to use for the line.  Determined automatically.
    -        lineWidth: 2.5, // Width of the line in pixels.
    -        shadow: true,   // show shadow or not.
    -        shadowAngle: 45,    // angle (degrees) of the shadow, clockwise from x axis.
    -        shadowOffset: 1.25, // offset from the line of the shadow.
    -        shadowDepth: 3,     // Number of strokes to make when drawing shadow.  Each
    -                            // stroke offset by shadowOffset from the last.
    -        shadowAlpha: 0.1,   // Opacity of the shadow.
    -        showLine: true,     // whether to render the line segments or not.
    -        showMarker: true,   // render the data point markers or not.
    -        fill: false,        // fill under the line,
    -        fillAndStroke: false,       // *stroke a line at top of fill area.
    -        fillColor: undefined,       // *custom fill color for filled lines (default is line color).
    -        fillAlpha: undefined,       // *custom alpha to apply to fillColor.
    -        renderer: $.jqplot.LineRenderer],    // renderer used to draw the series.
    -        rendererOptions: {}, // options passed to the renderer.  LineRenderer has no options.
    -        markerRenderer: $.jqplot.MarkerRenderer,    // renderer to use to draw the data
    -                                                    // point markers.
    -        markerOptions: {
    -            show: true,             // wether to show data point markers.
    -            style: 'filledCircle',  // circle, diamond, square, filledCircle.
    -                                    // filledDiamond or filledSquare.
    -            lineWidth: 2,       // width of the stroke drawing the marker.
    -            size: 9,            // size (diameter, edge length, etc.) of the marker.
    -            color: '#666666'    // color of marker, set to color of line by default.
    -            shadow: true,       // wether to draw shadow on marker or not.
    -            shadowAngle: 45,    // angle of the shadow.  Clockwise from x axis.
    -            shadowOffset: 1,    // offset from the line of the shadow,
    -            shadowDepth: 3,     // Number of strokes to make when drawing shadow.  Each stroke
    -                                // offset by shadowOffset from the last.
    -            shadowAlpha: 0.07   // Opacity of the shadow
    -        }
    -    },
    -
    -    series:[
    -        {Each series has same options as seriesDefaults},
    -        {You can override each series individually here}
    -    ],
    -
    -    legend: {
    -        show: false,
    -        location: 'ne',     // compass direction, nw, n, ne, e, se, s, sw, w.
    -        xoffset: 12,        // pixel offset of the legend box from the x (or x2) axis.
    -        yoffset: 12,        // pixel offset of the legend box from the y (or y2) axis.
    -    },
    -
    -    grid: {
    -        drawGridLines: true,        // wether to draw lines across the grid or not.
    -        gridLineColor: '#cccccc'    // *Color of the grid lines.
    -        background: '#fffdf6',      // CSS color spec for background color of grid.
    -        borderColor: '#999999',     // CSS color spec for border around grid.
    -        borderWidth: 2.0,           // pixel width of border around grid.
    -        shadow: true,               // draw a shadow for grid.
    -        shadowAngle: 45,            // angle of the shadow.  Clockwise from x axis.
    -        shadowOffset: 1.5,          // offset from the line of the shadow.
    -        shadowWidth: 3,             // width of the stroke for the shadow.
    -        shadowDepth: 3,             // Number of strokes to make when drawing shadow.
    -                                    // Each stroke offset by shadowOffset from the last.
    -        shadowAlpha: 0.07           // Opacity of the shadow
    -        renderer: $.jqplot.CanvasGridRenderer,  // renderer to use to draw the grid.
    -        rendererOptions: {}         // options to pass to the renderer.  Note, the default
    -                                    // CanvasGridRenderer takes no additional options.
    -    },
    -
    -    // Plugin and renderer options.
    -
    -    // BarRenderer.
    -    // With BarRenderer, you can specify additional options in the rendererOptions object
    -    // on the series or on the seriesDefaults object.  Note, some options are respecified
    -    // (like shadowDepth) to override lineRenderer defaults from which BarRenderer inherits.
    -
    -    seriesDefaults: {
    -        rendererOptions: {
    -            barPadding: 8,      // number of pixels between adjacent bars in the same
    -                                // group (same category or bin).
    -            barMargin: 10,      // number of pixels between adjacent groups of bars.
    -            barDirection: 'vertical', // vertical or horizontal.
    -            barWidth: null,     // width of the bars.  null to calculate automatically.
    -            shadowOffset: 2,    // offset from the bar edge to stroke the shadow.
    -            shadowDepth: 5,     // nuber of strokes to make for the shadow.
    -            shadowAlpha: 0.8,   // transparency of the shadow.
    -        }
    -    },
    -
    -    // Cursor
    -    // Options are passed to the cursor plugin through the "cursor" object at the top
    -    // level of the options object.
    -
    -    cursor: {
    -        style: 'crosshair',     // A CSS spec for the cursor type to change the
    -                                // cursor to when over plot.
    -        show: true,
    -        showTooltip: true,      // show a tooltip showing cursor position.
    -        followMouse: false,     // wether tooltip should follow the mouse or be stationary.
    -        tooltipLocation: 'se',  // location of the tooltip either relative to the mouse
    -                                // (followMouse=true) or relative to the plot.  One of
    -                                // the compass directions, n, ne, e, se, etc.
    -        tooltipOffset: 6,       // pixel offset of the tooltip from the mouse or the axes.
    -        showTooltipGridPosition: false,     // show the grid pixel coordinates of the mouse
    -                                            // in the tooltip.
    -        showTooltipUnitPosition: true,      // show the coordinates in data units of the mouse
    -                                            // in the tooltip.
    -        tooltipFormatString: '%.4P',    // sprintf style format string for tooltip values.
    -        useAxesFormatters: true,        // wether to use the same formatter and formatStrings
    -                                        // as used by the axes, or to use the formatString
    -                                        // specified on the cursor with sprintf.
    -        tooltipAxesGroups: [],  // show only specified axes groups in tooltip.  Would specify like:
    -                                // [['xaxis', 'yaxis'], ['xaxis', 'y2axis']].  By default, all axes
    -                                // combinations with for the series in the plot are shown.
    -
    -    },
    -
    -    // Dragable
    -    // Dragable options are specified with the "dragable" object at the top level
    -    // of the options object.
    -
    -    dragable: {
    -        color: undefined,       // custom color to use for the dragged point and dragged line
    -                                // section. default will use a transparent variant of the line color.
    -        constrainTo: 'none',    // Constrain dragging motion to an axis: 'x', 'y', or 'none'.
    -    },
    -
    -    // Highlighter
    -    // Highlighter options are specified with the "highlighter" object at the top level
    -    // of the options object.
    -
    -    highlighter: {
    -        lineWidthAdjust: 2.5,   // pixels to add to the size line stroking the data point marker
    -                                // when showing highlight.  Only affects non filled data point markers.
    -        sizeAdjust: 5,          // pixels to add to the size of filled markers when drawing highlight.
    -        showTooltip: true,      // show a tooltip with data point values.
    -        tooltipLocation: 'nw',  // location of tooltip: n, ne, e, se, s, sw, w, nw.
    -        fadeTooltip: true,      // use fade effect to show/hide tooltip.
    -        tooltipFadeSpeed: "fast"// slow, def, fast, or a number of milliseconds.
    -        tooltipOffset: 2,       // pixel offset of tooltip from the highlight.
    -        tooltipAxes: 'both',    // which axis values to display in the tooltip, x, y or both.
    -        tooltipSeparator: ', '  // separator between values in the tooltip.
    -        useAxesFormatters: true // use the same format string and formatters as used in the axes to
    -                                // display values in the tooltip.
    -        tooltipFormatString: '%.5P' // sprintf format string for the tooltip.  only used if
    -                                    // useAxesFormatters is false.  Will use sprintf formatter with
    -                                    // this string, not the axes formatters.
    -    },
    -
    -    // LogAxisRenderer
    -    // LogAxisRenderer add 2 options to the axes object.  These options are specified directly on
    -    // the axes or axesDefaults object.
    -
    -    axesDefaults: {
    -        base: 10,                   // the logarithmic base.
    -        tickDistribution: 'even',   // 'even' or 'power'.  'even' will produce with even visiual (pixel)
    -                                    // spacing on the axis.  'power' will produce ticks spaced by
    -                                    // increasing powers of the log base.
    -    },
    -
    -    // PieRenderer
    -    // PieRenderer accepts options from the rendererOptions object of the series or seriesDefaults object.
    -
    -    seriesDefaults: {
    -        rendererOptions: {
    -            diameter: undefined, // diameter of pie, auto computed by default.
    -            padding: 20,        // padding between pie and neighboring legend or plot margin.
    -            sliceMargin: 0,     // gap between slices.
    -            fill: true,         // render solid (filled) slices.
    -            shadowOffset: 2,    // offset of the shadow from the chart.
    -            shadowDepth: 5,     // Number of strokes to make when drawing shadow.  Each stroke
    -                                // offset by shadowOffset from the last.
    -            shadowAlpha: 0.07   // Opacity of the shadow
    -        }
    -    },
    -
    -    // Trendline
    -    // Trendline takes options on the trendline object of the series or seriesDefaults object.
    -
    -    seriesDefaults: {
    -        trendline: {
    -            show: true,         // show the trend line
    -            color: '#666666',   // CSS color spec for the trend line.
    -            label: '',          // label for the trend line.
    -            type: 'linear',     // 'linear', 'exponential' or 'exp'
    -            shadow: true,       // show the trend line shadow.
    -            lineWidth: 1.5,     // width of the trend line.
    -            shadowAngle: 45,    // angle of the shadow.  Clockwise from x axis.
    -            shadowOffset: 1.5,  // offset from the line of the shadow.
    -            shadowDepth: 3,     // Number of strokes to make when drawing shadow.
    -                                // Each stroke offset by shadowOffset from the last.
    -            shadowAlpha: 0.07   // Opacity of the shadow
    -        }
    -    }
    -}
    - -
    - - - - - - - - - - -
    This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-axisLabelRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-axisLabelRenderer-js.html deleted file mode 100644 index 4fb0d2c44..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-axisLabelRenderer-js.html +++ /dev/null @@ -1,47 +0,0 @@ - - -$.jqplot.AxisLabelRenderer - - - - - - - - - -

    Renderer to place labels on the axes.

    Summary
    $.jqplot.AxisLabelRendererRenderer to place labels on the axes.
    Properties
    showwether or not to show the tick (mark and label).
    labelThe text or html for the label.
    escapeHTMLtrue to escape HTML entities in the label.
    - -

    Properties

    - -

    show

    this.show = true

    wether or not to show the tick (mark and label).

    - -

    label

    this.label = ''

    The text or html for the label.

    - -

    escapeHTML

    this.escapeHTML = false

    true to escape HTML entities in the label.

    - -
    - - - - - - - - - - -
    this.show = true
    wether or not to show the tick (mark and label).
    this.label = ''
    The text or html for the label.
    this.escapeHTML = false
    true to escape HTML entities in the label.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-axisTickRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-axisTickRenderer-js.html deleted file mode 100644 index bf07d43ee..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-axisTickRenderer-js.html +++ /dev/null @@ -1,73 +0,0 @@ - - -$.jqplot.AxisTickRenderer - - - - - - - - - -

    A “tick” object showing the value of a tick/gridline on the plot.

    Summary
    $.jqplot.AxisTickRendererA “tick” object showing the value of a tick/gridline on the plot.
    Properties
    marktick mark on the axis.
    showMarkwether or not to show the mark on the axis.
    showGridlinewether or not to draw the gridline on the grid at this tick.
    isMinorTickif this is a minor tick.
    sizeLength of the tick beyond the grid in pixels.
    markSizeLength of the tick marks in pixels.
    showwether or not to show the tick (mark and label).
    showLabelwether or not to show the label.
    formatterA class of a formatter for the tick text.
    prefixString to prepend to the tick label.
    suffixString to append to the tick label.
    formatStringstring passed to the formatter.
    fontFamilycss spec for the font-family css attribute.
    fontSizecss spec for the font-size css attribute.
    textColorcss spec for the color attribute.
    escapeHTMLtrue to escape HTML entities in the label.
    - -

    Properties

    - -

    mark

    this.mark = 'outside'

    tick mark on the axis.  One of ‘inside’, ‘outside’, ‘cross’, ‘’ or null.

    - -

    showMark

    this.showMark = true

    wether or not to show the mark on the axis.

    - -

    showGridline

    this.showGridline = true

    wether or not to draw the gridline on the grid at this tick.

    - -

    isMinorTick

    this.isMinorTick = false

    if this is a minor tick.

    - -

    size

    this.size = 4

    Length of the tick beyond the grid in pixels.  DEPRECATED: This has been superceeded by markSize

    - -

    markSize

    this.markSize = 6

    Length of the tick marks in pixels.  For ‘cross’ style, length will be stoked above and below axis, so total length will be twice this.

    - -

    show

    this.show = true

    wether or not to show the tick (mark and label).  Setting this to false requires more testing.  It is recommended to set showLabel and showMark to false instead.

    - -

    showLabel

    this.showLabel = true

    wether or not to show the label.

    - -

    formatter

    this.formatter = $.jqplot.DefaultTickFormatter

    A class of a formatter for the tick text.  sprintf by default.

    - -

    prefix

    this.prefix = ''

    String to prepend to the tick label.  Prefix is prepended to the formatted tick label.

    - -

    suffix

    this.suffix = ''

    String to append to the tick label.  Suffix is appended to the formatted tick label.

    - -

    formatString

    this.formatString = ''

    string passed to the formatter.

    - -

    fontFamily

    this.fontFamily

    css spec for the font-family css attribute.

    - -

    fontSize

    this.fontSize

    css spec for the font-size css attribute.

    - -

    textColor

    this.textColor

    css spec for the color attribute.

    - -

    escapeHTML

    this.escapeHTML = false

    true to escape HTML entities in the label.

    - -
    - - - - - - - - - - -
    this.mark = 'outside'
    tick mark on the axis.
    this.showMark = true
    wether or not to show the mark on the axis.
    this.showGridline = true
    wether or not to draw the gridline on the grid at this tick.
    this.isMinorTick = false
    if this is a minor tick.
    this.size = 4
    Length of the tick beyond the grid in pixels.
    this.markSize = 6
    Length of the tick marks in pixels.
    this.show = true
    wether or not to show the tick (mark and label).
    this.showLabel = true
    wether or not to show the label.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    this.prefix = ''
    String to prepend to the tick label.
    this.suffix = ''
    String to append to the tick label.
    this.formatString = ''
    string passed to the formatter.
    this.fontFamily
    css spec for the font-family css attribute.
    this.fontSize
    css spec for the font-size css attribute.
    this.textColor
    css spec for the color attribute.
    this.escapeHTML = false
    true to escape HTML entities in the label.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-canvasGridRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-canvasGridRenderer-js.html deleted file mode 100644 index 5e99c4958..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-canvasGridRenderer-js.html +++ /dev/null @@ -1,39 +0,0 @@ - - -$.jqplot.CanvasGridRenderer - - - - - - - - - -

    The default jqPlot grid renderer, creating a grid on a canvas element.  The renderer has no additional options beyond the Grid class.

    - -
    - - - - - - - - - - -
    Object representing the grid on which the plot is drawn.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-core-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-core-js.html deleted file mode 100644 index 793fa7d6e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-core-js.html +++ /dev/null @@ -1,389 +0,0 @@ - - -jqPlot Charts - - - - - - - - - -

    Pure JavaScript plotting plugin for jQuery.

    Summary
    jqPlot ChartsPure JavaScript plotting plugin for jQuery.
    Versionversion: 1.0.0 revision: 1095
    Copyright & LicenseCopyright © 2009-2011 Chris Leonello jqPlot is currently available for use in all personal or commercial projects under both the MIT and GPL version 2.0 licenses.
    IntroductionjqPlot requires jQuery (1.4+ required for certain features).
    UsageSee jqPlot Usage
    Available OptionsSee jqPlot Options for a list of options available thorugh the options object (not complete yet!)
    Options UsageSee Options Tutorial
    ChangesSee Change Log
    $.jqplotjQuery function called by the user to create a plot.
    Hooks
    jqPlot Pugin Hooks
    AxisAn individual axis object.
    PropertiesAxes options are specified within an axes object at the top level of the plot options like so:
    showWether to display the axis on the graph.
    tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    tickOptionsOptions that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
    labelRendererA class of a rendering engine for creating an axis label.
    labelOptionsOptions passed to the label renderer.
    labelLabel for the axis
    showLabeltrue to show the axis label.
    minminimum value of the axis (in data units, not pixels).
    maxmaximum value of the axis (in data units, not pixels).
    autoscaleDEPRECATED the default scaling algorithm produces superior results.
    padPadding to extend the range above and below the data bounds.
    padMaxPadding to extend the range above data bounds.
    padMinPadding to extend the range below data bounds.
    ticks1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
    numberTicksDesired number of ticks.
    tickIntervalnumber of units between ticks.
    rendererA class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
    rendererOptionsrenderer specific options.
    showTicksWether to show the ticks (both marks and labels) or not.
    showTickMarksWether to show the tick marks (line crossing grid) or not.
    showMinorTicksWether or not to show minor ticks.
    drawMajorGridlinesTrue to draw gridlines for major axis ticks.
    drawMinorGridlinesTrue to draw gridlines for minor ticks.
    drawMajorTickMarksTrue to draw tick marks for major axis ticks.
    drawMinorTickMarksTrue to draw tick marks for minor ticks.
    useSeriesColorUse the color of the first series associated with this axis for the tick marks and line bordering this axis.
    borderWidthwidth of line stroked at the border of the axis.
    borderColorcolor of the border adjacent to the axis.
    scaleToHiddenSeriesTrue to include hidden series when computing axes bounds and scaling.
    syncTickstrue to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
    tickSpacingApproximate pixel spacing between ticks on graph.
    LegendLegend object.
    Properties
    showWether to display the legend on the graph.
    locationPlacement of the legend.
    labelsArray of labels to use.
    showLabelstrue to show the label text on the legend.
    showSwatchtrue to show the color swatches on the legend.
    placement“insideGrid” places legend inside the grid area of the plot.
    xoffsetDEPRECATED.
    yoffsetDEPRECATED.
    bordercss spec for the border around the legend box.
    backgroundcss spec for the background of the legend box.
    textColorcss color spec for the legend text.
    fontFamilycss font-family spec for the legend text.
    fontSizecss font-size spec for the legend text.
    rowSpacingcss padding-top spec for the rows in the legend.
    rendererOptionsrenderer specific options passed to the renderer.
    predrawWether to draw the legend before the series or not.
    marginTopCSS margin for the legend DOM element.
    marginRightCSS margin for the legend DOM element.
    marginBottomCSS margin for the legend DOM element.
    marginLeftCSS margin for the legend DOM element.
    escapeHtmlTrue to escape special characters with their html entity equivalents in legend text.
    TitlePlot Title object.
    Properties
    texttext of the title;
    showwether or not to show the title
    fontFamilycss font-family spec for the text.
    fontSizecss font-size spec for the text.
    textAligncss text-align spec for the text.
    textColorcss color spec for the text.
    rendererA class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
    rendererOptionsrenderer specific options passed to the renderer.
    escapeHtmlTrue to escape special characters with their html entity equivalents in title text.
    SeriesAn individual data series object.
    PropertiesProperties will be assigned from a series array at the top level of the options.
    showwether or not to draw the series.
    xaxiswhich x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
    yaxiswhich y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
    rendererA class of a renderer which will draw the series, see $.jqplot.LineRenderer.
    rendererOptionsOptions to pass on to the renderer.
    labelLine label to use in the legend.
    showLabeltrue to show label for this series in the legend.
    colorcss color spec for the series
    negativeColorcss color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
    lineWidthwidth of the line in pixels.
    lineJoinCanvas lineJoin style between segments of series.
    lineCapCanvas lineCap style at ends of line.
    linePatternline pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    shadowAngleShadow angle in degrees
    shadowOffsetShadow offset from line in pixels
    shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
    shadowAlphaAlpha channel transparency of shadow.
    breakOnNullWether line segments should be be broken at null value.
    markerRendererA class of a renderer which will draw marker (e.g.
    markerOptionsrenderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
    showLinewether to actually draw the line or not.
    showMarkerwether or not to show the markers at the data points.
    index0 based index of this series in the plot series array.
    filltrue or false, wether to fill under lines or in bars.
    fillColorCSS color spec to use for fill under line.
    fillAlphaAlpha transparency to apply to the fill under the line.
    fillAndStrokeIf true will stroke the line (with color this.color) as well as fill under it.
    disableStacktrue to not stack this series with other series in the plot.
    neighborThresholdhow close or far (in pixels) the cursor must be from a point marker to detect the point.
    fillToZerotrue will force bar and filled series to fill toward zero on the fill Axis.
    fillToValuefill a filled series to this value on the fill axis.
    fillAxisEither ‘x’ or ‘y’.
    useNegativeColorstrue to color negative values differently in filled and bar charts.
    GridObject representing the grid on which the plot is drawn.
    Properties
    drawGridlineswether to draw the gridlines on the plot.
    gridLineColorcolor of the grid lines.
    gridLineWidthwidth of the grid lines.
    backgroundcss spec for the background color.
    borderColorcss spec for the color of the grid border.
    borderWidthwidth of the border in pixels.
    drawBorderTrue to draw border around grid.
    shadowwether to show a shadow behind the grid.
    shadowAngleshadow angle in degrees
    shadowOffsetOffset of each shadow stroke from the border in pixels
    shadowWidthwidth of the stoke for the shadow
    shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
    shadowColoran optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
    shadowAlphaAlpha channel transparency of shadow.
    rendererInstance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
    rendererOptionsOptions to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
    jqPlotPlot object returned by call to $.jqplot.
    PropertiesThese properties are specified at the top of the options object like so:
    animateTrue to animate the series on initial plot draw (renderer dependent).
    animateReplotTrue to animate series after a call to the replot() method.
    axesup to 4 axes are supported, each with it’s own options, See Axis for axis specific options.
    datauser’s data.
    dataRendererA callable which can be used to preprocess data passed into the plot.
    dataRendererOptionsOptions that will be passed to the dataRenderer.
    axesDefaultsdefault options that will be applied to all axes.
    seriesDefaultsdefault options that will be applied to all series.
    defaultAxisStart1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
    fillBetweenFill between 2 line series in a plot.
    fontSizecss spec for the font-size attribute.
    gridSee Grid for grid specific options.
    legendsee <$.jqplot.TableLegendRenderer>
    noDataIndicatorOptions to set up a mock plot with a data loading indicator if no data is specified.
    seriesArray of series object options.
    seriesColorsAnn array of CSS color specifications that will be applied, in order, to the series in the plot.
    sortDatafalse to not sort the data passed in by the user.
    stackSeriestrue or false, creates a stack or “mountain” plot.
    titleTitle object.
    methods
    initsets the plot target, checks data and applies user options to plot.
    resetAxesScaleReset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
    reInitializereinitialize plot for replotting.
    quickInitQuick reinitialization plot for replotting.
    destroyReleases all resources occupied by the plot
    replotDoes a reinitialization of the plot followed by a redraw.
    redrawEmpties the plot target div and redraws the plot.
    drawDraws all elements of the plot into the container.
    drawSeriesRedraws all or just one series on the plot.
    moveSeriesToFrontThis method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
    moveSeriesToBackThis method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
    restorePreviousSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its previous state.
    restoreOriginalSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
    - -

    Version

    version: 1.0.0 revision: 1095

    - -

    Copyright & License

    Copyright © 2009-2011 Chris Leonello jqPlot is currently available for use in all personal or commercial projects under both the MIT and GPL version 2.0 licenses.  This means that you can choose the license that best suits your project and use it accordingly.

    See GPL Version 2 and MIT License contained within this distribution for further information.

    The author would appreciate an email letting him know of any substantial use of jqPlot.  You can reach the author at: chris at jqplot dot com or see http://www.jqplot.com/info.php.  This is, of course, not required.

    If you are feeling kind and generous, consider supporting the project by making a donation at: http://www.jqplot.com/donate.php.

    sprintf functions contained in jqplot.sprintf.js by Ash Searle

    version 2007.04.27 author Ash Searle http://hexmen.com/blog/2007/03/printf-sprintf/ http://hexmen.com/js/sprintf.js The author (Ash Searle) has placed this code in the public domain: “This code is unrestricted: you are free to use it however you like.”

    - -

    Introduction

    jqPlot requires jQuery (1.4+ required for certain features). jQuery 1.4.2 is included in the distribution.  To use jqPlot include jQuery, the jqPlot jQuery plugin, the jqPlot css file and optionally the excanvas script for IE support in your web page:

    <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
    -<script language="javascript" type="text/javascript" src="jquery-1.4.4.min.js"></script>
    -<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
    -<link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />

    jqPlot can be customized by overriding the defaults of any of the objects which make up the plot.  The general usage of jqplot is:

    chart = $.jqplot('targetElemId', [dataArray,...], {optionsObject});

    The options available to jqplot are detailed in jqPlot Options in the jqPlotOptions.txt file.

    An actual call to $.jqplot() may look like the examples below:

    chart = $.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]]);

    or

    dataArray = [34,12,43,55,77];
    -chart = $.jqplot('targetElemId', [dataArray, ...], {title:'My Plot', axes:{yaxis:{min:20, max:100}}});

    For more inforrmation, see jqPlot Usage.

    - -

    Usage

    - -

    Available Options

    See jqPlot Options for a list of options available thorugh the options object (not complete yet!)

    - -

    Options Usage

    - -

    Changes

    - -

    $.jqplot

    jQuery function called by the user to create a plot.

    Parameters

    targetID of target element to render the plot into.
    dataan array of data series.
    optionsuser defined options object.  See the individual classes for available options.

    Properties

    configobject to hold configuration information for jqPlot plot object.

    attributes

    enablePluginsFalse to disable plugins by default.  Plugins must then be explicitly enabled in the individual plot options.  Default: false.  This property sets the “show” property of certain plugins to true or false.  Only plugins that can be immediately active upon loading are affected.  This includes non-renderer plugins like cursor, dragable, highlighter, and trendline.
    defaultHeightDefault height for plots where no css height specification exists.  This is a jqplot wide default.
    defaultWidthDefault height for plots where no css height specification exists.  This is a jqplot wide default.
    - -

    Hooks

    - -

    jqPlot Pugin Hooks

    $.jqplot.preInitHookscalled before initialization.
    $.jqplot.postInitHookscalled after initialization.
    $.jqplot.preParseOptionsHookscalled before user options are parsed.
    $.jqplot.postParseOptionsHookscalled after user options are parsed.
    $.jqplot.preDrawHookscalled before plot draw.
    $.jqplot.postDrawHookscalled after plot draw.
    $.jqplot.preDrawSeriesHookscalled before each series is drawn.
    $.jqplot.postDrawSeriesHookscalled after each series is drawn.
    $.jqplot.preDrawLegendHookscalled before the legend is drawn.
    $.jqplot.addLegendRowHookscalled at the end of legend draw, so plugins can add rows to the legend table.
    $.jqplot.preSeriesInitHookscalled before series is initialized.
    $.jqplot.postSeriesInitHookscalled after series is initialized.
    $.jqplot.preParseSeriesOptionsHookscalled before series related options are parsed.
    $.jqplot.postParseSeriesOptionsHookscalled after series related options are parsed.
    $.jqplot.eventListenerHookscalled at the end of plot drawing, binds listeners to the event canvas which lays on top of the grid area.
    $.jqplot.preDrawSeriesShadowHookscalled before series shadows are drawn.
    $.jqplot.postDrawSeriesShadowHookscalled after series shadows are drawn.
    - -

    Axis

    An individual axis object.  Cannot be instantiated directly, but created by the Plot oject.  Axis properties can be set or overriden by the options passed in from the user.

    Summary
    PropertiesAxes options are specified within an axes object at the top level of the plot options like so:
    showWether to display the axis on the graph.
    tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    tickOptionsOptions that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
    labelRendererA class of a rendering engine for creating an axis label.
    labelOptionsOptions passed to the label renderer.
    labelLabel for the axis
    showLabeltrue to show the axis label.
    minminimum value of the axis (in data units, not pixels).
    maxmaximum value of the axis (in data units, not pixels).
    autoscaleDEPRECATED the default scaling algorithm produces superior results.
    padPadding to extend the range above and below the data bounds.
    padMaxPadding to extend the range above data bounds.
    padMinPadding to extend the range below data bounds.
    ticks1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
    numberTicksDesired number of ticks.
    tickIntervalnumber of units between ticks.
    rendererA class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
    rendererOptionsrenderer specific options.
    showTicksWether to show the ticks (both marks and labels) or not.
    showTickMarksWether to show the tick marks (line crossing grid) or not.
    showMinorTicksWether or not to show minor ticks.
    drawMajorGridlinesTrue to draw gridlines for major axis ticks.
    drawMinorGridlinesTrue to draw gridlines for minor ticks.
    drawMajorTickMarksTrue to draw tick marks for major axis ticks.
    drawMinorTickMarksTrue to draw tick marks for minor ticks.
    useSeriesColorUse the color of the first series associated with this axis for the tick marks and line bordering this axis.
    borderWidthwidth of line stroked at the border of the axis.
    borderColorcolor of the border adjacent to the axis.
    scaleToHiddenSeriesTrue to include hidden series when computing axes bounds and scaling.
    syncTickstrue to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
    tickSpacingApproximate pixel spacing between ticks on graph.
    - -

    Properties

    Axes options are specified within an axes object at the top level of the plot options like so:

    {
    -   axes: {
    -       xaxis: {min: 5},
    -       yaxis: {min: 2, max: 8, numberTicks:4},
    -       x2axis: {pad: 1.5},
    -       y2axis: {ticks:[22, 44, 66, 88]}
    -       }
    -}

    There are 2 x axes, ‘xaxis’ and ‘x2axis’, and 9 yaxes, ‘yaxis’, ‘y2axis’.  ‘y3axis’, ...  Any or all of which may be specified.

    - -

    show

    this.show = false

    Wether to display the axis on the graph.

    - -

    tickRenderer

    this.tickRenderer = $.jqplot.AxisTickRenderer

    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.

    - -

    tickOptions

    this.tickOptions = {}

    Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.

    - -

    labelRenderer

    this.labelRenderer = $.jqplot.AxisLabelRenderer

    A class of a rendering engine for creating an axis label.

    - -

    labelOptions

    this.labelOptions = {}

    Options passed to the label renderer.

    - -

    label

    this.label = null

    Label for the axis

    - -

    showLabel

    this.showLabel = true

    true to show the axis label.

    - -

    min

    this.min = null

    minimum value of the axis (in data units, not pixels).

    - -

    max

    this.max = null

    maximum value of the axis (in data units, not pixels).

    - -

    autoscale

    this.autoscale = false

    DEPRECATED the default scaling algorithm produces superior results.

    - -

    pad

    this.pad = 1.2

    Padding to extend the range above and below the data bounds.  The data range is multiplied by this factor to determine minimum and maximum axis bounds.  A value of 0 will be interpreted to mean no padding, and pad will be set to 1.0.

    - -

    padMax

    this.padMax = null

    Padding to extend the range above data bounds.  The top of the data range is multiplied by this factor to determine maximum axis bounds.  A value of 0 will be interpreted to mean no padding, and padMax will be set to 1.0.

    - -

    padMin

    this.padMin = null

    Padding to extend the range below data bounds.  The bottom of the data range is multiplied by this factor to determine minimum axis bounds.  A value of 0 will be interpreted to mean no padding, and padMin will be set to 1.0.

    - -

    ticks

    this.ticks = []

    1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.  If no label is specified, the value is formatted into an appropriate label.

    - -

    numberTicks

    this.numberTicks

    Desired number of ticks.  Default is to compute automatically.

    - -

    tickInterval

    this.tickInterval

    number of units between ticks.  Mutually exclusive with numberTicks.

    - -

    renderer

    this.renderer = $.jqplot.LinearAxisRenderer

    A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.

    - -

    rendererOptions

    this.rendererOptions = {}

    renderer specific options.  See $.jqplot.LinearAxisRenderer for options.

    - -

    showTicks

    this.showTicks = true

    Wether to show the ticks (both marks and labels) or not.  Will not override showMark and showLabel options if specified on the ticks themselves.

    - -

    showTickMarks

    this.showTickMarks = true

    Wether to show the tick marks (line crossing grid) or not.  Overridden by showTicks and showMark option of tick itself.

    - -

    showMinorTicks

    this.showMinorTicks = true

    Wether or not to show minor ticks.  This is renderer dependent.

    - -

    drawMajorGridlines

    this.drawMajorGridlines = true

    True to draw gridlines for major axis ticks.

    - -

    drawMinorGridlines

    this.drawMinorGridlines = false

    True to draw gridlines for minor ticks.

    - -

    drawMajorTickMarks

    this.drawMajorTickMarks = true

    True to draw tick marks for major axis ticks.

    - -

    drawMinorTickMarks

    this.drawMinorTickMarks = true

    True to draw tick marks for minor ticks.  This is renderer dependent.

    - -

    useSeriesColor

    this.useSeriesColor = false

    Use the color of the first series associated with this axis for the tick marks and line bordering this axis.

    - -

    borderWidth

    this.borderWidth = null

    width of line stroked at the border of the axis.  Defaults to the width of the grid boarder.

    - -

    borderColor

    this.borderColor = null

    color of the border adjacent to the axis.  Defaults to grid border color.

    - -

    scaleToHiddenSeries

    this.scaleToHiddenSeries = false

    True to include hidden series when computing axes bounds and scaling.

    - -

    syncTicks

    this.syncTicks = null

    true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.  This has an impact on autoscaling algorithm, however.  In general, autoscaling an individual axis will work better if it does not have to sync ticks.

    - -

    tickSpacing

    this.tickSpacing = 75

    Approximate pixel spacing between ticks on graph.  Used during autoscaling.  This number will be an upper bound, actual spacing will be less.

    - -

    Legend

    Legend object.  Cannot be instantiated directly, but created by the Plot oject.  Legend properties can be set or overriden by the options passed in from the user.

    Summary
    Properties
    showWether to display the legend on the graph.
    locationPlacement of the legend.
    labelsArray of labels to use.
    showLabelstrue to show the label text on the legend.
    showSwatchtrue to show the color swatches on the legend.
    placement“insideGrid” places legend inside the grid area of the plot.
    xoffsetDEPRECATED.
    yoffsetDEPRECATED.
    bordercss spec for the border around the legend box.
    backgroundcss spec for the background of the legend box.
    textColorcss color spec for the legend text.
    fontFamilycss font-family spec for the legend text.
    fontSizecss font-size spec for the legend text.
    rowSpacingcss padding-top spec for the rows in the legend.
    rendererOptionsrenderer specific options passed to the renderer.
    predrawWether to draw the legend before the series or not.
    marginTopCSS margin for the legend DOM element.
    marginRightCSS margin for the legend DOM element.
    marginBottomCSS margin for the legend DOM element.
    marginLeftCSS margin for the legend DOM element.
    escapeHtmlTrue to escape special characters with their html entity equivalents in legend text.
    - -

    Properties

    - -

    show

    this.show = false

    Wether to display the legend on the graph.

    - -

    location

    this.location = 'ne'

    Placement of the legend.  one of the compass directions: nw, n, ne, e, se, s, sw, w

    - -

    labels

    this.labels = []

    Array of labels to use.  By default the renderer will look for labels on the series.  Labels specified in this array will override labels specified on the series.

    - -

    showLabels

    this.showLabels = true

    true to show the label text on the legend.

    - -

    showSwatch

    this.showSwatches = true

    true to show the color swatches on the legend.

    - -

    placement

    this.placement = "insideGrid"

    ”insideGrid” places legend inside the grid area of the plot.  “outsideGrid” places the legend outside the grid but inside the plot container, shrinking the grid to accomodate the legend.  “inside” synonym for “insideGrid”, “outside” places the legend ouside the grid area, but does not shrink the grid which can cause the legend to overflow the plot container.

    - -

    xoffset

    this.xoffset = 0

    DEPRECATED.  Set the margins on the legend using the marginTop, marginLeft, etc. properties or via CSS margin styling of the .jqplot-table-legend class.

    - -

    yoffset

    this.yoffset = 0

    DEPRECATED.  Set the margins on the legend using the marginTop, marginLeft, etc. properties or via CSS margin styling of the .jqplot-table-legend class.

    - -

    border

    this.border

    css spec for the border around the legend box.

    - -

    background

    this.background

    css spec for the background of the legend box.

    - -

    textColor

    this.textColor

    css color spec for the legend text.

    - -

    fontFamily

    this.fontFamily

    css font-family spec for the legend text.

    - -

    fontSize

    this.fontSize

    css font-size spec for the legend text.

    - -

    rowSpacing

    this.rowSpacing = '0.5em'

    css padding-top spec for the rows in the legend.

    - -

    rendererOptions

    this.rendererOptions = {}

    renderer specific options passed to the renderer.

    - -

    predraw

    Wether to draw the legend before the series or not.  Used with series specific legend renderers for pie, donut, mekko charts, etc.

    - -

    marginTop

    this.marginTop = null

    CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

    - -

    marginRight

    this.marginRight = null

    CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

    - -

    marginBottom

    this.marginBottom = null

    CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

    - -

    marginLeft

    this.marginLeft = null

    CSS margin for the legend DOM element.  This will set an element CSS style for the margin which will override any style sheet setting.  The default will be taken from the stylesheet.

    - -

    escapeHtml

    this.escapeHtml = false

    True to escape special characters with their html entity equivalents in legend text.  “<” becomes &lt; and so on, so html tags are not rendered.

    - -

    Title

    Plot Title object.  Cannot be instantiated directly, but created by the Plot oject.  Title properties can be set or overriden by the options passed in from the user.

    Parameters

    texttext of the title.
    Summary
    Properties
    texttext of the title;
    showwether or not to show the title
    fontFamilycss font-family spec for the text.
    fontSizecss font-size spec for the text.
    textAligncss text-align spec for the text.
    textColorcss color spec for the text.
    rendererA class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
    rendererOptionsrenderer specific options passed to the renderer.
    escapeHtmlTrue to escape special characters with their html entity equivalents in title text.
    - -

    Properties

    - -

    text

    this.text = text

    text of the title;

    - -

    show

    this.show = true

    wether or not to show the title

    - -

    fontFamily

    this.fontFamily

    css font-family spec for the text.

    - -

    fontSize

    this.fontSize

    css font-size spec for the text.

    - -

    textAlign

    this.textAlign

    css text-align spec for the text.

    - -

    textColor

    this.textColor

    css color spec for the text.

    - -

    renderer

    this.renderer = $.jqplot.DivTitleRenderer

    A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.

    - -

    rendererOptions

    this.rendererOptions = {}

    renderer specific options passed to the renderer.

    - -

    escapeHtml

    this.escapeHtml = false

    True to escape special characters with their html entity equivalents in title text.  “<” becomes &lt; and so on, so html tags are not rendered.

    - -

    Series

    An individual data series object.  Cannot be instantiated directly, but created by the Plot oject.  Series properties can be set or overriden by the options passed in from the user.

    Summary
    PropertiesProperties will be assigned from a series array at the top level of the options.
    showwether or not to draw the series.
    xaxiswhich x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
    yaxiswhich y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
    rendererA class of a renderer which will draw the series, see $.jqplot.LineRenderer.
    rendererOptionsOptions to pass on to the renderer.
    labelLine label to use in the legend.
    showLabeltrue to show label for this series in the legend.
    colorcss color spec for the series
    negativeColorcss color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
    lineWidthwidth of the line in pixels.
    lineJoinCanvas lineJoin style between segments of series.
    lineCapCanvas lineCap style at ends of line.
    linePatternline pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    shadowAngleShadow angle in degrees
    shadowOffsetShadow offset from line in pixels
    shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
    shadowAlphaAlpha channel transparency of shadow.
    breakOnNullWether line segments should be be broken at null value.
    markerRendererA class of a renderer which will draw marker (e.g.
    markerOptionsrenderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
    showLinewether to actually draw the line or not.
    showMarkerwether or not to show the markers at the data points.
    index0 based index of this series in the plot series array.
    filltrue or false, wether to fill under lines or in bars.
    fillColorCSS color spec to use for fill under line.
    fillAlphaAlpha transparency to apply to the fill under the line.
    fillAndStrokeIf true will stroke the line (with color this.color) as well as fill under it.
    disableStacktrue to not stack this series with other series in the plot.
    neighborThresholdhow close or far (in pixels) the cursor must be from a point marker to detect the point.
    fillToZerotrue will force bar and filled series to fill toward zero on the fill Axis.
    fillToValuefill a filled series to this value on the fill axis.
    fillAxisEither ‘x’ or ‘y’.
    useNegativeColorstrue to color negative values differently in filled and bar charts.
    - -

    Properties

    Properties will be assigned from a series array at the top level of the options.  If you had two series and wanted to change the color and line width of the first and set the second to use the secondary y axis with no shadow and supply custom labels for each:

    {
    -   series:[
    -       {color: '#ff4466', lineWidth: 5, label:'good line'},
    -       {yaxis: 'y2axis', shadow: false, label:'bad line'}
    -   ]
    -}
    - -

    show

    this.show = true

    wether or not to draw the series.

    - -

    xaxis

    this.xaxis = 'xaxis'

    which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.

    - -

    yaxis

    this.yaxis = 'yaxis'

    which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.

    - -

    renderer

    this.renderer = $.jqplot.LineRenderer

    A class of a renderer which will draw the series, see $.jqplot.LineRenderer.

    - -

    rendererOptions

    this.rendererOptions = {}

    Options to pass on to the renderer.

    - -

    label

    this.label = ''

    Line label to use in the legend.

    - -

    showLabel

    this.showLabel = true

    true to show label for this series in the legend.

    - -

    color

    this.color

    css color spec for the series

    - -

    negativeColor

    this.negativeColor

    css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.

    - -

    lineWidth

    this.lineWidth = 2.5

    width of the line in pixels.  May have different meanings depending on renderer.

    - -

    lineJoin

    this.lineJoin = 'round'

    Canvas lineJoin style between segments of series.

    - -

    lineCap

    this.lineCap = 'round'

    Canvas lineCap style at ends of line.

    - -

    linePattern

    this.linePattern = 'solid'

    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’ characters such as ‘.-.’ or a numerical array like [draw, skip, draw, skip, ...] such as [1, 10] to draw a dotted line, [1, 10, 20, 10] to draw a dot-dash line, and so on.

    - -

    shadowAngle

    this.shadowAngle = 45

    Shadow angle in degrees

    - -

    shadowOffset

    this.shadowOffset = 1.25

    Shadow offset from line in pixels

    - -

    shadowDepth

    this.shadowDepth = 3

    Number of times shadow is stroked, each stroke offset shadowOffset from the last.

    - -

    shadowAlpha

    this.shadowAlpha = '0.1'

    Alpha channel transparency of shadow.  0 = transparent.

    - -

    breakOnNull

    this.breakOnNull = false

    Wether line segments should be be broken at null value.  False will join point on either side of line.

    - -

    markerRenderer

    this.markerRenderer = $.jqplot.MarkerRenderer

    A class of a renderer which will draw marker (e.g. circle, square, ...) at the data points, see $.jqplot.MarkerRenderer.

    - -

    markerOptions

    this.markerOptions = {}

    renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.

    - -

    showLine

    this.showLine = true

    wether to actually draw the line or not.  Series will still be renderered, even if no line is drawn.

    - -

    showMarker

    this.showMarker = true

    wether or not to show the markers at the data points.

    - -

    index

    this.index

    0 based index of this series in the plot series array.

    - -

    fill

    this.fill = false

    true or false, wether to fill under lines or in bars.  May not be implemented in all renderers.

    - -

    fillColor

    this.fillColor

    CSS color spec to use for fill under line.  Defaults to line color.

    - -

    fillAlpha

    this.fillAlpha

    Alpha transparency to apply to the fill under the line.  Use this to adjust alpha separate from fill color.

    - -

    fillAndStroke

    this.fillAndStroke = false

    If true will stroke the line (with color this.color) as well as fill under it.  Applies only when fill is true.

    - -

    disableStack

    this.disableStack = false

    true to not stack this series with other series in the plot.  To render properly, non-stacked series must come after any stacked series in the plot’s data series array.  So, the plot’s data series array would look like:

    [stackedSeries1, stackedSeries2, ..., nonStackedSeries1, nonStackedSeries2, ...]

    disableStack will put a gap in the stacking order of series, and subsequent stacked series will not fill down through the non-stacked series and will most likely not stack properly on top of the non-stacked series.

    - -

    neighborThreshold

    this.neighborThreshold = 4

    how close or far (in pixels) the cursor must be from a point marker to detect the point.

    - -

    fillToZero

    this.fillToZero = false

    true will force bar and filled series to fill toward zero on the fill Axis.

    - -

    fillToValue

    this.fillToValue = 0

    fill a filled series to this value on the fill axis.  Works in conjunction with fillToZero, so that must be true.

    - -

    fillAxis

    this.fillAxis = 'y'

    Either ‘x’ or ‘y’.  Which axis to fill the line toward if fillToZero is true.  ‘y’ means fill up/down to 0 on the y axis for this series.

    - -

    useNegativeColors

    this.useNegativeColors = true

    true to color negative values differently in filled and bar charts.

    - -

    Grid

    Object representing the grid on which the plot is drawn.  The grid in this context is the area bounded by the axes, the area which will contain the series.  Note, the series are drawn on their own canvas.  The Grid object cannot be instantiated directly, but is created by the Plot oject.  Grid properties can be set or overriden by the options passed in from the user.

    Summary
    Properties
    drawGridlineswether to draw the gridlines on the plot.
    gridLineColorcolor of the grid lines.
    gridLineWidthwidth of the grid lines.
    backgroundcss spec for the background color.
    borderColorcss spec for the color of the grid border.
    borderWidthwidth of the border in pixels.
    drawBorderTrue to draw border around grid.
    shadowwether to show a shadow behind the grid.
    shadowAngleshadow angle in degrees
    shadowOffsetOffset of each shadow stroke from the border in pixels
    shadowWidthwidth of the stoke for the shadow
    shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
    shadowColoran optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
    shadowAlphaAlpha channel transparency of shadow.
    rendererInstance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
    rendererOptionsOptions to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
    - -

    Properties

    - -

    drawGridlines

    this.drawGridlines = true

    wether to draw the gridlines on the plot.

    - -

    gridLineColor

    this.gridLineColor = '#cccccc'

    color of the grid lines.

    - -

    gridLineWidth

    this.gridLineWidth = 1.0

    width of the grid lines.

    - -

    background

    this.background = '#fffdf6'

    css spec for the background color.

    - -

    borderColor

    this.borderColor = '#999999'

    css spec for the color of the grid border.

    - -

    borderWidth

    this.borderWidth = 2.0

    width of the border in pixels.

    - -

    drawBorder

    this.drawBorder = true

    True to draw border around grid.

    - -

    shadow

    this.shadow = true

    wether to show a shadow behind the grid.

    - -

    shadowAngle

    this.shadowAngle = 45

    shadow angle in degrees

    - -

    shadowOffset

    this.shadowOffset = 1.5

    Offset of each shadow stroke from the border in pixels

    - -

    shadowWidth

    this.shadowWidth = 3

    width of the stoke for the shadow

    - -

    shadowDepth

    this.shadowDepth = 3

    Number of times shadow is stroked, each stroke offset shadowOffset from the last.

    - -

    shadowColor

    this.shadowColor = null

    an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form

    - -

    shadowAlpha

    this.shadowAlpha = '0.07'

    Alpha channel transparency of shadow.  0 = transparent.

    - -

    renderer

    this.renderer = $.jqplot.CanvasGridRenderer

    Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.

    - -

    rendererOptions

    this.rendererOptions = {}

    Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.

    - -

    jqPlot

    Plot object returned by call to $.jqplot.  Handles parsing user options, creating sub objects (Axes, legend, title, series) and rendering the plot.

    Summary
    PropertiesThese properties are specified at the top of the options object like so:
    animateTrue to animate the series on initial plot draw (renderer dependent).
    animateReplotTrue to animate series after a call to the replot() method.
    axesup to 4 axes are supported, each with it’s own options, See Axis for axis specific options.
    datauser’s data.
    dataRendererA callable which can be used to preprocess data passed into the plot.
    dataRendererOptionsOptions that will be passed to the dataRenderer.
    axesDefaultsdefault options that will be applied to all axes.
    seriesDefaultsdefault options that will be applied to all series.
    defaultAxisStart1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
    fillBetweenFill between 2 line series in a plot.
    fontSizecss spec for the font-size attribute.
    gridSee Grid for grid specific options.
    legendsee <$.jqplot.TableLegendRenderer>
    noDataIndicatorOptions to set up a mock plot with a data loading indicator if no data is specified.
    seriesArray of series object options.
    seriesColorsAnn array of CSS color specifications that will be applied, in order, to the series in the plot.
    sortDatafalse to not sort the data passed in by the user.
    stackSeriestrue or false, creates a stack or “mountain” plot.
    titleTitle object.
    methods
    initsets the plot target, checks data and applies user options to plot.
    resetAxesScaleReset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
    reInitializereinitialize plot for replotting.
    quickInitQuick reinitialization plot for replotting.
    destroyReleases all resources occupied by the plot
    replotDoes a reinitialization of the plot followed by a redraw.
    redrawEmpties the plot target div and redraws the plot.
    drawDraws all elements of the plot into the container.
    drawSeriesRedraws all or just one series on the plot.
    moveSeriesToFrontThis method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
    moveSeriesToBackThis method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
    restorePreviousSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its previous state.
    restoreOriginalSeriesOrderThis method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
    - -

    Properties

    These properties are specified at the top of the options object like so:

    {
    -    axesDefaults:{min:0},
    -    series:[{color:'#6633dd'}],
    -    title: 'A Plot'
    -}
    - -

    animate

    this.animate = false

    True to animate the series on initial plot draw (renderer dependent).  Actual animation functionality must be supported in the renderer.

    - -

    animateReplot

    this.animateReplot = false

    True to animate series after a call to the replot() method.  Use with caution!  Replots can happen very frequently under certain circumstances (e.g. resizing, dragging points) and animation in these situations can cause problems.

    - -

    axes

    this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}

    up to 4 axes are supported, each with it’s own options, See Axis for axis specific options.

    - -

    data

    this.data = []

    user’s data.  Data should NOT be specified in the options object, but be passed in as the second argument to the $.jqplot() function.  The data property is described here soley for reference.  The data should be in the form of an array of 2D or 1D arrays like

    [ [[x1, y1], [x2, y2],...], [y1, y2, ...] ].
    - -

    dataRenderer

    this.dataRenderer

    A callable which can be used to preprocess data passed into the plot.  Will be called with 2 arguments, the plot data and a reference to the plot.

    - -

    dataRendererOptions

    this.dataRendererOptions

    Options that will be passed to the dataRenderer.  Can be of any type.

    - -

    axesDefaults

    default options that will be applied to all axes. see Axis for axes options.

    - -

    seriesDefaults

    seriesDefaults: {}, series:[] }

    default options that will be applied to all series. see Series for series options.

    - -

    defaultAxisStart

    this.defaultAxisStart = 1

    1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.  This is the default starting value for the missing x or y value.  The added data will be a monotonically increasing series (e.g.  [1, 2, 3, ...]) starting at this value.

    - -

    fillBetween

    this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }

    Fill between 2 line series in a plot.  Options object: { series1: first index (0 based) of series in fill series2: second index (0 based) of series in fill color: color of fill [default fillColor of series1] baseSeries: fill will be drawn below this series (0 based index) fill: false to turn off fill [default true].  }

    - -

    fontSize

    this.fontSize

    css spec for the font-size attribute.  Default for the entire plot.

    - -

    grid

    this.grid = new Grid()

    See Grid for grid specific options.

    - -

    legend

    this.legend = new Legend()

    see <$.jqplot.TableLegendRenderer>

    - -

    noDataIndicator

    Options to set up a mock plot with a data loading indicator if no data is specified.

    - -

    series

    this.series = []

    Array of series object options. see Series for series specific options.

    - -

    seriesColors

    this.seriesColors = $.jqplot.config.defaultColors

    Ann array of CSS color specifications that will be applied, in order, to the series in the plot.  Colors will wrap around so, if their are more series than colors, colors will be reused starting at the beginning.  For pie charts, this specifies the colors of the slices.

    - -

    sortData

    this.sortData = true

    false to not sort the data passed in by the user.  Many bar, stakced and other graphs as well as many plugins depend on having sorted data.

    - -

    stackSeries

    this.stackSeries = false

    true or false, creates a stack or “mountain” plot.  Not all series renderers may implement this option.

    - -

    title

    this.title = new Title()

    Title object.  See Title for specific options.  As a shortcut, you can specify the title option as just a string like: title: ‘My Plot’ and this will create a new title object with the specified text.

    - -

    methods

    - -

    init

    this.init = function(target,
    data,
    options)

    sets the plot target, checks data and applies user options to plot.

    - -

    resetAxesScale

    this.resetAxesScale = function(axes,
    options)

    Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.

    Parameters

    axesBoolean to reset or not reset all axes or an array or object of axis names to reset.
    - -

    reInitialize

    this.reInitialize = function (data,
    opts)

    reinitialize plot for replotting. not called directly.

    - -

    quickInit

    this.quickInit = function ()

    Quick reinitialization plot for replotting.  Does not parse options ore recreate axes and series. not called directly.

    - -

    destroy

    this.destroy = function()

    Releases all resources occupied by the plot

    - -

    replot

    this.replot = function(options)

    Does a reinitialization of the plot followed by a redraw.  Method could be used to interactively change plot characteristics and then replot.

    Parameters

    optionsOptions used for replotting.

    Properties

    clearfalse to not clear (empty) the plot container before replotting (default: true).
    resetAxestrue to reset all axes min, max, numberTicks and tickInterval setting so axes will rescale themselves. optionally pass in list of axes to reset (e.g.  [‘xaxis’, ‘y2axis’]) (default: false).
    - -

    redraw

    this.redraw = function(clear)

    Empties the plot target div and redraws the plot.  This enables plot data and properties to be changed and then to comletely clear the plot and redraw. redraw will not reinitialize any plot elements.  That is, axes will not be autoscaled and defaults will not be reapplied to any plot elements.  redraw is used primarily with zooming.

    Parameters

    clearfalse to not clear (empty) the plot container before redrawing (default: true).
    - -

    draw

    this.draw = function()

    Draws all elements of the plot into the container.  Does not clear the container before drawing.

    - -

    drawSeries

    this.drawSeries = function(options,
    idx)

    Redraws all or just one series on the plot.  No axis scaling is performed and no other elements on the plot are redrawn. options is an options object to pass on to the series renderers.  It can be an empty object {}.  idx is the series index to redraw if only one series is to be redrawn.

    - -

    moveSeriesToFront

    this.moveSeriesToFront = function (idx)

    This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.  This effectively “draws” the specified series on top of all other series, although it is performed through DOM manipulation, no redrawing is performed.

    Parameters

    idx0 based index of the series to move.  This will be the index of the series as it was first passed into the jqplot function.
    - -

    moveSeriesToBack

    this.moveSeriesToBack = function (idx)

    This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.

    Parameters

    idx0 based index of the series to move.  This will be the index of the series as it was first passed into the jqplot function.
    - -

    restorePreviousSeriesOrder

    this.restorePreviousSeriesOrder = function ()

    This method requires jQuery 1.4+ Restore the series canvas order to its previous state.  Useful to put a series back where it belongs after moving it to the front.

    - -

    restoreOriginalSeriesOrder

    this.restoreOriginalSeriesOrder = function ()

    This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.

    - -
    - - - - - - - - - - -
    This document is out of date.
    This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.
    this.show = false
    Wether to display the axis on the graph.
    this.tickRenderer = $.jqplot.AxisTickRenderer
    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    A “tick” object showing the value of a tick/gridline on the plot.
    this.tickOptions = {}
    Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
    this.labelRenderer = $.jqplot.AxisLabelRenderer
    A class of a rendering engine for creating an axis label.
    this.labelOptions = {}
    Options passed to the label renderer.
    this.label = null
    Label for the axis
    this.showLabel = true
    true to show the axis label.
    this.min = null
    minimum value of the axis (in data units, not pixels).
    this.max = null
    maximum value of the axis (in data units, not pixels).
    this.autoscale = false
    DEPRECATED the default scaling algorithm produces superior results.
    this.pad = 1.2
    Padding to extend the range above and below the data bounds.
    this.padMax = null
    Padding to extend the range above data bounds.
    this.padMin = null
    Padding to extend the range below data bounds.
    this.ticks = []
    1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
    this.numberTicks
    Desired number of ticks.
    this.tickInterval
    number of units between ticks.
    this.renderer = $.jqplot.LinearAxisRenderer
    A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
    this.rendererOptions = {}
    renderer specific options.
    this.showTicks = true
    Wether to show the ticks (both marks and labels) or not.
    this.showTickMarks = true
    Wether to show the tick marks (line crossing grid) or not.
    this.showMinorTicks = true
    Wether or not to show minor ticks.
    this.drawMajorGridlines = true
    True to draw gridlines for major axis ticks.
    this.drawMinorGridlines = false
    True to draw gridlines for minor ticks.
    this.drawMajorTickMarks = true
    True to draw tick marks for major axis ticks.
    this.drawMinorTickMarks = true
    True to draw tick marks for minor ticks.
    this.useSeriesColor = false
    Use the color of the first series associated with this axis for the tick marks and line bordering this axis.
    this.borderWidth = null
    width of line stroked at the border of the axis.
    this.borderColor = null
    color of the border adjacent to the axis.
    this.scaleToHiddenSeries = false
    True to include hidden series when computing axes bounds and scaling.
    this.syncTicks = null
    true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
    this.tickSpacing = 75
    Approximate pixel spacing between ticks on graph.
    this.show = false
    Wether to display the legend on the graph.
    this.location = 'ne'
    Placement of the legend.
    this.labels = []
    Array of labels to use.
    this.showLabels = true
    true to show the label text on the legend.
    this.showSwatches = true
    true to show the color swatches on the legend.
    this.placement = "insideGrid"
    “insideGrid” places legend inside the grid area of the plot.
    this.xoffset = 0
    DEPRECATED.
    this.yoffset = 0
    DEPRECATED.
    this.border
    css spec for the border around the legend box.
    this.background
    css spec for the background of the legend box.
    this.textColor
    css color spec for the legend text.
    this.fontFamily
    css font-family spec for the legend text.
    this.fontSize
    css font-size spec for the legend text.
    this.rowSpacing = '0.5em'
    css padding-top spec for the rows in the legend.
    this.rendererOptions = {}
    renderer specific options passed to the renderer.
    this.marginTop = null
    CSS margin for the legend DOM element.
    this.marginRight = null
    CSS margin for the legend DOM element.
    this.marginBottom = null
    CSS margin for the legend DOM element.
    this.marginLeft = null
    CSS margin for the legend DOM element.
    this.escapeHtml = false
    True to escape special characters with their html entity equivalents in legend text.
    this.text = text
    text of the title;
    this.show = true
    wether or not to show the title
    this.fontFamily
    css font-family spec for the text.
    this.fontSize
    css font-size spec for the text.
    this.textAlign
    css text-align spec for the text.
    this.textColor
    css color spec for the text.
    this.renderer = $.jqplot.DivTitleRenderer
    A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
    The default title renderer for jqPlot.
    this.rendererOptions = {}
    renderer specific options passed to the renderer.
    this.escapeHtml = false
    True to escape special characters with their html entity equivalents in title text.
    this.show = true
    wether or not to draw the series.
    this.xaxis = 'xaxis'
    which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
    this.yaxis = 'yaxis'
    which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
    this.renderer = $.jqplot.LineRenderer
    A class of a renderer which will draw the series, see $.jqplot.LineRenderer.
    The default line renderer for jqPlot, this class has no options beyond the Series class.
    this.rendererOptions = {}
    Options to pass on to the renderer.
    this.label = ''
    Line label to use in the legend.
    this.showLabel = true
    true to show label for this series in the legend.
    this.color
    css color spec for the series
    this.negativeColor
    css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
    this.lineWidth = 2.5
    width of the line in pixels.
    this.lineJoin = 'round'
    Canvas lineJoin style between segments of series.
    this.lineCap = 'round'
    Canvas lineCap style at ends of line.
    this.linePattern = 'solid'
    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    this.shadowAngle = 45
    Shadow angle in degrees
    this.shadowOffset = 1.25
    Shadow offset from line in pixels
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowAlpha = '0.1'
    Alpha channel transparency of shadow.
    this.breakOnNull = false
    Wether line segments should be be broken at null value.
    this.markerRenderer = $.jqplot.MarkerRenderer
    A class of a renderer which will draw marker (e.g.
    this.markerOptions = {}
    renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
    The default jqPlot marker renderer, rendering the points on the line.
    this.showLine = true
    wether to actually draw the line or not.
    this.showMarker = true
    wether or not to show the markers at the data points.
    this.index
    0 based index of this series in the plot series array.
    this.fill = false
    true or false, wether to fill under lines or in bars.
    this.fillColor
    CSS color spec to use for fill under line.
    this.fillAlpha
    Alpha transparency to apply to the fill under the line.
    this.fillAndStroke = false
    If true will stroke the line (with color this.color) as well as fill under it.
    this.disableStack = false
    true to not stack this series with other series in the plot.
    this.neighborThreshold = 4
    how close or far (in pixels) the cursor must be from a point marker to detect the point.
    this.fillToZero = false
    true will force bar and filled series to fill toward zero on the fill Axis.
    this.fillToValue = 0
    fill a filled series to this value on the fill axis.
    this.fillAxis = 'y'
    Either ‘x’ or ‘y’.
    this.useNegativeColors = true
    true to color negative values differently in filled and bar charts.
    this.drawGridlines = true
    wether to draw the gridlines on the plot.
    this.gridLineColor = '#cccccc'
    color of the grid lines.
    this.gridLineWidth = 1.0
    width of the grid lines.
    this.background = '#fffdf6'
    css spec for the background color.
    this.borderColor = '#999999'
    css spec for the color of the grid border.
    this.borderWidth = 2.0
    width of the border in pixels.
    this.drawBorder = true
    True to draw border around grid.
    this.shadow = true
    wether to show a shadow behind the grid.
    this.shadowAngle = 45
    shadow angle in degrees
    this.shadowOffset = 1.5
    Offset of each shadow stroke from the border in pixels
    this.shadowWidth = 3
    width of the stoke for the shadow
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowColor = null
    an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
    this.shadowAlpha = '0.07'
    Alpha channel transparency of shadow.
    this.renderer = $.jqplot.CanvasGridRenderer
    Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
    The default jqPlot grid renderer, creating a grid on a canvas element.
    this.rendererOptions = {}
    Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
    this.animate = false
    True to animate the series on initial plot draw (renderer dependent).
    this.animateReplot = false
    True to animate series after a call to the replot() method.
    this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}
    up to 4 axes are supported, each with it’s own options, See Axis for axis specific options.
    An individual axis object.
    this.data = []
    user’s data.
    this.dataRenderer
    A callable which can be used to preprocess data passed into the plot.
    this.dataRendererOptions
    Options that will be passed to the dataRenderer.
    seriesDefaults: {}, series:[] }
    default options that will be applied to all series.
    this.defaultAxisStart = 1
    1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
    this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }
    Fill between 2 line series in a plot.
    this.fontSize
    css spec for the font-size attribute.
    this.grid = new Grid()
    See Grid for grid specific options.
    Object representing the grid on which the plot is drawn.
    this.legend = new Legend()
    see $.jqplot.TableLegendRenderer
    this.series = []
    Array of series object options.
    this.seriesColors = $.jqplot.config.defaultColors
    Ann array of CSS color specifications that will be applied, in order, to the series in the plot.
    this.sortData = true
    false to not sort the data passed in by the user.
    this.stackSeries = false
    true or false, creates a stack or “mountain” plot.
    this.title = new Title()
    Title object.
    this.init = function(target,
    data,
    options)
    sets the plot target, checks data and applies user options to plot.
    this.resetAxesScale = function(axes,
    options)
    Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
    this.reInitialize = function (data,
    opts)
    reinitialize plot for replotting.
    this.quickInit = function ()
    Quick reinitialization plot for replotting.
    this.destroy = function()
    Releases all resources occupied by the plot
    this.replot = function(options)
    Does a reinitialization of the plot followed by a redraw.
    this.redraw = function(clear)
    Empties the plot target div and redraws the plot.
    this.draw = function()
    Draws all elements of the plot into the container.
    this.drawSeries = function(options,
    idx)
    Redraws all or just one series on the plot.
    this.moveSeriesToFront = function (idx)
    This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
    this.moveSeriesToBack = function (idx)
    This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
    this.restorePreviousSeriesOrder = function ()
    This method requires jQuery 1.4+ Restore the series canvas order to its previous state.
    this.restoreOriginalSeriesOrder = function ()
    This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
    GNU GENERAL PUBLIC LICENSE Version 2, June 1991
    Copyright © 2009-2011 Chris Leonello
    The default jqPlot axis renderer, creating a numeric axis.
    An individual data series object.
    Plot Title object.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-divTitleRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-divTitleRenderer-js.html deleted file mode 100644 index 6b3907c80..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-divTitleRenderer-js.html +++ /dev/null @@ -1,39 +0,0 @@ - - -$.jqplot.DivTitleRenderer - - - - - - - - - -

    The default title renderer for jqPlot.  This class has no options beyond the Title class.

    - -
    - - - - - - - - - - -
    Plot Title object.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-lineRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-lineRenderer-js.html deleted file mode 100644 index 8fe76ed6f..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-lineRenderer-js.html +++ /dev/null @@ -1,69 +0,0 @@ - - -$.jqplot.LineRenderer - - - - - - - - - -

    The default line renderer for jqPlot, this class has no options beyond the Series class.  Draws series as a line.

    Summary
    $.jqplot.LineRendererThe default line renderer for jqPlot, this class has no options beyond the Series class.
    Properties
    smoothTrue to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
    constrainSmoothingTrue to use a more accurate smoothing algorithm that will not overshoot any data points.
    bandDataData used to draw error bands or confidence intervals above/below a line.
    bandsBanding around line, e.g error bands or confidence intervals.
    showtrue to show the bands.
    colorcolor of lines at top and bottom of bands [default: series color].
    showLinesTrue to show lines at top and bottom of bands [default: false].
    fillTrue to fill area between bands [default: true].
    fillColorcss color spec for filled area.
    intervalUser specified interval above and below line for bands [default: ‘3%’’].
    Properties
    highlightMouseOverTrue to highlight area on a filled plot when moused over.
    highlightMouseDownTrue to highlight when a mouse button is pressed over an area on a filled plot.
    highlightColorcolor to use when highlighting an area on a filled plot.
    - -

    Properties

    - -

    smooth

    this.renderer.smooth = false

    True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.  Set to an integer number > 2 to specify number of smoothing points to use between each data point.

    - -

    constrainSmoothing

    this.renderer.constrainSmoothing = true

    True to use a more accurate smoothing algorithm that will not overshoot any data points.  False to allow overshoot but produce a smoother looking line.

    - -

    bandData

    this.renderer.bandData = []

    Data used to draw error bands or confidence intervals above/below a line.

    bandData can be input in 3 forms.  jqPlot will figure out which is the low band line and which is the high band line for all forms:

    A 2 dimensional array like [[yl1, yl2, ...], [yu1, yu2, ...]] where [yl1, yl2, ...] are y values of the lower line and [yu1, yu2, ...] are y values of the upper line.  In this case there must be the same number of y data points as data points in the series and the bands will inherit the x values of the series.

    A 2 dimensional array like [[[xl1, yl1], [xl2, yl2], ...], [[xh1, yh1], [xh2, yh2], ...]] where [xl1, yl1] are x,y data points for the lower line and [xh1, yh1] are x,y data points for the high line. x values do not have to correspond to the x values of the series and can be of any arbitrary length.

    Can be of form [[yl1, yu1], [yl2, yu2], [yl3, yu3], ...] where there must be 3 or more arrays and there must be the same number of arrays as there are data points in the series.  In this case, [yl1, yu1] specifies the lower and upper y values for the 1st data point and so on.  The bands will inherit the x values from the series.

    - -

    bands

    Banding around line, e.g error bands or confidence intervals.

    - -

    show

    true to show the bands.  If bandData or interval is supplied, show will be set to true by default.

    - -

    color

    color of lines at top and bottom of bands [default: series color].

    - -

    showLines

    True to show lines at top and bottom of bands [default: false].

    - -

    fill

    True to fill area between bands [default: true].

    - -

    fillColor

    css color spec for filled area.  [default: series color].

    - -

    interval

    interval: '3%' }

    User specified interval above and below line for bands [default: ‘3%’’].  Can be a value like 3 or a string like ‘3%’ or an upper/lower array like [1, -2] or [‘2%’, ‘-1.5%’]

    - -

    Properties

    - -

    highlightMouseOver

    this.highlightMouseOver = true

    True to highlight area on a filled plot when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on an area on a filled plot.

    - -

    highlightMouseDown

    this.highlightMouseDown = false

    True to highlight when a mouse button is pressed over an area on a filled plot.  This will be disabled if highlightMouseOver is true.

    - -

    highlightColor

    this.highlightColor = null

    color to use when highlighting an area on a filled plot.

    - -
    - - - - - - - - - - -
    An individual data series object.
    this.renderer.smooth = false
    True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
    this.renderer.constrainSmoothing = true
    True to use a more accurate smoothing algorithm that will not overshoot any data points.
    this.renderer.bandData = []
    Data used to draw error bands or confidence intervals above/below a line.
    interval: '3%' }
    User specified interval above and below line for bands [default: ‘3%’’].
    this.highlightMouseOver = true
    True to highlight area on a filled plot when moused over.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over an area on a filled plot.
    this.highlightColor = null
    color to use when highlighting an area on a filled plot.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-linearAxisRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-linearAxisRenderer-js.html deleted file mode 100644 index 26c6af050..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-linearAxisRenderer-js.html +++ /dev/null @@ -1,61 +0,0 @@ - - -$.jqplot.LinearAxisRenderer - - - - - - - - - -

    The default jqPlot axis renderer, creating a numeric axis.

    Summary
    $.jqplot.LinearAxisRendererThe default jqPlot axis renderer, creating a numeric axis.
    Properties
    breakPointsEXPERIMENTAL!! 
    breakTickLabelLabel to use at the axis break if breakPoints are specified.
    drawBaselineTrue to draw the axis baseline.
    baselineWidthwidth of the baseline in pixels.
    baselineColorCSS color spec for the baseline.
    forceTickAt0This will ensure that there is always a tick mark at 0.
    forceTickAt100This will ensure that there is always a tick mark at 100.
    tickInsetControls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    minorTicksNumber of ticks to add between “major” ticks.
    alignTickstrue to align tick marks across opposed axes such as from the y2axis to yaxis.
    - -

    Properties

    - -

    breakPoints

    this.breakPoints = null

    EXPERIMENTAL!!  Use at your own risk!  Works only with linear axes and the default tick renderer.  Array of [start, stop] points to create a broken axis.  Broken axes have a “jump” in them, which is an immediate transition from a smaller value to a larger value.  Currently, axis ticks MUST be manually assigned if using breakPoints by using the axis ticks array option.

    - -

    breakTickLabel

    this.breakTickLabel = "&asymp

    Label to use at the axis break if breakPoints are specified.

    - -

    drawBaseline

    this.drawBaseline = true

    True to draw the axis baseline.

    - -

    baselineWidth

    this.baselineWidth = null

    width of the baseline in pixels.

    - -

    baselineColor

    this.baselineColor = null

    CSS color spec for the baseline.

    - -

    forceTickAt0

    this.forceTickAt0 = false

    This will ensure that there is always a tick mark at 0.  If data range is strictly positive or negative, this will force 0 to be inside the axis bounds unless the appropriate axis pad (pad, padMin or padMax) is set to 0, then this will force an axis min or max value at 0.  This has know effect when any of the following options are set: autoscale, min, max, numberTicks or tickInterval.

    - -

    forceTickAt100

    this.forceTickAt100 = false

    This will ensure that there is always a tick mark at 100.  If data range is strictly above or below 100, this will force 100 to be inside the axis bounds unless the appropriate axis pad (pad, padMin or padMax) is set to 0, then this will force an axis min or max value at 100.  This has know effect when any of the following options are set: autoscale, min, max, numberTicks or tickInterval.

    - -

    tickInset

    this.tickInset = 0

    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.  0 is no inset, 0.5 is one half a tick interval, 1 is a full tick interval, etc.

    - -

    minorTicks

    this.minorTicks = 0

    Number of ticks to add between “major” ticks.  Major ticks are ticks supplied by user or auto computed.  Minor ticks cannot be created by user.

    - -

    alignTicks

    this.alignTicks = false

    true to align tick marks across opposed axes such as from the y2axis to yaxis.

    - -
    - - - - - - - - - - -
    this.breakPoints = null
    EXPERIMENTAL!! 
    this.breakTickLabel = "&asymp
    Label to use at the axis break if breakPoints are specified.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.baselineColor = null
    CSS color spec for the baseline.
    this.forceTickAt0 = false
    This will ensure that there is always a tick mark at 0.
    this.forceTickAt100 = false
    This will ensure that there is always a tick mark at 100.
    this.tickInset = 0
    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    this.minorTicks = 0
    Number of ticks to add between “major” ticks.
    this.alignTicks = false
    true to align tick marks across opposed axes such as from the y2axis to yaxis.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-markerRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-markerRenderer-js.html deleted file mode 100644 index 5c0709ea8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-markerRenderer-js.html +++ /dev/null @@ -1,65 +0,0 @@ - - -$.jqplot.MarkerRenderer - - - - - - - - - -

    The default jqPlot marker renderer, rendering the points on the line.

    Summary
    $.jqplot.MarkerRendererThe default jqPlot marker renderer, rendering the points on the line.
    Properties
    showwether or not to show the marker.
    styleOne of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
    lineWidthsize of the line for non-filled markers.
    sizeSize of the marker (diameter or circle, length of edge of square, etc.)
    colorcolor of marker.
    shadowwether or not to draw a shadow on the line
    shadowAngleShadow angle in degrees
    shadowOffsetShadow offset from line in pixels
    shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
    shadowAlphaAlpha channel transparency of shadow.
    shadowRendererRenderer that will draws the shadows on the marker.
    shapeRendererRenderer that will draw the marker.
    - -

    Properties

    - -

    show

    this.show = true

    wether or not to show the marker.

    - -

    style

    this.style = 'filledCircle'

    One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare

    - -

    lineWidth

    this.lineWidth = 2

    size of the line for non-filled markers.

    - -

    size

    this.size = 9.0

    Size of the marker (diameter or circle, length of edge of square, etc.)

    - -

    color

    this.color = '#666666'

    color of marker.  Will be set to color of series by default on init.

    - -

    shadow

    this.shadow = true

    wether or not to draw a shadow on the line

    - -

    shadowAngle

    this.shadowAngle = 45

    Shadow angle in degrees

    - -

    shadowOffset

    this.shadowOffset = 1

    Shadow offset from line in pixels

    - -

    shadowDepth

    this.shadowDepth = 3

    Number of times shadow is stroked, each stroke offset shadowOffset from the last.

    - -

    shadowAlpha

    this.shadowAlpha = '0.07'

    Alpha channel transparency of shadow.  0 = transparent.

    - -

    shadowRenderer

    this.shadowRenderer = new $.jqplot.ShadowRenderer()

    Renderer that will draws the shadows on the marker.

    - -

    shapeRenderer

    this.shapeRenderer = new $.jqplot.ShapeRenderer()

    Renderer that will draw the marker.

    - -
    - - - - - - - - - - -
    this.show = true
    wether or not to show the marker.
    this.style = 'filledCircle'
    One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
    this.lineWidth = 2
    size of the line for non-filled markers.
    this.size = 9.0
    Size of the marker (diameter or circle, length of edge of square, etc.)
    this.color = '#666666'
    color of marker.
    this.shadow = true
    wether or not to draw a shadow on the line
    this.shadowAngle = 45
    Shadow angle in degrees
    this.shadowOffset = 1
    Shadow offset from line in pixels
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowAlpha = '0.07'
    Alpha channel transparency of shadow.
    this.shadowRenderer = new $.jqplot.ShadowRenderer()
    Renderer that will draws the shadows on the marker.
    this.shapeRenderer = new $.jqplot.ShapeRenderer()
    Renderer that will draw the marker.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-shadowRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-shadowRenderer-js.html deleted file mode 100644 index 9b45b222a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-shadowRenderer-js.html +++ /dev/null @@ -1,61 +0,0 @@ - - -$.jqplot.shadowRenderer - - - - - - - - - -

    The default jqPlot shadow renderer, rendering shadows behind shapes.

    Summary
    $.jqplot.shadowRendererThe default jqPlot shadow renderer, rendering shadows behind shapes.
    Properties
    angleAngle of the shadow in degrees.
    offsetPixel offset at the given shadow angle of each shadow stroke from the last stroke.
    alphaalpha transparency of shadow stroke.
    lineWidthwidth of the shadow line stroke.
    lineJoinHow line segments of the shadow are joined.
    lineCaphow ends of the shadow line are rendered.
    fillwhether to fill the shape.
    depthhow many times the shadow is stroked.
    isarcwether the shadow is an arc or not.
    drawdraws an transparent black (i.e.
    - -

    Properties

    - -

    angle

    this.angle = 45

    Angle of the shadow in degrees.  Measured counter-clockwise from the x axis.

    - -

    offset

    this.offset = 1

    Pixel offset at the given shadow angle of each shadow stroke from the last stroke.

    - -

    alpha

    this.alpha = 0.07

    alpha transparency of shadow stroke.

    - -

    lineWidth

    this.lineWidth = 1.5

    width of the shadow line stroke.

    - -

    lineJoin

    this.lineJoin = 'miter'

    How line segments of the shadow are joined.

    - -

    lineCap

    this.lineCap = 'round'

    how ends of the shadow line are rendered.

    - -

    fill

    this.fill = false

    whether to fill the shape.

    - -

    depth

    this.depth = 3

    how many times the shadow is stroked.  Each stroke will be offset by offset at angle degrees.

    - -

    isarc

    this.isarc = false

    wether the shadow is an arc or not.

    - -

    draw

    $.jqplot.ShadowRenderer.prototype.draw = function(ctx,
    points,
    options)

    draws an transparent black (i.e. gray) shadow.

    ctxcanvas drawing context
    pointsarray of points or [x, y, radius, start angle (rad), end angle (rad)]
    - -
    - - - - - - - - - - -
    this.angle = 45
    Angle of the shadow in degrees.
    this.offset = 1
    Pixel offset at the given shadow angle of each shadow stroke from the last stroke.
    this.alpha = 0.07
    alpha transparency of shadow stroke.
    this.lineWidth = 1.5
    width of the shadow line stroke.
    this.lineJoin = 'miter'
    How line segments of the shadow are joined.
    this.lineCap = 'round'
    how ends of the shadow line are rendered.
    this.fill = false
    whether to fill the shape.
    this.depth = 3
    how many times the shadow is stroked.
    this.isarc = false
    wether the shadow is an arc or not.
    $.jqplot.ShadowRenderer.prototype.draw = function(ctx,
    points,
    options)
    draws an transparent black (i.e.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-shapeRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-shapeRenderer-js.html deleted file mode 100644 index 5487e4234..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-shapeRenderer-js.html +++ /dev/null @@ -1,65 +0,0 @@ - - -$.jqplot.shapeRenderer - - - - - - - - - -

    The default jqPlot shape renderer.  Given a set of points will plot them and either stroke a line (fill = false) or fill them (fill = true).  If a filled shape is desired, closePath = true must also be set to close the shape.

    Summary
    $.jqplot.shapeRendererThe default jqPlot shape renderer.
    Properties
    linePatternline pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    lineJoinHow line segments of the shadow are joined.
    lineCaphow ends of the shadow line are rendered.
    fillwhether to fill the shape.
    isarcwether the shadow is an arc or not.
    fillRecttrue to draw shape as a filled rectangle.
    strokeRecttrue to draw shape as a stroked rectangle.
    clearRecttrue to cear a rectangle.
    strokeStylecss color spec for the stoke style
    fillStylecss color spec for the fill style.
    Functions
    drawdraws the shape.
    - -

    Properties

    - -

    linePattern

    this.linePattern = 'solid'

    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’ characters such as ‘.-.’ or a numerical array like [draw, skip, draw, skip, ...] such as [1, 10] to draw a dotted line, [1, 10, 20, 10] to draw a dot-dash line, and so on.

    - -

    lineJoin

    this.lineJoin = 'miter'

    How line segments of the shadow are joined.

    - -

    lineCap

    this.lineCap = 'round'

    how ends of the shadow line are rendered.

    - -

    fill

    this.fill = false

    whether to fill the shape.

    - -

    isarc

    this.isarc = false

    wether the shadow is an arc or not.

    - -

    fillRect

    this.fillRect = false

    true to draw shape as a filled rectangle.

    - -

    strokeRect

    this.strokeRect = false

    true to draw shape as a stroked rectangle.

    - -

    clearRect

    this.clearRect = false

    true to cear a rectangle.

    - -

    strokeStyle

    this.strokeStyle = '#999999'

    css color spec for the stoke style

    - -

    fillStyle

    this.fillStyle = '#999999'

    css color spec for the fill style.

    - -

    Functions

    - -

    draw

    $.jqplot.ShapeRenderer.prototype.draw = function(ctx,
    points,
    options)

    draws the shape.

    ctxcanvas drawing context
    pointsarray of points for shapes or [x, y, width, height] for rectangles or [x, y, radius, start angle (rad), end angle (rad)] for circles and arcs.
    - -
    - - - - - - - - - - -
    this.linePattern = 'solid'
    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    this.lineJoin = 'miter'
    How line segments of the shadow are joined.
    this.lineCap = 'round'
    how ends of the shadow line are rendered.
    this.fill = false
    whether to fill the shape.
    this.isarc = false
    wether the shadow is an arc or not.
    this.fillRect = false
    true to draw shape as a filled rectangle.
    this.strokeRect = false
    true to draw shape as a stroked rectangle.
    this.clearRect = false
    true to cear a rectangle.
    this.strokeStyle = '#999999'
    css color spec for the stoke style
    this.fillStyle = '#999999'
    css color spec for the fill style.
    $.jqplot.ShapeRenderer.prototype.draw = function(ctx,
    points,
    options)
    draws the shape.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-themeEngine-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-themeEngine-js.html deleted file mode 100644 index 576ed477e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-themeEngine-js.html +++ /dev/null @@ -1,191 +0,0 @@ - - -$.jqplot.ThemeEngine - - - - - - - - - -

    Theme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.  A theme engine instance is created with each plot.  The theme engine manages a collection of themes which can be modified, added to, or applied to the plot.

    The themeEngine class is not instantiated directly.  When a plot is initialized, the current plot options are scanned an a default theme named “Default” is created.  This theme is used as the basis for other themes added to the theme engine and is always available.

    A theme is a simple javascript object with styling parameters for various entities of the plot.  A theme has the form:

    {
    -    _name:f "Default",
    -    target: {
    -        backgroundColor: "transparent"
    -    },
    -    legend: {
    -        textColor: null,
    -        fontFamily: null,
    -        fontSize: null,
    -        border: null,
    -        background: null
    -    },
    -    title: {
    -        textColor: "rgb(102, 102, 102)",
    -        fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif",
    -        fontSize: "19.2px",
    -        textAlign: "center"
    -    },
    -    seriesStyles: {},
    -    series: [{
    -        color: "#4bb2c5",
    -        lineWidth: 2.5,
    -        linePattern: "solid",
    -        shadow: true,
    -        fillColor: "#4bb2c5",
    -        showMarker: true,
    -        markerOptions: {
    -            color: "#4bb2c5",
    -            show: true,
    -            style: 'filledCircle',
    -            lineWidth: 1.5,
    -            size: 4,
    -            shadow: true
    -        }
    -    }],
    -    grid: {
    -        drawGridlines: true,
    -        gridLineColor: "#cccccc",
    -        gridLineWidth: 1,
    -        backgroundColor: "#fffdf6",
    -        borderColor: "#999999",
    -        borderWidth: 2,
    -        shadow: true
    -    },
    -    axesStyles: {
    -        label: {},
    -        ticks: {}
    -    },
    -    axes: {
    -        xaxis: {
    -            borderColor: "#999999",
    -            borderWidth: 2,
    -            ticks: {
    -                show: true,
    -                showGridline: true,
    -                showLabel: true,
    -                showMark: true,
    -                size: 4,
    -                textColor: "",
    -                whiteSpace: "nowrap",
    -                fontSize: "12px",
    -                fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif"
    -            },
    -            label: {
    -                textColor: "rgb(102, 102, 102)",
    -                whiteSpace: "normal",
    -                fontSize: "14.6667px",
    -                fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif",
    -                fontWeight: "400"
    -            }
    -        },
    -        yaxis: {
    -            borderColor: "#999999",
    -            borderWidth: 2,
    -            ticks: {
    -                show: true,
    -                showGridline: true,
    -                showLabel: true,
    -                showMark: true,
    -                size: 4,
    -                textColor: "",
    -                whiteSpace: "nowrap",
    -                fontSize: "12px",
    -                fontFamily: "'Trebuchet MS',Arial,Helvetica,sans-serif"
    -            },
    -            label: {
    -                textColor: null,
    -                whiteSpace: null,
    -                fontSize: null,
    -                fontFamily: null,
    -                fontWeight: null
    -            }
    -        },
    -        x2axis: {...
    -        },
    -        ...
    -        y9axis: {...
    -        }
    -    }
    -}

    ”seriesStyles” is a style object that will be applied to all series in the plot.  It will forcibly override any styles applied on the individual series.  “axesStyles” is a style object that will be applied to all axes in the plot.  It will also forcibly override any styles on the individual axes.

    The example shown above has series options for a line series.  Options for other series types are shown below:

    Bar Series

    {
    -    color: "#4bb2c5",
    -    seriesColors: ["#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"],
    -    lineWidth: 2.5,
    -    shadow: true,
    -    barPadding: 2,
    -    barMargin: 10,
    -    barWidth: 15.09375,
    -    highlightColors: ["rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)", "rgb(129,201,214)"]
    -}

    Pie Series

    {
    -    seriesColors: ["#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"],
    -    padding: 20,
    -    sliceMargin: 0,
    -    fill: true,
    -    shadow: true,
    -    startAngle: 0,
    -    lineWidth: 2.5,
    -    highlightColors: ["rgb(129,201,214)", "rgb(240,189,104)", "rgb(214,202,165)", "rgb(137,180,158)", "rgb(168,180,137)", "rgb(180,174,89)", "rgb(180,113,161)", "rgb(129,141,236)", "rgb(227,205,120)", "rgb(255,138,76)", "rgb(76,169,219)", "rgb(215,126,190)", "rgb(220,232,135)", "rgb(200,167,96)", "rgb(103,202,235)", "rgb(208,154,215)"]
    -}

    Funnel Series

    {
    -    color: "#4bb2c5",
    -    lineWidth: 2,
    -    shadow: true,
    -    padding: {
    -        top: 20,
    -        right: 20,
    -        bottom: 20,
    -        left: 20
    -    },
    -    sectionMargin: 6,
    -    seriesColors: ["#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"],
    -    highlightColors: ["rgb(147,208,220)", "rgb(242,199,126)", "rgb(220,210,178)", "rgb(154,191,172)", "rgb(180,191,154)", "rgb(191,186,112)", "rgb(191,133,174)", "rgb(147,157,238)", "rgb(231,212,139)", "rgb(255,154,102)", "rgb(102,181,224)", "rgb(221,144,199)", "rgb(225,235,152)", "rgb(200,167,96)", "rgb(124,210,238)", "rgb(215,169,221)"]
    -}
    Summary
    $.jqplot.ThemeEngineTheme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.
    Properties
    themeshash of themes managed by the theme engine.
    activeThemePointer to currently active theme
    methods
    getGet and return the named theme or the active theme if no name given.
    getThemeNamesReturn the list of theme names in this manager in alpha-numerical order.
    getThemesReturn a list of themes in alpha-numerical order by name.
    removeRemove the given theme from the themeEngine.
    newThemeCreate a new theme based on the default theme, adding it the themeEngine.
    renameRename a theme.
    copyCreate a copy of an existing theme in the themeEngine, adding it the themeEngine.
    - -

    Properties

    - -

    themes

    this.themes = {}

    hash of themes managed by the theme engine.  Indexed by theme name.

    - -

    activeTheme

    this.activeTheme=null

    Pointer to currently active theme

    - -

    methods

    - -

    get

    $.jqplot.ThemeEngine.prototype.get = function(name)

    Get and return the named theme or the active theme if no name given.

    parameter

    namename of theme to get.

    returns

    Theme instance of given name.

    - -

    getThemeNames

    $.jqplot.ThemeEngine.prototype.getThemeNames = function()

    Return the list of theme names in this manager in alpha-numerical order.

    parameter

    None

    returns

    A the list of theme names in this manager in alpha-numerical order.

    - -

    getThemes

    $.jqplot.ThemeEngine.prototype.getThemes = function()

    Return a list of themes in alpha-numerical order by name.

    parameter

    None

    returns

    A list of themes in alpha-numerical order by name.

    - -

    remove

    $.jqplot.ThemeEngine.prototype.remove = function(name)

    Remove the given theme from the themeEngine.

    parameters

    namename of the theme to remove.

    returns

    true on success, false on failure.

    - -

    newTheme

    $.jqplot.ThemeEngine.prototype.newTheme = function(name,
    obj)

    Create a new theme based on the default theme, adding it the themeEngine.

    parameters

    namename of the new theme.
    objoptional object of styles to be applied to this new theme.

    returns

    new Theme object.

    - -

    rename

    $.jqplot.ThemeEngine.prototype.rename = function (oldName,
    newName)

    Rename a theme.

    parameters

    oldNamecurrent name of the theme.
    newNamedesired name of the theme.

    returns

    new Theme object.

    - -

    copy

    $.jqplot.ThemeEngine.prototype.copy = function (sourceName,
    targetName,
    obj)

    Create a copy of an existing theme in the themeEngine, adding it the themeEngine.

    parameters

    sourceNamename of the existing theme.
    targetNamename of the copy.
    objoptional object of style parameter to apply to the new theme.

    returns

    new Theme object.

    - -
    - - - - - - - - - - -
    this.themes = {}
    hash of themes managed by the theme engine.
    this.activeTheme=null
    Pointer to currently active theme
    $.jqplot.ThemeEngine.prototype.get = function(name)
    Get and return the named theme or the active theme if no name given.
    $.jqplot.ThemeEngine.prototype.getThemeNames = function()
    Return the list of theme names in this manager in alpha-numerical order.
    $.jqplot.ThemeEngine.prototype.getThemes = function()
    Return a list of themes in alpha-numerical order by name.
    $.jqplot.ThemeEngine.prototype.remove = function(name)
    Remove the given theme from the themeEngine.
    $.jqplot.ThemeEngine.prototype.newTheme = function(name,
    obj)
    Create a new theme based on the default theme, adding it the themeEngine.
    $.jqplot.ThemeEngine.prototype.rename = function (oldName,
    newName)
    Rename a theme.
    $.jqplot.ThemeEngine.prototype.copy = function (sourceName,
    targetName,
    obj)
    Create a copy of an existing theme in the themeEngine, adding it the themeEngine.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-toImage-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-toImage-js.html deleted file mode 100644 index 3b6cc1cb4..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/jqplot-toImage-js.html +++ /dev/null @@ -1,39 +0,0 @@ - - -$.fn - - - - - - - - - -

    jQuery namespace to attach functions to jQuery elements.

    - -
    - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/optionsTutorial-txt.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/optionsTutorial-txt.html deleted file mode 100644 index 2670e3ef5..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/optionsTutorial-txt.html +++ /dev/null @@ -1,120 +0,0 @@ - - -Options Tutorial - - - - - - - - - -

    This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.  For a listing of options available to jqPlot, see jqPlot Options in the jqPlotOptions.txt file.

    The key to effectively using jqPlot is understanding jqPlot’s options.  The online documentation is API documentation.  While it explains what attributes and methods various objects posses, it doesn’t explain how to use or set those attributes through options.  This tutorial will help explain that.

    Lets assume you are creating a plot like this:

    chart = $.jqplot('chart', dataSeries, optionsObj);

    First, note that you shouldn’t try to directly set attributes on the “chart” object (like chart.grid.shadow) after your call to $.jqplot().  At best this won’t do anything **(see below).  You should pass options in via the “optionsObj”.

    the optionsObj really represents the plot object (jqPlot object, not to be confused with the $.jqplot function which will create a jqPlot object).  Attributes you specify on that object will be merged with attributes in the jqPlot object.  The axes, legend, series, etc. are attributes on the jqPlot object.  The jqPlot/optionsObj object looks something like (only some attributes shown):

    jqPlot-|
    -       |-seriesColors
    -       |-textColor
    -       |-fontFamily
    -       |-fontSize
    -       |-stackSeries
    -       |-series(Array)-|
    -       |               |-Series1-|
    -       |               |         |-lineWidth
    -       |               |         |-linePattern
    -       |               |         |-shadow
    -       |               |         |-showLine
    -       |               |         |-showMarker
    -       |               |         |-color
    -       |               |-Series2...
    -       |               |-...
    -       |               |-SeriesN
    -       |
    -       |-grid(Object)-|
    -       |              |-drawGridLines
    -       |              |-background
    -       |              |-borderColor
    -       |              |-borderWidth
    -       |              |-shadow
    -       |
    -       |-title(Object)-|
    -       |               |-text
    -       |               |-show
    -       |               |-fontFamily
    -       |               |-fontSize
    -       |               |-textAlign
    -       |               |-textColor
    -       |
    -       |-axes(Object)-|
    -       |              |-xais-|
    -       |              |      |-min
    -       |              |      |-max
    -       |              |      |-numberTicks
    -       |              |      |-showTicks
    -       |              |      |-showTickMarks
    -       |              |      |-pad
    -       |
    -       | ... and so on

    The optionsObj should follow the same construction as if it were a jqPlot object (with some exceptions/shortcuts I’ll mention in a moment).  So generally, when you see something like “this.drawGridLines” in the grid properties in the docs, just replace “this” with “grid” in your options object.  So it becomes optionsObj.grid.drawGridLines.  Do likewise with the other objects in the plot, replacing “this”, with the respective attribute on the plot like “legend” or “title”.  Series and Axes are handled a little different, because series is an array and axes has 4 distinct children “xaxis”, “yaxis”, “x2axis” and “y2axis”.

    So, to remove the shadow from the grid and change the grid border size you would do:

    optionObj = {grid:{shadow:false, borderWidth:9.0}};

    To do the same as above but also make all the text in the plot red you would do:

    optionObj = {
    -   textColor:"#ff0000",
    -   grid:{shadow:false, borderWidth:9.0}
    -}

    Here is a more deeply nested example.  Say you want to specify a min and max on your y axis and use a specific color for your second series.  That would look like:

    optionsObj = {
    -   axes:{yaxis:{min:5, max:230}},
    -   series:[{},{color:"#33ff66"}]
    -}

    Note that series options are an array in order of the series data you sent in to your plot.  To get to the second series, you have to put an object (even if empty) in place of the first series.

    There is a handy shortcut to assign options to all axes or all series at one go.  Use axesDefaults and seriesDefaults.  So, if you wanted both x and y axes to start at 0 and you wanted all series to not show markers, you could do:

    optionsObj = {axesDefaults:{min:0}, seriesDefaults:{showMarker:false}}

    Another shortcut is for the plot title.  Normally, you would assign options to the title as an object.  If you specify a title option as a string, it will assign that to the title.text property automatically.  So these two are equivalent:

    optionsObj = {title:{text:"My Plot"}}

    and

    optionsObj = {title:"My Plot"}

    Where things need more explaination is with renderers, plugins and their options.  Briefly, what’s renderer, what’s a plugin.

    A renderer is an object that is used to draw something and gets attached to an existing object in the plot in order to draw it.  A plugin does more than just provide drawing functionality to an object.  It will do more like calculate a trend line, change the cursor, provide event driven functionality, etc.  I consider renderers plugins, but plugins don’t have to be renderers.

    So, how do you use renderers, plugins, and specify their options?  Some common renderes are for bar charts and category axes.  If you want to render your series as a bar chart with each set of bars showing up in a category on the x axis, you do:

    optionsObj = {
    -   seriesDefaults:{renderer:$.jqplot.BarRenderer},
    -   axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer}}
    -}

    This replaces the default renderer used for all series in the plot with a bar renderer and the x axis default renderer (but not any other axis) with a category renderer.

    Now, how would I assign options to those renderers?  The renderer’s attributes may not be present in the pre-existing jqPlot object, they may be specific to the renderer.  This is done through the “rendererOptions” option on the appropriate object.  So, if I wanted my bars to be 25 pixels wide, I would do:

    optionsObj = {
    -   seriesDefaults:{
    -       renderer:$.jqplot.BarRenderer},
    -       rendererOptions:{
    -           barWidth:25
    -       },
    -   axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer}}
    -}

    Again, this is using the “seriesDefaults” option, which will apply options to all series in the plot.  You could do the same on any particular series in the plot through the “series” options array.

    Plugins are free to add their own options.  For example, the highlighter plugin has it’s own set of options that are unique to it.  As a result, it responds to options placed in the “highlighter” attribute of your options object.  So, if I wanted to change the highlighter tooltip to fade in and out slowly and be positioned directly above the point I’m highlighting:

    optionsObj = {
    -    highlighter:{tooltipFadeSpeed:'slow', tooltipLocation:'n'}
    -}

    Other plugins, like dragable and trendlines, add their options in with the series.  This is because both of those plugins can have different options for different series in the plot.  So, if you wanted to specify the color of the dragable and constrain it to drag only on the x axis as well as specify the color of the trend line you could do:

    series:[{
    -    dragable: {
    -        color: '#ff3366',
    -        constrainTo: 'x'
    -    },
    -    trendline: {
    -        color: '#cccccc'
    -    }
    -}]

    This would apply those options to the first series only.  If you had 2 series and wanted to turn off dragging and trend lines on the second series, you could do:

    series:[{
    -    dragable: {
    -        color: '#ff3366',
    -        constrainTo: 'x'
    -    },
    -    trendline: {
    -        color: '#cccccc'
    -    }
    -}, {
    -   isDragable: false,
    -   trendline:{
    -       show: false
    -   }
    -}]

    Note, series dragability is turned off with the “isDragable” option directly on the series itself, not with a suboption of “dragable”.  This may be improved in the future.

    I hope this is helpful.  A few key points to remember:

    • When you see “this” in the api docs, you generally replace it with the name of the object (in lowercase) you are looking at in your options object.
    • seriesDefaults and axesDefaults are convenient shortcuts.
    • to assign options to a renderer, generally use the “rendererOptions”
    • plugins may add their own options attribute, like “highlighter” or “cursor”.

    ** Note: you can set attributes after the plot is created (like plot.grid.shadow = false), but you’ll have to issue the appropriate calls to possibly reinitialize and redraw the plot.  jqPlot can definitely handle this to change the plot after creation (this is how the dragable plugin updates the plot data and the trend line plugin recomputes itself when data changes).  This hasn’t been documented yet, however.

    - -
    - - - - - - - - - - -
    This document is out of date.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-BezierCurveRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-BezierCurveRenderer-js.html deleted file mode 100644 index a40feedde..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-BezierCurveRenderer-js.html +++ /dev/null @@ -1,45 +0,0 @@ - - -$.jqplot.BezierCurveRenderer.js - - - - - - - - - -

    Renderer which draws lines as stacked bezier curves.  Data for the line will not be specified as an array of [x, y] data point values, but as a an array of [start piont, bezier curve] So, the line is specified as: [[xstart, ystart], [cp1x, cp1y, cp2x, cp2y, xend, yend]].

    Summary
    $.jqplot.BezierCurveRenderer.jsRenderer which draws lines as stacked bezier curves.
    Functions
    setGridDataconverts the user data values to grid coordinates and stores them in the gridData array.
    makeGridDataconverts any arbitrary data values to grid coordinates and returns them.
    - -

    Functions

    - -

    setGridData

    $.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)

    converts the user data values to grid coordinates and stores them in the gridData array.  Called with scope of a series.

    - -

    makeGridData

    $.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
    plot)

    converts any arbitrary data values to grid coordinates and returns them.  This method exists so that plugins can use a series’ linerenderer to generate grid data points without overwriting the grid data associated with that series.  Called with scope of a series.

    - -
    - - - - - - - - - - -
    $.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)
    converts the user data values to grid coordinates and stores them in the gridData array.
    $.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
    plot)
    converts any arbitrary data values to grid coordinates and returns them.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-barRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-barRenderer-js.html deleted file mode 100644 index 501115d39..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-barRenderer-js.html +++ /dev/null @@ -1,69 +0,0 @@ - - -$.jqplot.BarRenderer - - - - - - - - - -

    A plugin renderer for jqPlot to draw a bar plot.  Draws series as a line.

    Summary
    $.jqplot.BarRendererA plugin renderer for jqPlot to draw a bar plot.
    Properties
    barPaddingNumber of pixels between adjacent bars at the same axis value.
    barMarginNumber of pixels between groups of bars at adjacent axis values.
    barDirection‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
    barWidthWidth of the bar in pixels (auto by devaul).
    shadowOffsetoffset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
    waterfalltrue to enable waterfall plot.
    groupsgroup bars into this many groups
    varyBarColortrue to color each bar of a series separately rather than have every bar of a given series the same color.
    highlightMouseOverTrue to highlight slice when moused over.
    highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
    highlightColorsan array of colors to use when highlighting a bar.
    transposedDataNOT IMPLEMENTED YET.
    - -

    Properties

    - -

    barPadding

    this.barPadding = 8

    Number of pixels between adjacent bars at the same axis value.

    - -

    barMargin

    this.barMargin = 10

    Number of pixels between groups of bars at adjacent axis values.

    - -

    barDirection

    this.barDirection = 'vertical'

    ’vertical’ = up and down bars, ‘horizontal’ = side to side bars

    - -

    barWidth

    this.barWidth = null

    Width of the bar in pixels (auto by devaul).  null = calculated automatically.

    - -

    shadowOffset

    this.shadowOffset = 2

    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.

    - -

    shadowDepth

    this.shadowDepth = 5

    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

    - -

    shadowAlpha

    this.shadowAlpha = 0.08

    transparency of the shadow (0 = transparent, 1 = opaque)

    - -

    waterfall

    this.waterfall = false

    true to enable waterfall plot.

    - -

    groups

    this.groups = 1

    group bars into this many groups

    - -

    varyBarColor

    this.varyBarColor = false

    true to color each bar of a series separately rather than have every bar of a given series the same color.  If used for non-stacked multiple series bar plots, user should specify a separate ‘seriesColors’ array for each series.  Otherwise, each series will set their bars to the same color array.  This option has no Effect for stacked bar charts and is disabled.

    - -

    highlightMouseOver

    this.highlightMouseOver = true

    True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

    - -

    highlightMouseDown

    this.highlightMouseDown = false

    True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

    - -

    highlightColors

    this.highlightColors = []

    an array of colors to use when highlighting a bar.

    - -

    transposedData

    this.transposedData = true

    NOT IMPLEMENTED YET.  True if this is a horizontal bar plot and x and y values are “transposed”.  Tranposed, or “swapped”, data is required prior to rev.  894 builds of jqPlot with horizontal bars.  Allows backward compatability of bar renderer horizontal bars with old style data sets.

    - -
    - - - - - - - - - - -
    this.barPadding = 8
    Number of pixels between adjacent bars at the same axis value.
    this.barMargin = 10
    Number of pixels between groups of bars at adjacent axis values.
    this.barDirection = 'vertical'
    ‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
    this.barWidth = null
    Width of the bar in pixels (auto by devaul).
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowAlpha = 0.08
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.waterfall = false
    true to enable waterfall plot.
    this.groups = 1
    group bars into this many groups
    this.varyBarColor = false
    true to color each bar of a series separately rather than have every bar of a given series the same color.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a bar.
    this.transposedData = true
    NOT IMPLEMENTED YET.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-blockRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-blockRenderer-js.html deleted file mode 100644 index b4b8cd824..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-blockRenderer-js.html +++ /dev/null @@ -1,53 +0,0 @@ - - -$.jqplot.BlockRenderer - - - - - - - - - -

    Plugin renderer to draw a x-y block chart.  A Block chart has data points displayed as colored squares with a text label inside.  Data must be supplied in the form:

    [[x1, y1, "label 1", {css}], [x2, y2, "label 2", {css}], ...]

    The label and css object are optional.  If the label is ommitted, the box will collapse unless a css height and/or width is specified.

    The css object is an object specifying css properties such as:

    {background:'#4f98a5', border:'3px solid gray', padding:'1px'}

    Note that css properties specified with the data point override defaults specified with the series.

    Summary
    $.jqplot.BlockRendererPlugin renderer to draw a x-y block chart.
    Properties
    cssdefault css styles that will be applied to all data blocks.
    escapeHtmltrue to escape html in the box label.
    insertBreakstrue to turn spaces in data block label into html breaks <br />.
    varyBlockColorstrue to vary the color of each block in this series according to the seriesColors array.
    Methods
    moveBlockMoves an individual block.
    - -

    Properties

    - -

    css

    this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}

    default css styles that will be applied to all data blocks. these values will be overridden by css styles supplied with the individulal data points.

    - -

    escapeHtml

    this.escapeHtml = false

    true to escape html in the box label.

    - -

    insertBreaks

    this.insertBreaks = true

    true to turn spaces in data block label into html breaks <br />.

    - -

    varyBlockColors

    this.varyBlockColors = false

    true to vary the color of each block in this series according to the seriesColors array.  False to set each block to the color specified on this series.  This has no effect if a css background color option is specified in the renderer css options.

    - -

    Methods

    - -

    moveBlock

    this.moveBlock = function (idx,
    x,
    y,
    duration)

    Moves an individual block.  More efficient than redrawing the whole series by calling plot.drawSeries().  Properties: idx - the 0 based index of the block or point in this series. x - the x coordinate in data units (value on x axis) to move the block to. y - the y coordinate in data units (value on the y axis) to move the block to. duration - optional parameter to create an animated movement.  Can be a number (higher is slower animation) or ‘fast’, ‘normal’ or ‘slow’.  If not provided, the element is moved without any animation.

    - -
    - - - - - - - - - - -
    this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}
    default css styles that will be applied to all data blocks.
    this.escapeHtml = false
    true to escape html in the box label.
    this.insertBreaks = true
    true to turn spaces in data block label into html breaks br /.
    this.varyBlockColors = false
    true to vary the color of each block in this series according to the seriesColors array.
    this.moveBlock = function (idx,
    x,
    y,
    duration)
    Moves an individual block.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-bubbleRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-bubbleRenderer-js.html deleted file mode 100644 index f5aec157e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-bubbleRenderer-js.html +++ /dev/null @@ -1,71 +0,0 @@ - - -$.jqplot.BubbleRenderer - - - - - - - - - -

    Plugin renderer to draw a bubble chart.  A Bubble chart has data points displayed as colored circles with an optional text label inside.  To use the bubble renderer, you must include the bubble renderer like:

    <script language="javascript" type="text/javascript" src="../src/plugins/jqplot.bubbleRenderer.js"></script>

    Data must be supplied in the form:

    [[x1, y1, r1, <label or {label:'text', color:color}>], ...]

    where the label or options object is optional.

    Note that all bubble colors will be the same unless the “varyBubbleColors” option is set to true.  Colors can be specified in the data array or in the seriesColors array option on the series.  If no colors are defined, the default jqPlot series of 16 colors are used.  Colors are automatically cycled around again if there are more bubbles than colors.

    Bubbles are autoscaled by default to fit within the chart area while maintaining relative sizes.  If the “autoscaleBubbles” option is set to false, the r(adius) values in the data array a treated as literal pixel values for the radii of the bubbles.

    Properties are passed into the bubble renderer in the rendererOptions object of the series options like:

    seriesDefaults: {
    -    renderer: $.jqplot.BubbleRenderer,
    -    rendererOptions: {
    -        bubbleAlpha: 0.7,
    -        varyBubbleColors: false
    -    }
    -}
    Summary
    $.jqplot.BubbleRendererPlugin renderer to draw a bubble chart.
    Properties
    varyBubbleColorsTrue to vary the color of each bubble in this series according to the seriesColors array.
    autoscaleBubblesTrue to scale the bubble radius based on plot size.
    autoscaleMultiplierMultiplier the bubble size if autoscaleBubbles is true.
    autoscalePointsFactorFactor which decreases bubble size based on how many bubbles on on the chart.
    escapeHtmlTrue to escape html in bubble label text.
    highlightMouseOverTrue to highlight bubbles when moused over.
    highlightMouseDownTrue to highlight when a mouse button is pressed over a bubble.
    highlightColorsAn array of colors to use when highlighting a slice.
    bubbleAlphaAlpha transparency to apply to all bubbles in this series.
    highlightAlphaAlpha transparency to apply when highlighting bubble.
    bubbleGradientsTrue to color the bubbles with gradient fills instead of flat colors.
    showLabelsTrue to show labels on bubbles (if any), false to not show.
    - -

    Properties

    - -

    varyBubbleColors

    this.varyBubbleColors = true

    True to vary the color of each bubble in this series according to the seriesColors array.  False to set each bubble to the color specified on this series.  This has no effect if a css background color option is specified in the renderer css options.

    - -

    autoscaleBubbles

    this.autoscaleBubbles = true

    True to scale the bubble radius based on plot size.  False will use the radius value as provided as a raw pixel value for bubble radius.

    - -

    autoscaleMultiplier

    this.autoscaleMultiplier = 1.0

    Multiplier the bubble size if autoscaleBubbles is true.

    - -

    autoscalePointsFactor

    this.autoscalePointsFactor = -0.07

    Factor which decreases bubble size based on how many bubbles on on the chart.  0 means no adjustment for number of bubbles.  Negative values will decrease size of bubbles as more bubbles are added.  Values between 0 and -0.2 should work well.

    - -

    escapeHtml

    this.escapeHtml = true

    True to escape html in bubble label text.

    - -

    highlightMouseOver

    this.highlightMouseOver = true

    True to highlight bubbles when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

    - -

    highlightMouseDown

    this.highlightMouseDown = false

    True to highlight when a mouse button is pressed over a bubble.  This will be disabled if highlightMouseOver is true.

    - -

    highlightColors

    this.highlightColors = []

    An array of colors to use when highlighting a slice.  Calculated automatically if not supplied.

    - -

    bubbleAlpha

    this.bubbleAlpha = 1.0

    Alpha transparency to apply to all bubbles in this series.

    - -

    highlightAlpha

    this.highlightAlpha = null

    Alpha transparency to apply when highlighting bubble.  Set to value of bubbleAlpha by default.

    - -

    bubbleGradients

    this.bubbleGradients = false

    True to color the bubbles with gradient fills instead of flat colors.  NOT AVAILABLE IN IE due to lack of excanvas support for radial gradient fills. will be ignored in IE.

    - -

    showLabels

    this.showLabels = true

    True to show labels on bubbles (if any), false to not show.

    - -
    - - - - - - - - - - -
    this.varyBubbleColors = true
    True to vary the color of each bubble in this series according to the seriesColors array.
    this.autoscaleBubbles = true
    True to scale the bubble radius based on plot size.
    this.autoscaleMultiplier = 1.0
    Multiplier the bubble size if autoscaleBubbles is true.
    this.autoscalePointsFactor = -0.07
    Factor which decreases bubble size based on how many bubbles on on the chart.
    this.escapeHtml = true
    True to escape html in bubble label text.
    this.highlightMouseOver = true
    True to highlight bubbles when moused over.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a bubble.
    this.highlightColors = []
    An array of colors to use when highlighting a slice.
    this.bubbleAlpha = 1.0
    Alpha transparency to apply to all bubbles in this series.
    this.highlightAlpha = null
    Alpha transparency to apply when highlighting bubble.
    this.bubbleGradients = false
    True to color the bubbles with gradient fills instead of flat colors.
    this.showLabels = true
    True to show labels on bubbles (if any), false to not show.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html deleted file mode 100644 index e14171f62..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html +++ /dev/null @@ -1,63 +0,0 @@ - - -$.jqplot.CanvasAxisLabelRenderer - - - - - - - - - -

    Renderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.  This renderer uses a separate rendering engine to draw the text on the canvas.  Two modes of rendering the text are available.  If the browser has native font support for canvas fonts (currently Mozila 3.5 and Safari 4), you can enable text rendering with the canvas fillText method.  You do so by setting the “enableFontSupport” option to true.

    Browsers lacking native font support will have the text drawn on the canvas using the Hershey font metrics.  Even if the “enableFontSupport” option is true non-supporting browsers will still render with the Hershey font.

    Summary
    $.jqplot.CanvasAxisLabelRendererRenderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.
    Properties
    angleangle of text, measured clockwise from x axis.
    showwether or not to show the tick (mark and label).
    showLabelwether or not to show the label.
    labellabel for the axis.
    fontFamilyCSS spec for the font-family css attribute.
    fontSizeCSS spec for font size.
    fontWeight
    fontStretchMultiplier to condense or expand font width.
    textColorcss spec for the color attribute.
    enableFontSupporttrue to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    pt2pxPoint to pixel scaling factor, used for computing height of bounding box around a label.
    - -

    Properties

    - -

    angle

    this.angle = 0

    angle of text, measured clockwise from x axis.

    - -

    show

    this.show = true

    wether or not to show the tick (mark and label).

    - -

    showLabel

    this.showLabel = true

    wether or not to show the label.

    - -

    label

    this.label = ''

    label for the axis.

    - -

    fontFamily

    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'

    CSS spec for the font-family css attribute.  Applies only to browsers supporting native font rendering in the canvas tag.  Currently Mozilla 3.5 and Safari 4.

    - -

    fontSize

    this.fontSize = '11pt'

    CSS spec for font size.

    - -

    fontWeight

    this.fontWeight = 'normal'
    CSS spec for fontWeight: normal, bold, bolder, lighter or a number 100900
    - -

    fontStretch

    this.fontStretch = 1.0

    Multiplier to condense or expand font width.  Applies only to browsers which don’t support canvas native font rendering.

    - -

    textColor

    this.textColor = '#666666'

    css spec for the color attribute.

    - -

    enableFontSupport

    this.enableFontSupport = true

    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.  If true, label will be drawn with canvas tag native support for fonts.  If false, label will be drawn with Hershey font metrics.

    - -

    pt2px

    this.pt2px = null

    Point to pixel scaling factor, used for computing height of bounding box around a label.  The labels text renderer has a default setting of 1.4, which should be suitable for most fonts.  Leave as null to use default.  If tops of letters appear clipped, increase this.  If bounding box seems too big, decrease.  This is an issue only with the native font renderering capabilities of Mozilla 3.5 and Safari 4 since they do not provide a method to determine the font height.

    - -
    - - - - - - - - - - -
    this.angle = 0
    angle of text, measured clockwise from x axis.
    this.show = true
    wether or not to show the tick (mark and label).
    this.showLabel = true
    wether or not to show the label.
    this.label = ''
    label for the axis.
    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
    CSS spec for the font-family css attribute.
    this.fontSize = '11pt'
    CSS spec for font size.
    this.fontWeight = 'normal'
    this.fontStretch = 1.0
    Multiplier to condense or expand font width.
    this.textColor = '#666666'
    css spec for the color attribute.
    this.enableFontSupport = true
    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    this.pt2px = null
    Point to pixel scaling factor, used for computing height of bounding box around a label.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html deleted file mode 100644 index e3cde0b40..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html +++ /dev/null @@ -1,79 +0,0 @@ - - -$.jqplot.CanvasAxisTickRenderer - - - - - - - - - -

    Renderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.  This renderer uses a separate rendering engine to draw the text on the canvas.  Two modes of rendering the text are available.  If the browser has native font support for canvas fonts (currently Mozila 3.5 and Safari 4), you can enable text rendering with the canvas fillText method.  You do so by setting the “enableFontSupport” option to true.

    Browsers lacking native font support will have the text drawn on the canvas using the Hershey font metrics.  Even if the “enableFontSupport” option is true non-supporting browsers will still render with the Hershey font.

    Summary
    $.jqplot.CanvasAxisTickRendererRenderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.
    Properties
    marktick mark on the axis.
    showMarkwether or not to show the mark on the axis.
    showGridlinewether or not to draw the gridline on the grid at this tick.
    isMinorTickif this is a minor tick.
    angleangle of text, measured clockwise from x axis.
    markSizeLength of the tick marks in pixels.
    showwether or not to show the tick (mark and label).
    showLabelwether or not to show the label.
    labelPosition‘auto’, ‘start’, ‘middle’ or ‘end’.
    formatterA class of a formatter for the tick text.
    formatStringstring passed to the formatter.
    prefixString to prepend to the tick label.
    fontFamilycss spec for the font-family css attribute.
    fontSizeCSS spec for font size.
    fontWeightCSS spec for fontWeight
    fontStretchMultiplier to condense or expand font width.
    textColorcss spec for the color attribute.
    enableFontSupporttrue to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    pt2pxPoint to pixel scaling factor, used for computing height of bounding box around a label.
    - -

    Properties

    - -

    mark

    this.mark = 'outside'

    tick mark on the axis.  One of ‘inside’, ‘outside’, ‘cross’, ‘’ or null.

    - -

    showMark

    this.showMark = true

    wether or not to show the mark on the axis.

    - -

    showGridline

    this.showGridline = true

    wether or not to draw the gridline on the grid at this tick.

    - -

    isMinorTick

    this.isMinorTick = false

    if this is a minor tick.

    - -

    angle

    this.angle = 0

    angle of text, measured clockwise from x axis.

    - -

    markSize

    this.markSize = 4

    Length of the tick marks in pixels.  For ‘cross’ style, length will be stoked above and below axis, so total length will be twice this.

    - -

    show

    this.show = true

    wether or not to show the tick (mark and label).

    - -

    showLabel

    this.showLabel = true

    wether or not to show the label.

    - -

    labelPosition

    this.labelPosition = 'auto'

    ’auto’, ‘start’, ‘middle’ or ‘end’.  Whether tick label should be positioned so the start, middle, or end of the tick mark.

    - -

    formatter

    this.formatter = $.jqplot.DefaultTickFormatter

    A class of a formatter for the tick text.  The default $.jqplot.DefaultTickFormatter uses sprintf.

    - -

    formatString

    this.formatString = ''

    string passed to the formatter.

    - -

    prefix

    this.prefix = ''

    String to prepend to the tick label.  Prefix is prepended to the formatted tick label.

    - -

    fontFamily

    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'

    css spec for the font-family css attribute.

    - -

    fontSize

    this.fontSize = '10pt'

    CSS spec for font size.

    - -

    fontWeight

    this.fontWeight = 'normal'

    CSS spec for fontWeight

    - -

    fontStretch

    this.fontStretch = 1.0

    Multiplier to condense or expand font width.  Applies only to browsers which don’t support canvas native font rendering.

    - -

    textColor

    this.textColor = '#666666'

    css spec for the color attribute.

    - -

    enableFontSupport

    this.enableFontSupport = true

    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.  If true, tick label will be drawn with canvas tag native support for fonts.  If false, tick label will be drawn with Hershey font metrics.

    - -

    pt2px

    this.pt2px = null

    Point to pixel scaling factor, used for computing height of bounding box around a label.  The labels text renderer has a default setting of 1.4, which should be suitable for most fonts.  Leave as null to use default.  If tops of letters appear clipped, increase this.  If bounding box seems too big, decrease.  This is an issue only with the native font renderering capabilities of Mozilla 3.5 and Safari 4 since they do not provide a method to determine the font height.

    - -
    - - - - - - - - - - -
    this.mark = 'outside'
    tick mark on the axis.
    this.showMark = true
    wether or not to show the mark on the axis.
    this.showGridline = true
    wether or not to draw the gridline on the grid at this tick.
    this.isMinorTick = false
    if this is a minor tick.
    this.angle = 0
    angle of text, measured clockwise from x axis.
    this.markSize = 4
    Length of the tick marks in pixels.
    this.show = true
    wether or not to show the tick (mark and label).
    this.showLabel = true
    wether or not to show the label.
    this.labelPosition = 'auto'
    ‘auto’, ‘start’, ‘middle’ or ‘end’.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    this.formatString = ''
    string passed to the formatter.
    this.prefix = ''
    String to prepend to the tick label.
    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
    css spec for the font-family css attribute.
    this.fontSize = '10pt'
    CSS spec for font size.
    this.fontWeight = 'normal'
    CSS spec for fontWeight
    this.fontStretch = 1.0
    Multiplier to condense or expand font width.
    this.textColor = '#666666'
    css spec for the color attribute.
    this.enableFontSupport = true
    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    this.pt2px = null
    Point to pixel scaling factor, used for computing height of bounding box around a label.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasOverlay-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasOverlay-js.html deleted file mode 100644 index 3e5880ac5..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-canvasOverlay-js.html +++ /dev/null @@ -1,113 +0,0 @@ - - -$.jqplot.CanvasOverlay - - - - - - - - - -
    Summary
    $.jqplot.CanvasOverlay
    Properties
    objects
    nameOptional name for the overlay object.
    showtrue to show (draw), false to not draw.
    lineWidthWidth of the line.
    lineCapType of ending placed on the line [‘round’, ‘butt’, ‘square’]
    colorcolor of the line
    shadowwether or not to draw a shadow on the line
    shadowAngleShadow angle in degrees
    shadowOffsetShadow offset from line in pixels
    shadowDepthNumber of times shadow is stroked, each stroke offset shadowOffset from the last.
    shadowAlphaAlpha channel transparency of shadow.
    xaxisX axis to use for positioning/scaling the line.
    yaxisY axis to use for positioning/scaling the line.
    showTooltipShow a tooltip with data point values.
    showTooltipPrecisionControls how close to line cursor must be to show tooltip.
    tooltipLocationWhere to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
    fadeTooltiptrue = fade in/out tooltip, flase = show/hide tooltip
    tooltipFadeSpeed‘slow’, ‘def’, ‘fast’, or number of milliseconds.
    tooltipOffsetPixel offset of tooltip from the highlight.
    tooltipFormatStringFormat string passed the x and y values of the cursor on the line.
    LineA straight line.
    Properties
    start[x, y] coordinates for the start of the line.
    stop[x, y] coordinates for the end of the line.
    HorizontalLineA straight horizontal line.
    Properties
    yy value to position the line
    xminx value for the start of the line, null to scale to axis min.
    xmaxx value for the end of the line, null to scale to axis max.
    DashedHorizontalLineA straight dashed horizontal line.
    Properties
    dashPatternArray of line, space settings in pixels.
    VerticalLineA straight vertical line.
    DashedVerticalLineA straight dashed vertical line.
    Properties
    dashPatternArray of line, space settings in pixels.
    - -

    Properties

    - -

    objects

    this.objects = []
    - -

    name

    Optional name for the overlay object.  Can be later used to retrieve the object by name.

    - -

    show

    true to show (draw), false to not draw.

    - -

    lineWidth

    Width of the line.

    - -

    lineCap

    Type of ending placed on the line [‘round’, ‘butt’, ‘square’]

    - -

    color

    color of the line

    - -

    shadow

    wether or not to draw a shadow on the line

    - -

    shadowAngle

    Shadow angle in degrees

    - -

    shadowOffset

    Shadow offset from line in pixels

    - -

    shadowDepth

    Number of times shadow is stroked, each stroke offset shadowOffset from the last.

    - -

    shadowAlpha

    Alpha channel transparency of shadow.  0 = transparent.

    - -

    xaxis

    X axis to use for positioning/scaling the line.

    - -

    yaxis

    Y axis to use for positioning/scaling the line.

    - -

    showTooltip

    Show a tooltip with data point values.

    - -

    showTooltipPrecision

    Controls how close to line cursor must be to show tooltip.  Higher number = closer to line, lower number = farther from line.  1.0 = cursor must be over line.

    - -

    tooltipLocation

    Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

    - -

    fadeTooltip

    true = fade in/out tooltip, flase = show/hide tooltip

    - -

    tooltipFadeSpeed

    ’slow’, ‘def’, ‘fast’, or number of milliseconds.

    - -

    tooltipOffset

    Pixel offset of tooltip from the highlight.

    - -

    tooltipFormatString

    tooltipFormatString: '%d, %d' }

    Format string passed the x and y values of the cursor on the line. e.g., ‘Dogs: %.2f, Cats: %d’.

    - -

    Line

    A straight line.

    Summary
    Properties
    start[x, y] coordinates for the start of the line.
    stop[x, y] coordinates for the end of the line.
    - -

    Properties

    - -

    start

    [x, y] coordinates for the start of the line.

    - -

    stop

    stop: [] }

    [x, y] coordinates for the end of the line.

    - -

    HorizontalLine

    A straight horizontal line.

    Summary
    Properties
    yy value to position the line
    xminx value for the start of the line, null to scale to axis min.
    xmaxx value for the end of the line, null to scale to axis max.
    - -

    Properties

    - -

    y

    y value to position the line

    - -

    xmin

    x value for the start of the line, null to scale to axis min.

    - -

    xmax

    x value for the end of the line, null to scale to axis max.

    - -

    DashedHorizontalLine

    A straight dashed horizontal line.

    Summary
    Properties
    dashPatternArray of line, space settings in pixels.
    - -

    Properties

    - -

    dashPattern

    dashPattern: [8,8] }

    Array of line, space settings in pixels.  Default is 8 pixel of line, 8 pixel of space.  Note, limit to a 2 element array b/c of bug with higher order arrays.

    - -

    VerticalLine

    A straight vertical line.

    - -

    DashedVerticalLine

    A straight dashed vertical line.

    Summary
    Properties
    dashPatternArray of line, space settings in pixels.
    - -

    Properties

    - -

    dashPattern

    dashPattern: [8,8] }

    Array of line, space settings in pixels.  Default is 8 pixel of line, 8 pixel of space.  Note, limit to a 2 element array b/c of bug with higher order arrays.

    - -
    - - - - - - - - - - -
    this.objects = []
    tooltipFormatString: '%d, %d' }
    Format string passed the x and y values of the cursor on the line.
    stop: [] }
    [x, y] coordinates for the end of the line.
    dashPattern: [8,8] }
    Array of line, space settings in pixels.
    dashPattern: [8,8] }
    Array of line, space settings in pixels.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-categoryAxisRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-categoryAxisRenderer-js.html deleted file mode 100644 index 184af07f6..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-categoryAxisRenderer-js.html +++ /dev/null @@ -1,46 +0,0 @@ - - -$.jqplot.CategoryAxisRenderer - - - - - - - - - -

    A plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.

    To use this renderer, include the plugin in your source

    <script type="text/javascript" language="javascript" src="plugins/jqplot.categoryAxisRenderer.js"></script>

    and supply the appropriate options to your plot

    {axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer}}}
    Summary
    $.jqplot.CategoryAxisRendererA plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.
    Properties
    sortMergedLabelsTrue to sort tick labels when labels are created by merging x axis values from multiple series.
    tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    - -

    Properties

    - -

    sortMergedLabels

    this.sortMergedLabels = false

    True to sort tick labels when labels are created by merging x axis values from multiple series.  That is, say you have two series like:

    line1 = [[2006, 4],            [2008, 9], [2009, 16]];
    -line2 = [[2006, 3], [2007, 7], [2008, 6]];

    If no label array is specified, tick labels will be collected from the x values of the series.  With sortMergedLabels set to true, tick labels will be:

    [2006, 2007, 2008, 2009]

    With sortMergedLabels set to false, tick labels will be:

    [2006, 2008, 2009, 2007]

    Note, this property is specified on the renderOptions for the axes when creating a plot:

    axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer, rendererOptions:{sortMergedLabels:true}}}
    - -

    tickRenderer

    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer. this.tickRenderer = $.jqplot.AxisTickRenderer; this.labelRenderer = $.jqplot.AxisLabelRenderer;

    - -
    - - - - - - - - - - -
    this.sortMergedLabels = false
    True to sort tick labels when labels are created by merging x axis values from multiple series.
    A “tick” object showing the value of a tick/gridline on the plot.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-ciParser-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-ciParser-js.html deleted file mode 100644 index eb0ba28a4..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-ciParser-js.html +++ /dev/null @@ -1,39 +0,0 @@ - - -$.jqplot.ciParser - - - - - - - - - -

    Data Renderer function which converts a custom JSON data object into jqPlot data format.  Set this as a callable on the jqplot dataRenderer plot option:

    plot = $.jqplot('mychart', [data], { dataRenderer: $.jqplot.ciParser, ... });

    Where data is an object in JSON format or a JSON encoded string conforming to the City Index API spec.

    Note that calling the renderer function is handled internally by jqPlot.  The user does not have to call the function.  The parameters described below will automatically be passed to the ciParser function.

    Parameters

    dataJSON encoded string or object.
    plotreference to jqPlot Plot object.

    Returns

    data array in jqPlot format.

    - -
    - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-cursor-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-cursor-js.html deleted file mode 100644 index e9388fff4..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-cursor-js.html +++ /dev/null @@ -1,93 +0,0 @@ - - -$.jqplot.Cursor - - - - - - - - - -

    Plugin class representing the cursor as displayed on the plot.

    Summary
    $.jqplot.CursorPlugin class representing the cursor as displayed on the plot.
    Properties
    styleCSS spec for cursor style
    showwether to show the cursor or not.
    showTooltipshow a cursor position tooltip.
    followMouseTooltip follows the mouse, it is not at a fixed location.
    tooltipLocationWhere to position tooltip.
    tooltipOffsetPixel offset of tooltip from the grid boudaries or cursor center.
    showTooltipGridPositionshow the grid pixel coordinates of the mouse.
    showTooltipUnitPositionshow the unit (data) coordinates of the mouse.
    showTooltipDataPositionUsed with showVerticalLine to show intersecting data points in the tooltip.
    tooltipFormatStringsprintf format string for the tooltip.
    useAxesFormattersUse the x and y axes formatters to format the text in the tooltip.
    tooltipAxisGroupsShow position for the specified axes.
    zoomEnable plot zooming.
    looseZoomWill expand zoom range to provide more rounded tick values.
    clickResetWill reset plot zoom if single click on plot without drag.
    dblClickResetWill reset plot zoom if double click on plot without drag.
    showVerticalLinedraw a vertical line across the plot which follows the cursor.
    showHorizontalLinedraw a horizontal line across the plot which follows the cursor.
    constrainZoomTo‘none’, ‘x’ or ‘y’
    intersectionThresholdpixel distance from data point or marker to consider cursor lines intersecting with point.
    showCursorLegendReplace the plot legend with an enhanced legend displaying intersection information.
    cursorLegendFormatStringFormat string used in the cursor legend.
    constrainOutsideZoomTrue to limit actual zoom area to edges of grid, even when zooming outside of plot area.
    showTooltipOutsideZoomTrue will keep updating the tooltip when zooming of the grid.
    methods
    $.jqplot.Cursor.zoomProxylinks targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
    - -

    Properties

    - -

    style

    this.style = 'crosshair'

    CSS spec for cursor style

    - -

    show

    this.show = $.jqplot.config.enablePlugins

    wether to show the cursor or not.

    - -

    showTooltip

    this.showTooltip = true

    show a cursor position tooltip.  Location of the tooltip will be controlled by followMouse and tooltipLocation.

    - -

    followMouse

    this.followMouse = false

    Tooltip follows the mouse, it is not at a fixed location.  Tooltip will show on the grid at the location given by tooltipLocation, offset from the grid edge by tooltipOffset.

    - -

    tooltipLocation

    this.tooltipLocation = 'se'

    Where to position tooltip.  If followMouse is true, this is relative to the cursor, otherwise, it is relative to the grid.  One of ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

    - -

    tooltipOffset

    this.tooltipOffset = 6

    Pixel offset of tooltip from the grid boudaries or cursor center.

    - -

    showTooltipGridPosition

    this.showTooltipGridPosition = false

    show the grid pixel coordinates of the mouse.

    - -

    showTooltipUnitPosition

    this.showTooltipUnitPosition = true

    show the unit (data) coordinates of the mouse.

    - -

    showTooltipDataPosition

    this.showTooltipDataPosition = false

    Used with showVerticalLine to show intersecting data points in the tooltip.

    - -

    tooltipFormatString

    this.tooltipFormatString = '%.4P, %.4P'

    sprintf format string for the tooltip.  Uses Ash Searle’s javascript sprintf implementation found here: http://hexmen.com/blog/2007/03/printf-sprintf/ See http://perldoc.perl.org/functions/sprintf.html for reference Note, if showTooltipDataPosition is true, the default tooltipFormatString will be set to the cursorLegendFormatString, not the default given here.

    - -

    useAxesFormatters

    this.useAxesFormatters = true

    Use the x and y axes formatters to format the text in the tooltip.

    - -

    tooltipAxisGroups

    this.tooltipAxisGroups = []

    Show position for the specified axes.  This is an array like [[‘xaxis’, ‘yaxis’], [‘xaxis’, ‘y2axis’]] Default is to compute automatically for all visible axes.

    - -

    zoom

    this.zoom = false

    Enable plot zooming.

    - -

    looseZoom

    this.looseZoom = true

    Will expand zoom range to provide more rounded tick values.  Works only with linear, log and date axes.

    - -

    clickReset

    this.clickReset = false

    Will reset plot zoom if single click on plot without drag.

    - -

    dblClickReset

    this.dblClickReset = true

    Will reset plot zoom if double click on plot without drag.

    - -

    showVerticalLine

    this.showVerticalLine = false

    draw a vertical line across the plot which follows the cursor.  When the line is near a data point, a special legend and/or tooltip can be updated with the data values.

    - -

    showHorizontalLine

    this.showHorizontalLine = false

    draw a horizontal line across the plot which follows the cursor.

    - -

    constrainZoomTo

    this.constrainZoomTo = 'none'

    ’none’, ‘x’ or ‘y’

    - -

    intersectionThreshold

    this.intersectionThreshold = 2

    pixel distance from data point or marker to consider cursor lines intersecting with point.  If data point markers are not shown, this should be >= 1 or will often miss point intersections.

    - -

    showCursorLegend

    this.showCursorLegend = false

    Replace the plot legend with an enhanced legend displaying intersection information.

    - -

    cursorLegendFormatString

    this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString

    Format string used in the cursor legend.  If showTooltipDataPosition is true, this will also be the default format string used by tooltipFormatString.

    - -

    constrainOutsideZoom

    this.constrainOutsideZoom = true

    True to limit actual zoom area to edges of grid, even when zooming outside of plot area.  That is, can’t zoom out by mousing outside plot.

    - -

    showTooltipOutsideZoom

    this.showTooltipOutsideZoom = false

    True will keep updating the tooltip when zooming of the grid.

    - -

    methods

    - -

    $.jqplot.Cursor.zoomProxy

    $.jqplot.Cursor.zoomProxy = function(targetPlot,
    controllerPlot)

    links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot. controllerPlot will not actually zoom, but acts as an overview plot.  Note, the zoom options must be set to true for zoomProxy to work.

    - -
    - - - - - - - - - - -
    this.style = 'crosshair'
    CSS spec for cursor style
    this.show = $.jqplot.config.enablePlugins
    wether to show the cursor or not.
    this.showTooltip = true
    show a cursor position tooltip.
    this.followMouse = false
    Tooltip follows the mouse, it is not at a fixed location.
    this.tooltipLocation = 'se'
    Where to position tooltip.
    this.tooltipOffset = 6
    Pixel offset of tooltip from the grid boudaries or cursor center.
    this.showTooltipGridPosition = false
    show the grid pixel coordinates of the mouse.
    this.showTooltipUnitPosition = true
    show the unit (data) coordinates of the mouse.
    this.showTooltipDataPosition = false
    Used with showVerticalLine to show intersecting data points in the tooltip.
    this.tooltipFormatString = '%.4P, %.4P'
    sprintf format string for the tooltip.
    this.useAxesFormatters = true
    Use the x and y axes formatters to format the text in the tooltip.
    this.tooltipAxisGroups = []
    Show position for the specified axes.
    this.zoom = false
    Enable plot zooming.
    this.looseZoom = true
    Will expand zoom range to provide more rounded tick values.
    this.clickReset = false
    Will reset plot zoom if single click on plot without drag.
    this.dblClickReset = true
    Will reset plot zoom if double click on plot without drag.
    this.showVerticalLine = false
    draw a vertical line across the plot which follows the cursor.
    this.showHorizontalLine = false
    draw a horizontal line across the plot which follows the cursor.
    this.constrainZoomTo = 'none'
    ‘none’, ‘x’ or ‘y’
    this.intersectionThreshold = 2
    pixel distance from data point or marker to consider cursor lines intersecting with point.
    this.showCursorLegend = false
    Replace the plot legend with an enhanced legend displaying intersection information.
    this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString
    Format string used in the cursor legend.
    this.constrainOutsideZoom = true
    True to limit actual zoom area to edges of grid, even when zooming outside of plot area.
    this.showTooltipOutsideZoom = false
    True will keep updating the tooltip when zooming of the grid.
    $.jqplot.Cursor.zoomProxy = function(targetPlot,
    controllerPlot)
    links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-dateAxisRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-dateAxisRenderer-js.html deleted file mode 100644 index 12bc4ab56..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-dateAxisRenderer-js.html +++ /dev/null @@ -1,101 +0,0 @@ - - -$.jqplot.DateAxisRenderer - - - - - - - - - -

    A plugin for a jqPlot to render an axis as a series of date values.  This renderer has no options beyond those supplied by the Axis class.  It supplies it’s own tick formatter, so the tickOptions.formatter option should not be overridden.

    Thanks to Ken Synder for his enhanced Date instance methods which are included with this code http://kendsnyder.com/sandbox/date/.

    To use this renderer, include the plugin in your source

    <script type="text/javascript" language="javascript" src="plugins/jqplot.dateAxisRenderer.js"></script>

    and supply the appropriate options to your plot

    {axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer}}}

    Dates can be passed into the axis in almost any recognizable value and will be parsed.  They will be rendered on the axis in the format specified by tickOptions.formatString.  e.g. tickOptions.formatString = ‘%Y-%m-%d’.

    Accecptable format codes are:

    Code    Result                  Description
    -            == Years ==
    -%Y      2008                Four-digit year
    -%y      08                  Two-digit year
    -            == Months ==
    -%m      09                  Two-digit month
    -%#m     9                   One or two-digit month
    -%B      September           Full month name
    -%b      Sep                 Abbreviated month name
    -            == Days ==
    -%d      05                  Two-digit day of month
    -%#d     5                   One or two-digit day of month
    -%e      5                   One or two-digit day of month
    -%A      Sunday              Full name of the day of the week
    -%a      Sun                 Abbreviated name of the day of the week
    -%w      0                   Number of the day of the week (0 = Sunday, 6 = Saturday)
    -%o      th                  The ordinal suffix string following the day of the month
    -            == Hours ==
    -%H      23                  Hours in 24-hour format (two digits)
    -%#H     3                   Hours in 24-hour integer format (one or two digits)
    -%I      11                  Hours in 12-hour format (two digits)
    -%#I     3                   Hours in 12-hour integer format (one or two digits)
    -%p      PM                  AM or PM
    -            == Minutes ==
    -%M      09                  Minutes (two digits)
    -%#M     9                   Minutes (one or two digits)
    -            == Seconds ==
    -%S      02                  Seconds (two digits)
    -%#S     2                   Seconds (one or two digits)
    -%s      1206567625723       Unix timestamp (Seconds past 1970-01-01 00:00:00)
    -            == Milliseconds ==
    -%N      008                 Milliseconds (three digits)
    -%#N     8                   Milliseconds (one to three digits)
    -            == Timezone ==
    -%O      360                 difference in minutes between local time and GMT
    -%Z      Mountain Standard Time  Name of timezone as reported by browser
    -%G      -06:00              Hours and minutes between GMT
    -            == Shortcuts ==
    -%F      2008-03-26          %Y-%m-%d
    -%T      05:06:30            %H:%M:%S
    -%X      05:06:30            %H:%M:%S
    -%x      03/26/08            %m/%d/%y
    -%D      03/26/08            %m/%d/%y
    -%#c     Wed Mar 26 15:31:00 2008  %a %b %e %H:%M:%S %Y
    -%v      3-Sep-2008          %e-%b-%Y
    -%R      15:31               %H:%M
    -%r      3:31:00 PM          %I:%M:%S %p
    -            == Characters ==
    -%n      \n                  Newline
    -%t      \t                  Tab
    -%%      %                   Percent Symbol
    Summary
    $.jqplot.DateAxisRendererA plugin for a jqPlot to render an axis as a series of date values.
    Properties
    tickRendererA class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    tickInsetControls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    drawBaselineTrue to draw the axis baseline.
    baselineWidthwidth of the baseline in pixels.
    baselineColorCSS color spec for the baseline.
    - -

    Properties

    - -

    tickRenderer

    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer. this.tickRenderer = $.jqplot.AxisTickRenderer; this.labelRenderer = $.jqplot.AxisLabelRenderer;

    - -

    tickInset

    this.tickInset = 0

    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.  0 is no inset, 0.5 is one half a tick interval, 1 is a full tick interval, etc.

    - -

    drawBaseline

    this.drawBaseline = true

    True to draw the axis baseline.

    - -

    baselineWidth

    this.baselineWidth = null

    width of the baseline in pixels.

    - -

    baselineColor

    this.baselineColor = null

    CSS color spec for the baseline.

    - -
    - - - - - - - - - - -
    A “tick” object showing the value of a tick/gridline on the plot.
    this.tickInset = 0
    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.baselineColor = null
    CSS color spec for the baseline.
    An individual axis object.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-donutRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-donutRenderer-js.html deleted file mode 100644 index 941cacd59..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-donutRenderer-js.html +++ /dev/null @@ -1,98 +0,0 @@ - - -$.jqplot.DonutRenderer - - - - - - - - - -

    Plugin renderer to draw a donut chart. x values, if present, will be used as slice labels. y values give slice size.

    To use this renderer, you need to include the donut renderer plugin, for example:

    <script type="text/javascript" src="plugins/jqplot.donutRenderer.js"></script>

    Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

    plot2 = $.jqplot('chart2', [s1, s2], {
    -    seriesDefaults: {
    -        renderer:$.jqplot.DonutRenderer,
    -        rendererOptions:{
    -             sliceMargin: 2,
    -             innerDiameter: 110,
    -             startAngle: -90
    -         }
    -     }
    -});

    A donut plot will trigger events on the plot target according to user interaction.  All events return the event object, the series index, the point (slice) index, and the point data for the appropriate slice.

    ’jqplotDataMouseOver’triggered when user mouseing over a slice.
    ’jqplotDataHighlight’triggered the first time user mouses over a slice, if highlighting is enabled.
    ’jqplotDataUnhighlight’triggered when a user moves the mouse out of a highlighted slice.
    ’jqplotDataClick’triggered when the user clicks on a slice.
    ’jqplotDataRightClick’tiggered when the user right clicks on a slice if the “captureRightClick” option is set to true on the plot.
    Summary
    $.jqplot.DonutRendererPlugin renderer to draw a donut chart.
    Properties
    diameterOuter diameter of the donut, auto computed by default
    innerDiameterInner diameter of the donut, auto calculated by default.
    thicknessthickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
    paddingpadding between the donut and plot edges, legend, etc.
    sliceMarginangular spacing between donut slices in degrees.
    ringMarginpixel distance between rings, or multiple series in a donut plot.
    filltrue or false, wether to fil the slices.
    shadowOffsetoffset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
    shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    highlightMouseOverTrue to highlight slice when moused over.
    highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
    highlightColorsan array of colors to use when highlighting a slice.
    dataLabelsEither ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    showDataLabelstrue to show data labels on slices.
    dataLabelFormatStringFormat string for data labels.
    dataLabelThreshold
    dataLabelPositionFactorA Multiplier (0-1) of the pie radius which controls position of label on slice.
    dataLabelNudgeNumber of pixels to slide the label away from (+) or toward (-) the center of the pie.
    startAngleAngle to start drawing donut in degrees.
    $.jqplot.DonutLegendRendererLegend Renderer specific to donut plots.
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    diameter

    this.diameter = null

    Outer diameter of the donut, auto computed by default

    - -

    innerDiameter

    this.innerDiameter = null

    Inner diameter of the donut, auto calculated by default.  If specified will override thickness value.

    - -

    thickness

    this.thickness = null

    thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.

    - -

    padding

    this.padding = 20

    padding between the donut and plot edges, legend, etc.

    - -

    sliceMargin

    this.sliceMargin = 0

    angular spacing between donut slices in degrees.

    - -

    ringMargin

    this.ringMargin = null

    pixel distance between rings, or multiple series in a donut plot. null will compute ringMargin based on sliceMargin.

    - -

    fill

    this.fill = true

    true or false, wether to fil the slices.

    - -

    shadowOffset

    this.shadowOffset = 2

    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.

    - -

    shadowAlpha

    this.shadowAlpha = 0.07

    transparency of the shadow (0 = transparent, 1 = opaque)

    - -

    shadowDepth

    this.shadowDepth = 5

    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

    - -

    highlightMouseOver

    this.highlightMouseOver = true

    True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

    - -

    highlightMouseDown

    this.highlightMouseDown = false

    True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

    - -

    highlightColors

    this.highlightColors = []

    an array of colors to use when highlighting a slice.

    - -

    dataLabels

    this.dataLabels = 'percent'

    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.  Defaults to percentage of each pie slice.

    - -

    showDataLabels

    this.showDataLabels = false

    true to show data labels on slices.

    - -

    dataLabelFormatString

    this.dataLabelFormatString = null

    Format string for data labels.  If none, ‘%s’ is used for “label” and for arrays, ‘%d’ for value and ‘%d%%’ for percentage.

    - -

    dataLabelThreshold

    this.dataLabelThreshold = 3
    Threshhold in percentage (0100) of pie area, below which no label will be displayed.  This applies to all label types, not just to percentage labels.
    - -

    dataLabelPositionFactor

    this.dataLabelPositionFactor = 0.4

    A Multiplier (0-1) of the pie radius which controls position of label on slice.  Increasing will slide label toward edge of pie, decreasing will slide label toward center of pie.

    - -

    dataLabelNudge

    this.dataLabelNudge = 0

    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.

    - -

    startAngle

    this.startAngle = 0

    Angle to start drawing donut in degrees.  According to orientation of canvas coordinate system: 0 = on the positive x axis -90 = on the positive y axis.  90 = on the negaive y axis.  180 or - 180 = on the negative x axis.

    - -

    $.jqplot.DonutLegendRenderer

    Legend Renderer specific to donut plots.  Set by default when user creates a donut plot.

    Summary
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    numberRows

    this.numberRows = null

    Maximum number of rows in the legend.  0 or null for unlimited.

    - -

    numberColumns

    this.numberColumns = null

    Maximum number of columns in the legend.  0 or null for unlimited.

    - -
    - - - - - - - - - - -
    this.diameter = null
    Outer diameter of the donut, auto computed by default
    this.innerDiameter = null
    Inner diameter of the donut, auto calculated by default.
    this.thickness = null
    thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
    this.padding = 20
    padding between the donut and plot edges, legend, etc.
    this.sliceMargin = 0
    angular spacing between donut slices in degrees.
    this.ringMargin = null
    pixel distance between rings, or multiple series in a donut plot.
    this.fill = true
    true or false, wether to fil the slices.
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.showDataLabels = false
    true to show data labels on slices.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelThreshold = 3
    this.dataLabelPositionFactor = 0.4
    A Multiplier (0-1) of the pie radius which controls position of label on slice.
    this.dataLabelNudge = 0
    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
    this.startAngle = 0
    Angle to start drawing donut in degrees.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-dragable-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-dragable-js.html deleted file mode 100644 index d58032091..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-dragable-js.html +++ /dev/null @@ -1,45 +0,0 @@ - - -$.jqplot.Dragable - - - - - - - - - -

    Plugin to make plotted points dragable by the user.

    Summary
    $.jqplot.DragablePlugin to make plotted points dragable by the user.
    Properties
    colorCSS color spec for the dragged point (and adjacent line segment or bar).
    constrainToConstrain dragging motion to an axis or to none.
    - -

    Properties

    - -

    color

    this.color

    CSS color spec for the dragged point (and adjacent line segment or bar).

    - -

    constrainTo

    this.constrainTo = 'none'

    Constrain dragging motion to an axis or to none.  Allowable values are ‘none’, ‘x’, ‘y’

    - -
    - - - - - - - - - - -
    this.color
    CSS color spec for the dragged point (and adjacent line segment or bar).
    this.constrainTo = 'none'
    Constrain dragging motion to an axis or to none.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html deleted file mode 100644 index 100424cc7..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html +++ /dev/null @@ -1,51 +0,0 @@ - - -/Users/chris/Sites/lib/jqplot/build/plugins/jqplot.enhancedLegendRenderer.js - - - - - - - - - -
    Summary
    jqplot.enhancedLegendRenderer.js
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    seriesTogglefalse to not enable series on/off toggling on the legend.
    seriesToggleReplotTrue to replot the chart after toggling series on/off.
    disableIEFadingtrue to toggle series with a show/hide method only and not allow fading in/out.
    - -

    Properties

    - -

    numberRows

    this.numberRows = null

    Maximum number of rows in the legend.  0 or null for unlimited.

    - -

    numberColumns

    this.numberColumns = null

    Maximum number of columns in the legend.  0 or null for unlimited.

    - -

    seriesToggle

    this.seriesToggle = 'normal'

    false to not enable series on/off toggling on the legend. true or a fadein/fadeout speed (number of milliseconds or ‘fast’, ‘normal’, ‘slow’) to enable show/hide of series on click of legend item.

    - -

    seriesToggleReplot

    this.seriesToggleReplot = false

    True to replot the chart after toggling series on/off.  This will set the series show property to false.  This allows for rescaling or other maniplation of chart.  Set to an options object (e.g.  {resetAxes: true}) for replot options.

    - -

    disableIEFading

    this.disableIEFading = true

    true to toggle series with a show/hide method only and not allow fading in/out.  This is to overcome poor performance of fade in some versions of IE.

    - -
    - - - - - - - - - - -
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.seriesToggle = 'normal'
    false to not enable series on/off toggling on the legend.
    this.seriesToggleReplot = false
    True to replot the chart after toggling series on/off.
    this.disableIEFading = true
    true to toggle series with a show/hide method only and not allow fading in/out.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-funnelRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-funnelRenderer-js.html deleted file mode 100644 index c2bb95f82..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-funnelRenderer-js.html +++ /dev/null @@ -1,87 +0,0 @@ - - -$.jqplot.FunnelRenderer - - - - - - - - - -

    Plugin renderer to draw a funnel chart. x values, if present, will be used as labels. y values give area size.

    Funnel charts will draw a single series only.

    To use this renderer, you need to include the funnel renderer plugin, for example:

    <script type="text/javascript" src="plugins/jqplot.funnelRenderer.js"></script>

    Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

    plot2 = $.jqplot('chart2', [s1, s2], {
    -    seriesDefaults: {
    -        renderer:$.jqplot.FunnelRenderer,
    -        rendererOptions:{
    -             sectionMargin: 12,
    -             widthRatio: 0.3
    -         }
    -     }
    -});

    IMPORTANT

    The funnel renderer will reorder data in descending order so the largest value in the data set is first and displayed on top of the funnel.  Data will then be displayed in descending order down the funnel.  The area of each funnel section will correspond to the value of each data point relative to the sum of all values.  That is section area is proportional to section value divided by sum of all section values.

    If your data is not in descending order when passed into the plot, it will be reordered when stored in the series.data property.  A copy of the unordered data is kept in the series._unorderedData property.

    A funnel plot will trigger events on the plot target according to user interaction.  All events return the event object, the series index, the point (section) index, and the point data for the appropriate section.  Note the point index will referr to the ordered data, not the original unordered data.

    ’jqplotDataMouseOver’triggered when mousing over a section.
    ’jqplotDataHighlight’triggered the first time user mouses over a section, if highlighting is enabled.
    ’jqplotDataUnhighlight’triggered when a user moves the mouse out of a highlighted section.
    ’jqplotDataClick’triggered when the user clicks on a section.
    ’jqplotDataRightClick’tiggered when the user right clicks on a section if the “captureRightClick” option is set to true on the plot.
    Summary
    $.jqplot.FunnelRendererPlugin renderer to draw a funnel chart.
    Properties
    paddingpadding between the funnel and plot edges, legend, etc.
    sectionMarginspacing between funnel sections in pixels.
    filltrue or false, wether to fill the areas.
    shadowOffsetoffset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
    shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
    shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    highlightMouseOverTrue to highlight area when moused over.
    highlightMouseDownTrue to highlight when a mouse button is pressed over a area.
    highlightColorsarray of colors to use when highlighting an area.
    widthRatioThe ratio of the width of the top of the funnel to the bottom.
    lineWidthwidth of line if areas are stroked and not filled.
    dataLabelsEither ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    showDataLabelstrue to show data labels on slices.
    dataLabelFormatStringFormat string for data labels.
    dataLabelThreshold
    $.jqplot.FunnelLegendRendererLegend Renderer specific to funnel plots.
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    padding

    this.padding = {top: 20, right: 20, bottom: 20, left: 20}

    padding between the funnel and plot edges, legend, etc.

    - -

    sectionMargin

    this.sectionMargin = 6

    spacing between funnel sections in pixels.

    - -

    fill

    this.fill = true

    true or false, wether to fill the areas.

    - -

    shadowOffset

    this.shadowOffset = 2

    offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.

    - -

    shadowAlpha

    this.shadowAlpha = 0.07

    transparency of the shadow (0 = transparent, 1 = opaque)

    - -

    shadowDepth

    this.shadowDepth = 5

    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

    - -

    highlightMouseOver

    this.highlightMouseOver = true

    True to highlight area when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a area.

    - -

    highlightMouseDown

    this.highlightMouseDown = false

    True to highlight when a mouse button is pressed over a area.  This will be disabled if highlightMouseOver is true.

    - -

    highlightColors

    this.highlightColors = []

    array of colors to use when highlighting an area.

    - -

    widthRatio

    this.widthRatio = 0.2

    The ratio of the width of the top of the funnel to the bottom. a ratio of 0 will make an upside down pyramid.

    - -

    lineWidth

    this.lineWidth = 2

    width of line if areas are stroked and not filled.

    - -

    dataLabels

    this.dataLabels = 'percent'

    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.  Defaults to percentage of each pie slice.

    - -

    showDataLabels

    this.showDataLabels = false

    true to show data labels on slices.

    - -

    dataLabelFormatString

    this.dataLabelFormatString = null

    Format string for data labels.  If none, ‘%s’ is used for “label” and for arrays, ‘%d’ for value and ‘%d%%’ for percentage.

    - -

    dataLabelThreshold

    this.dataLabelThreshold = 3
    Threshhold in percentage (0100) of pie area, below which no label will be displayed.  This applies to all label types, not just to percentage labels.
    - -

    $.jqplot.FunnelLegendRenderer

    Legend Renderer specific to funnel plots.  Set by default when the user creates a funnel plot.

    Summary
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    numberRows

    this.numberRows = null

    Maximum number of rows in the legend.  0 or null for unlimited.

    - -

    numberColumns

    this.numberColumns = null

    Maximum number of columns in the legend.  0 or null for unlimited.

    - -
    - - - - - - - - - - -
    this.padding = {top: 20, right: 20, bottom: 20, left: 20}
    padding between the funnel and plot edges, legend, etc.
    this.sectionMargin = 6
    spacing between funnel sections in pixels.
    this.fill = true
    true or false, wether to fill the areas.
    this.shadowOffset = 2
    offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.highlightMouseOver = true
    True to highlight area when moused over.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a area.
    this.highlightColors = []
    array of colors to use when highlighting an area.
    this.widthRatio = 0.2
    The ratio of the width of the top of the funnel to the bottom.
    this.lineWidth = 2
    width of line if areas are stroked and not filled.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.showDataLabels = false
    true to show data labels on slices.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelThreshold = 3
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-highlighter-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-highlighter-js.html deleted file mode 100644 index cf39133ef..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-highlighter-js.html +++ /dev/null @@ -1,80 +0,0 @@ - - -$.jqplot.Highlighter - - - - - - - - - -

    Plugin which will highlight data points when they are moused over.

    To use this plugin, include the js file in your source:

    <script type="text/javascript" src="plugins/jqplot.highlighter.js"></script>

    A tooltip providing information about the data point is enabled by default.  To disable the tooltip, set “showTooltip” to false.

    You can control what data is displayed in the tooltip with various options.  The “tooltipAxes” option controls wether the x, y or both data values are displayed.

    Some chart types (e.g. hi-low-close) have more than one y value per data point.  To display the additional values in the tooltip, set the “yvalues” option to the desired number of y values present (3 for a hlc chart).

    By default, data values will be formatted with the same formatting specifiers as used to format the axis ticks.  A custom format code can be supplied with the tooltipFormatString option.  This will apply to all values in the tooltip.

    For more complete control, the “formatString” option can be set.  This Allows conplete control over tooltip formatting.  Values are passed to the format string in an order determined by the “tooltipAxes” and “yvalues” options.  So, if you have a hi-low-close chart and you just want to display the hi-low-close values in the tooltip, you could set a formatString like:

    highlighter: {
    -    tooltipAxes: 'y',
    -    yvalues: 3,
    -    formatString:'<table class="jqplot-highlighter">
    -        <tr><td>hi:</td><td>%s</td></tr>
    -        <tr><td>low:</td><td>%s</td></tr>
    -        <tr><td>close:</td><td>%s</td></tr></table>'
    -}
    Summary
    $.jqplot.HighlighterPlugin which will highlight data points when they are moused over.
    Properties
    showtrue to show the highlight.
    markerRendererRenderer used to draw the marker of the highlighted point.
    showMarkertrue to show the marker
    lineWidthAdjustPixels to add to the lineWidth of the highlight.
    sizeAdjustPixels to add to the overall size of the highlight.
    showTooltipShow a tooltip with data point values.
    tooltipLocationWhere to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
    fadeTooltiptrue = fade in/out tooltip, flase = show/hide tooltip
    tooltipFadeSpeed‘slow’, ‘def’, ‘fast’, or number of milliseconds.
    tooltipOffsetPixel offset of tooltip from the highlight.
    tooltipAxesWhich axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
    useAxesFormattersUse the x and y axes formatters to format the text in the tooltip.
    tooltipFormatStringsprintf format string for the tooltip.
    formatStringalternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
    yvaluesNumber of y values to expect in the data point array.
    bringSeriesToFrontThis option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
    - -

    Properties

    - -

    show

    this.show = $.jqplot.config.enablePlugins

    true to show the highlight.

    - -

    markerRenderer

    this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})

    Renderer used to draw the marker of the highlighted point.  Renderer will assimilate attributes from the data point being highlighted, so no attributes need set on the renderer directly.  Default is to turn off shadow drawing on the highlighted point.

    - -

    showMarker

    this.showMarker = true

    true to show the marker

    - -

    lineWidthAdjust

    this.lineWidthAdjust = 2.5

    Pixels to add to the lineWidth of the highlight.

    - -

    sizeAdjust

    this.sizeAdjust = 5

    Pixels to add to the overall size of the highlight.

    - -

    showTooltip

    this.showTooltip = true

    Show a tooltip with data point values.

    - -

    tooltipLocation

    this.tooltipLocation = 'nw'

    Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

    - -

    fadeTooltip

    this.fadeTooltip = true

    true = fade in/out tooltip, flase = show/hide tooltip

    - -

    tooltipFadeSpeed

    this.tooltipFadeSpeed = "fast"

    ’slow’, ‘def’, ‘fast’, or number of milliseconds.

    - -

    tooltipOffset

    this.tooltipOffset = 2

    Pixel offset of tooltip from the highlight.

    - -

    tooltipAxes

    this.tooltipAxes = 'both'

    Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.

    - -

    useAxesFormatters

    this.useAxesFormatters = true

    Use the x and y axes formatters to format the text in the tooltip.

    - -

    tooltipFormatString

    this.tooltipFormatString = '%.5P'

    sprintf format string for the tooltip.  Uses Ash Searle’s javascript sprintf implementation found here: http://hexmen.com/blog/2007/03/printf-sprintf/ See http://perldoc.perl.org/functions/sprintf.html for reference.  Additional “p” and “P” format specifiers added by Chris Leonello.

    - -

    formatString

    this.formatString = null

    alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.  So, you could have a tooltip like: ‘Date: %s, number of cats: %d’ to format the whole tooltip at one go.  If useAxesFormatters is true, values will be formatted according to Axes formatters and you can populate your tooltip string with %s placeholders.

    - -

    yvalues

    this.yvalues = 1

    Number of y values to expect in the data point array.  Typically this is 1.  Certain plots, like OHLC, will have more y values in each data point array.

    - -

    bringSeriesToFront

    this.bringSeriesToFront = false

    This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.

    - -
    - - - - - - - - - - -
    this.show = $.jqplot.config.enablePlugins
    true to show the highlight.
    this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})
    Renderer used to draw the marker of the highlighted point.
    this.showMarker = true
    true to show the marker
    this.lineWidthAdjust = 2.5
    Pixels to add to the lineWidth of the highlight.
    this.sizeAdjust = 5
    Pixels to add to the overall size of the highlight.
    this.showTooltip = true
    Show a tooltip with data point values.
    this.tooltipLocation = 'nw'
    Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
    this.fadeTooltip = true
    true = fade in/out tooltip, flase = show/hide tooltip
    this.tooltipFadeSpeed = "fast"
    ‘slow’, ‘def’, ‘fast’, or number of milliseconds.
    this.tooltipOffset = 2
    Pixel offset of tooltip from the highlight.
    this.tooltipAxes = 'both'
    Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
    this.useAxesFormatters = true
    Use the x and y axes formatters to format the text in the tooltip.
    this.tooltipFormatString = '%.5P'
    sprintf format string for the tooltip.
    this.formatString = null
    alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
    this.yvalues = 1
    Number of y values to expect in the data point array.
    this.bringSeriesToFront = false
    This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-logAxisRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-logAxisRenderer-js.html deleted file mode 100644 index 0f2e785b8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-logAxisRenderer-js.html +++ /dev/null @@ -1,47 +0,0 @@ - - -$.jqplot.LogAxisRenderer - - - - - - - - - -

    A plugin for a jqPlot to render a logarithmic axis.

    To use this renderer, include the plugin in your source

    <script type="text/javascript" language="javascript" src="plugins/jqplot.logAxisRenderer.js"></script>

    and supply the appropriate options to your plot

    {axes:{xaxis:{renderer:$.jqplot.LogAxisRenderer}}}
    Summary
    $.jqplot.LogAxisRendererA plugin for a jqPlot to render a logarithmic axis.
    axisDefaultsDefault properties which will be applied directly to the series.
    PropertiesProperties
    drawBaselineTrue to draw the axis baseline.
    minorTicksNumber of ticks to add between “major” ticks.
    - -

    axisDefaults

    Default properties which will be applied directly to the series.

    - -

    Properties

    Properties

    basethe logarithmic base, commonly 2, 10 or Math.E
    tickDistributionDeprecated.  “power” distribution of ticks always used.  Option has no effect.
    - -

    drawBaseline

    this.drawBaseline = true

    True to draw the axis baseline.

    - -

    minorTicks

    this.minorTicks = 'auto'

    Number of ticks to add between “major” ticks.  Major ticks are ticks supplied by user or auto computed.  Minor ticks cannot be created by user.

    - -
    - - - - - - - - - - -
    this.drawBaseline = true
    True to draw the axis baseline.
    this.minorTicks = 'auto'
    Number of ticks to add between “major” ticks.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html deleted file mode 100644 index d94ccd84c..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html +++ /dev/null @@ -1,49 +0,0 @@ - - -$.jqplot.MekkoAxisRenderer - - - - - - - - - -

    An axis renderer for a Mekko chart.  Should be used with a Mekko chart where the mekkoRenderer is used on the series.  Displays the Y axis as a range from 0 to 1 (0 to 100%) and the x axis with a tick for each series scaled to the sum of all the y values.

    Summary
    $.jqplot.MekkoAxisRendererAn axis renderer for a Mekko chart.
    Properties
    tickModeHow to space the ticks on the axis.
    barLabelRendererrenderer to use to draw labels under each bar.
    barLabelsarray of labels to put under each bar.
    barLabelOptionsoptions object to pass to the bar label renderer.
    - -

    Properties

    - -

    tickMode

    this.tickMode

    How to space the ticks on the axis.  ‘bar’ will place a tick at the width of each bar.  This is the default for the x axis.  ‘even’ will place ticks at even intervals.  This is the default for x2 axis and y axis.  y axis cannot be changed.

    - -

    barLabelRenderer

    this.barLabelRenderer = $.jqplot.AxisLabelRenderer

    renderer to use to draw labels under each bar.

    - -

    barLabels

    this.barLabels = this.barLabels || []

    array of labels to put under each bar.

    - -

    barLabelOptions

    this.barLabelOptions = {}

    options object to pass to the bar label renderer.

    - -
    - - - - - - - - - - -
    this.tickMode
    How to space the ticks on the axis.
    this.barLabelRenderer = $.jqplot.AxisLabelRenderer
    renderer to use to draw labels under each bar.
    this.barLabels = this.barLabels || []
    array of labels to put under each bar.
    this.barLabelOptions = {}
    options object to pass to the bar label renderer.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-mekkoRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-mekkoRenderer-js.html deleted file mode 100644 index 86a0913dc..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-mekkoRenderer-js.html +++ /dev/null @@ -1,62 +0,0 @@ - - -$.jqplot.MekkoRenderer - - - - - - - - - -

    Draws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph. the $.jqplot.MekkoAxisRenderer should be used with mekko charts.  The mekko renderer overrides the default legend renderer with it’s own $.jqplot.MekkoLegendRenderer which allows more flexibility to specify number of rows and columns in the legend.

    Data is specified per bar in the chart.  You can specify data as an array of y values, or as an array of [label, value] pairs.  Note that labels are used only on the first series.  Labels on subsequent series are ignored:

    bar1 = [['shirts', 8],['hats', 14],['shoes', 6],['gloves', 16],['dolls', 12]];
    -bar2 = [15,6,9,13,6];
    -bar3 = [['grumpy',4],['sneezy',2],['happy',7],['sleepy',9],['doc',7]];

    If you want to place labels for each bar under the axis, you use the barLabels option on the axes.  The bar labels can be styled with the “.jqplot-mekko-barLabel” css class.

    barLabels = ['Mickey Mouse', 'Donald Duck', 'Goofy'];
    -axes:{xaxis:{barLabels:barLabels}}
    Summary
    $.jqplot.MekkoRendererDraws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph.
    Properties
    borderColorcolor of the borders between areas on the chart
    showBordersTrue to draw borders lines between areas on the chart.
    Functions
    setGridDataconverts the user data values to grid coordinates and stores them in the gridData array.
    makeGridDataconverts any arbitrary data values to grid coordinates and returns them.
    $.jqplot.MekkoLegendRendererLegend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    borderColor

    this.borderColor = null

    color of the borders between areas on the chart

    - -

    showBorders

    this.showBorders = true

    True to draw borders lines between areas on the chart.  False will draw borders lines with the same color as the area.

    - -

    Functions

    - -

    setGridData

    $.jqplot.MekkoRenderer.prototype.setGridData = function(plot)

    converts the user data values to grid coordinates and stores them in the gridData array.  Will convert user data into appropriate rectangles.  Called with scope of a series.

    - -

    makeGridData

    $.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
    plot)

    converts any arbitrary data values to grid coordinates and returns them.  This method exists so that plugins can use a series’ linerenderer to generate grid data points without overwriting the grid data associated with that series.  Called with scope of a series.

    - -

    $.jqplot.MekkoLegendRenderer

    Legend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.

    Summary
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    numberRows

    this.numberRows = null

    Maximum number of rows in the legend.  0 or null for unlimited.

    - -

    numberColumns

    this.numberColumns = null

    Maximum number of columns in the legend.  0 or null for unlimited.

    - -
    - - - - - - - - - - -
    this.borderColor = null
    color of the borders between areas on the chart
    this.showBorders = true
    True to draw borders lines between areas on the chart.
    $.jqplot.MekkoRenderer.prototype.setGridData = function(plot)
    converts the user data values to grid coordinates and stores them in the gridData array.
    $.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
    plot)
    converts any arbitrary data values to grid coordinates and returns them.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    An axis renderer for a Mekko chart.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-meterGaugeRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-meterGaugeRenderer-js.html deleted file mode 100644 index 272cdac4f..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-meterGaugeRenderer-js.html +++ /dev/null @@ -1,103 +0,0 @@ - - -$.jqplot.MeterGaugeRenderer - - - - - - - - - -

    Plugin renderer to draw a meter gauge chart.

    Data consists of a single series with 1 data point to position the gauge needle.

    To use this renderer, you need to include the meter gauge renderer plugin, for example:

    <script type="text/javascript" src="plugins/jqplot.meterGaugeRenderer.js"></script>

    Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

    plot0 = $.jqplot('chart0',[[18]],{
    -    title: 'Network Speed',
    -    seriesDefaults: {
    -        renderer: $.jqplot.MeterGaugeRenderer,
    -        rendererOptions: {
    -            label: 'MB/s'
    -        }
    -    }
    -});

    A meterGauge plot does not support events.

    Summary
    $.jqplot.MeterGaugeRendererPlugin renderer to draw a meter gauge chart.
    Properties
    diameterOuter diameter of the meterGauge, auto computed by default
    paddingpadding between the meterGauge and plot edges, auto calculated by default.
    shadowOffsetoffset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
    shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
    shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    backgroundbackground color of the inside of the gauge.
    ringColorcolor of the outer ring, hub, and needle of the gauge.
    tickColorcolor of the tick marks around the gauge.
    ringWidthwidth of the ring around the gauge.
    minMinimum value on the gauge.
    maxMaximum value on the gauge.
    ticksArray of tick values.
    showTickstrue to show ticks around gauge.
    showTickLabelstrue to show tick labels next to ticks.
    labelA gauge label like ‘kph’ or ‘Volts’
    labelHeightAdjustNumber of Pixels to offset the label up (-) or down (+) from its default position.
    labelPositionWhere to position the label, either ‘inside’ or ‘bottom’.
    intervalsArray of ranges to be drawn around the gauge.
    intervalColorsArray of colors to use for the intervals.
    intervalInnerRadiusRadius of the inner circle of the interval ring.
    intervalOuterRadiusRadius of the outer circle of the interval ring.
    tickSpacingDegrees between ticks.
    hubRadiusRadius of the hub at the bottom center of gauge which the needle attaches to.
    tickPaddingpadding of the tick marks to the outer ring and the tick labels to marks.
    needleThicknessMaximum thickness the needle.
    needlePadPadding between needle and inner edge of the ring when the needle is at the min or max gauge value.
    pegNeedleTrue will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
    - -

    Properties

    - -

    diameter

    this.diameter = null

    Outer diameter of the meterGauge, auto computed by default

    - -

    padding

    this.padding = null

    padding between the meterGauge and plot edges, auto calculated by default.

    - -

    shadowOffset

    this.shadowOffset = 2

    offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.

    - -

    shadowAlpha

    this.shadowAlpha = 0.07

    transparency of the shadow (0 = transparent, 1 = opaque)

    - -

    shadowDepth

    this.shadowDepth = 4

    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

    - -

    background

    this.background = "#efefef"

    background color of the inside of the gauge.

    - -

    ringColor

    this.ringColor = "#BBC6D0"

    color of the outer ring, hub, and needle of the gauge.

    - -

    tickColor

    this.tickColor = "989898"

    color of the tick marks around the gauge.

    - -

    ringWidth

    this.ringWidth = null

    width of the ring around the gauge.  Auto computed by default.

    - -

    min

    this.min

    Minimum value on the gauge.  Auto computed by default

    - -

    max

    this.max

    Maximum value on the gauge.  Auto computed by default

    - -

    ticks

    this.ticks = []

    Array of tick values.  Auto computed by default.

    - -

    showTicks

    this.showTicks = true

    true to show ticks around gauge.

    - -

    showTickLabels

    this.showTickLabels = true

    true to show tick labels next to ticks.

    - -

    label

    this.label = null

    A gauge label like ‘kph’ or ‘Volts’

    - -

    labelHeightAdjust

    this.labelHeightAdjust = 0

    Number of Pixels to offset the label up (-) or down (+) from its default position.

    - -

    labelPosition

    this.labelPosition = 'inside'

    Where to position the label, either ‘inside’ or ‘bottom’.

    - -

    intervals

    this.intervals = []

    Array of ranges to be drawn around the gauge.  Array of form:

    [value1, value2, ...]

    indicating the values for the first, second, ... intervals.

    - -

    intervalColors

    this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]

    Array of colors to use for the intervals.

    - -

    intervalInnerRadius

    this.intervalInnerRadius = null

    Radius of the inner circle of the interval ring.

    - -

    intervalOuterRadius

    this.intervalOuterRadius = null

    Radius of the outer circle of the interval ring.

    - -

    tickSpacing

    this.tickSpacing = 30

    Degrees between ticks.  This is a target number, if incompatible span and ticks are supplied, a suitable spacing close to this value will be computed.

    - -

    hubRadius

    this.hubRadius = null

    Radius of the hub at the bottom center of gauge which the needle attaches to.  Auto computed by default

    - -

    tickPadding

    this.tickPadding = null

    padding of the tick marks to the outer ring and the tick labels to marks.  Auto computed by default.

    - -

    needleThickness

    this.needleThickness = null

    Maximum thickness the needle.  Auto computed by default.

    - -

    needlePad

    this.needlePad = 6

    Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.

    - -

    pegNeedle

    this.pegNeedle = true

    True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.

    - -
    - - - - - - - - - - -
    this.diameter = null
    Outer diameter of the meterGauge, auto computed by default
    this.padding = null
    padding between the meterGauge and plot edges, auto calculated by default.
    this.shadowOffset = 2
    offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowDepth = 4
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.background = "#efefef"
    background color of the inside of the gauge.
    this.ringColor = "#BBC6D0"
    color of the outer ring, hub, and needle of the gauge.
    this.tickColor = "989898"
    color of the tick marks around the gauge.
    this.ringWidth = null
    width of the ring around the gauge.
    this.min
    Minimum value on the gauge.
    this.max
    Maximum value on the gauge.
    this.ticks = []
    Array of tick values.
    this.showTicks = true
    true to show ticks around gauge.
    this.showTickLabels = true
    true to show tick labels next to ticks.
    this.label = null
    A gauge label like ‘kph’ or ‘Volts’
    this.labelHeightAdjust = 0
    Number of Pixels to offset the label up (-) or down (+) from its default position.
    this.labelPosition = 'inside'
    Where to position the label, either ‘inside’ or ‘bottom’.
    this.intervals = []
    Array of ranges to be drawn around the gauge.
    this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]
    Array of colors to use for the intervals.
    this.intervalInnerRadius = null
    Radius of the inner circle of the interval ring.
    this.intervalOuterRadius = null
    Radius of the outer circle of the interval ring.
    this.tickSpacing = 30
    Degrees between ticks.
    this.hubRadius = null
    Radius of the hub at the bottom center of gauge which the needle attaches to.
    this.tickPadding = null
    padding of the tick marks to the outer ring and the tick labels to marks.
    this.needleThickness = null
    Maximum thickness the needle.
    this.needlePad = 6
    Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.
    this.pegNeedle = true
    True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-ohlcRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-ohlcRenderer-js.html deleted file mode 100644 index 2888c8d8d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-ohlcRenderer-js.html +++ /dev/null @@ -1,65 +0,0 @@ - - -$.jqplot.OHLCRenderer - - - - - - - - - -

    jqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.

    To use this plugin, include the renderer js file in your source:

    <script type="text/javascript" src="plugins/jqplot.ohlcRenderer.js"></script>

    You will most likely want to use a date axis renderer for the x axis also, so include the date axis render js file also:

    <script type="text/javascript" src="plugins/jqplot.dateAxisRenderer.js"></script>

    Then you set the renderer in the series options on your plot

    series: [{renderer:$.jqplot.OHLCRenderer}]

    For OHLC and candlestick charts, data should be specified like so:

    dat = [['07/06/2009',138.7,139.68,135.18,135.4], ['06/29/2009',143.46,144.66,139.79,140.02], ...]

    If the data array has only 4 values per point instead of 5, the renderer will create a Hi Low Close chart instead.  In that case, data should be supplied like:

    dat = [['07/06/2009',139.68,135.18,135.4], ['06/29/2009',144.66,139.79,140.02], ...]

    To generate a candlestick chart instead of an OHLC chart, set the “candlestick” option to true:

    series: [{renderer:$.jqplot.OHLCRenderer, rendererOptions:{candleStick:true}}],
    Summary
    $.jqplot.OHLCRendererjqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.
    Properties
    candleSticktrue to render chart as candleStick.
    tickLengthlength of the line in pixels indicating open and close price.
    bodyWidthwidth of the candlestick body in pixels.
    openColorcolor of the open price tick mark.
    closeColorcolor of the close price tick mark.
    wickColorcolor of the hi-lo line thorugh the candlestick body.
    fillUpBodytrue to render an “up” day (close price greater than open price) with a filled candlestick body.
    fillDownBodytrue to render a “down” day (close price lower than open price) with a filled candlestick body.
    upBodyColorColor of candlestick body of an “up” day.
    downBodyColorColor of candlestick body on a “down” day.
    hlctrue if is a hi-low-close chart (no open price).
    lineWidthWidth of the hi-low line and open/close ticks.
    - -

    Properties

    - -

    candleStick

    this.candleStick = false

    true to render chart as candleStick.  Must have an open price, cannot be a hlc chart.

    - -

    tickLength

    this.tickLength = 'auto'

    length of the line in pixels indicating open and close price.  Default will auto calculate based on plot width and number of points displayed.

    - -

    bodyWidth

    this.bodyWidth = 'auto'

    width of the candlestick body in pixels.  Default will auto calculate based on plot width and number of candlesticks displayed.

    - -

    openColor

    this.openColor = null

    color of the open price tick mark.  Default is series color.

    - -

    closeColor

    this.closeColor = null

    color of the close price tick mark.  Default is series color.

    - -

    wickColor

    this.wickColor = null

    color of the hi-lo line thorugh the candlestick body.  Default is the series color.

    - -

    fillUpBody

    this.fillUpBody = false

    true to render an “up” day (close price greater than open price) with a filled candlestick body.

    - -

    fillDownBody

    this.fillDownBody = true

    true to render a “down” day (close price lower than open price) with a filled candlestick body.

    - -

    upBodyColor

    this.upBodyColor = null

    Color of candlestick body of an “up” day.  Default is series color.

    - -

    downBodyColor

    this.downBodyColor = null

    Color of candlestick body on a “down” day.  Default is series color.

    - -

    hlc

    this.hlc = false

    true if is a hi-low-close chart (no open price).  This is determined automatically from the series data.

    - -

    lineWidth

    this.lineWidth = 1.5

    Width of the hi-low line and open/close ticks.  Must be set in the rendererOptions for the series.

    - -
    - - - - - - - - - - -
    this.candleStick = false
    true to render chart as candleStick.
    this.tickLength = 'auto'
    length of the line in pixels indicating open and close price.
    this.bodyWidth = 'auto'
    width of the candlestick body in pixels.
    this.openColor = null
    color of the open price tick mark.
    this.closeColor = null
    color of the close price tick mark.
    this.wickColor = null
    color of the hi-lo line thorugh the candlestick body.
    this.fillUpBody = false
    true to render an “up” day (close price greater than open price) with a filled candlestick body.
    this.fillDownBody = true
    true to render a “down” day (close price lower than open price) with a filled candlestick body.
    this.upBodyColor = null
    Color of candlestick body of an “up” day.
    this.downBodyColor = null
    Color of candlestick body on a “down” day.
    this.hlc = false
    true if is a hi-low-close chart (no open price).
    this.lineWidth = 1.5
    Width of the hi-low line and open/close ticks.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pieRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pieRenderer-js.html deleted file mode 100644 index b805bc067..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pieRenderer-js.html +++ /dev/null @@ -1,93 +0,0 @@ - - -$.jqplot.PieRenderer - - - - - - - - - -

    Plugin renderer to draw a pie chart. x values, if present, will be used as slice labels. y values give slice size.

    To use this renderer, you need to include the pie renderer plugin, for example:

    <script type="text/javascript" src="plugins/jqplot.pieRenderer.js"></script>

    Properties described here are passed into the $.jqplot function as options on the series renderer.  For example:

    plot2 = $.jqplot('chart2', [s1, s2], {
    -    seriesDefaults: {
    -        renderer:$.jqplot.PieRenderer,
    -        rendererOptions:{
    -             sliceMargin: 2,
    -             startAngle: -90
    -         }
    -     }
    -});

    A pie plot will trigger events on the plot target according to user interaction.  All events return the event object, the series index, the point (slice) index, and the point data for the appropriate slice.

    ’jqplotDataMouseOver’triggered when user mouseing over a slice.
    ’jqplotDataHighlight’triggered the first time user mouses over a slice, if highlighting is enabled.
    ’jqplotDataUnhighlight’triggered when a user moves the mouse out of a highlighted slice.
    ’jqplotDataClick’triggered when the user clicks on a slice.
    ’jqplotDataRightClick’tiggered when the user right clicks on a slice if the “captureRightClick” option is set to true on the plot.
    Summary
    $.jqplot.PieRendererPlugin renderer to draw a pie chart.
    Properties
    diameterOuter diameter of the pie, auto computed by default
    paddingpadding between the pie and plot edges, legend, etc.
    sliceMarginangular spacing between pie slices in degrees.
    filltrue or false, wether to fil the slices.
    shadowOffsetoffset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    shadowAlphatransparency of the shadow (0 = transparent, 1 = opaque)
    shadowDepthnumber of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    highlightMouseOverTrue to highlight slice when moused over.
    highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
    highlightColorsan array of colors to use when highlighting a slice.
    dataLabelsEither ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    showDataLabelstrue to show data labels on slices.
    dataLabelFormatStringFormat string for data labels.
    dataLabelThresholdThreshhold in percentage (0-100) of pie area, below which no label will be displayed.
    dataLabelPositionFactorA Multiplier (0-1) of the pie radius which controls position of label on slice.
    dataLabelNudgeNumber of pixels to slide the label away from (+) or toward (-) the center of the pie.
    dataLabelCenterOnTrue to center the data label at its position.
    startAngleAngle to start drawing pie in degrees.
    $.jqplot.PieLegendRendererLegend Renderer specific to pie plots.
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    diameter

    this.diameter = null

    Outer diameter of the pie, auto computed by default

    - -

    padding

    this.padding = 20

    padding between the pie and plot edges, legend, etc.

    - -

    sliceMargin

    this.sliceMargin = 0

    angular spacing between pie slices in degrees.

    - -

    fill

    this.fill = true

    true or false, wether to fil the slices.

    - -

    shadowOffset

    this.shadowOffset = 2

    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.

    - -

    shadowAlpha

    this.shadowAlpha = 0.07

    transparency of the shadow (0 = transparent, 1 = opaque)

    - -

    shadowDepth

    this.shadowDepth = 5

    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.

    - -

    highlightMouseOver

    this.highlightMouseOver = true

    True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

    - -

    highlightMouseDown

    this.highlightMouseDown = false

    True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

    - -

    highlightColors

    this.highlightColors = []

    an array of colors to use when highlighting a slice.

    - -

    dataLabels

    this.dataLabels = 'percent'

    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.  Defaults to percentage of each pie slice.

    - -

    showDataLabels

    this.showDataLabels = false

    true to show data labels on slices.

    - -

    dataLabelFormatString

    this.dataLabelFormatString = null

    Format string for data labels.  If none, ‘%s’ is used for “label” and for arrays, ‘%d’ for value and ‘%d%%’ for percentage.

    - -

    dataLabelThreshold

    this.dataLabelThreshold = 3

    Threshhold in percentage (0-100) of pie area, below which no label will be displayed.  This applies to all label types, not just to percentage labels.

    - -

    dataLabelPositionFactor

    this.dataLabelPositionFactor = 0.52

    A Multiplier (0-1) of the pie radius which controls position of label on slice.  Increasing will slide label toward edge of pie, decreasing will slide label toward center of pie.

    - -

    dataLabelNudge

    this.dataLabelNudge = 2

    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.

    - -

    dataLabelCenterOn

    this.dataLabelCenterOn = true

    True to center the data label at its position.  False to set the inside facing edge of the label at its position.

    - -

    startAngle

    this.startAngle = 0

    Angle to start drawing pie in degrees.  According to orientation of canvas coordinate system: 0 = on the positive x axis -90 = on the positive y axis.  90 = on the negaive y axis.  180 or - 180 = on the negative x axis.

    - -

    $.jqplot.PieLegendRenderer

    Legend Renderer specific to pie plots.  Set by default when user creates a pie plot.

    Summary
    Properties
    numberRowsMaximum number of rows in the legend.
    numberColumnsMaximum number of columns in the legend.
    - -

    Properties

    - -

    numberRows

    this.numberRows = null

    Maximum number of rows in the legend.  0 or null for unlimited.

    - -

    numberColumns

    this.numberColumns = null

    Maximum number of columns in the legend.  0 or null for unlimited.

    - -
    - - - - - - - - - - -
    this.diameter = null
    Outer diameter of the pie, auto computed by default
    this.padding = 20
    padding between the pie and plot edges, legend, etc.
    this.sliceMargin = 0
    angular spacing between pie slices in degrees.
    this.fill = true
    true or false, wether to fil the slices.
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.showDataLabels = false
    true to show data labels on slices.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelThreshold = 3
    Threshhold in percentage (0-100) of pie area, below which no label will be displayed.
    this.dataLabelPositionFactor = 0.52
    A Multiplier (0-1) of the pie radius which controls position of label on slice.
    this.dataLabelNudge = 2
    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
    this.dataLabelCenterOn = true
    True to center the data label at its position.
    this.startAngle = 0
    Angle to start drawing pie in degrees.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pointLabels-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pointLabels-js.html deleted file mode 100644 index 849fa04c6..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pointLabels-js.html +++ /dev/null @@ -1,72 +0,0 @@ - - -$.jqplot.PointLabels - - - - - - - - - -

    Plugin for putting labels at the data points.

    To use this plugin, include the js file in your source:

    <script type="text/javascript" src="plugins/jqplot.pointLabels.js"></script>

    By default, the last value in the data ponit array in the data series is used for the label.  For most series renderers, extra data can be added to the data point arrays and the last value will be used as the label.

    For instance, this series:

    [[1,4], [3,5], [7,2]]

    Would, by default, use the y values in the labels.  Extra data can be added to the series like so:

    [[1,4,'mid'], [3 5,'hi'], [7,2,'low']]

    And now the point labels would be ‘mid’, ‘low’, and ‘hi’.

    Options to the point labels and a custom labels array can be passed into the “pointLabels” option on the series option like so:

    series:[{pointLabels:{
    -   labels:['mid', 'hi', 'low'],
    -   location:'se',
    -   ypadding: 12
    -   }
    -}]

    A custom labels array in the options takes precendence over any labels in the series data.  If you have a custom labels array in the options, but still want to use values from the series array as labels, set the “labelsFromSeries” option to true.

    By default, html entities (<, >, etc.) are escaped in point labels.  If you want to include actual html markup in the labels, set the “escapeHTML” option to false.

    Summary
    $.jqplot.PointLabelsPlugin for putting labels at the data points.
    Properties
    showshow the labels or not.
    locationcompass location where to position the label around the point.
    labelsFromSeriestrue to use labels within data point arrays.
    seriesLabelIndexarray index for location of labels within data point arrays.
    labelsarray of arrays of labels, one array for each series.
    stackedValuetrue to display value as stacked in a stacked plot.
    ypaddingvertical padding in pixels between point and label
    xpaddinghorizontal padding in pixels between point and label
    escapeHTMLtrue to escape html entities in the labels.
    edgeToleranceNumber of pixels that the label must be away from an axis boundary in order to be drawn.
    formatterA class of a formatter for the tick text.
    formatStringstring passed to the formatter.
    hideZerostrue to not show a label for a value which is 0.
    - -

    Properties

    - -

    show

    this.show = $.jqplot.config.enablePlugins

    show the labels or not.

    - -

    location

    this.location = 'n'

    compass location where to position the label around the point.  ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’

    - -

    labelsFromSeries

    this.labelsFromSeries = false

    true to use labels within data point arrays.

    - -

    seriesLabelIndex

    this.seriesLabelIndex = null

    array index for location of labels within data point arrays. if null, will use the last element of the data point array.

    - -

    labels

    this.labels = []

    array of arrays of labels, one array for each series.

    - -

    stackedValue

    this.stackedValue = false

    true to display value as stacked in a stacked plot. no effect if labels is specified.

    - -

    ypadding

    this.ypadding = 6

    vertical padding in pixels between point and label

    - -

    xpadding

    this.xpadding = 6

    horizontal padding in pixels between point and label

    - -

    escapeHTML

    this.escapeHTML = true

    true to escape html entities in the labels.  If you want to include markup in the labels, set to false.

    - -

    edgeTolerance

    this.edgeTolerance = -5

    Number of pixels that the label must be away from an axis boundary in order to be drawn.  Negative values will allow overlap with the grid boundaries.

    - -

    formatter

    this.formatter = $.jqplot.DefaultTickFormatter

    A class of a formatter for the tick text.  sprintf by default.

    - -

    formatString

    this.formatString = ''

    string passed to the formatter.

    - -

    hideZeros

    this.hideZeros = false

    true to not show a label for a value which is 0.

    - -
    - - - - - - - - - - -
    this.show = $.jqplot.config.enablePlugins
    show the labels or not.
    this.location = 'n'
    compass location where to position the label around the point.
    this.labelsFromSeries = false
    true to use labels within data point arrays.
    this.seriesLabelIndex = null
    array index for location of labels within data point arrays.
    this.labels = []
    array of arrays of labels, one array for each series.
    this.stackedValue = false
    true to display value as stacked in a stacked plot.
    this.ypadding = 6
    vertical padding in pixels between point and label
    this.xpadding = 6
    horizontal padding in pixels between point and label
    this.escapeHTML = true
    true to escape html entities in the labels.
    this.edgeTolerance = -5
    Number of pixels that the label must be away from an axis boundary in order to be drawn.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    this.formatString = ''
    string passed to the formatter.
    this.hideZeros = false
    true to not show a label for a value which is 0.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidAxisRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidAxisRenderer-js.html deleted file mode 100644 index bcada551f..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidAxisRenderer-js.html +++ /dev/null @@ -1,49 +0,0 @@ - - -/Users/chris/Sites/lib/jqplot/build/plugins/jqplot.pyramidAxisRenderer.js - - - - - - - - - -
    Summary
    jqplot.pyramidAxisRenderer.js
    Properties
    positionPosition of axis.
    drawBaselineTrue to draw the axis baseline.
    baselineWidthwidth of the baseline in pixels.
    baselineColorCSS color spec for the baseline.
    - -

    Properties

    - -

    position

    this.position = null

    Position of axis.  Values are: top, bottom , left, center, right.  By default, x and x2 axes are bottom, y axis is center.

    - -

    drawBaseline

    this.drawBaseline = true

    True to draw the axis baseline.

    - -

    baselineWidth

    this.baselineWidth = null

    width of the baseline in pixels.

    - -

    baselineColor

    this.baselineColor = null

    CSS color spec for the baseline.

    - -
    - - - - - - - - - - -
    this.position = null
    Position of axis.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.baselineColor = null
    CSS color spec for the baseline.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidGridRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidGridRenderer-js.html deleted file mode 100644 index 71c15f712..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidGridRenderer-js.html +++ /dev/null @@ -1,39 +0,0 @@ - - -$.jqplot.CanvasGridRenderer - - - - - - - - - -

    The default jqPlot grid renderer, creating a grid on a canvas element.  The renderer has no additional options beyond the Grid class.

    - -
    - - - - - - - - - - -
    Object representing the grid on which the plot is drawn.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidRenderer-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidRenderer-js.html deleted file mode 100644 index e8017e47b..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-pyramidRenderer-js.html +++ /dev/null @@ -1,55 +0,0 @@ - - -/Users/chris/Sites/lib/jqplot/build/plugins/jqplot.pyramidRenderer.js - - - - - - - - - -
    Summary
    jqplot.pyramidRenderer.js
    Properties
    barPadding
    fillTrue to fill the bars.
    highlightMouseOverTrue to highlight slice when moused over.
    highlightMouseDownTrue to highlight when a mouse button is pressed over a slice.
    highlightColorsan array of colors to use when highlighting a slice.
    synchronizeHighlightIndex of another series to highlight when this series is highlighted.
    offsetBarsFalse will center bars on their y value.
    - -

    Properties

    - -

    barPadding

    this.barPadding = 10
    - -

    fill

    this.fill = true

    True to fill the bars.

    - -

    highlightMouseOver

    this.highlightMouseOver = true

    True to highlight slice when moused over.  This must be false to enable highlightMouseDown to highlight when clicking on a slice.

    - -

    highlightMouseDown

    this.highlightMouseDown = false

    True to highlight when a mouse button is pressed over a slice.  This will be disabled if highlightMouseOver is true.

    - -

    highlightColors

    this.highlightColors = []

    an array of colors to use when highlighting a slice.

    - -

    synchronizeHighlight

    this.synchronizeHighlight = false

    Index of another series to highlight when this series is highlighted. null or false to not synchronize.

    - -

    offsetBars

    this.offsetBars = false

    False will center bars on their y value.  True will push bars up by 1/2 bar width to fill between their y values.  If true, there needs to be 1 more tick than there are bars.

    - -
    - - - - - - - - - - -
    this.barPadding = 10
    this.fill = true
    True to fill the bars.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.synchronizeHighlight = false
    Index of another series to highlight when this series is highlighted.
    this.offsetBars = false
    False will center bars on their y value.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-trendline-js.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-trendline-js.html deleted file mode 100644 index 77aa36e9a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/plugins/jqplot-trendline-js.html +++ /dev/null @@ -1,67 +0,0 @@ - - -$.jqplot.Trendline - - - - - - - - - -

    Plugin which will automatically compute and draw trendlines for plotted data.

    Summary
    $.jqplot.TrendlinePlugin which will automatically compute and draw trendlines for plotted data.
    Properties
    showWether or not to show the trend line.
    colorCSS color spec for the trend line.
    rendererRenderer to use to draw the trend line.
    rendererOptionsOptions to pass to the line renderer.
    labelLabel for the trend line to use in the legend.
    typeEither ‘exponential’, ‘exp’, or ‘linear’.
    shadowtrue or false, wether or not to show the shadow.
    markerRendererRenderer to use to draw markers on the line.
    lineWidthWidth of the trend line.
    shadowAngleAngle of the shadow on the trend line.
    shadowOffsetpixel offset for each stroke of the shadow.
    shadowAlphaAlpha transparency of the shadow.
    shadowDepthnumber of strokes to make of the shadow.
    - -

    Properties

    - -

    show

    this.show = $.jqplot.config.enablePlugins

    Wether or not to show the trend line.

    - -

    color

    this.color = '#666666'

    CSS color spec for the trend line.  By default this wil be the same color as the primary line.

    - -

    renderer

    this.renderer = new $.jqplot.LineRenderer()

    Renderer to use to draw the trend line.  The data series that is plotted may not be rendered as a line.  Therefore, we use our own line renderer here to draw a trend line.

    - -

    rendererOptions

    this.rendererOptions = {marker:{show:false}}

    Options to pass to the line renderer.  By default, markers are not shown on trend lines.

    - -

    label

    this.label = ''

    Label for the trend line to use in the legend.

    - -

    type

    this.type = 'linear'

    Either ‘exponential’, ‘exp’, or ‘linear’.

    - -

    shadow

    this.shadow = true

    true or false, wether or not to show the shadow.

    - -

    markerRenderer

    this.markerRenderer = {show:false}

    Renderer to use to draw markers on the line.  I think this is wrong.

    - -

    lineWidth

    this.lineWidth = 1.5

    Width of the trend line.

    - -

    shadowAngle

    this.shadowAngle = 45

    Angle of the shadow on the trend line.

    - -

    shadowOffset

    this.shadowOffset = 1.0

    pixel offset for each stroke of the shadow.

    - -

    shadowAlpha

    this.shadowAlpha = 0.07

    Alpha transparency of the shadow.

    - -

    shadowDepth

    this.shadowDepth = 3

    number of strokes to make of the shadow.

    - -
    - - - - - - - - - - -
    this.show = $.jqplot.config.enablePlugins
    Wether or not to show the trend line.
    this.color = '#666666'
    CSS color spec for the trend line.
    this.renderer = new $.jqplot.LineRenderer()
    Renderer to use to draw the trend line.
    this.rendererOptions = {marker:{show:false}}
    Options to pass to the line renderer.
    this.label = ''
    Label for the trend line to use in the legend.
    this.type = 'linear'
    Either ‘exponential’, ‘exp’, or ‘linear’.
    this.shadow = true
    true or false, wether or not to show the shadow.
    this.markerRenderer = {show:false}
    Renderer to use to draw markers on the line.
    this.lineWidth = 1.5
    Width of the trend line.
    this.shadowAngle = 45
    Angle of the shadow on the trend line.
    this.shadowOffset = 1.0
    pixel offset for each stroke of the shadow.
    this.shadowAlpha = 0.07
    Alpha transparency of the shadow.
    this.shadowDepth = 3
    number of strokes to make of the shadow.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/files/usage-txt.html b/assets/javascripts/jquery/jquery.jqplot/docs/files/usage-txt.html deleted file mode 100644 index 76f97444b..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/files/usage-txt.html +++ /dev/null @@ -1,58 +0,0 @@ - - -jqPlot Usage - - - - - - - - - -

    Usage Documentation

    Introduction

    jqPlot is a jQuery plugin to generate pure client-side javascript charts in your web pages.

    The jqPlot home page is at http://www.jqplot.com/.

    The project page and downloads are at http://www.bitbucket.org/cleonello/jqplot/.

    Below are a few examples to demonstrate jqPlot usage.  These plots are shown as static images.  Many more examples of dynamically rendered plots can be seen on the test and examples pages here: ../../tests/.

    Include the Files

    jqPlot requires jQuery (1.4+ required for certain features). jQuery is included in the distribution.  To use jqPlot include jquery, the jqPlot jQuery plugin, jqPlot css file and optionally the excanvas script for IE support in your web page.  Note, excanvas is required only for IE versions below 9.  IE 9 includes native support for the canvas element and does not require excanvas:

    <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
    -<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
    -<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
    -<link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />

    Add a plot container

    Add a container (target) to your web page where you want your plot to show up.  Be sure to give your target a width and a height:

    <div id="chartdiv" style="height:400px;width:300px; "></div>

    Create a plot

    Then, create the actual plot by calling the $.jqplot plugin with the id of your target and some data:

    $.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]]);

    Which will produce a chart like:

    Plot Options

    You can customize the plot by passing options to the $.jqplot function.  Options are described in jqPlot Options in the jqPlotOptions.txt file.  An example of options usage:

    $.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
    -{ title:'Exponential Line',
    -  axes:{yaxis:{min:-10, max:240}},
    -  series:[{color:'#5FAB78'}]
    -});

    Which will produce a plot like:

    Using Plugins

    You can use jqPlot plugins (that is, plugins to the jqPlot plugin) by including them in your html after you include the jqPlot plugin.  Here is how to include the log axis plugin:

    <link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />
    -<!--[if IE]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
    -<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
    -<script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
    -<script language="javascript" type="text/javascript" src="jqplot.logAxisRenderer.js"></script>

    Important note: For jqplot builds r529 and above (0.9.7r529 and higher), you must explicitly enable plugins via either the { show: true } plugin option to the plot or by using the $.jqplot.config.enablePlugins = true; config options set on the page before plot creation.  Only plugins that can be immediately active upon loading are affected.  This includes non-renderer plugins like cursor, dragable, highlighter, and trendline.

    Here is a the same $.jqplot call but with a log y axis:

    $.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
    -{ title:'Exponential Line',
    -  axes:{yaxis:{renderer: $.jqplot.LogAxisRenderer}},
    -  series:[{color:'#5FAB78'}]
    -});

    Which produces a plot like:

    You can further customize with options specific to the log axis plugin:

    $.jqplot('chartdiv',  [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
    -{ title:'Exponential Line',
    -  axes:{yaxis:{renderer: $.jqplot.LogAxisRenderer, tickDistribution:'power'}},
    -  series:[{color:'#5FAB78'}]
    -});

    Which makes a plot like:

    For a full list of options, see jqPlot Options in the jqPlotOptions.txt file.

    You can add as many plugins as you wish.  Order is generally not important.  Some plugins, like the highlighter plugin which highlights data points near the mouse, don’t need any extra options or setup to function.  Highlighter does have additional options which the user can set.

    Other plugins, the barRenderer for example, provide functionality the must be specified in the chart options object.  To render a series as a bar graph with the bar renderer, you would first include the plugin after jqPlot:

    <script language="javascript" type="text/javascript" src="plugins/jqplot.barRenderer.min.js"></script>

    Then you would create a chart like:

    $.jqplot('chartdiv',  [[34.53, 56.32, 25.1, 18.6]], {series:[{renderer:$.jqplot.BarRenderer}]});

    Here the default LineRenderer is replaced by a BarRenderer to generate a bar graph for the first (an only) series.

    - -
    - - - - - - - - - - -
    This document is out of date.
    - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index.html b/assets/javascripts/jquery/jquery.jqplot/docs/index.html deleted file mode 100644 index 295fd4a6f..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Classes.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Classes.html deleted file mode 100644 index 01ee8ee29..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Classes.html +++ /dev/null @@ -1,70 +0,0 @@ - - -Class Index - - - - - - - - - -
    Class Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    $#!
     $.fn
     $.jqplot
     $.jqplot.AxisLabelRenderer
     $.jqplot.AxisTickRenderer
     $.jqplot.BarRenderer
     $.jqplot.BezierCurveRenderer.js
     $.jqplot.BlockRenderer
     $.jqplot.BubbleRenderer
     $.jqplot.CanvasAxisLabelRenderer
     $.jqplot.CanvasAxisTickRenderer
     $.jqplot.CanvasGridRenderer
     $.jqplot.CanvasOverlay
     $.jqplot.CategoryAxisRenderer
     $.jqplot.ciParser
     $.jqplot.Cursor
     $.jqplot.DateAxisRenderer
     $.jqplot.DivTitleRenderer
     $.jqplot.DonutLegendRenderer
     $.jqplot.DonutRenderer
     $.jqplot.Dragable
     $.jqplot.FunnelLegendRenderer
     $.jqplot.FunnelRenderer
     $.jqplot.Highlighter
     $.jqplot.LinearAxisRenderer
     $.jqplot.LineRenderer
     $.jqplot.LogAxisRenderer
     $.jqplot.MarkerRenderer
     $.jqplot.MekkoAxisRenderer
     $.jqplot.MekkoLegendRenderer
     $.jqplot.MekkoRenderer
     $.jqplot.MeterGaugeRenderer
     $.jqplot.OHLCRenderer
     $.jqplot.PieLegendRenderer
     $.jqplot.PieRenderer
     $.jqplot.PointLabels
     $.jqplot.shadowRenderer
     $.jqplot.shapeRenderer
     $.jqplot.ThemeEngine
     $.jqplot.Trendline
    A
     Axis
    D
     DashedHorizontalLine
     DashedVerticalLine
    G
     Grid
    H
     HorizontalLine
    J
     jqPlot
    L
     Legend
     Line
    S
     Series
    T
     Title
    V
     VerticalLine
    - -
    jQuery namespace to attach functions to jQuery elements.
    jQuery function called by the user to create a plot.
    Renderer to place labels on the axes.
    A “tick” object showing the value of a tick/gridline on the plot.
    A plugin renderer for jqPlot to draw a bar plot.
    Renderer which draws lines as stacked bezier curves.
    Plugin renderer to draw a x-y block chart.
    Plugin renderer to draw a bubble chart.
    Renderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.
    Renderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.
    The default jqPlot grid renderer, creating a grid on a canvas element.
    A plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.
    Data Renderer function which converts a custom JSON data object into jqPlot data format.
    Plugin class representing the cursor as displayed on the plot.
    A plugin for a jqPlot to render an axis as a series of date values.
    The default title renderer for jqPlot.
    Legend Renderer specific to donut plots.
    Plugin renderer to draw a donut chart.
    Plugin to make plotted points dragable by the user.
    Legend Renderer specific to funnel plots.
    Plugin renderer to draw a funnel chart.
    Plugin which will highlight data points when they are moused over.
    The default jqPlot axis renderer, creating a numeric axis.
    The default line renderer for jqPlot, this class has no options beyond the Series class.
    A plugin for a jqPlot to render a logarithmic axis.
    The default jqPlot marker renderer, rendering the points on the line.
    An axis renderer for a Mekko chart.
    Legend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.
    Draws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph.
    Plugin renderer to draw a meter gauge chart.
    jqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.
    Legend Renderer specific to pie plots.
    Plugin renderer to draw a pie chart.
    Plugin for putting labels at the data points.
    The default jqPlot shadow renderer, rendering shadows behind shapes.
    The default jqPlot shape renderer.
    Theme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.
    Plugin which will automatically compute and draw trendlines for plotted data.
    - - - -
    An individual axis object.
    - - - -
    A straight dashed horizontal line.
    A straight dashed vertical line.
    - - - -
    Object representing the grid on which the plot is drawn.
    - - - -
    A straight horizontal line.
    - - - -
    Plot object returned by call to $.jqplot.
    - - - -
    Legend object.
    A straight line.
    - - - -
    An individual data series object.
    - - - -
    Plot Title object.
    - - - -
    A straight vertical line.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Files.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Files.html deleted file mode 100644 index 328f39a8e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Files.html +++ /dev/null @@ -1,34 +0,0 @@ - - -File Index - - - - - - - - - -
    File Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    J
     jqplot.enhancedLegendRenderer.js
     jqplot.pyramidAxisRenderer.js
     jqplot.pyramidRenderer.js
    - - - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Functions.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Functions.html deleted file mode 100644 index 0e3e6d184..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Functions.html +++ /dev/null @@ -1,70 +0,0 @@ - - -Function Index - - - - - - - - - -
    Function Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    C
     copy, $.jqplot.ThemeEngine
    D
     destroy, jqPlot
     draw
     drawSeries, jqPlot
    G
     get, $.jqplot.ThemeEngine
     getThemeNames, $.jqplot.ThemeEngine
     getThemes, $.jqplot.ThemeEngine
    I
     init, jqPlot
    M
     makeGridData
     moveBlock, $.jqplot.BlockRenderer
     moveSeriesToBack, jqPlot
     moveSeriesToFront, jqPlot
    N
     newTheme, $.jqplot.ThemeEngine
    Q
     quickInit, jqPlot
    R
     redraw, jqPlot
     reInitialize, jqPlot
     remove, $.jqplot.ThemeEngine
     rename, $.jqplot.ThemeEngine
     replot, jqPlot
     resetAxesScale, jqPlot
     restoreOriginalSeriesOrder, jqPlot
     restorePreviousSeriesOrder, jqPlot
    S
     setGridData
    Z
     zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
    - -
    $.jqplot.ThemeEngine.prototype.copy = function (sourceName,
    targetName,
    obj)
    Create a copy of an existing theme in the themeEngine, adding it the themeEngine.
    - - - -
    this.destroy = function()
    Releases all resources occupied by the plot
    $.jqplot.ShadowRenderer.prototype.draw = function(ctx,
    points,
    options)
    draws an transparent black (i.e.
    $.jqplot.ShapeRenderer.prototype.draw = function(ctx,
    points,
    options)
    draws the shape.
    this.draw = function()
    Draws all elements of the plot into the container.
    this.drawSeries = function(options,
    idx)
    Redraws all or just one series on the plot.
    - - - -
    $.jqplot.ThemeEngine.prototype.get = function(name)
    Get and return the named theme or the active theme if no name given.
    $.jqplot.ThemeEngine.prototype.getThemeNames = function()
    Return the list of theme names in this manager in alpha-numerical order.
    $.jqplot.ThemeEngine.prototype.getThemes = function()
    Return a list of themes in alpha-numerical order by name.
    - - - -
    this.init = function(target,
    data,
    options)
    sets the plot target, checks data and applies user options to plot.
    - - - -
    $.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
    plot)
    converts any arbitrary data values to grid coordinates and returns them.
    $.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
    plot)
    converts any arbitrary data values to grid coordinates and returns them.
    this.moveBlock = function (idx,
    x,
    y,
    duration)
    Moves an individual block.
    this.moveSeriesToBack = function (idx)
    This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
    this.moveSeriesToFront = function (idx)
    This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
    - - - -
    $.jqplot.ThemeEngine.prototype.newTheme = function(name,
    obj)
    Create a new theme based on the default theme, adding it the themeEngine.
    - - - -
    this.quickInit = function ()
    Quick reinitialization plot for replotting.
    - - - -
    this.redraw = function(clear)
    Empties the plot target div and redraws the plot.
    this.reInitialize = function (data,
    opts)
    reinitialize plot for replotting.
    $.jqplot.ThemeEngine.prototype.remove = function(name)
    Remove the given theme from the themeEngine.
    $.jqplot.ThemeEngine.prototype.rename = function (oldName,
    newName)
    Rename a theme.
    this.replot = function(options)
    Does a reinitialization of the plot followed by a redraw.
    this.resetAxesScale = function(axes,
    options)
    Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
    this.restoreOriginalSeriesOrder = function ()
    This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
    this.restorePreviousSeriesOrder = function ()
    This method requires jQuery 1.4+ Restore the series canvas order to its previous state.
    - - - -
    $.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)
    converts the user data values to grid coordinates and stores them in the gridData array.
    $.jqplot.MekkoRenderer.prototype.setGridData = function(plot)
    converts the user data values to grid coordinates and stores them in the gridData array.
    - - - -
    $.jqplot.Cursor.zoomProxy = function(targetPlot,
    controllerPlot)
    links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/General.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/General.html deleted file mode 100644 index e98e0438d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/General.html +++ /dev/null @@ -1,42 +0,0 @@ - - -Index - - - - - - - - - -
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    $#!
     $.fn
     $.jqplot
     $.jqplot.AxisLabelRenderer
     $.jqplot.AxisTickRenderer
     $.jqplot.BarRenderer
     $.jqplot.BezierCurveRenderer.js
     $.jqplot.BlockRenderer
     $.jqplot.BubbleRenderer
     $.jqplot.CanvasAxisLabelRenderer
     $.jqplot.CanvasAxisTickRenderer
     $.jqplot.CanvasGridRenderer
     $.jqplot.CanvasOverlay
     $.jqplot.CategoryAxisRenderer
     $.jqplot.ciParser
     $.jqplot.Cursor
     $.jqplot.DateAxisRenderer
     $.jqplot.DivTitleRenderer
     $.jqplot.DonutLegendRenderer
     $.jqplot.DonutRenderer
     $.jqplot.Dragable
     $.jqplot.FunnelLegendRenderer
     $.jqplot.FunnelRenderer
     $.jqplot.Highlighter
     $.jqplot.LinearAxisRenderer
     $.jqplot.LineRenderer
     $.jqplot.LogAxisRenderer
     $.jqplot.MarkerRenderer
     $.jqplot.MekkoAxisRenderer
     $.jqplot.MekkoLegendRenderer
     $.jqplot.MekkoRenderer
     $.jqplot.MeterGaugeRenderer
     $.jqplot.OHLCRenderer
     $.jqplot.PieLegendRenderer
     $.jqplot.PieRenderer
     $.jqplot.PointLabels
     $.jqplot.shadowRenderer
     $.jqplot.shapeRenderer
     $.jqplot.ThemeEngine
     $.jqplot.Trendline
    A
     activeTheme, $.jqplot.ThemeEngine
     addLegendRowHooks, $.jqplot.$.jqplot
     alignTicks, $.jqplot.LinearAxisRenderer
     alpha, $.jqplot.shadowRenderer
     angle
     animate, jqPlot
     animateReplot, jqPlot
     autoscale, Axis
     autoscaleBubbles, $.jqplot.BubbleRenderer
     autoscaleMultiplier, $.jqplot.BubbleRenderer
     autoscalePointsFactor, $.jqplot.BubbleRenderer
     Available Options
     axes, jqPlot
     axesDefaults, jqPlot
     Axis
     axisDefaults, $.jqplot.LogAxisRenderer
    B
     background
     bandData, $.jqplot.LineRenderer
     bands, $.jqplot.LineRenderer
     barDirection, $.jqplot.BarRenderer
     barLabelOptions, $.jqplot.MekkoAxisRenderer
     barLabelRenderer, $.jqplot.MekkoAxisRenderer
     barLabels, $.jqplot.MekkoAxisRenderer
     barMargin, $.jqplot.BarRenderer
     barPadding
     barWidth, $.jqplot.BarRenderer
     baselineColor
     baselineWidth
     bodyWidth, $.jqplot.OHLCRenderer
     border, Legend
     borderColor
     borderWidth
     breakOnNull, Series
     breakPoints, $.jqplot.LinearAxisRenderer
     breakTickLabel, $.jqplot.LinearAxisRenderer
     bringSeriesToFront, $.jqplot.Highlighter
     bubbleAlpha, $.jqplot.BubbleRenderer
     bubbleGradients, $.jqplot.BubbleRenderer
    - -
    jQuery namespace to attach functions to jQuery elements.
    jQuery function called by the user to create a plot.
    Renderer to place labels on the axes.
    A “tick” object showing the value of a tick/gridline on the plot.
    A plugin renderer for jqPlot to draw a bar plot.
    Renderer which draws lines as stacked bezier curves.
    Plugin renderer to draw a x-y block chart.
    Plugin renderer to draw a bubble chart.
    Renderer to draw axis labels with a canvas element to support advanced featrues such as rotated text.
    Renderer to draw axis ticks with a canvas element to support advanced featrues such as rotated text.
    The default jqPlot grid renderer, creating a grid on a canvas element.
    A plugin for jqPlot to render a category style axis, with equal pixel spacing between y data values of a series.
    Data Renderer function which converts a custom JSON data object into jqPlot data format.
    Plugin class representing the cursor as displayed on the plot.
    A plugin for a jqPlot to render an axis as a series of date values.
    The default title renderer for jqPlot.
    Legend Renderer specific to donut plots.
    Plugin renderer to draw a donut chart.
    Plugin to make plotted points dragable by the user.
    Legend Renderer specific to funnel plots.
    Plugin renderer to draw a funnel chart.
    Plugin which will highlight data points when they are moused over.
    The default jqPlot axis renderer, creating a numeric axis.
    The default line renderer for jqPlot, this class has no options beyond the Series class.
    A plugin for a jqPlot to render a logarithmic axis.
    The default jqPlot marker renderer, rendering the points on the line.
    An axis renderer for a Mekko chart.
    Legend renderer used by mekko charts with options for controlling number or rows and columns as well as placement outside of plot area.
    Draws a Mekko style chart which shows 3 dimensional data on a 2 dimensional graph.
    Plugin renderer to draw a meter gauge chart.
    jqPlot Plugin to draw Open Hi Low Close, Candlestick and Hi Low Close charts.
    Legend Renderer specific to pie plots.
    Plugin renderer to draw a pie chart.
    Plugin for putting labels at the data points.
    The default jqPlot shadow renderer, rendering shadows behind shapes.
    The default jqPlot shape renderer.
    Theme Engine provides a programatic way to change some of the more common jqplot styling options such as fonts, colors and grid options.
    Plugin which will automatically compute and draw trendlines for plotted data.
    - - - -
    this.activeTheme=null
    Pointer to currently active theme
    called at the end of legend draw, so plugins can add rows to the legend table.
    this.alignTicks = false
    true to align tick marks across opposed axes such as from the y2axis to yaxis.
    this.alpha = 0.07
    alpha transparency of shadow stroke.
    this.angle = 0
    angle of text, measured clockwise from x axis.
    this.angle = 0
    angle of text, measured clockwise from x axis.
    this.angle = 45
    Angle of the shadow in degrees.
    this.animate = false
    True to animate the series on initial plot draw (renderer dependent).
    this.animateReplot = false
    True to animate series after a call to the replot() method.
    this.autoscale = false
    DEPRECATED the default scaling algorithm produces superior results.
    this.autoscaleBubbles = true
    True to scale the bubble radius based on plot size.
    this.autoscaleMultiplier = 1.0
    Multiplier the bubble size if autoscaleBubbles is true.
    this.autoscalePointsFactor = -0.07
    Factor which decreases bubble size based on how many bubbles on on the chart.
    See jqPlot Options for a list of options available thorugh the options object (not complete yet!)
    this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}
    up to 4 axes are supported, each with it’s own options, See Axis for axis specific options.
    default options that will be applied to all axes.
    An individual axis object.
    Default properties which will be applied directly to the series.
    - - - -
    this.background = "#efefef"
    background color of the inside of the gauge.
    this.background = '#fffdf6'
    css spec for the background color.
    this.background
    css spec for the background of the legend box.
    this.renderer.bandData = []
    Data used to draw error bands or confidence intervals above/below a line.
    Banding around line, e.g error bands or confidence intervals.
    this.barDirection = 'vertical'
    ‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
    this.barLabelOptions = {}
    options object to pass to the bar label renderer.
    this.barLabelRenderer = $.jqplot.AxisLabelRenderer
    renderer to use to draw labels under each bar.
    this.barLabels = this.barLabels || []
    array of labels to put under each bar.
    this.barMargin = 10
    Number of pixels between groups of bars at adjacent axis values.
    this.barPadding = 10
    this.barPadding = 8
    Number of pixels between adjacent bars at the same axis value.
    this.barWidth = null
    Width of the bar in pixels (auto by devaul).
    this.baselineColor = null
    CSS color spec for the baseline.
    this.baselineColor = null
    CSS color spec for the baseline.
    this.baselineColor = null
    CSS color spec for the baseline.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.bodyWidth = 'auto'
    width of the candlestick body in pixels.
    this.border
    css spec for the border around the legend box.
    this.borderColor = null
    color of the borders between areas on the chart
    this.borderColor = null
    color of the border adjacent to the axis.
    this.borderColor = '#999999'
    css spec for the color of the grid border.
    this.borderWidth = null
    width of line stroked at the border of the axis.
    this.borderWidth = 2.0
    width of the border in pixels.
    this.breakOnNull = false
    Wether line segments should be be broken at null value.
    this.breakPoints = null
    EXPERIMENTAL!! 
    this.breakTickLabel = "&asymp
    Label to use at the axis break if breakPoints are specified.
    this.bringSeriesToFront = false
    This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
    this.bubbleAlpha = 1.0
    Alpha transparency to apply to all bubbles in this series.
    this.bubbleGradients = false
    True to color the bubbles with gradient fills instead of flat colors.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/General2.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/General2.html deleted file mode 100644 index 496726ed1..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/General2.html +++ /dev/null @@ -1,42 +0,0 @@ - - -Index - - - - - - - - - -
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    C
     candleStick, $.jqplot.OHLCRenderer
     Change Log
     Changes
     clearRect, $.jqplot.shapeRenderer
     clickReset, $.jqplot.Cursor
     closeColor, $.jqplot.OHLCRenderer
     color
     constrainOutsideZoom, $.jqplot.Cursor
     constrainSmoothing, $.jqplot.LineRenderer
     constrainTo, $.jqplot.Dragable
     constrainZoomTo, $.jqplot.Cursor
     copy, $.jqplot.ThemeEngine
     Copyright&License
     css, $.jqplot.BlockRenderer
     cursorLegendFormatString, $.jqplot.Cursor
    D
     DashedHorizontalLine
     DashedVerticalLine
     dashPattern
     data, jqPlot
     dataLabelCenterOn, $.jqplot.PieRenderer
     dataLabelFormatString
     dataLabelNudge
     dataLabelPositionFactor
     dataLabels
     dataLabelThreshold
     dataRenderer, jqPlot
     dataRendererOptions, jqPlot
     dblClickReset, $.jqplot.Cursor
     defaultAxisStart, jqPlot
     depth, $.jqplot.shadowRenderer
     destroy, jqPlot
     diameter
     disableIEFading
     disableStack, Series
     downBodyColor, $.jqplot.OHLCRenderer
     draw
     drawBaseline
     drawBorder, Grid
     drawGridlines, Grid
     drawMajorGridlines, Axis
     drawMajorTickMarks, Axis
     drawMinorGridlines, Axis
     drawMinorTickMarks, Axis
     drawSeries, jqPlot
    E
     edgeTolerance, $.jqplot.PointLabels
     enableFontSupport
     escapeHtml
     escapeHTML
     eventListenerHooks, $.jqplot.$.jqplot
    - -
    this.candleStick = false
    true to render chart as candleStick.
    See Change Log
    this.clearRect = false
    true to cear a rectangle.
    this.clickReset = false
    Will reset plot zoom if single click on plot without drag.
    this.closeColor = null
    color of the close price tick mark.
    color of the line
    this.color
    CSS color spec for the dragged point (and adjacent line segment or bar).
    color of lines at top and bottom of bands [default: series color].
    this.color = '#666666'
    color of marker.
    this.color = '#666666'
    CSS color spec for the trend line.
    this.color
    css color spec for the series
    this.constrainOutsideZoom = true
    True to limit actual zoom area to edges of grid, even when zooming outside of plot area.
    this.renderer.constrainSmoothing = true
    True to use a more accurate smoothing algorithm that will not overshoot any data points.
    this.constrainTo = 'none'
    Constrain dragging motion to an axis or to none.
    this.constrainZoomTo = 'none'
    ‘none’, ‘x’ or ‘y’
    $.jqplot.ThemeEngine.prototype.copy = function (sourceName,
    targetName,
    obj)
    Create a copy of an existing theme in the themeEngine, adding it the themeEngine.
    Copyright © 2009-2011 Chris Leonello jqPlot is currently available for use in all personal or commercial projects under both the MIT and GPL version 2.0 licenses.
    this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}
    default css styles that will be applied to all data blocks.
    this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString
    Format string used in the cursor legend.
    - - - -
    A straight dashed horizontal line.
    A straight dashed vertical line.
    dashPattern: [8,8] }
    Array of line, space settings in pixels.
    dashPattern: [8,8] }
    Array of line, space settings in pixels.
    this.data = []
    user’s data.
    this.dataLabelCenterOn = true
    True to center the data label at its position.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelNudge = 0
    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
    this.dataLabelNudge = 2
    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
    this.dataLabelPositionFactor = 0.4
    A Multiplier (0-1) of the pie radius which controls position of label on slice.
    this.dataLabelPositionFactor = 0.52
    A Multiplier (0-1) of the pie radius which controls position of label on slice.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.dataLabelThreshold = 3
    this.dataLabelThreshold = 3
    this.dataLabelThreshold = 3
    Threshhold in percentage (0-100) of pie area, below which no label will be displayed.
    this.dataRenderer
    A callable which can be used to preprocess data passed into the plot.
    this.dataRendererOptions
    Options that will be passed to the dataRenderer.
    this.dblClickReset = true
    Will reset plot zoom if double click on plot without drag.
    this.defaultAxisStart = 1
    1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
    this.depth = 3
    how many times the shadow is stroked.
    this.destroy = function()
    Releases all resources occupied by the plot
    this.diameter = null
    Outer diameter of the donut, auto computed by default
    this.diameter = null
    Outer diameter of the meterGauge, auto computed by default
    this.diameter = null
    Outer diameter of the pie, auto computed by default
    this.disableIEFading = true
    true to toggle series with a show/hide method only and not allow fading in/out.
    this.disableStack = false
    true to not stack this series with other series in the plot.
    this.downBodyColor = null
    Color of candlestick body on a “down” day.
    $.jqplot.ShadowRenderer.prototype.draw = function(ctx,
    points,
    options)
    draws an transparent black (i.e.
    $.jqplot.ShapeRenderer.prototype.draw = function(ctx,
    points,
    options)
    draws the shape.
    this.draw = function()
    Draws all elements of the plot into the container.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBorder = true
    True to draw border around grid.
    this.drawGridlines = true
    wether to draw the gridlines on the plot.
    this.drawMajorGridlines = true
    True to draw gridlines for major axis ticks.
    this.drawMajorTickMarks = true
    True to draw tick marks for major axis ticks.
    this.drawMinorGridlines = false
    True to draw gridlines for minor ticks.
    this.drawMinorTickMarks = true
    True to draw tick marks for minor ticks.
    this.drawSeries = function(options,
    idx)
    Redraws all or just one series on the plot.
    - - - -
    this.edgeTolerance = -5
    Number of pixels that the label must be away from an axis boundary in order to be drawn.
    this.enableFontSupport = true
    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    this.enableFontSupport = true
    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    this.escapeHtml = false
    true to escape html in the box label.
    this.escapeHtml = true
    True to escape html in bubble label text.
    this.escapeHtml = false
    True to escape special characters with their html entity equivalents in legend text.
    this.escapeHtml = false
    True to escape special characters with their html entity equivalents in title text.
    this.escapeHTML = false
    true to escape HTML entities in the label.
    this.escapeHTML = false
    true to escape HTML entities in the label.
    this.escapeHTML = true
    true to escape html entities in the labels.
    called at the end of plot drawing, binds listeners to the event canvas which lays on top of the grid area.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/General3.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/General3.html deleted file mode 100644 index 72e66816c..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/General3.html +++ /dev/null @@ -1,42 +0,0 @@ - - -Index - - - - - - - - - -
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    F
     fadeTooltip
     fill
     fillAlpha, Series
     fillAndStroke, Series
     fillAxis, Series
     fillBetween, jqPlot
     fillColor
     fillDownBody, $.jqplot.OHLCRenderer
     fillRect, $.jqplot.shapeRenderer
     fillStyle, $.jqplot.shapeRenderer
     fillToValue, Series
     fillToZero, Series
     fillUpBody, $.jqplot.OHLCRenderer
     followMouse, $.jqplot.Cursor
     fontFamily
     fontSize
     fontStretch
     fontWeight
     forceTickAt0, $.jqplot.LinearAxisRenderer
     forceTickAt100, $.jqplot.LinearAxisRenderer
     formatString
     formatter
     Functions
    G
     get, $.jqplot.ThemeEngine
     getThemeNames, $.jqplot.ThemeEngine
     getThemes, $.jqplot.ThemeEngine
     GPL Version 2
     grid, jqPlot
     Grid
     gridLineColor, Grid
     gridLineWidth, Grid
     groups, $.jqplot.BarRenderer
    H
     hideZeros, $.jqplot.PointLabels
     highlightAlpha, $.jqplot.BubbleRenderer
     highlightColor, $.jqplot.LineRenderer
     highlightColors
     highlightMouseDown
     highlightMouseOver
     hlc, $.jqplot.OHLCRenderer
     Hooks, $.jqplot
     HorizontalLine
     hubRadius, $.jqplot.MeterGaugeRenderer
    - -
    true = fade in/out tooltip, flase = show/hide tooltip
    this.fadeTooltip = true
    true = fade in/out tooltip, flase = show/hide tooltip
    this.fill = true
    True to fill the bars.
    this.fill = true
    true or false, wether to fil the slices.
    this.fill = true
    true or false, wether to fill the areas.
    True to fill area between bands [default: true].
    this.fill = true
    true or false, wether to fil the slices.
    this.fill = false
    whether to fill the shape.
    this.fill = false
    whether to fill the shape.
    this.fill = false
    true or false, wether to fill under lines or in bars.
    this.fillAlpha
    Alpha transparency to apply to the fill under the line.
    this.fillAndStroke = false
    If true will stroke the line (with color this.color) as well as fill under it.
    this.fillAxis = 'y'
    Either ‘x’ or ‘y’.
    this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }
    Fill between 2 line series in a plot.
    css color spec for filled area.
    this.fillColor
    CSS color spec to use for fill under line.
    this.fillDownBody = true
    true to render a “down” day (close price lower than open price) with a filled candlestick body.
    this.fillRect = false
    true to draw shape as a filled rectangle.
    this.fillStyle = '#999999'
    css color spec for the fill style.
    this.fillToValue = 0
    fill a filled series to this value on the fill axis.
    this.fillToZero = false
    true will force bar and filled series to fill toward zero on the fill Axis.
    this.fillUpBody = false
    true to render an “up” day (close price greater than open price) with a filled candlestick body.
    this.followMouse = false
    Tooltip follows the mouse, it is not at a fixed location.
    this.fontFamily
    css spec for the font-family css attribute.
    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
    CSS spec for the font-family css attribute.
    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
    css spec for the font-family css attribute.
    this.fontFamily
    css font-family spec for the legend text.
    this.fontFamily
    css font-family spec for the text.
    this.fontSize
    css spec for the font-size css attribute.
    this.fontSize = '11pt'
    CSS spec for font size.
    this.fontSize = '10pt'
    CSS spec for font size.
    this.fontSize
    css spec for the font-size attribute.
    this.fontSize
    css font-size spec for the legend text.
    this.fontSize
    css font-size spec for the text.
    this.fontStretch = 1.0
    Multiplier to condense or expand font width.
    this.fontStretch = 1.0
    Multiplier to condense or expand font width.
    this.fontWeight = 'normal'
    this.fontWeight = 'normal'
    CSS spec for fontWeight
    this.forceTickAt0 = false
    This will ensure that there is always a tick mark at 0.
    this.forceTickAt100 = false
    This will ensure that there is always a tick mark at 100.
    this.formatString = ''
    string passed to the formatter.
    this.formatString = ''
    string passed to the formatter.
    this.formatString = null
    alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
    this.formatString = ''
    string passed to the formatter.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    - - - -
    $.jqplot.ThemeEngine.prototype.get = function(name)
    Get and return the named theme or the active theme if no name given.
    $.jqplot.ThemeEngine.prototype.getThemeNames = function()
    Return the list of theme names in this manager in alpha-numerical order.
    $.jqplot.ThemeEngine.prototype.getThemes = function()
    Return a list of themes in alpha-numerical order by name.
    GNU GENERAL PUBLIC LICENSE Version 2, June 1991
    this.grid = new Grid()
    See Grid for grid specific options.
    Object representing the grid on which the plot is drawn.
    this.gridLineColor = '#cccccc'
    color of the grid lines.
    this.gridLineWidth = 1.0
    width of the grid lines.
    this.groups = 1
    group bars into this many groups
    - - - -
    this.hideZeros = false
    true to not show a label for a value which is 0.
    this.highlightAlpha = null
    Alpha transparency to apply when highlighting bubble.
    this.highlightColor = null
    color to use when highlighting an area on a filled plot.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a bar.
    this.highlightColors = []
    An array of colors to use when highlighting a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.highlightColors = []
    array of colors to use when highlighting an area.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a bubble.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a area.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over an area on a filled plot.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseOver = true
    True to highlight bubbles when moused over.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseOver = true
    True to highlight area when moused over.
    this.highlightMouseOver = true
    True to highlight area on a filled plot when moused over.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.hlc = false
    true if is a hi-low-close chart (no open price).
    A straight horizontal line.
    this.hubRadius = null
    Radius of the hub at the bottom center of gauge which the needle attaches to.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/General4.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/General4.html deleted file mode 100644 index b7f4faa3d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/General4.html +++ /dev/null @@ -1,46 +0,0 @@ - - -Index - - - - - - - - - -
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    I
     index, Series
     init, jqPlot
     innerDiameter, $.jqplot.DonutRenderer
     insertBreaks, $.jqplot.BlockRenderer
     intersectionThreshold, $.jqplot.Cursor
     interval, $.jqplot.LineRenderer
     intervalColors, $.jqplot.MeterGaugeRenderer
     intervalInnerRadius, $.jqplot.MeterGaugeRenderer
     intervalOuterRadius, $.jqplot.MeterGaugeRenderer
     intervals, $.jqplot.MeterGaugeRenderer
     Introduction
     isarc
     isMinorTick
    J
     jqPlot
     jqPlot Charts
     jqPlot CSS Customization
     jqPlot Options
     jqPlot Pugin Hooks, $.jqplot
     jqPlot Usage
     jqplot.enhancedLegendRenderer.js
     jqplot.pyramidAxisRenderer.js
     jqplot.pyramidRenderer.js
    L
     label
     labelHeightAdjust, $.jqplot.MeterGaugeRenderer
     labelOptions, Axis
     labelPosition
     labelRenderer, Axis
     labels
     labelsFromSeries, $.jqplot.PointLabels
     legend, jqPlot
     Legend
     Line
     lineCap
     lineJoin
     linePattern
     lineWidth
     lineWidthAdjust, $.jqplot.Highlighter
     location
     looseZoom, $.jqplot.Cursor
    M
     makeGridData
     marginBottom, Legend
     marginLeft, Legend
     marginRight, Legend
     marginTop, Legend
     mark
     markerOptions, Series
     markerRenderer
     markSize
     max
     methods
     Methods, $.jqplot.BlockRenderer
     min
     minorTicks
     MIT License
     moveBlock, $.jqplot.BlockRenderer
     moveSeriesToBack, jqPlot
     moveSeriesToFront, jqPlot
    - -
    this.index
    0 based index of this series in the plot series array.
    this.init = function(target,
    data,
    options)
    sets the plot target, checks data and applies user options to plot.
    this.innerDiameter = null
    Inner diameter of the donut, auto calculated by default.
    this.insertBreaks = true
    true to turn spaces in data block label into html breaks br /.
    this.intersectionThreshold = 2
    pixel distance from data point or marker to consider cursor lines intersecting with point.
    interval: '3%' }
    User specified interval above and below line for bands [default: ‘3%’’].
    this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]
    Array of colors to use for the intervals.
    this.intervalInnerRadius = null
    Radius of the inner circle of the interval ring.
    this.intervalOuterRadius = null
    Radius of the outer circle of the interval ring.
    this.intervals = []
    Array of ranges to be drawn around the gauge.
    jqPlot requires jQuery (1.4+ required for certain features).
    this.isarc = false
    wether the shadow is an arc or not.
    this.isarc = false
    wether the shadow is an arc or not.
    this.isMinorTick = false
    if this is a minor tick.
    this.isMinorTick = false
    if this is a minor tick.
    - - - -
    Plot object returned by call to $.jqplot.
    Pure JavaScript plotting plugin for jQuery.
    Much of the styling of jqPlot is done by css.
    This document is out of date.
    - - - -
    this.label = ''
    The text or html for the label.
    this.label = ''
    label for the axis.
    this.label = null
    A gauge label like ‘kph’ or ‘Volts’
    this.label = ''
    Label for the trend line to use in the legend.
    this.label = null
    Label for the axis
    this.label = ''
    Line label to use in the legend.
    this.labelHeightAdjust = 0
    Number of Pixels to offset the label up (-) or down (+) from its default position.
    this.labelOptions = {}
    Options passed to the label renderer.
    this.labelPosition = 'auto'
    ‘auto’, ‘start’, ‘middle’ or ‘end’.
    this.labelPosition = 'inside'
    Where to position the label, either ‘inside’ or ‘bottom’.
    this.labelRenderer = $.jqplot.AxisLabelRenderer
    A class of a rendering engine for creating an axis label.
    this.labels = []
    array of arrays of labels, one array for each series.
    this.labels = []
    Array of labels to use.
    this.labelsFromSeries = false
    true to use labels within data point arrays.
    this.legend = new Legend()
    see $.jqplot.TableLegendRenderer
    Legend object.
    A straight line.
    Type of ending placed on the line [‘round’, ‘butt’, ‘square’]
    this.lineCap = 'round'
    how ends of the shadow line are rendered.
    this.lineCap = 'round'
    how ends of the shadow line are rendered.
    this.lineCap = 'round'
    Canvas lineCap style at ends of line.
    this.lineJoin = 'miter'
    How line segments of the shadow are joined.
    this.lineJoin = 'miter'
    How line segments of the shadow are joined.
    this.lineJoin = 'round'
    Canvas lineJoin style between segments of series.
    this.linePattern = 'solid'
    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    this.linePattern = 'solid'
    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    Width of the line.
    this.lineWidth = 2
    width of line if areas are stroked and not filled.
    this.lineWidth = 2
    size of the line for non-filled markers.
    this.lineWidth = 1.5
    Width of the hi-low line and open/close ticks.
    this.lineWidth = 1.5
    width of the shadow line stroke.
    this.lineWidth = 1.5
    Width of the trend line.
    this.lineWidth = 2.5
    width of the line in pixels.
    this.lineWidthAdjust = 2.5
    Pixels to add to the lineWidth of the highlight.
    this.location = 'n'
    compass location where to position the label around the point.
    this.location = 'ne'
    Placement of the legend.
    this.looseZoom = true
    Will expand zoom range to provide more rounded tick values.
    - - - -
    $.jqplot.BezierCurveRenderer.prototype.makeGridData = function(data,
    plot)
    converts any arbitrary data values to grid coordinates and returns them.
    $.jqplot.MekkoRenderer.prototype.makeGridData = function(data,
    plot)
    converts any arbitrary data values to grid coordinates and returns them.
    this.marginBottom = null
    CSS margin for the legend DOM element.
    this.marginLeft = null
    CSS margin for the legend DOM element.
    this.marginRight = null
    CSS margin for the legend DOM element.
    this.marginTop = null
    CSS margin for the legend DOM element.
    this.mark = 'outside'
    tick mark on the axis.
    this.mark = 'outside'
    tick mark on the axis.
    this.markerOptions = {}
    renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
    this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})
    Renderer used to draw the marker of the highlighted point.
    this.markerRenderer = {show:false}
    Renderer to use to draw markers on the line.
    this.markerRenderer = $.jqplot.MarkerRenderer
    A class of a renderer which will draw marker (e.g.
    this.markSize = 6
    Length of the tick marks in pixels.
    this.markSize = 4
    Length of the tick marks in pixels.
    this.max
    Maximum value on the gauge.
    this.max = null
    maximum value of the axis (in data units, not pixels).
    this.min
    Minimum value on the gauge.
    this.min = null
    minimum value of the axis (in data units, not pixels).
    this.minorTicks = 0
    Number of ticks to add between “major” ticks.
    this.minorTicks = 'auto'
    Number of ticks to add between “major” ticks.
    Copyright © 2009-2011 Chris Leonello
    this.moveBlock = function (idx,
    x,
    y,
    duration)
    Moves an individual block.
    this.moveSeriesToBack = function (idx)
    This method requires jQuery 1.4+ Moves the specified series canvas behind all other series canvases.
    this.moveSeriesToFront = function (idx)
    This method requires jQuery 1.4+ Moves the specified series canvas in front of all other series canvases.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/General5.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/General5.html deleted file mode 100644 index fa08d55d1..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/General5.html +++ /dev/null @@ -1,50 +0,0 @@ - - -Index - - - - - - - - - -
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    N
     name, $.jqplot.CanvasOverlay
     needlePad, $.jqplot.MeterGaugeRenderer
     needleThickness, $.jqplot.MeterGaugeRenderer
     negativeColor, Series
     neighborThreshold, Series
     newTheme, $.jqplot.ThemeEngine
     noDataIndicator, jqPlot
     numberColumns
     numberRows
     numberTicks, Axis
    O
     objects, $.jqplot.CanvasOverlay
     offset, $.jqplot.shadowRenderer
     offsetBars
     openColor, $.jqplot.OHLCRenderer
     Options Tutorial
     Options Usage
    P
     pad, Axis
     padding
     padMax, Axis
     padMin, Axis
     pegNeedle, $.jqplot.MeterGaugeRenderer
     placement, Legend
     position
     postDrawHooks, $.jqplot.$.jqplot
     postDrawSeriesHooks, $.jqplot.$.jqplot
     postDrawSeriesShadowHooks, $.jqplot.$.jqplot
     postInitHooks, $.jqplot.$.jqplot
     postParseOptionsHooks, $.jqplot.$.jqplot
     postParseSeriesOptionsHooks, $.jqplot.$.jqplot
     postSeriesInitHooks, $.jqplot.$.jqplot
     predraw, Legend
     preDrawHooks, $.jqplot.$.jqplot
     preDrawLegendHooks, $.jqplot.$.jqplot
     preDrawSeriesHooks, $.jqplot.$.jqplot
     preDrawSeriesShadowHooks, $.jqplot.$.jqplot
     prefix
     preInitHooks, $.jqplot.$.jqplot
     preParseOptionsHooks, $.jqplot.$.jqplot
     preParseSeriesOptionsHooks, $.jqplot.$.jqplot
     preSeriesInitHooks, $.jqplot.$.jqplot
     Properties
     pt2px
    Q
     quickInit, jqPlot
    R
     redraw, jqPlot
     reInitialize, jqPlot
     remove, $.jqplot.ThemeEngine
     rename, $.jqplot.ThemeEngine
     renderer
     rendererOptions
     replot, jqPlot
     resetAxesScale, jqPlot
     restoreOriginalSeriesOrder, jqPlot
     restorePreviousSeriesOrder, jqPlot
     ringColor, $.jqplot.MeterGaugeRenderer
     ringMargin, $.jqplot.DonutRenderer
     ringWidth, $.jqplot.MeterGaugeRenderer
     rowSpacing, Legend
    - -
    Optional name for the overlay object.
    this.needlePad = 6
    Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.
    this.needleThickness = null
    Maximum thickness the needle.
    this.negativeColor
    css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
    this.neighborThreshold = 4
    how close or far (in pixels) the cursor must be from a point marker to detect the point.
    $.jqplot.ThemeEngine.prototype.newTheme = function(name,
    obj)
    Create a new theme based on the default theme, adding it the themeEngine.
    Options to set up a mock plot with a data loading indicator if no data is specified.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberTicks
    Desired number of ticks.
    - - - -
    this.objects = []
    this.offset = 1
    Pixel offset at the given shadow angle of each shadow stroke from the last stroke.
    this.offsetBars = false
    False will center bars on their y value.
    this.openColor = null
    color of the open price tick mark.
    This document will help you understand how jqPlot’s options relate to the API documentation and the jqPlot object itself.
    See Options Tutorial
    - - - -
    this.pad = 1.2
    Padding to extend the range above and below the data bounds.
    this.padding = 20
    padding between the donut and plot edges, legend, etc.
    this.padding = {top: 20, right: 20, bottom: 20, left: 20}
    padding between the funnel and plot edges, legend, etc.
    this.padding = null
    padding between the meterGauge and plot edges, auto calculated by default.
    this.padding = 20
    padding between the pie and plot edges, legend, etc.
    this.padMax = null
    Padding to extend the range above data bounds.
    this.padMin = null
    Padding to extend the range below data bounds.
    this.pegNeedle = true
    True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
    this.placement = "insideGrid"
    “insideGrid” places legend inside the grid area of the plot.
    this.position = null
    Position of axis.
    called after plot draw.
    called after each series is drawn.
    called after series shadows are drawn.
    called after initialization.
    called after user options are parsed.
    called after series related options are parsed.
    called after series is initialized.
    Wether to draw the legend before the series or not.
    called before plot draw.
    called before the legend is drawn.
    called before each series is drawn.
    called before series shadows are drawn.
    this.prefix = ''
    String to prepend to the tick label.
    this.prefix = ''
    String to prepend to the tick label.
    called before initialization.
    called before user options are parsed.
    called before series related options are parsed.
    called before series is initialized.
    Properties
    Axes options are specified within an axes object at the top level of the plot options like so:
    These properties are specified at the top of the options object like so:
    Properties will be assigned from a series array at the top level of the options.
    this.pt2px = null
    Point to pixel scaling factor, used for computing height of bounding box around a label.
    this.pt2px = null
    Point to pixel scaling factor, used for computing height of bounding box around a label.
    - - - -
    this.quickInit = function ()
    Quick reinitialization plot for replotting.
    - - - -
    this.redraw = function(clear)
    Empties the plot target div and redraws the plot.
    this.reInitialize = function (data,
    opts)
    reinitialize plot for replotting.
    $.jqplot.ThemeEngine.prototype.remove = function(name)
    Remove the given theme from the themeEngine.
    $.jqplot.ThemeEngine.prototype.rename = function (oldName,
    newName)
    Rename a theme.
    this.renderer = new $.jqplot.LineRenderer()
    Renderer to use to draw the trend line.
    this.renderer = $.jqplot.LinearAxisRenderer
    A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
    this.renderer = $.jqplot.CanvasGridRenderer
    Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
    this.renderer = $.jqplot.LineRenderer
    A class of a renderer which will draw the series, see $.jqplot.LineRenderer.
    this.renderer = $.jqplot.DivTitleRenderer
    A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
    this.rendererOptions = {marker:{show:false}}
    Options to pass to the line renderer.
    this.rendererOptions = {}
    renderer specific options.
    this.rendererOptions = {}
    Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
    this.rendererOptions = {}
    renderer specific options passed to the renderer.
    this.rendererOptions = {}
    Options to pass on to the renderer.
    this.rendererOptions = {}
    renderer specific options passed to the renderer.
    this.replot = function(options)
    Does a reinitialization of the plot followed by a redraw.
    this.resetAxesScale = function(axes,
    options)
    Reset the specified axes min, max, numberTicks and tickInterval properties to null or reset these properties on all axes if no list of axes is provided.
    this.restoreOriginalSeriesOrder = function ()
    This method requires jQuery 1.4+ Restore the series canvas order to its original order when the plot was created.
    this.restorePreviousSeriesOrder = function ()
    This method requires jQuery 1.4+ Restore the series canvas order to its previous state.
    this.ringColor = "#BBC6D0"
    color of the outer ring, hub, and needle of the gauge.
    this.ringMargin = null
    pixel distance between rings, or multiple series in a donut plot.
    this.ringWidth = null
    width of the ring around the gauge.
    this.rowSpacing = '0.5em'
    css padding-top spec for the rows in the legend.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/General6.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/General6.html deleted file mode 100644 index 20ae37526..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/General6.html +++ /dev/null @@ -1,34 +0,0 @@ - - -Index - - - - - - - - - -
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    S
     scaleToHiddenSeries, Axis
     sectionMargin, $.jqplot.FunnelRenderer
     series, jqPlot
     Series
     seriesColors, jqPlot
     seriesDefaults, jqPlot
     seriesLabelIndex, $.jqplot.PointLabels
     seriesToggle
     seriesToggleReplot
     setGridData
     shadow
     shadowAlpha
     shadowAngle
     shadowColor, Grid
     shadowDepth
     shadowOffset
     shadowRenderer, $.jqplot.MarkerRenderer
     shadowWidth, Grid
     shapeRenderer, $.jqplot.MarkerRenderer
     show
     showBorders, $.jqplot.MekkoRenderer
     showCursorLegend, $.jqplot.Cursor
     showDataLabels
     showGridline
     showHorizontalLine, $.jqplot.Cursor
     showLabel
     showLabels
     showLine, Series
     showLines, $.jqplot.LineRenderer
     showMark
     showMarker
     showMinorTicks, Axis
     showSwatch, Legend
     showTickLabels, $.jqplot.MeterGaugeRenderer
     showTickMarks, Axis
     showTicks
     showTooltip
     showTooltipDataPosition, $.jqplot.Cursor
     showTooltipGridPosition, $.jqplot.Cursor
     showTooltipOutsideZoom, $.jqplot.Cursor
     showTooltipPrecision, $.jqplot.CanvasOverlay
     showTooltipUnitPosition, $.jqplot.Cursor
     showVerticalLine, $.jqplot.Cursor
     size
     sizeAdjust, $.jqplot.Highlighter
     sliceMargin
     smooth, $.jqplot.LineRenderer
     sortData, jqPlot
     sortMergedLabels, $.jqplot.CategoryAxisRenderer
     stackedValue, $.jqplot.PointLabels
     stackSeries, jqPlot
     start, Line
     startAngle
     stop, Line
     strokeRect, $.jqplot.shapeRenderer
     strokeStyle, $.jqplot.shapeRenderer
     style
     suffix, $.jqplot.AxisTickRenderer
     synchronizeHighlight
     syncTicks, Axis
    - -
    this.scaleToHiddenSeries = false
    True to include hidden series when computing axes bounds and scaling.
    this.sectionMargin = 6
    spacing between funnel sections in pixels.
    this.series = []
    Array of series object options.
    An individual data series object.
    this.seriesColors = $.jqplot.config.defaultColors
    Ann array of CSS color specifications that will be applied, in order, to the series in the plot.
    seriesDefaults: {}, series:[] }
    default options that will be applied to all series.
    this.seriesLabelIndex = null
    array index for location of labels within data point arrays.
    this.seriesToggle = 'normal'
    false to not enable series on/off toggling on the legend.
    this.seriesToggleReplot = false
    True to replot the chart after toggling series on/off.
    $.jqplot.BezierCurveRenderer.prototype.setGridData = function(plot)
    converts the user data values to grid coordinates and stores them in the gridData array.
    $.jqplot.MekkoRenderer.prototype.setGridData = function(plot)
    converts the user data values to grid coordinates and stores them in the gridData array.
    wether or not to draw a shadow on the line
    this.shadow = true
    wether or not to draw a shadow on the line
    this.shadow = true
    true or false, wether or not to show the shadow.
    this.shadow = true
    wether to show a shadow behind the grid.
    this.shadowAlpha = 0.08
    transparency of the shadow (0 = transparent, 1 = opaque)
    Alpha channel transparency of shadow.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = '0.07'
    Alpha channel transparency of shadow.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = 0.07
    Alpha transparency of the shadow.
    this.shadowAlpha = '0.07'
    Alpha channel transparency of shadow.
    this.shadowAlpha = '0.1'
    Alpha channel transparency of shadow.
    Shadow angle in degrees
    this.shadowAngle = 45
    Shadow angle in degrees
    this.shadowAngle = 45
    Angle of the shadow on the trend line.
    this.shadowAngle = 45
    shadow angle in degrees
    this.shadowAngle = 45
    Shadow angle in degrees
    this.shadowColor = null
    an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowDepth = 4
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 3
    number of strokes to make of the shadow.
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    Shadow offset from line in pixels
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 2
    offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 1
    Shadow offset from line in pixels
    this.shadowOffset = 2
    offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 1.0
    pixel offset for each stroke of the shadow.
    this.shadowOffset = 1.5
    Offset of each shadow stroke from the border in pixels
    this.shadowOffset = 1.25
    Shadow offset from line in pixels
    this.shadowRenderer = new $.jqplot.ShadowRenderer()
    Renderer that will draws the shadows on the marker.
    this.shadowWidth = 3
    width of the stoke for the shadow
    this.shapeRenderer = new $.jqplot.ShapeRenderer()
    Renderer that will draw the marker.
    this.show = true
    wether or not to show the tick (mark and label).
    this.show = true
    wether or not to show the tick (mark and label).
    this.show = true
    wether or not to show the tick (mark and label).
    this.show = true
    wether or not to show the tick (mark and label).
    true to show (draw), false to not draw.
    this.show = $.jqplot.config.enablePlugins
    wether to show the cursor or not.
    this.show = $.jqplot.config.enablePlugins
    true to show the highlight.
    true to show the bands.
    this.show = true
    wether or not to show the marker.
    this.show = $.jqplot.config.enablePlugins
    show the labels or not.
    this.show = $.jqplot.config.enablePlugins
    Wether or not to show the trend line.
    this.show = false
    Wether to display the axis on the graph.
    this.show = false
    Wether to display the legend on the graph.
    this.show = true
    wether or not to draw the series.
    this.show = true
    wether or not to show the title
    this.showBorders = true
    True to draw borders lines between areas on the chart.
    this.showCursorLegend = false
    Replace the plot legend with an enhanced legend displaying intersection information.
    this.showDataLabels = false
    true to show data labels on slices.
    this.showDataLabels = false
    true to show data labels on slices.
    this.showDataLabels = false
    true to show data labels on slices.
    this.showGridline = true
    wether or not to draw the gridline on the grid at this tick.
    this.showGridline = true
    wether or not to draw the gridline on the grid at this tick.
    this.showHorizontalLine = false
    draw a horizontal line across the plot which follows the cursor.
    this.showLabel = true
    wether or not to show the label.
    this.showLabel = true
    wether or not to show the label.
    this.showLabel = true
    wether or not to show the label.
    this.showLabel = true
    true to show the axis label.
    this.showLabel = true
    true to show label for this series in the legend.
    this.showLabels = true
    True to show labels on bubbles (if any), false to not show.
    this.showLabels = true
    true to show the label text on the legend.
    this.showLine = true
    wether to actually draw the line or not.
    True to show lines at top and bottom of bands [default: false].
    this.showMark = true
    wether or not to show the mark on the axis.
    this.showMark = true
    wether or not to show the mark on the axis.
    this.showMarker = true
    true to show the marker
    this.showMarker = true
    wether or not to show the markers at the data points.
    this.showMinorTicks = true
    Wether or not to show minor ticks.
    this.showSwatches = true
    true to show the color swatches on the legend.
    this.showTickLabels = true
    true to show tick labels next to ticks.
    this.showTickMarks = true
    Wether to show the tick marks (line crossing grid) or not.
    this.showTicks = true
    true to show ticks around gauge.
    this.showTicks = true
    Wether to show the ticks (both marks and labels) or not.
    Show a tooltip with data point values.
    this.showTooltip = true
    show a cursor position tooltip.
    this.showTooltip = true
    Show a tooltip with data point values.
    this.showTooltipDataPosition = false
    Used with showVerticalLine to show intersecting data points in the tooltip.
    this.showTooltipGridPosition = false
    show the grid pixel coordinates of the mouse.
    this.showTooltipOutsideZoom = false
    True will keep updating the tooltip when zooming of the grid.
    Controls how close to line cursor must be to show tooltip.
    this.showTooltipUnitPosition = true
    show the unit (data) coordinates of the mouse.
    this.showVerticalLine = false
    draw a vertical line across the plot which follows the cursor.
    this.size = 4
    Length of the tick beyond the grid in pixels.
    this.size = 9.0
    Size of the marker (diameter or circle, length of edge of square, etc.)
    this.sizeAdjust = 5
    Pixels to add to the overall size of the highlight.
    this.sliceMargin = 0
    angular spacing between donut slices in degrees.
    this.sliceMargin = 0
    angular spacing between pie slices in degrees.
    this.renderer.smooth = false
    True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
    this.sortData = true
    false to not sort the data passed in by the user.
    this.sortMergedLabels = false
    True to sort tick labels when labels are created by merging x axis values from multiple series.
    this.stackedValue = false
    true to display value as stacked in a stacked plot.
    this.stackSeries = false
    true or false, creates a stack or “mountain” plot.
    [x, y] coordinates for the start of the line.
    this.startAngle = 0
    Angle to start drawing donut in degrees.
    this.startAngle = 0
    Angle to start drawing pie in degrees.
    stop: [] }
    [x, y] coordinates for the end of the line.
    this.strokeRect = false
    true to draw shape as a stroked rectangle.
    this.strokeStyle = '#999999'
    css color spec for the stoke style
    this.style = 'crosshair'
    CSS spec for cursor style
    this.style = 'filledCircle'
    One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
    this.suffix = ''
    String to append to the tick label.
    this.synchronizeHighlight = false
    Index of another series to highlight when this series is highlighted.
    this.syncTicks = null
    true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/General7.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/General7.html deleted file mode 100644 index bd9c0d112..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/General7.html +++ /dev/null @@ -1,58 +0,0 @@ - - -Index - - - - - - - - - -
    Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    T
     text, Title
     textAlign, Title
     textColor
     themes, $.jqplot.ThemeEngine
     thickness, $.jqplot.DonutRenderer
     tickColor, $.jqplot.MeterGaugeRenderer
     tickInset
     tickInterval, Axis
     tickLength, $.jqplot.OHLCRenderer
     tickMode, $.jqplot.MekkoAxisRenderer
     tickOptions, Axis
     tickPadding, $.jqplot.MeterGaugeRenderer
     tickRenderer
     ticks
     tickSpacing
     title, jqPlot
     Title
     tooltipAxes, $.jqplot.Highlighter
     tooltipAxisGroups, $.jqplot.Cursor
     tooltipFadeSpeed
     tooltipFormatString
     tooltipLocation
     tooltipOffset
     transposedData, $.jqplot.BarRenderer
     type, $.jqplot.Trendline
    U
     upBodyColor, $.jqplot.OHLCRenderer
     Usage
     useAxesFormatters
     useNegativeColors, Series
     useSeriesColor, Axis
    V
     varyBarColor, $.jqplot.BarRenderer
     varyBlockColors, $.jqplot.BlockRenderer
     varyBubbleColors, $.jqplot.BubbleRenderer
     Version
     VerticalLine
    W
     waterfall, $.jqplot.BarRenderer
     wickColor, $.jqplot.OHLCRenderer
     widthRatio, $.jqplot.FunnelRenderer
    X
     xaxis
     xmax, HorizontalLine
     xmin, HorizontalLine
     xoffset, Legend
     xpadding, $.jqplot.PointLabels
    Y
     y, HorizontalLine
     yaxis
     yoffset, Legend
     ypadding, $.jqplot.PointLabels
     yvalues, $.jqplot.Highlighter
    Z
     zoom, $.jqplot.Cursor
     zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
    - -
    this.text = text
    text of the title;
    this.textAlign
    css text-align spec for the text.
    this.textColor
    css spec for the color attribute.
    this.textColor = '#666666'
    css spec for the color attribute.
    this.textColor = '#666666'
    css spec for the color attribute.
    this.textColor
    css color spec for the legend text.
    this.textColor
    css color spec for the text.
    this.themes = {}
    hash of themes managed by the theme engine.
    this.thickness = null
    thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
    this.tickColor = "989898"
    color of the tick marks around the gauge.
    this.tickInset = 0
    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    this.tickInset = 0
    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    this.tickInterval
    number of units between ticks.
    this.tickLength = 'auto'
    length of the line in pixels indicating open and close price.
    this.tickMode
    How to space the ticks on the axis.
    this.tickOptions = {}
    Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
    this.tickPadding = null
    padding of the tick marks to the outer ring and the tick labels to marks.
    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    this.tickRenderer = $.jqplot.AxisTickRenderer
    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    this.ticks = []
    Array of tick values.
    this.ticks = []
    1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
    this.tickSpacing = 30
    Degrees between ticks.
    this.tickSpacing = 75
    Approximate pixel spacing between ticks on graph.
    this.title = new Title()
    Title object.
    Plot Title object.
    this.tooltipAxes = 'both'
    Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
    this.tooltipAxisGroups = []
    Show position for the specified axes.
    ‘slow’, ‘def’, ‘fast’, or number of milliseconds.
    this.tooltipFadeSpeed = "fast"
    ‘slow’, ‘def’, ‘fast’, or number of milliseconds.
    tooltipFormatString: '%d, %d' }
    Format string passed the x and y values of the cursor on the line.
    this.tooltipFormatString = '%.4P, %.4P'
    sprintf format string for the tooltip.
    this.tooltipFormatString = '%.5P'
    sprintf format string for the tooltip.
    Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
    this.tooltipLocation = 'se'
    Where to position tooltip.
    this.tooltipLocation = 'nw'
    Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
    Pixel offset of tooltip from the highlight.
    this.tooltipOffset = 6
    Pixel offset of tooltip from the grid boudaries or cursor center.
    this.tooltipOffset = 2
    Pixel offset of tooltip from the highlight.
    this.transposedData = true
    NOT IMPLEMENTED YET.
    this.type = 'linear'
    Either ‘exponential’, ‘exp’, or ‘linear’.
    - - - -
    this.upBodyColor = null
    Color of candlestick body of an “up” day.
    See jqPlot Usage
    this.useAxesFormatters = true
    Use the x and y axes formatters to format the text in the tooltip.
    this.useAxesFormatters = true
    Use the x and y axes formatters to format the text in the tooltip.
    this.useNegativeColors = true
    true to color negative values differently in filled and bar charts.
    this.useSeriesColor = false
    Use the color of the first series associated with this axis for the tick marks and line bordering this axis.
    - - - -
    this.varyBarColor = false
    true to color each bar of a series separately rather than have every bar of a given series the same color.
    this.varyBlockColors = false
    true to vary the color of each block in this series according to the seriesColors array.
    this.varyBubbleColors = true
    True to vary the color of each bubble in this series according to the seriesColors array.
    version: 1.0.0 revision: 1095
    A straight vertical line.
    - - - -
    this.waterfall = false
    true to enable waterfall plot.
    this.wickColor = null
    color of the hi-lo line thorugh the candlestick body.
    this.widthRatio = 0.2
    The ratio of the width of the top of the funnel to the bottom.
    - - - -
    X axis to use for positioning/scaling the line.
    this.xaxis = 'xaxis'
    which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
    x value for the end of the line, null to scale to axis max.
    x value for the start of the line, null to scale to axis min.
    this.xoffset = 0
    DEPRECATED.
    this.xpadding = 6
    horizontal padding in pixels between point and label
    - - - -
    y value to position the line
    Y axis to use for positioning/scaling the line.
    this.yaxis = 'yaxis'
    which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
    this.yoffset = 0
    DEPRECATED.
    this.ypadding = 6
    vertical padding in pixels between point and label
    this.yvalues = 1
    Number of y values to expect in the data point array.
    - - - -
    this.zoom = false
    Enable plot zooming.
    $.jqplot.Cursor.zoomProxy = function(targetPlot,
    controllerPlot)
    links targetPlot to controllerPlot so that plot zooming of targetPlot will be controlled by zooming on the controllerPlot.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Hooks.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Hooks.html deleted file mode 100644 index 0fd29b711..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Hooks.html +++ /dev/null @@ -1,46 +0,0 @@ - - -Hook Index - - - - - - - - - -
    Hook Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    A
     addLegendRowHooks, $.jqplot.$.jqplot
    E
     eventListenerHooks, $.jqplot.$.jqplot
    J
     jqPlot Pugin Hooks, $.jqplot
    P
     postDrawHooks, $.jqplot.$.jqplot
     postDrawSeriesHooks, $.jqplot.$.jqplot
     postDrawSeriesShadowHooks, $.jqplot.$.jqplot
     postInitHooks, $.jqplot.$.jqplot
     postParseOptionsHooks, $.jqplot.$.jqplot
     postParseSeriesOptionsHooks, $.jqplot.$.jqplot
     postSeriesInitHooks, $.jqplot.$.jqplot
     preDrawHooks, $.jqplot.$.jqplot
     preDrawLegendHooks, $.jqplot.$.jqplot
     preDrawSeriesHooks, $.jqplot.$.jqplot
     preDrawSeriesShadowHooks, $.jqplot.$.jqplot
     preInitHooks, $.jqplot.$.jqplot
     preParseOptionsHooks, $.jqplot.$.jqplot
     preParseSeriesOptionsHooks, $.jqplot.$.jqplot
     preSeriesInitHooks, $.jqplot.$.jqplot
    - -
    called at the end of legend draw, so plugins can add rows to the legend table.
    - - - -
    called at the end of plot drawing, binds listeners to the event canvas which lays on top of the grid area.
    - - - - - - - -
    called after plot draw.
    called after each series is drawn.
    called after series shadows are drawn.
    called after initialization.
    called after user options are parsed.
    called after series related options are parsed.
    called after series is initialized.
    called before plot draw.
    called before the legend is drawn.
    called before each series is drawn.
    called before series shadows are drawn.
    called before initialization.
    called before user options are parsed.
    called before series related options are parsed.
    called before series is initialized.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties.html deleted file mode 100644 index c3ca2bd43..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties.html +++ /dev/null @@ -1,42 +0,0 @@ - - -Property Index - - - - - - - - - -
    Property Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    A
     activeTheme, $.jqplot.ThemeEngine
     alignTicks, $.jqplot.LinearAxisRenderer
     alpha, $.jqplot.shadowRenderer
     angle
     animate, jqPlot
     animateReplot, jqPlot
     autoscale, Axis
     autoscaleBubbles, $.jqplot.BubbleRenderer
     autoscaleMultiplier, $.jqplot.BubbleRenderer
     autoscalePointsFactor, $.jqplot.BubbleRenderer
     axes, jqPlot
     axesDefaults, jqPlot
     axisDefaults, $.jqplot.LogAxisRenderer
    B
     background
     bandData, $.jqplot.LineRenderer
     barDirection, $.jqplot.BarRenderer
     barLabelOptions, $.jqplot.MekkoAxisRenderer
     barLabelRenderer, $.jqplot.MekkoAxisRenderer
     barLabels, $.jqplot.MekkoAxisRenderer
     barMargin, $.jqplot.BarRenderer
     barPadding
     barWidth, $.jqplot.BarRenderer
     baselineColor
     baselineWidth
     bodyWidth, $.jqplot.OHLCRenderer
     border, Legend
     borderColor
     borderWidth
     breakOnNull, Series
     breakPoints, $.jqplot.LinearAxisRenderer
     breakTickLabel, $.jqplot.LinearAxisRenderer
     bringSeriesToFront, $.jqplot.Highlighter
     bubbleAlpha, $.jqplot.BubbleRenderer
     bubbleGradients, $.jqplot.BubbleRenderer
    C
     candleStick, $.jqplot.OHLCRenderer
     clearRect, $.jqplot.shapeRenderer
     clickReset, $.jqplot.Cursor
     closeColor, $.jqplot.OHLCRenderer
     color
     constrainOutsideZoom, $.jqplot.Cursor
     constrainSmoothing, $.jqplot.LineRenderer
     constrainTo, $.jqplot.Dragable
     constrainZoomTo, $.jqplot.Cursor
     css, $.jqplot.BlockRenderer
     cursorLegendFormatString, $.jqplot.Cursor
    - -
    this.activeTheme=null
    Pointer to currently active theme
    this.alignTicks = false
    true to align tick marks across opposed axes such as from the y2axis to yaxis.
    this.alpha = 0.07
    alpha transparency of shadow stroke.
    this.angle = 0
    angle of text, measured clockwise from x axis.
    this.angle = 0
    angle of text, measured clockwise from x axis.
    this.angle = 45
    Angle of the shadow in degrees.
    this.animate = false
    True to animate the series on initial plot draw (renderer dependent).
    this.animateReplot = false
    True to animate series after a call to the replot() method.
    this.autoscale = false
    DEPRECATED the default scaling algorithm produces superior results.
    this.autoscaleBubbles = true
    True to scale the bubble radius based on plot size.
    this.autoscaleMultiplier = 1.0
    Multiplier the bubble size if autoscaleBubbles is true.
    this.autoscalePointsFactor = -0.07
    Factor which decreases bubble size based on how many bubbles on on the chart.
    this.axes = {xaxis: new Axis('xaxis'), yaxis: new Axis('yaxis'), x2axis: new Axis('x2axis'), y2axis: new Axis('y2axis'), y3axis: new Axis('y3axis'), y4axis: new Axis('y4axis'), y5axis: new Axis('y5axis'), y6axis: new Axis('y6axis'), y7axis: new Axis('y7axis'), y8axis: new Axis('y8axis'), y9axis: new Axis('y9axis'), yMidAxis: new Axis('yMidAxis')}
    up to 4 axes are supported, each with it’s own options, See Axis for axis specific options.
    default options that will be applied to all axes.
    Default properties which will be applied directly to the series.
    - - - -
    this.background = "#efefef"
    background color of the inside of the gauge.
    this.background = '#fffdf6'
    css spec for the background color.
    this.background
    css spec for the background of the legend box.
    this.renderer.bandData = []
    Data used to draw error bands or confidence intervals above/below a line.
    this.barDirection = 'vertical'
    ‘vertical’ = up and down bars, ‘horizontal’ = side to side bars
    this.barLabelOptions = {}
    options object to pass to the bar label renderer.
    this.barLabelRenderer = $.jqplot.AxisLabelRenderer
    renderer to use to draw labels under each bar.
    this.barLabels = this.barLabels || []
    array of labels to put under each bar.
    this.barMargin = 10
    Number of pixels between groups of bars at adjacent axis values.
    this.barPadding = 10
    this.barPadding = 8
    Number of pixels between adjacent bars at the same axis value.
    this.barWidth = null
    Width of the bar in pixels (auto by devaul).
    this.baselineColor = null
    CSS color spec for the baseline.
    this.baselineColor = null
    CSS color spec for the baseline.
    this.baselineColor = null
    CSS color spec for the baseline.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.baselineWidth = null
    width of the baseline in pixels.
    this.bodyWidth = 'auto'
    width of the candlestick body in pixels.
    this.border
    css spec for the border around the legend box.
    this.borderColor = null
    color of the borders between areas on the chart
    this.borderColor = null
    color of the border adjacent to the axis.
    this.borderColor = '#999999'
    css spec for the color of the grid border.
    this.borderWidth = null
    width of line stroked at the border of the axis.
    this.borderWidth = 2.0
    width of the border in pixels.
    this.breakOnNull = false
    Wether line segments should be be broken at null value.
    this.breakPoints = null
    EXPERIMENTAL!! 
    this.breakTickLabel = "&asymp
    Label to use at the axis break if breakPoints are specified.
    this.bringSeriesToFront = false
    This option requires jQuery 1.4+ True to bring the series of the highlighted point to the front of other series.
    this.bubbleAlpha = 1.0
    Alpha transparency to apply to all bubbles in this series.
    this.bubbleGradients = false
    True to color the bubbles with gradient fills instead of flat colors.
    - - - -
    this.candleStick = false
    true to render chart as candleStick.
    this.clearRect = false
    true to cear a rectangle.
    this.clickReset = false
    Will reset plot zoom if single click on plot without drag.
    this.closeColor = null
    color of the close price tick mark.
    color of the line
    this.color
    CSS color spec for the dragged point (and adjacent line segment or bar).
    color of lines at top and bottom of bands [default: series color].
    this.color = '#666666'
    color of marker.
    this.color = '#666666'
    CSS color spec for the trend line.
    this.color
    css color spec for the series
    this.constrainOutsideZoom = true
    True to limit actual zoom area to edges of grid, even when zooming outside of plot area.
    this.renderer.constrainSmoothing = true
    True to use a more accurate smoothing algorithm that will not overshoot any data points.
    this.constrainTo = 'none'
    Constrain dragging motion to an axis or to none.
    this.constrainZoomTo = 'none'
    ‘none’, ‘x’ or ‘y’
    this.css = {padding:'2px', border:'1px solid #999', textAlign:'center'}
    default css styles that will be applied to all data blocks.
    this.cursorLegendFormatString = $.jqplot.Cursor.cursorLegendFormatString
    Format string used in the cursor legend.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties2.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties2.html deleted file mode 100644 index 25004f926..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties2.html +++ /dev/null @@ -1,42 +0,0 @@ - - -Property Index - - - - - - - - - -
    Property Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    D
     dashPattern
     data, jqPlot
     dataLabelCenterOn, $.jqplot.PieRenderer
     dataLabelFormatString
     dataLabelNudge
     dataLabelPositionFactor
     dataLabels
     dataLabelThreshold
     dataRenderer, jqPlot
     dataRendererOptions, jqPlot
     dblClickReset, $.jqplot.Cursor
     defaultAxisStart, jqPlot
     depth, $.jqplot.shadowRenderer
     diameter
     disableIEFading
     disableStack, Series
     downBodyColor, $.jqplot.OHLCRenderer
     drawBaseline
     drawBorder, Grid
     drawGridlines, Grid
     drawMajorGridlines, Axis
     drawMajorTickMarks, Axis
     drawMinorGridlines, Axis
     drawMinorTickMarks, Axis
    E
     edgeTolerance, $.jqplot.PointLabels
     enableFontSupport
     escapeHtml
     escapeHTML
    F
     fadeTooltip
     fill
     fillAlpha, Series
     fillAndStroke, Series
     fillAxis, Series
     fillBetween, jqPlot
     fillColor
     fillDownBody, $.jqplot.OHLCRenderer
     fillRect, $.jqplot.shapeRenderer
     fillStyle, $.jqplot.shapeRenderer
     fillToValue, Series
     fillToZero, Series
     fillUpBody, $.jqplot.OHLCRenderer
     followMouse, $.jqplot.Cursor
     fontFamily
     fontSize
     fontStretch
     fontWeight
     forceTickAt0, $.jqplot.LinearAxisRenderer
     forceTickAt100, $.jqplot.LinearAxisRenderer
     formatString
     formatter
    - -
    dashPattern: [8,8] }
    Array of line, space settings in pixels.
    dashPattern: [8,8] }
    Array of line, space settings in pixels.
    this.data = []
    user’s data.
    this.dataLabelCenterOn = true
    True to center the data label at its position.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelFormatString = null
    Format string for data labels.
    this.dataLabelNudge = 0
    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
    this.dataLabelNudge = 2
    Number of pixels to slide the label away from (+) or toward (-) the center of the pie.
    this.dataLabelPositionFactor = 0.4
    A Multiplier (0-1) of the pie radius which controls position of label on slice.
    this.dataLabelPositionFactor = 0.52
    A Multiplier (0-1) of the pie radius which controls position of label on slice.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.dataLabels = 'percent'
    Either ‘label’, ‘value’, ‘percent’ or an array of labels to place on the pie slices.
    this.dataLabelThreshold = 3
    this.dataLabelThreshold = 3
    this.dataLabelThreshold = 3
    Threshhold in percentage (0-100) of pie area, below which no label will be displayed.
    this.dataRenderer
    A callable which can be used to preprocess data passed into the plot.
    this.dataRendererOptions
    Options that will be passed to the dataRenderer.
    this.dblClickReset = true
    Will reset plot zoom if double click on plot without drag.
    this.defaultAxisStart = 1
    1-D data series are internally converted into 2-D [x,y] data point arrays by jqPlot.
    this.depth = 3
    how many times the shadow is stroked.
    this.diameter = null
    Outer diameter of the donut, auto computed by default
    this.diameter = null
    Outer diameter of the meterGauge, auto computed by default
    this.diameter = null
    Outer diameter of the pie, auto computed by default
    this.disableIEFading = true
    true to toggle series with a show/hide method only and not allow fading in/out.
    this.disableStack = false
    true to not stack this series with other series in the plot.
    this.downBodyColor = null
    Color of candlestick body on a “down” day.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBaseline = true
    True to draw the axis baseline.
    this.drawBorder = true
    True to draw border around grid.
    this.drawGridlines = true
    wether to draw the gridlines on the plot.
    this.drawMajorGridlines = true
    True to draw gridlines for major axis ticks.
    this.drawMajorTickMarks = true
    True to draw tick marks for major axis ticks.
    this.drawMinorGridlines = false
    True to draw gridlines for minor ticks.
    this.drawMinorTickMarks = true
    True to draw tick marks for minor ticks.
    - - - -
    this.edgeTolerance = -5
    Number of pixels that the label must be away from an axis boundary in order to be drawn.
    this.enableFontSupport = true
    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    this.enableFontSupport = true
    true to turn on native canvas font support in Mozilla 3.5+ and Safari 4+.
    this.escapeHtml = false
    true to escape html in the box label.
    this.escapeHtml = true
    True to escape html in bubble label text.
    this.escapeHtml = false
    True to escape special characters with their html entity equivalents in legend text.
    this.escapeHtml = false
    True to escape special characters with their html entity equivalents in title text.
    this.escapeHTML = false
    true to escape HTML entities in the label.
    this.escapeHTML = false
    true to escape HTML entities in the label.
    this.escapeHTML = true
    true to escape html entities in the labels.
    - - - -
    true = fade in/out tooltip, flase = show/hide tooltip
    this.fadeTooltip = true
    true = fade in/out tooltip, flase = show/hide tooltip
    this.fill = true
    True to fill the bars.
    this.fill = true
    true or false, wether to fil the slices.
    this.fill = true
    true or false, wether to fill the areas.
    True to fill area between bands [default: true].
    this.fill = true
    true or false, wether to fil the slices.
    this.fill = false
    whether to fill the shape.
    this.fill = false
    whether to fill the shape.
    this.fill = false
    true or false, wether to fill under lines or in bars.
    this.fillAlpha
    Alpha transparency to apply to the fill under the line.
    this.fillAndStroke = false
    If true will stroke the line (with color this.color) as well as fill under it.
    this.fillAxis = 'y'
    Either ‘x’ or ‘y’.
    this.fillBetween = { series1: null, series2: null, color: null, baseSeries: 0, fill: true }
    Fill between 2 line series in a plot.
    css color spec for filled area.
    this.fillColor
    CSS color spec to use for fill under line.
    this.fillDownBody = true
    true to render a “down” day (close price lower than open price) with a filled candlestick body.
    this.fillRect = false
    true to draw shape as a filled rectangle.
    this.fillStyle = '#999999'
    css color spec for the fill style.
    this.fillToValue = 0
    fill a filled series to this value on the fill axis.
    this.fillToZero = false
    true will force bar and filled series to fill toward zero on the fill Axis.
    this.fillUpBody = false
    true to render an “up” day (close price greater than open price) with a filled candlestick body.
    this.followMouse = false
    Tooltip follows the mouse, it is not at a fixed location.
    this.fontFamily
    css spec for the font-family css attribute.
    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
    CSS spec for the font-family css attribute.
    this.fontFamily = '"Trebuchet MS", Arial, Helvetica, sans-serif'
    css spec for the font-family css attribute.
    this.fontFamily
    css font-family spec for the legend text.
    this.fontFamily
    css font-family spec for the text.
    this.fontSize
    css spec for the font-size css attribute.
    this.fontSize = '11pt'
    CSS spec for font size.
    this.fontSize = '10pt'
    CSS spec for font size.
    this.fontSize
    css spec for the font-size attribute.
    this.fontSize
    css font-size spec for the legend text.
    this.fontSize
    css font-size spec for the text.
    this.fontStretch = 1.0
    Multiplier to condense or expand font width.
    this.fontStretch = 1.0
    Multiplier to condense or expand font width.
    this.fontWeight = 'normal'
    this.fontWeight = 'normal'
    CSS spec for fontWeight
    this.forceTickAt0 = false
    This will ensure that there is always a tick mark at 0.
    this.forceTickAt100 = false
    This will ensure that there is always a tick mark at 100.
    this.formatString = ''
    string passed to the formatter.
    this.formatString = ''
    string passed to the formatter.
    this.formatString = null
    alternative to tooltipFormatString will format the whole tooltip text, populating with x, y values as indicated by tooltipAxes option.
    this.formatString = ''
    string passed to the formatter.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    this.formatter = $.jqplot.DefaultTickFormatter
    A class of a formatter for the tick text.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties3.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties3.html deleted file mode 100644 index 02add0b61..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties3.html +++ /dev/null @@ -1,46 +0,0 @@ - - -Property Index - - - - - - - - - -
    Property Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    G
     grid, jqPlot
     gridLineColor, Grid
     gridLineWidth, Grid
     groups, $.jqplot.BarRenderer
    H
     hideZeros, $.jqplot.PointLabels
     highlightAlpha, $.jqplot.BubbleRenderer
     highlightColor, $.jqplot.LineRenderer
     highlightColors
     highlightMouseDown
     highlightMouseOver
     hlc, $.jqplot.OHLCRenderer
     hubRadius, $.jqplot.MeterGaugeRenderer
    I
     index, Series
     innerDiameter, $.jqplot.DonutRenderer
     insertBreaks, $.jqplot.BlockRenderer
     intersectionThreshold, $.jqplot.Cursor
     interval, $.jqplot.LineRenderer
     intervalColors, $.jqplot.MeterGaugeRenderer
     intervalInnerRadius, $.jqplot.MeterGaugeRenderer
     intervalOuterRadius, $.jqplot.MeterGaugeRenderer
     intervals, $.jqplot.MeterGaugeRenderer
     isarc
     isMinorTick
    L
     label
     labelHeightAdjust, $.jqplot.MeterGaugeRenderer
     labelOptions, Axis
     labelPosition
     labelRenderer, Axis
     labels
     labelsFromSeries, $.jqplot.PointLabels
     legend, jqPlot
     lineCap
     lineJoin
     linePattern
     lineWidth
     lineWidthAdjust, $.jqplot.Highlighter
     location
     looseZoom, $.jqplot.Cursor
    - -
    this.grid = new Grid()
    See Grid for grid specific options.
    this.gridLineColor = '#cccccc'
    color of the grid lines.
    this.gridLineWidth = 1.0
    width of the grid lines.
    this.groups = 1
    group bars into this many groups
    - - - -
    this.hideZeros = false
    true to not show a label for a value which is 0.
    this.highlightAlpha = null
    Alpha transparency to apply when highlighting bubble.
    this.highlightColor = null
    color to use when highlighting an area on a filled plot.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a bar.
    this.highlightColors = []
    An array of colors to use when highlighting a slice.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.highlightColors = []
    array of colors to use when highlighting an area.
    this.highlightColors = []
    an array of colors to use when highlighting a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a bubble.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a area.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over an area on a filled plot.
    this.highlightMouseDown = false
    True to highlight when a mouse button is pressed over a slice.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseOver = true
    True to highlight bubbles when moused over.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.highlightMouseOver = true
    True to highlight area when moused over.
    this.highlightMouseOver = true
    True to highlight area on a filled plot when moused over.
    this.highlightMouseOver = true
    True to highlight slice when moused over.
    this.hlc = false
    true if is a hi-low-close chart (no open price).
    this.hubRadius = null
    Radius of the hub at the bottom center of gauge which the needle attaches to.
    - - - -
    this.index
    0 based index of this series in the plot series array.
    this.innerDiameter = null
    Inner diameter of the donut, auto calculated by default.
    this.insertBreaks = true
    true to turn spaces in data block label into html breaks br /.
    this.intersectionThreshold = 2
    pixel distance from data point or marker to consider cursor lines intersecting with point.
    interval: '3%' }
    User specified interval above and below line for bands [default: ‘3%’’].
    this.intervalColors = [ "#4bb2c5", "#EAA228", "#c5b47f", "#579575", "#839557", "#958c12", "#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc", "#c747a3", "#cddf54", "#FBD178", "#26B4E3", "#bd70c7"]
    Array of colors to use for the intervals.
    this.intervalInnerRadius = null
    Radius of the inner circle of the interval ring.
    this.intervalOuterRadius = null
    Radius of the outer circle of the interval ring.
    this.intervals = []
    Array of ranges to be drawn around the gauge.
    this.isarc = false
    wether the shadow is an arc or not.
    this.isarc = false
    wether the shadow is an arc or not.
    this.isMinorTick = false
    if this is a minor tick.
    this.isMinorTick = false
    if this is a minor tick.
    - - - -
    this.label = ''
    The text or html for the label.
    this.label = ''
    label for the axis.
    this.label = null
    A gauge label like ‘kph’ or ‘Volts’
    this.label = ''
    Label for the trend line to use in the legend.
    this.label = null
    Label for the axis
    this.label = ''
    Line label to use in the legend.
    this.labelHeightAdjust = 0
    Number of Pixels to offset the label up (-) or down (+) from its default position.
    this.labelOptions = {}
    Options passed to the label renderer.
    this.labelPosition = 'auto'
    ‘auto’, ‘start’, ‘middle’ or ‘end’.
    this.labelPosition = 'inside'
    Where to position the label, either ‘inside’ or ‘bottom’.
    this.labelRenderer = $.jqplot.AxisLabelRenderer
    A class of a rendering engine for creating an axis label.
    this.labels = []
    array of arrays of labels, one array for each series.
    this.labels = []
    Array of labels to use.
    this.labelsFromSeries = false
    true to use labels within data point arrays.
    this.legend = new Legend()
    see $.jqplot.TableLegendRenderer
    Type of ending placed on the line [‘round’, ‘butt’, ‘square’]
    this.lineCap = 'round'
    how ends of the shadow line are rendered.
    this.lineCap = 'round'
    how ends of the shadow line are rendered.
    this.lineCap = 'round'
    Canvas lineCap style at ends of line.
    this.lineJoin = 'miter'
    How line segments of the shadow are joined.
    this.lineJoin = 'miter'
    How line segments of the shadow are joined.
    this.lineJoin = 'round'
    Canvas lineJoin style between segments of series.
    this.linePattern = 'solid'
    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    this.linePattern = 'solid'
    line pattern ‘dashed’, ‘dotted’, ‘solid’, some combination of ‘-’ and ‘.’
    Width of the line.
    this.lineWidth = 2
    width of line if areas are stroked and not filled.
    this.lineWidth = 2
    size of the line for non-filled markers.
    this.lineWidth = 1.5
    Width of the hi-low line and open/close ticks.
    this.lineWidth = 1.5
    width of the shadow line stroke.
    this.lineWidth = 1.5
    Width of the trend line.
    this.lineWidth = 2.5
    width of the line in pixels.
    this.lineWidthAdjust = 2.5
    Pixels to add to the lineWidth of the highlight.
    this.location = 'n'
    compass location where to position the label around the point.
    this.location = 'ne'
    Placement of the legend.
    this.looseZoom = true
    Will expand zoom range to provide more rounded tick values.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties4.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties4.html deleted file mode 100644 index 0bf1430b3..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties4.html +++ /dev/null @@ -1,50 +0,0 @@ - - -Property Index - - - - - - - - - -
    Property Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    M
     marginBottom, Legend
     marginLeft, Legend
     marginRight, Legend
     marginTop, Legend
     mark
     markerOptions, Series
     markerRenderer
     markSize
     max
     min
     minorTicks
    N
     name, $.jqplot.CanvasOverlay
     needlePad, $.jqplot.MeterGaugeRenderer
     needleThickness, $.jqplot.MeterGaugeRenderer
     negativeColor, Series
     neighborThreshold, Series
     noDataIndicator, jqPlot
     numberColumns
     numberRows
     numberTicks, Axis
    O
     objects, $.jqplot.CanvasOverlay
     offset, $.jqplot.shadowRenderer
     offsetBars
     openColor, $.jqplot.OHLCRenderer
    P
     pad, Axis
     padding
     padMax, Axis
     padMin, Axis
     pegNeedle, $.jqplot.MeterGaugeRenderer
     placement, Legend
     position
     predraw, Legend
     prefix
     pt2px
    R
     renderer
     rendererOptions
     ringColor, $.jqplot.MeterGaugeRenderer
     ringMargin, $.jqplot.DonutRenderer
     ringWidth, $.jqplot.MeterGaugeRenderer
     rowSpacing, Legend
    - -
    this.marginBottom = null
    CSS margin for the legend DOM element.
    this.marginLeft = null
    CSS margin for the legend DOM element.
    this.marginRight = null
    CSS margin for the legend DOM element.
    this.marginTop = null
    CSS margin for the legend DOM element.
    this.mark = 'outside'
    tick mark on the axis.
    this.mark = 'outside'
    tick mark on the axis.
    this.markerOptions = {}
    renderer specific options to pass to the markerRenderer, see $.jqplot.MarkerRenderer.
    this.markerRenderer = new $.jqplot.MarkerRenderer({shadow:false})
    Renderer used to draw the marker of the highlighted point.
    this.markerRenderer = {show:false}
    Renderer to use to draw markers on the line.
    this.markerRenderer = $.jqplot.MarkerRenderer
    A class of a renderer which will draw marker (e.g.
    this.markSize = 6
    Length of the tick marks in pixels.
    this.markSize = 4
    Length of the tick marks in pixels.
    this.max
    Maximum value on the gauge.
    this.max = null
    maximum value of the axis (in data units, not pixels).
    this.min
    Minimum value on the gauge.
    this.min = null
    minimum value of the axis (in data units, not pixels).
    this.minorTicks = 0
    Number of ticks to add between “major” ticks.
    this.minorTicks = 'auto'
    Number of ticks to add between “major” ticks.
    - - - -
    Optional name for the overlay object.
    this.needlePad = 6
    Padding between needle and inner edge of the ring when the needle is at the min or max gauge value.
    this.needleThickness = null
    Maximum thickness the needle.
    this.negativeColor
    css color spec used for filled (area) plots that are filled to zero and the “useNegativeColors” option is true.
    this.neighborThreshold = 4
    how close or far (in pixels) the cursor must be from a point marker to detect the point.
    Options to set up a mock plot with a data loading indicator if no data is specified.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberColumns = null
    Maximum number of columns in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberRows = null
    Maximum number of rows in the legend.
    this.numberTicks
    Desired number of ticks.
    - - - -
    this.objects = []
    this.offset = 1
    Pixel offset at the given shadow angle of each shadow stroke from the last stroke.
    this.offsetBars = false
    False will center bars on their y value.
    this.openColor = null
    color of the open price tick mark.
    - - - -
    this.pad = 1.2
    Padding to extend the range above and below the data bounds.
    this.padding = 20
    padding between the donut and plot edges, legend, etc.
    this.padding = {top: 20, right: 20, bottom: 20, left: 20}
    padding between the funnel and plot edges, legend, etc.
    this.padding = null
    padding between the meterGauge and plot edges, auto calculated by default.
    this.padding = 20
    padding between the pie and plot edges, legend, etc.
    this.padMax = null
    Padding to extend the range above data bounds.
    this.padMin = null
    Padding to extend the range below data bounds.
    this.pegNeedle = true
    True will stop needle just below/above the min/max values if data is below/above min/max, as if the meter is “pegged”.
    this.placement = "insideGrid"
    “insideGrid” places legend inside the grid area of the plot.
    this.position = null
    Position of axis.
    Wether to draw the legend before the series or not.
    this.prefix = ''
    String to prepend to the tick label.
    this.prefix = ''
    String to prepend to the tick label.
    this.pt2px = null
    Point to pixel scaling factor, used for computing height of bounding box around a label.
    this.pt2px = null
    Point to pixel scaling factor, used for computing height of bounding box around a label.
    - - - -
    this.renderer = new $.jqplot.LineRenderer()
    Renderer to use to draw the trend line.
    this.renderer = $.jqplot.LinearAxisRenderer
    A class of a rendering engine that handles tick generation, scaling input data to pixel grid units and drawing the axis element.
    this.renderer = $.jqplot.CanvasGridRenderer
    Instance of a renderer which will actually render the grid, see $.jqplot.CanvasGridRenderer.
    this.renderer = $.jqplot.LineRenderer
    A class of a renderer which will draw the series, see $.jqplot.LineRenderer.
    this.renderer = $.jqplot.DivTitleRenderer
    A class for creating a DOM element for the title, see $.jqplot.DivTitleRenderer.
    this.rendererOptions = {marker:{show:false}}
    Options to pass to the line renderer.
    this.rendererOptions = {}
    renderer specific options.
    this.rendererOptions = {}
    Options to pass on to the renderer, see $.jqplot.CanvasGridRenderer.
    this.rendererOptions = {}
    renderer specific options passed to the renderer.
    this.rendererOptions = {}
    Options to pass on to the renderer.
    this.rendererOptions = {}
    renderer specific options passed to the renderer.
    this.ringColor = "#BBC6D0"
    color of the outer ring, hub, and needle of the gauge.
    this.ringMargin = null
    pixel distance between rings, or multiple series in a donut plot.
    this.ringWidth = null
    width of the ring around the gauge.
    this.rowSpacing = '0.5em'
    css padding-top spec for the rows in the legend.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties5.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties5.html deleted file mode 100644 index 0d153d74e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties5.html +++ /dev/null @@ -1,34 +0,0 @@ - - -Property Index - - - - - - - - - -
    Property Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    S
     scaleToHiddenSeries, Axis
     sectionMargin, $.jqplot.FunnelRenderer
     series, jqPlot
     seriesColors, jqPlot
     seriesDefaults, jqPlot
     seriesLabelIndex, $.jqplot.PointLabels
     seriesToggle
     seriesToggleReplot
     shadow
     shadowAlpha
     shadowAngle
     shadowColor, Grid
     shadowDepth
     shadowOffset
     shadowRenderer, $.jqplot.MarkerRenderer
     shadowWidth, Grid
     shapeRenderer, $.jqplot.MarkerRenderer
     show
     showBorders, $.jqplot.MekkoRenderer
     showCursorLegend, $.jqplot.Cursor
     showDataLabels
     showGridline
     showHorizontalLine, $.jqplot.Cursor
     showLabel
     showLabels
     showLine, Series
     showLines, $.jqplot.LineRenderer
     showMark
     showMarker
     showMinorTicks, Axis
     showSwatch, Legend
     showTickLabels, $.jqplot.MeterGaugeRenderer
     showTickMarks, Axis
     showTicks
     showTooltip
     showTooltipDataPosition, $.jqplot.Cursor
     showTooltipGridPosition, $.jqplot.Cursor
     showTooltipOutsideZoom, $.jqplot.Cursor
     showTooltipPrecision, $.jqplot.CanvasOverlay
     showTooltipUnitPosition, $.jqplot.Cursor
     showVerticalLine, $.jqplot.Cursor
     size
     sizeAdjust, $.jqplot.Highlighter
     sliceMargin
     smooth, $.jqplot.LineRenderer
     sortData, jqPlot
     sortMergedLabels, $.jqplot.CategoryAxisRenderer
     stackedValue, $.jqplot.PointLabels
     stackSeries, jqPlot
     start, Line
     startAngle
     stop, Line
     strokeRect, $.jqplot.shapeRenderer
     strokeStyle, $.jqplot.shapeRenderer
     style
     suffix, $.jqplot.AxisTickRenderer
     synchronizeHighlight
     syncTicks, Axis
    - -
    this.scaleToHiddenSeries = false
    True to include hidden series when computing axes bounds and scaling.
    this.sectionMargin = 6
    spacing between funnel sections in pixels.
    this.series = []
    Array of series object options.
    this.seriesColors = $.jqplot.config.defaultColors
    Ann array of CSS color specifications that will be applied, in order, to the series in the plot.
    seriesDefaults: {}, series:[] }
    default options that will be applied to all series.
    this.seriesLabelIndex = null
    array index for location of labels within data point arrays.
    this.seriesToggle = 'normal'
    false to not enable series on/off toggling on the legend.
    this.seriesToggleReplot = false
    True to replot the chart after toggling series on/off.
    wether or not to draw a shadow on the line
    this.shadow = true
    wether or not to draw a shadow on the line
    this.shadow = true
    true or false, wether or not to show the shadow.
    this.shadow = true
    wether to show a shadow behind the grid.
    this.shadowAlpha = 0.08
    transparency of the shadow (0 = transparent, 1 = opaque)
    Alpha channel transparency of shadow.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = '0.07'
    Alpha channel transparency of shadow.
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = 0.07
    transparency of the shadow (0 = transparent, 1 = opaque)
    this.shadowAlpha = 0.07
    Alpha transparency of the shadow.
    this.shadowAlpha = '0.07'
    Alpha channel transparency of shadow.
    this.shadowAlpha = '0.1'
    Alpha channel transparency of shadow.
    Shadow angle in degrees
    this.shadowAngle = 45
    Shadow angle in degrees
    this.shadowAngle = 45
    Angle of the shadow on the trend line.
    this.shadowAngle = 45
    shadow angle in degrees
    this.shadowAngle = 45
    Shadow angle in degrees
    this.shadowColor = null
    an optional css color spec for the shadow in ‘rgba(n, n, n, n)’ form
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowDepth = 4
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 5
    number of strokes to apply to the shadow, each stroke offset shadowOffset from the last.
    this.shadowDepth = 3
    number of strokes to make of the shadow.
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowDepth = 3
    Number of times shadow is stroked, each stroke offset shadowOffset from the last.
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    Shadow offset from line in pixels
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 2
    offset of the shadow from the area and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 1
    Shadow offset from line in pixels
    this.shadowOffset = 2
    offset of the shadow from the gauge ring and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 2
    offset of the shadow from the slice and offset of each succesive stroke of the shadow from the last.
    this.shadowOffset = 1.0
    pixel offset for each stroke of the shadow.
    this.shadowOffset = 1.5
    Offset of each shadow stroke from the border in pixels
    this.shadowOffset = 1.25
    Shadow offset from line in pixels
    this.shadowRenderer = new $.jqplot.ShadowRenderer()
    Renderer that will draws the shadows on the marker.
    this.shadowWidth = 3
    width of the stoke for the shadow
    this.shapeRenderer = new $.jqplot.ShapeRenderer()
    Renderer that will draw the marker.
    this.show = true
    wether or not to show the tick (mark and label).
    this.show = true
    wether or not to show the tick (mark and label).
    this.show = true
    wether or not to show the tick (mark and label).
    this.show = true
    wether or not to show the tick (mark and label).
    true to show (draw), false to not draw.
    this.show = $.jqplot.config.enablePlugins
    wether to show the cursor or not.
    this.show = $.jqplot.config.enablePlugins
    true to show the highlight.
    true to show the bands.
    this.show = true
    wether or not to show the marker.
    this.show = $.jqplot.config.enablePlugins
    show the labels or not.
    this.show = $.jqplot.config.enablePlugins
    Wether or not to show the trend line.
    this.show = false
    Wether to display the axis on the graph.
    this.show = false
    Wether to display the legend on the graph.
    this.show = true
    wether or not to draw the series.
    this.show = true
    wether or not to show the title
    this.showBorders = true
    True to draw borders lines between areas on the chart.
    this.showCursorLegend = false
    Replace the plot legend with an enhanced legend displaying intersection information.
    this.showDataLabels = false
    true to show data labels on slices.
    this.showDataLabels = false
    true to show data labels on slices.
    this.showDataLabels = false
    true to show data labels on slices.
    this.showGridline = true
    wether or not to draw the gridline on the grid at this tick.
    this.showGridline = true
    wether or not to draw the gridline on the grid at this tick.
    this.showHorizontalLine = false
    draw a horizontal line across the plot which follows the cursor.
    this.showLabel = true
    wether or not to show the label.
    this.showLabel = true
    wether or not to show the label.
    this.showLabel = true
    wether or not to show the label.
    this.showLabel = true
    true to show the axis label.
    this.showLabel = true
    true to show label for this series in the legend.
    this.showLabels = true
    True to show labels on bubbles (if any), false to not show.
    this.showLabels = true
    true to show the label text on the legend.
    this.showLine = true
    wether to actually draw the line or not.
    True to show lines at top and bottom of bands [default: false].
    this.showMark = true
    wether or not to show the mark on the axis.
    this.showMark = true
    wether or not to show the mark on the axis.
    this.showMarker = true
    true to show the marker
    this.showMarker = true
    wether or not to show the markers at the data points.
    this.showMinorTicks = true
    Wether or not to show minor ticks.
    this.showSwatches = true
    true to show the color swatches on the legend.
    this.showTickLabels = true
    true to show tick labels next to ticks.
    this.showTickMarks = true
    Wether to show the tick marks (line crossing grid) or not.
    this.showTicks = true
    true to show ticks around gauge.
    this.showTicks = true
    Wether to show the ticks (both marks and labels) or not.
    Show a tooltip with data point values.
    this.showTooltip = true
    show a cursor position tooltip.
    this.showTooltip = true
    Show a tooltip with data point values.
    this.showTooltipDataPosition = false
    Used with showVerticalLine to show intersecting data points in the tooltip.
    this.showTooltipGridPosition = false
    show the grid pixel coordinates of the mouse.
    this.showTooltipOutsideZoom = false
    True will keep updating the tooltip when zooming of the grid.
    Controls how close to line cursor must be to show tooltip.
    this.showTooltipUnitPosition = true
    show the unit (data) coordinates of the mouse.
    this.showVerticalLine = false
    draw a vertical line across the plot which follows the cursor.
    this.size = 4
    Length of the tick beyond the grid in pixels.
    this.size = 9.0
    Size of the marker (diameter or circle, length of edge of square, etc.)
    this.sizeAdjust = 5
    Pixels to add to the overall size of the highlight.
    this.sliceMargin = 0
    angular spacing between donut slices in degrees.
    this.sliceMargin = 0
    angular spacing between pie slices in degrees.
    this.renderer.smooth = false
    True to draw a smoothed (interpolated) line through the data points with automatically computed number of smoothing points.
    this.sortData = true
    false to not sort the data passed in by the user.
    this.sortMergedLabels = false
    True to sort tick labels when labels are created by merging x axis values from multiple series.
    this.stackedValue = false
    true to display value as stacked in a stacked plot.
    this.stackSeries = false
    true or false, creates a stack or “mountain” plot.
    [x, y] coordinates for the start of the line.
    this.startAngle = 0
    Angle to start drawing donut in degrees.
    this.startAngle = 0
    Angle to start drawing pie in degrees.
    stop: [] }
    [x, y] coordinates for the end of the line.
    this.strokeRect = false
    true to draw shape as a stroked rectangle.
    this.strokeStyle = '#999999'
    css color spec for the stoke style
    this.style = 'crosshair'
    CSS spec for cursor style
    this.style = 'filledCircle'
    One of diamond, circle, square, x, plus, dash, filledDiamond, filledCircle, filledSquare
    this.suffix = ''
    String to append to the tick label.
    this.synchronizeHighlight = false
    Index of another series to highlight when this series is highlighted.
    this.syncTicks = null
    true to try and synchronize tick spacing across multiple axes so that ticks and grid lines line up.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties6.html b/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties6.html deleted file mode 100644 index efa7fdbfa..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/index/Properties6.html +++ /dev/null @@ -1,58 +0,0 @@ - - -Property Index - - - - - - - - - -
    Property Index
    $#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
    T
     text, Title
     textAlign, Title
     textColor
     themes, $.jqplot.ThemeEngine
     thickness, $.jqplot.DonutRenderer
     tickColor, $.jqplot.MeterGaugeRenderer
     tickInset
     tickInterval, Axis
     tickLength, $.jqplot.OHLCRenderer
     tickMode, $.jqplot.MekkoAxisRenderer
     tickOptions, Axis
     tickPadding, $.jqplot.MeterGaugeRenderer
     tickRenderer
     ticks
     tickSpacing
     title, jqPlot
     tooltipAxes, $.jqplot.Highlighter
     tooltipAxisGroups, $.jqplot.Cursor
     tooltipFadeSpeed
     tooltipFormatString
     tooltipLocation
     tooltipOffset
     transposedData, $.jqplot.BarRenderer
     type, $.jqplot.Trendline
    U
     upBodyColor, $.jqplot.OHLCRenderer
     useAxesFormatters
     useNegativeColors, Series
     useSeriesColor, Axis
    V
     varyBarColor, $.jqplot.BarRenderer
     varyBlockColors, $.jqplot.BlockRenderer
     varyBubbleColors, $.jqplot.BubbleRenderer
    W
     waterfall, $.jqplot.BarRenderer
     wickColor, $.jqplot.OHLCRenderer
     widthRatio, $.jqplot.FunnelRenderer
    X
     xaxis
     xmax, HorizontalLine
     xmin, HorizontalLine
     xoffset, Legend
     xpadding, $.jqplot.PointLabels
    Y
     y, HorizontalLine
     yaxis
     yoffset, Legend
     ypadding, $.jqplot.PointLabels
     yvalues, $.jqplot.Highlighter
    Z
     zoom, $.jqplot.Cursor
    - -
    this.text = text
    text of the title;
    this.textAlign
    css text-align spec for the text.
    this.textColor
    css spec for the color attribute.
    this.textColor = '#666666'
    css spec for the color attribute.
    this.textColor = '#666666'
    css spec for the color attribute.
    this.textColor
    css color spec for the legend text.
    this.textColor
    css color spec for the text.
    this.themes = {}
    hash of themes managed by the theme engine.
    this.thickness = null
    thickness of the donut, auto computed by default Overridden by if innerDiameter is specified.
    this.tickColor = "989898"
    color of the tick marks around the gauge.
    this.tickInset = 0
    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    this.tickInset = 0
    Controls the amount to inset the first and last ticks from the edges of the grid, in multiples of the tick interval.
    this.tickInterval
    number of units between ticks.
    this.tickLength = 'auto'
    length of the line in pixels indicating open and close price.
    this.tickMode
    How to space the ticks on the axis.
    this.tickOptions = {}
    Options that will be passed to the tickRenderer, see $.jqplot.AxisTickRenderer options.
    this.tickPadding = null
    padding of the tick marks to the outer ring and the tick labels to marks.
    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    this.tickRenderer = $.jqplot.AxisTickRenderer
    A class of a rendering engine for creating the ticks labels displayed on the plot, See $.jqplot.AxisTickRenderer.
    this.ticks = []
    Array of tick values.
    this.ticks = []
    1D [val, val, ...] or 2D [[val, label], [val, label], ...] array of ticks for the axis.
    this.tickSpacing = 30
    Degrees between ticks.
    this.tickSpacing = 75
    Approximate pixel spacing between ticks on graph.
    this.title = new Title()
    Title object.
    this.tooltipAxes = 'both'
    Which axes to display in tooltip, ‘x’, ‘y’ or ‘both’, ‘xy’ or ‘yx’ ‘both’ and ‘xy’ are equivalent, ‘yx’ reverses order of labels.
    this.tooltipAxisGroups = []
    Show position for the specified axes.
    ‘slow’, ‘def’, ‘fast’, or number of milliseconds.
    this.tooltipFadeSpeed = "fast"
    ‘slow’, ‘def’, ‘fast’, or number of milliseconds.
    tooltipFormatString: '%d, %d' }
    Format string passed the x and y values of the cursor on the line.
    this.tooltipFormatString = '%.4P, %.4P'
    sprintf format string for the tooltip.
    this.tooltipFormatString = '%.5P'
    sprintf format string for the tooltip.
    Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
    this.tooltipLocation = 'se'
    Where to position tooltip.
    this.tooltipLocation = 'nw'
    Where to position tooltip, ‘n’, ‘ne’, ‘e’, ‘se’, ‘s’, ‘sw’, ‘w’, ‘nw’
    Pixel offset of tooltip from the highlight.
    this.tooltipOffset = 6
    Pixel offset of tooltip from the grid boudaries or cursor center.
    this.tooltipOffset = 2
    Pixel offset of tooltip from the highlight.
    this.transposedData = true
    NOT IMPLEMENTED YET.
    this.type = 'linear'
    Either ‘exponential’, ‘exp’, or ‘linear’.
    - - - -
    this.upBodyColor = null
    Color of candlestick body of an “up” day.
    this.useAxesFormatters = true
    Use the x and y axes formatters to format the text in the tooltip.
    this.useAxesFormatters = true
    Use the x and y axes formatters to format the text in the tooltip.
    this.useNegativeColors = true
    true to color negative values differently in filled and bar charts.
    this.useSeriesColor = false
    Use the color of the first series associated with this axis for the tick marks and line bordering this axis.
    - - - -
    this.varyBarColor = false
    true to color each bar of a series separately rather than have every bar of a given series the same color.
    this.varyBlockColors = false
    true to vary the color of each block in this series according to the seriesColors array.
    this.varyBubbleColors = true
    True to vary the color of each bubble in this series according to the seriesColors array.
    - - - -
    this.waterfall = false
    true to enable waterfall plot.
    this.wickColor = null
    color of the hi-lo line thorugh the candlestick body.
    this.widthRatio = 0.2
    The ratio of the width of the top of the funnel to the bottom.
    - - - -
    X axis to use for positioning/scaling the line.
    this.xaxis = 'xaxis'
    which x axis to use with this series, either ‘xaxis’ or ‘x2axis’.
    x value for the end of the line, null to scale to axis max.
    x value for the start of the line, null to scale to axis min.
    this.xoffset = 0
    DEPRECATED.
    this.xpadding = 6
    horizontal padding in pixels between point and label
    - - - -
    y value to position the line
    Y axis to use for positioning/scaling the line.
    this.yaxis = 'yaxis'
    which y axis to use with this series, either ‘yaxis’ or ‘y2axis’.
    this.yoffset = 0
    DEPRECATED.
    this.ypadding = 6
    vertical padding in pixels between point and label
    this.yvalues = 1
    Number of y values to expect in the data point array.
    - - - -
    this.zoom = false
    Enable plot zooming.
    - -
    - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/javascript/main.js b/assets/javascripts/jquery/jquery.jqplot/docs/javascript/main.js deleted file mode 100644 index efcdca966..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/javascript/main.js +++ /dev/null @@ -1,836 +0,0 @@ -// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure -// Natural Docs is licensed under the GPL - - -// -// Browser Styles -// ____________________________________________________________________________ - -var agt=navigator.userAgent.toLowerCase(); -var browserType; -var browserVer; - -if (agt.indexOf("opera") != -1) - { - browserType = "Opera"; - - if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) - { browserVer = "Opera7"; } - else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) - { browserVer = "Opera8"; } - else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) - { browserVer = "Opera9"; } - } - -else if (agt.indexOf("applewebkit") != -1) - { - browserType = "Safari"; - - if (agt.indexOf("version/3") != -1) - { browserVer = "Safari3"; } - else if (agt.indexOf("safari/4") != -1) - { browserVer = "Safari2"; } - } - -else if (agt.indexOf("khtml") != -1) - { - browserType = "Konqueror"; - } - -else if (agt.indexOf("msie") != -1) - { - browserType = "IE"; - - if (agt.indexOf("msie 6") != -1) - { browserVer = "IE6"; } - else if (agt.indexOf("msie 7") != -1) - { browserVer = "IE7"; } - } - -else if (agt.indexOf("gecko") != -1) - { - browserType = "Firefox"; - - if (agt.indexOf("rv:1.7") != -1) - { browserVer = "Firefox1"; } - else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1) - { browserVer = "Firefox15"; } - else if (agt.indexOf("rv:1.8.1") != -1) - { browserVer = "Firefox2"; } - } - - -// -// Support Functions -// ____________________________________________________________________________ - - -function GetXPosition(item) - { - var position = 0; - - if (item.offsetWidth != null) - { - while (item != document.body && item != null) - { - position += item.offsetLeft; - item = item.offsetParent; - }; - }; - - return position; - }; - - -function GetYPosition(item) - { - var position = 0; - - if (item.offsetWidth != null) - { - while (item != document.body && item != null) - { - position += item.offsetTop; - item = item.offsetParent; - }; - }; - - return position; - }; - - -function MoveToPosition(item, x, y) - { - // Opera 5 chokes on the px extension, so it can use the Microsoft one instead. - - if (item.style.left != null) - { - item.style.left = x + "px"; - item.style.top = y + "px"; - } - else if (item.style.pixelLeft != null) - { - item.style.pixelLeft = x; - item.style.pixelTop = y; - }; - }; - - -// -// Menu -// ____________________________________________________________________________ - - -function ToggleMenu(id) - { - if (!window.document.getElementById) - { return; }; - - var display = window.document.getElementById(id).style.display; - - if (display == "none") - { display = "block"; } - else - { display = "none"; } - - window.document.getElementById(id).style.display = display; - } - -function HideAllBut(ids, max) - { - if (document.getElementById) - { - ids.sort( function(a,b) { return a - b; } ); - var number = 1; - - while (number < max) - { - if (ids.length > 0 && number == ids[0]) - { ids.shift(); } - else - { - document.getElementById("MGroupContent" + number).style.display = "none"; - }; - - number++; - }; - }; - } - - -// -// Tooltips -// ____________________________________________________________________________ - - -var tooltipTimer = 0; - -function ShowTip(event, tooltipID, linkID) - { - if (tooltipTimer) - { clearTimeout(tooltipTimer); }; - - var docX = event.clientX + window.pageXOffset; - var docY = event.clientY + window.pageYOffset; - - var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")"; - - tooltipTimer = setTimeout(showCommand, 1000); - } - -function ReallyShowTip(tooltipID, linkID, docX, docY) - { - tooltipTimer = 0; - - var tooltip; - var link; - - if (document.getElementById) - { - tooltip = document.getElementById(tooltipID); - link = document.getElementById(linkID); - } -/* else if (document.all) - { - tooltip = eval("document.all['" + tooltipID + "']"); - link = eval("document.all['" + linkID + "']"); - } -*/ - if (tooltip) - { - var left = GetXPosition(link); - var top = GetYPosition(link); - top += link.offsetHeight; - - - // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number - // in case some browser snuck through the above if statement but didn't support everything. - - if (!isFinite(top) || top == 0) - { - left = docX; - top = docY; - } - - // Some spacing to get it out from under the cursor. - - top += 10; - - // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the - // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right. - - if (tooltip.offsetWidth != null) - { - var width = tooltip.offsetWidth; - var docWidth = document.body.clientWidth; - - if (left + width > docWidth) - { left = docWidth - width - 1; } - - // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width. - if (left < 0) - { left = 0; }; - } - - MoveToPosition(tooltip, left, top); - tooltip.style.visibility = "visible"; - } - } - -function HideTip(tooltipID) - { - if (tooltipTimer) - { - clearTimeout(tooltipTimer); - tooltipTimer = 0; - } - - var tooltip; - - if (document.getElementById) - { tooltip = document.getElementById(tooltipID); } - else if (document.all) - { tooltip = eval("document.all['" + tooltipID + "']"); } - - if (tooltip) - { tooltip.style.visibility = "hidden"; } - } - - -// -// Blockquote fix for IE -// ____________________________________________________________________________ - - -function NDOnLoad() - { - if (browserVer == "IE6") - { - var scrollboxes = document.getElementsByTagName('blockquote'); - - if (scrollboxes.item(0)) - { - NDDoResize(); - window.onresize=NDOnResize; - }; - }; - }; - - -var resizeTimer = 0; - -function NDOnResize() - { - if (resizeTimer != 0) - { clearTimeout(resizeTimer); }; - - resizeTimer = setTimeout(NDDoResize, 250); - }; - - -function NDDoResize() - { - var scrollboxes = document.getElementsByTagName('blockquote'); - - var i; - var item; - - i = 0; - while (item = scrollboxes.item(i)) - { - item.style.width = 100; - i++; - }; - - i = 0; - while (item = scrollboxes.item(i)) - { - item.style.width = item.parentNode.offsetWidth; - i++; - }; - - clearTimeout(resizeTimer); - resizeTimer = 0; - } - - - -/* ________________________________________________________________________________________________________ - - Class: SearchPanel - ________________________________________________________________________________________________________ - - A class handling everything associated with the search panel. - - Parameters: - - name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts. - mode - The mode the search is going to work in. Pass CommandLineOption()>, so the - value will be something like "HTML" or "FramedHTML". - - ________________________________________________________________________________________________________ -*/ - - -function SearchPanel(name, mode, resultsPath) - { - if (!name || !mode || !resultsPath) - { alert("Incorrect parameters to SearchPanel."); }; - - - // Group: Variables - // ________________________________________________________________________ - - /* - var: name - The name of the global variable that will be storing this instance of the class. - */ - this.name = name; - - /* - var: mode - The mode the search is going to work in, such as "HTML" or "FramedHTML". - */ - this.mode = mode; - - /* - var: resultsPath - The relative path from the current HTML page to the results page directory. - */ - this.resultsPath = resultsPath; - - /* - var: keyTimeout - The timeout used between a keystroke and when a search is performed. - */ - this.keyTimeout = 0; - - /* - var: keyTimeoutLength - The length of in thousandths of a second. - */ - this.keyTimeoutLength = 500; - - /* - var: lastSearchValue - The last search string executed, or an empty string if none. - */ - this.lastSearchValue = ""; - - /* - var: lastResultsPage - The last results page. The value is only relevant if is set. - */ - this.lastResultsPage = ""; - - /* - var: deactivateTimeout - - The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary - because a control may be deactivated in favor of another control in the same panel, in which case it should stay - active. - */ - this.deactivateTimout = 0; - - /* - var: deactivateTimeoutLength - The length of in thousandths of a second. - */ - this.deactivateTimeoutLength = 200; - - - - - // Group: DOM Elements - // ________________________________________________________________________ - - - // Function: DOMSearchField - this.DOMSearchField = function() - { return document.getElementById("MSearchField"); }; - - // Function: DOMSearchType - this.DOMSearchType = function() - { return document.getElementById("MSearchType"); }; - - // Function: DOMPopupSearchResults - this.DOMPopupSearchResults = function() - { return document.getElementById("MSearchResults"); }; - - // Function: DOMPopupSearchResultsWindow - this.DOMPopupSearchResultsWindow = function() - { return document.getElementById("MSearchResultsWindow"); }; - - // Function: DOMSearchPanel - this.DOMSearchPanel = function() - { return document.getElementById("MSearchPanel"); }; - - - - - // Group: Event Handlers - // ________________________________________________________________________ - - - /* - Function: OnSearchFieldFocus - Called when focus is added or removed from the search field. - */ - this.OnSearchFieldFocus = function(isActive) - { - this.Activate(isActive); - }; - - - /* - Function: OnSearchFieldChange - Called when the content of the search field is changed. - */ - this.OnSearchFieldChange = function() - { - if (this.keyTimeout) - { - clearTimeout(this.keyTimeout); - this.keyTimeout = 0; - }; - - var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); - - if (searchValue != this.lastSearchValue) - { - if (searchValue != "") - { - this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength); - } - else - { - if (this.mode == "HTML") - { this.DOMPopupSearchResultsWindow().style.display = "none"; }; - this.lastSearchValue = ""; - }; - }; - }; - - - /* - Function: OnSearchTypeFocus - Called when focus is added or removed from the search type. - */ - this.OnSearchTypeFocus = function(isActive) - { - this.Activate(isActive); - }; - - - /* - Function: OnSearchTypeChange - Called when the search type is changed. - */ - this.OnSearchTypeChange = function() - { - var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); - - if (searchValue != "") - { - this.Search(); - }; - }; - - - - // Group: Action Functions - // ________________________________________________________________________ - - - /* - Function: CloseResultsWindow - Closes the results window. - */ - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = "none"; - this.Activate(false, true); - }; - - - /* - Function: Search - Performs a search. - */ - this.Search = function() - { - this.keyTimeout = 0; - - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - var searchTopic = this.DOMSearchType().value; - - var pageExtension = searchValue.substr(0,1); - - if (pageExtension.match(/^[a-z]/i)) - { pageExtension = pageExtension.toUpperCase(); } - else if (pageExtension.match(/^[0-9]/)) - { pageExtension = 'Numbers'; } - else - { pageExtension = "Symbols"; }; - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - // indexSectionsWithContent is defined in searchdata.js - if (indexSectionsWithContent[searchTopic][pageExtension] == true) - { - resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html'; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else - { - resultsPage = this.resultsPath + '/NoResults.html'; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - }; - - var resultsFrame; - if (this.mode == "HTML") - { resultsFrame = window.frames.MSearchResults; } - else if (this.mode == "FramedHTML") - { resultsFrame = window.top.frames['Content']; }; - - - if (resultsPage != this.lastResultsPage || - - // Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some - // reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it - // just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the - // page anyway to get around the bug. - (browserType == "IE" && hasResultsPage && - (!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) ) - - { - resultsFrame.location.href = resultsPageWithSearch; - } - - // So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there - // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even - // if it did. - else if (hasResultsPage) - { - // We need to check if this exists in case the frame is present but didn't finish loading. - if (resultsFrame.searchResults) - { resultsFrame.searchResults.Search(searchValue); } - - // Otherwise just reload instead of waiting. - else - { resultsFrame.location.href = resultsPageWithSearch; }; - }; - - - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block") - { - var domSearchType = this.DOMSearchType(); - - var left = GetXPosition(domSearchType); - var top = GetYPosition(domSearchType) + domSearchType.offsetHeight; - - MoveToPosition(domPopupSearchResultsWindow, left, top); - domPopupSearchResultsWindow.style.display = 'block'; - }; - - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - }; - - - - // Group: Activation Functions - // Functions that handle whether the entire panel is active or not. - // ________________________________________________________________________ - - - /* - Function: Activate - - Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every - control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently. - - Parameters: - - isActive - Whether you're activating or deactivating the panel. - ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay. - */ - this.Activate = function(isActive, ignoreDeactivateDelay) - { - // We want to ignore isActive being false while the results window is open. - if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block")) - { - if (this.inactivateTimeout) - { - clearTimeout(this.inactivateTimeout); - this.inactivateTimeout = 0; - }; - - this.DOMSearchPanel().className = 'MSearchPanelActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == 'Search') - { searchField.value = ""; } - } - else if (!ignoreDeactivateDelay) - { - this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength); - } - else - { - this.InactivateAfterTimeout(); - }; - }; - - - /* - Function: InactivateAfterTimeout - - Called by , which is set by . Inactivation occurs on a timeout because a control may - receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to - actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value. - So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation. - */ - this.InactivateAfterTimeout = function() - { - this.inactivateTimeout = 0; - - this.DOMSearchPanel().className = 'MSearchPanelInactive'; - this.DOMSearchField().value = "Search"; - - this.lastSearchValue = ""; - this.lastResultsPage = ""; - }; - }; - - - - -/* ________________________________________________________________________________________________________ - - Class: SearchResults - _________________________________________________________________________________________________________ - - The class that handles everything on the search results page. - _________________________________________________________________________________________________________ -*/ - - -function SearchResults(name, mode) - { - /* - var: mode - The mode the search is going to work in, such as "HTML" or "FramedHTML". - */ - this.mode = mode; - - /* - var: lastMatchCount - The number of matches from the last run of . - */ - this.lastMatchCount = 0; - - - /* - Function: Toggle - Toggles the visibility of the passed element ID. - */ - this.Toggle = function(id) - { - if (this.mode == "FramedHTML") - { return; }; - - var parentElement = document.getElementById(id); - - var element = parentElement.firstChild; - - while (element && element != parentElement) - { - if (element.nodeName == 'DIV' && element.className == 'ISubIndex') - { - if (element.style.display == 'block') - { element.style.display = "none"; } - else - { element.style.display = 'block'; } - }; - - if (element.nodeName == 'DIV' && element.hasChildNodes()) - { element = element.firstChild; } - else if (element.nextSibling) - { element = element.nextSibling; } - else - { - do - { - element = element.parentNode; - } - while (element && element != parentElement && !element.nextSibling); - - if (element && element != parentElement) - { element = element.nextSibling; }; - }; - }; - }; - - - /* - Function: Search - - Searches for the passed string. If there is no parameter, it takes it from the URL query. - - Always returns true, since other documents may try to call it and that may or may not be possible. - */ - this.Search = function(search) - { - if (!search) - { - search = window.location.search; - search = search.substring(1); // Remove the leading ? - search = unescape(search); - }; - - search = search.replace(/^ +/, ""); - search = search.replace(/ +$/, ""); - search = search.toLowerCase(); - - if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily. - { - search = search.replace(/\_/g, "_und"); - search = search.replace(/\ +/gi, "_spc"); - search = search.replace(/\~/g, "_til"); - search = search.replace(/\!/g, "_exc"); - search = search.replace(/\@/g, "_att"); - search = search.replace(/\#/g, "_num"); - search = search.replace(/\$/g, "_dol"); - search = search.replace(/\%/g, "_pct"); - search = search.replace(/\^/g, "_car"); - search = search.replace(/\&/g, "_amp"); - search = search.replace(/\*/g, "_ast"); - search = search.replace(/\(/g, "_lpa"); - search = search.replace(/\)/g, "_rpa"); - search = search.replace(/\-/g, "_min"); - search = search.replace(/\+/g, "_plu"); - search = search.replace(/\=/g, "_equ"); - search = search.replace(/\{/g, "_lbc"); - search = search.replace(/\}/g, "_rbc"); - search = search.replace(/\[/g, "_lbk"); - search = search.replace(/\]/g, "_rbk"); - search = search.replace(/\:/g, "_col"); - search = search.replace(/\;/g, "_sco"); - search = search.replace(/\"/g, "_quo"); - search = search.replace(/\'/g, "_apo"); - search = search.replace(/\/g, "_ran"); - search = search.replace(/\,/g, "_com"); - search = search.replace(/\./g, "_per"); - search = search.replace(/\?/g, "_que"); - search = search.replace(/\//g, "_sla"); - search = search.replace(/[^a-z0-9\_]i/gi, "_zzz"); - }; - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); - - if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search) - { - row.style.display = "block"; - matches++; - } - else - { row.style.display = "none"; }; - }; - - i++; - }; - - document.getElementById("Searching").style.display="none"; - - if (matches == 0) - { document.getElementById("NoMatches").style.display="block"; } - else - { document.getElementById("NoMatches").style.display="none"; } - - this.lastMatchCount = matches; - - return true; - }; - }; - diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/javascript/searchdata.js b/assets/javascripts/jquery/jquery.jqplot/docs/javascript/searchdata.js deleted file mode 100644 index 72083b4ed..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/javascript/searchdata.js +++ /dev/null @@ -1,182 +0,0 @@ -var indexSectionsWithContent = { - "General": { - "Symbols": true, - "Numbers": false, - "A": true, - "B": true, - "C": true, - "D": true, - "E": true, - "F": true, - "G": true, - "H": true, - "I": true, - "J": true, - "K": false, - "L": true, - "M": true, - "N": true, - "O": true, - "P": true, - "Q": true, - "R": true, - "S": true, - "T": true, - "U": true, - "V": true, - "W": true, - "X": true, - "Y": true, - "Z": true - }, - "Functions": { - "Symbols": false, - "Numbers": false, - "A": false, - "B": false, - "C": true, - "D": true, - "E": false, - "F": false, - "G": true, - "H": false, - "I": true, - "J": false, - "K": false, - "L": false, - "M": true, - "N": true, - "O": false, - "P": false, - "Q": true, - "R": true, - "S": true, - "T": false, - "U": false, - "V": false, - "W": false, - "X": false, - "Y": false, - "Z": true - }, - "Files": { - "Symbols": false, - "Numbers": false, - "A": false, - "B": false, - "C": false, - "D": false, - "E": false, - "F": false, - "G": false, - "H": false, - "I": false, - "J": true, - "K": false, - "L": false, - "M": false, - "N": false, - "O": false, - "P": false, - "Q": false, - "R": false, - "S": false, - "T": false, - "U": false, - "V": false, - "W": false, - "X": false, - "Y": false, - "Z": false - }, - "Classes": { - "Symbols": true, - "Numbers": false, - "A": true, - "B": false, - "C": false, - "D": true, - "E": false, - "F": false, - "G": true, - "H": true, - "I": false, - "J": true, - "K": false, - "L": true, - "M": false, - "N": false, - "O": false, - "P": false, - "Q": false, - "R": false, - "S": true, - "T": true, - "U": false, - "V": true, - "W": false, - "X": false, - "Y": false, - "Z": false - }, - "Hooks": { - "Symbols": false, - "Numbers": false, - "A": true, - "B": false, - "C": false, - "D": false, - "E": true, - "F": false, - "G": false, - "H": false, - "I": false, - "J": true, - "K": false, - "L": false, - "M": false, - "N": false, - "O": false, - "P": true, - "Q": false, - "R": false, - "S": false, - "T": false, - "U": false, - "V": false, - "W": false, - "X": false, - "Y": false, - "Z": false - }, - "Properties": { - "Symbols": false, - "Numbers": false, - "A": true, - "B": true, - "C": true, - "D": true, - "E": true, - "F": true, - "G": true, - "H": true, - "I": true, - "J": false, - "K": false, - "L": true, - "M": true, - "N": true, - "O": true, - "P": true, - "Q": false, - "R": true, - "S": true, - "T": true, - "U": true, - "V": true, - "W": true, - "X": true, - "Y": true, - "Z": true - } - } \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesA.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesA.html deleted file mode 100644 index 2f4dab577..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesA.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesD.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesD.html deleted file mode 100644 index 135eeb6a2..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesD.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesG.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesG.html deleted file mode 100644 index 36f121b0a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesG.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesH.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesH.html deleted file mode 100644 index c411b320f..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesH.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesJ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesJ.html deleted file mode 100644 index b22500983..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesJ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesL.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesL.html deleted file mode 100644 index 6a93b819d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesL.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesS.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesS.html deleted file mode 100644 index 53823e7dc..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesS.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesSymbols.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesSymbols.html deleted file mode 100644 index 53396614d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesSymbols.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesT.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesT.html deleted file mode 100644 index 782f11db1..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesT.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesV.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesV.html deleted file mode 100644 index 62d2e7cb2..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/ClassesV.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FilesJ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FilesJ.html deleted file mode 100644 index 3c66afa02..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FilesJ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsC.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsC.html deleted file mode 100644 index 40135d3a6..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsC.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    copy, $.jqplot.ThemeEngine
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsD.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsD.html deleted file mode 100644 index 2c2bed5db..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsD.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    destroy, jqPlot
    drawSeries, jqPlot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsG.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsG.html deleted file mode 100644 index 561eabc01..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsG.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    get, $.jqplot.ThemeEngine
    getThemeNames, $.jqplot.ThemeEngine
    getThemes, $.jqplot.ThemeEngine
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsI.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsI.html deleted file mode 100644 index 450909835..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsI.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    init, jqPlot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsM.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsM.html deleted file mode 100644 index 0b6446cb9..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsM.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    moveBlock, $.jqplot.BlockRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsN.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsN.html deleted file mode 100644 index 7cc60bfec..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsN.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    newTheme, $.jqplot.ThemeEngine
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsQ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsQ.html deleted file mode 100644 index 9d06ebc03..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsQ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    quickInit, jqPlot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsR.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsR.html deleted file mode 100644 index fac0dbcc8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsR.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    redraw, jqPlot
    reInitialize, jqPlot
    remove, $.jqplot.ThemeEngine
    rename, $.jqplot.ThemeEngine
    replot, jqPlot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsS.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsS.html deleted file mode 100644 index bab767cf1..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsS.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsZ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsZ.html deleted file mode 100644 index 4b364e983..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/FunctionsZ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralA.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralA.html deleted file mode 100644 index f62a230b9..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralA.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    activeTheme, $.jqplot.ThemeEngine
    addLegendRowHooks, $.jqplot.$.jqplot
    alignTicks, $.jqplot.LinearAxisRenderer
    alpha, $.jqplot.shadowRenderer
    animate, jqPlot
    autoscale, Axis
    autoscaleBubbles, $.jqplot.BubbleRenderer
    autoscaleMultiplier, $.jqplot.BubbleRenderer
    autoscalePointsFactor, $.jqplot.BubbleRenderer
    axes, jqPlot
    axesDefaults, jqPlot
    axisDefaults, $.jqplot.LogAxisRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralB.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralB.html deleted file mode 100644 index 06a97030e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralB.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    bandData, $.jqplot.LineRenderer
    bands, $.jqplot.LineRenderer
    barDirection, $.jqplot.BarRenderer
    barLabelOptions, $.jqplot.MekkoAxisRenderer
    barLabelRenderer, $.jqplot.MekkoAxisRenderer
    barLabels, $.jqplot.MekkoAxisRenderer
    barMargin, $.jqplot.BarRenderer
    barWidth, $.jqplot.BarRenderer
    bodyWidth, $.jqplot.OHLCRenderer
    border, Legend
    breakOnNull, Series
    breakPoints, $.jqplot.LinearAxisRenderer
    breakTickLabel, $.jqplot.LinearAxisRenderer
    bringSeriesToFront, $.jqplot.Highlighter
    bubbleAlpha, $.jqplot.BubbleRenderer
    bubbleGradients, $.jqplot.BubbleRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralC.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralC.html deleted file mode 100644 index 20bb76ec9..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralC.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    candleStick, $.jqplot.OHLCRenderer
    clearRect, $.jqplot.shapeRenderer
    clickReset, $.jqplot.Cursor
    closeColor, $.jqplot.OHLCRenderer
    constrainOutsideZoom, $.jqplot.Cursor
    constrainSmoothing, $.jqplot.LineRenderer
    constrainTo, $.jqplot.Dragable
    constrainZoomTo, $.jqplot.Cursor
    copy, $.jqplot.ThemeEngine
    css, $.jqplot.BlockRenderer
    cursorLegendFormatString, $.jqplot.Cursor
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralD.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralD.html deleted file mode 100644 index 3c759ce2d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralD.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralE.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralE.html deleted file mode 100644 index 5f3a9205a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralE.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    edgeTolerance, $.jqplot.PointLabels
    eventListenerHooks, $.jqplot.$.jqplot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralF.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralF.html deleted file mode 100644 index c1af77c88..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralF.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralG.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralG.html deleted file mode 100644 index 092df1505..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralG.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    get, $.jqplot.ThemeEngine
    getThemeNames, $.jqplot.ThemeEngine
    getThemes, $.jqplot.ThemeEngine
    grid, jqPlot
    groups, $.jqplot.BarRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralH.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralH.html deleted file mode 100644 index ff6d0676d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralH.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    hideZeros, $.jqplot.PointLabels
    highlightAlpha, $.jqplot.BubbleRenderer
    highlightColor, $.jqplot.LineRenderer
    hlc, $.jqplot.OHLCRenderer
    Hooks, $.jqplot
    hubRadius, $.jqplot.MeterGaugeRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralI.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralI.html deleted file mode 100644 index 7873ee408..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralI.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    index, Series
    init, jqPlot
    innerDiameter, $.jqplot.DonutRenderer
    insertBreaks, $.jqplot.BlockRenderer
    intersectionThreshold, $.jqplot.Cursor
    interval, $.jqplot.LineRenderer
    intervalColors, $.jqplot.MeterGaugeRenderer
    intervalInnerRadius, $.jqplot.MeterGaugeRenderer
    intervalOuterRadius, $.jqplot.MeterGaugeRenderer
    intervals, $.jqplot.MeterGaugeRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralJ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralJ.html deleted file mode 100644 index fe560304a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralJ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralL.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralL.html deleted file mode 100644 index 0fc128968..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralL.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralM.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralM.html deleted file mode 100644 index 53789facf..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralM.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralN.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralN.html deleted file mode 100644 index d282c7883..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralN.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    name, $.jqplot.CanvasOverlay
    needlePad, $.jqplot.MeterGaugeRenderer
    needleThickness, $.jqplot.MeterGaugeRenderer
    newTheme, $.jqplot.ThemeEngine
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralO.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralO.html deleted file mode 100644 index bac068d9c..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralO.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    objects, $.jqplot.CanvasOverlay
    offset, $.jqplot.shadowRenderer
    openColor, $.jqplot.OHLCRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralP.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralP.html deleted file mode 100644 index 25e44059d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralP.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    pad, Axis
    padMax, Axis
    padMin, Axis
    pegNeedle, $.jqplot.MeterGaugeRenderer
    placement, Legend
    postDrawHooks, $.jqplot.$.jqplot
    postDrawSeriesHooks, $.jqplot.$.jqplot
    postDrawSeriesShadowHooks, $.jqplot.$.jqplot
    postInitHooks, $.jqplot.$.jqplot
    postParseOptionsHooks, $.jqplot.$.jqplot
    postParseSeriesOptionsHooks, $.jqplot.$.jqplot
    postSeriesInitHooks, $.jqplot.$.jqplot
    predraw, Legend
    preDrawHooks, $.jqplot.$.jqplot
    preDrawLegendHooks, $.jqplot.$.jqplot
    preDrawSeriesHooks, $.jqplot.$.jqplot
    preDrawSeriesShadowHooks, $.jqplot.$.jqplot
    preInitHooks, $.jqplot.$.jqplot
    preParseOptionsHooks, $.jqplot.$.jqplot
    preParseSeriesOptionsHooks, $.jqplot.$.jqplot
    preSeriesInitHooks, $.jqplot.$.jqplot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralQ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralQ.html deleted file mode 100644 index 9d06ebc03..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralQ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    quickInit, jqPlot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralR.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralR.html deleted file mode 100644 index 830dac937..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralR.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    redraw, jqPlot
    reInitialize, jqPlot
    remove, $.jqplot.ThemeEngine
    rename, $.jqplot.ThemeEngine
    replot, jqPlot
    ringColor, $.jqplot.MeterGaugeRenderer
    ringMargin, $.jqplot.DonutRenderer
    ringWidth, $.jqplot.MeterGaugeRenderer
    rowSpacing, Legend
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralS.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralS.html deleted file mode 100644 index 4cfc86505..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralS.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    sectionMargin, $.jqplot.FunnelRenderer
    series, jqPlot
    seriesColors, jqPlot
    seriesLabelIndex, $.jqplot.PointLabels
    shadowRenderer, $.jqplot.MarkerRenderer
    shapeRenderer, $.jqplot.MarkerRenderer
    showBorders, $.jqplot.MekkoRenderer
    showCursorLegend, $.jqplot.Cursor
    showHorizontalLine, $.jqplot.Cursor
    showLine, Series
    showLines, $.jqplot.LineRenderer
    showSwatch, Legend
    showTickLabels, $.jqplot.MeterGaugeRenderer
    showTooltipDataPosition, $.jqplot.Cursor
    showTooltipGridPosition, $.jqplot.Cursor
    showTooltipOutsideZoom, $.jqplot.Cursor
    showTooltipPrecision, $.jqplot.CanvasOverlay
    showTooltipUnitPosition, $.jqplot.Cursor
    showVerticalLine, $.jqplot.Cursor
    sizeAdjust, $.jqplot.Highlighter
    smooth, $.jqplot.LineRenderer
    sortData, jqPlot
    sortMergedLabels, $.jqplot.CategoryAxisRenderer
    stackedValue, $.jqplot.PointLabels
    stackSeries, jqPlot
    start, Line
    stop, Line
    strokeRect, $.jqplot.shapeRenderer
    strokeStyle, $.jqplot.shapeRenderer
    suffix, $.jqplot.AxisTickRenderer
    syncTicks, Axis
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralSymbols.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralSymbols.html deleted file mode 100644 index 53396614d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralSymbols.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralT.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralT.html deleted file mode 100644 index 20f4ead98..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralT.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    text, Title
    textAlign, Title
    themes, $.jqplot.ThemeEngine
    thickness, $.jqplot.DonutRenderer
    tickColor, $.jqplot.MeterGaugeRenderer
    tickLength, $.jqplot.OHLCRenderer
    tickMode, $.jqplot.MekkoAxisRenderer
    tickPadding, $.jqplot.MeterGaugeRenderer
    title, jqPlot
    tooltipAxes, $.jqplot.Highlighter
    tooltipAxisGroups, $.jqplot.Cursor
    transposedData, $.jqplot.BarRenderer
    type, $.jqplot.Trendline
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralU.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralU.html deleted file mode 100644 index 31bcbf122..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralU.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    upBodyColor, $.jqplot.OHLCRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralV.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralV.html deleted file mode 100644 index 51af427ec..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralV.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    varyBarColor, $.jqplot.BarRenderer
    varyBlockColors, $.jqplot.BlockRenderer
    varyBubbleColors, $.jqplot.BubbleRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralW.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralW.html deleted file mode 100644 index ce589762e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralW.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    waterfall, $.jqplot.BarRenderer
    wickColor, $.jqplot.OHLCRenderer
    widthRatio, $.jqplot.FunnelRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralX.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralX.html deleted file mode 100644 index 443e98c48..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralX.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    xmax, HorizontalLine
    xmin, HorizontalLine
    xoffset, Legend
    xpadding, $.jqplot.PointLabels
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralY.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralY.html deleted file mode 100644 index 8f6ea7a62..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralY.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    y, HorizontalLine
    yoffset, Legend
    ypadding, $.jqplot.PointLabels
    yvalues, $.jqplot.Highlighter
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralZ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralZ.html deleted file mode 100644 index 1e8baa080..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/GeneralZ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    zoom, $.jqplot.Cursor
    zoomProxy, $.jqplot.Cursor.$.jqplot.Cursor
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksA.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksA.html deleted file mode 100644 index 82b17cda6..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksA.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    addLegendRowHooks, $.jqplot.$.jqplot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksE.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksE.html deleted file mode 100644 index fe464932e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksE.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    eventListenerHooks, $.jqplot.$.jqplot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksJ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksJ.html deleted file mode 100644 index f94e00368..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksJ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksP.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksP.html deleted file mode 100644 index eb28c716c..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/HooksP.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    postDrawHooks, $.jqplot.$.jqplot
    postDrawSeriesHooks, $.jqplot.$.jqplot
    postDrawSeriesShadowHooks, $.jqplot.$.jqplot
    postInitHooks, $.jqplot.$.jqplot
    postParseOptionsHooks, $.jqplot.$.jqplot
    postParseSeriesOptionsHooks, $.jqplot.$.jqplot
    postSeriesInitHooks, $.jqplot.$.jqplot
    preDrawHooks, $.jqplot.$.jqplot
    preDrawLegendHooks, $.jqplot.$.jqplot
    preDrawSeriesHooks, $.jqplot.$.jqplot
    preDrawSeriesShadowHooks, $.jqplot.$.jqplot
    preInitHooks, $.jqplot.$.jqplot
    preParseOptionsHooks, $.jqplot.$.jqplot
    preParseSeriesOptionsHooks, $.jqplot.$.jqplot
    preSeriesInitHooks, $.jqplot.$.jqplot
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/NoResults.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/NoResults.html deleted file mode 100644 index d2459c05e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/NoResults.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - -
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesA.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesA.html deleted file mode 100644 index 386d9e899..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesA.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    activeTheme, $.jqplot.ThemeEngine
    alignTicks, $.jqplot.LinearAxisRenderer
    alpha, $.jqplot.shadowRenderer
    animate, jqPlot
    autoscale, Axis
    autoscaleBubbles, $.jqplot.BubbleRenderer
    autoscaleMultiplier, $.jqplot.BubbleRenderer
    autoscalePointsFactor, $.jqplot.BubbleRenderer
    axes, jqPlot
    axesDefaults, jqPlot
    axisDefaults, $.jqplot.LogAxisRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesB.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesB.html deleted file mode 100644 index a6cef468d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesB.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    bandData, $.jqplot.LineRenderer
    barDirection, $.jqplot.BarRenderer
    barLabelOptions, $.jqplot.MekkoAxisRenderer
    barLabelRenderer, $.jqplot.MekkoAxisRenderer
    barLabels, $.jqplot.MekkoAxisRenderer
    barMargin, $.jqplot.BarRenderer
    barWidth, $.jqplot.BarRenderer
    bodyWidth, $.jqplot.OHLCRenderer
    border, Legend
    breakOnNull, Series
    breakPoints, $.jqplot.LinearAxisRenderer
    breakTickLabel, $.jqplot.LinearAxisRenderer
    bringSeriesToFront, $.jqplot.Highlighter
    bubbleAlpha, $.jqplot.BubbleRenderer
    bubbleGradients, $.jqplot.BubbleRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesC.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesC.html deleted file mode 100644 index a30bf3da3..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesC.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    candleStick, $.jqplot.OHLCRenderer
    clearRect, $.jqplot.shapeRenderer
    clickReset, $.jqplot.Cursor
    closeColor, $.jqplot.OHLCRenderer
    constrainOutsideZoom, $.jqplot.Cursor
    constrainSmoothing, $.jqplot.LineRenderer
    constrainTo, $.jqplot.Dragable
    constrainZoomTo, $.jqplot.Cursor
    css, $.jqplot.BlockRenderer
    cursorLegendFormatString, $.jqplot.Cursor
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesD.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesD.html deleted file mode 100644 index e0380eae7..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesD.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesE.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesE.html deleted file mode 100644 index 5bb760ff9..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesE.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    edgeTolerance, $.jqplot.PointLabels
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesF.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesF.html deleted file mode 100644 index cf90670b8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesF.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesG.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesG.html deleted file mode 100644 index 3a7573d17..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesG.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    grid, jqPlot
    groups, $.jqplot.BarRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesH.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesH.html deleted file mode 100644 index ca8f802e4..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesH.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    hideZeros, $.jqplot.PointLabels
    highlightAlpha, $.jqplot.BubbleRenderer
    highlightColor, $.jqplot.LineRenderer
    hlc, $.jqplot.OHLCRenderer
    hubRadius, $.jqplot.MeterGaugeRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesI.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesI.html deleted file mode 100644 index 289adc8d8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesI.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    index, Series
    innerDiameter, $.jqplot.DonutRenderer
    insertBreaks, $.jqplot.BlockRenderer
    intersectionThreshold, $.jqplot.Cursor
    interval, $.jqplot.LineRenderer
    intervalColors, $.jqplot.MeterGaugeRenderer
    intervalInnerRadius, $.jqplot.MeterGaugeRenderer
    intervalOuterRadius, $.jqplot.MeterGaugeRenderer
    intervals, $.jqplot.MeterGaugeRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesL.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesL.html deleted file mode 100644 index 2465230d8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesL.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesM.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesM.html deleted file mode 100644 index 80a53cbf1..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesM.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    marginBottom, Legend
    marginLeft, Legend
    marginRight, Legend
    marginTop, Legend
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesN.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesN.html deleted file mode 100644 index c60188302..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesN.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    name, $.jqplot.CanvasOverlay
    needlePad, $.jqplot.MeterGaugeRenderer
    needleThickness, $.jqplot.MeterGaugeRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesO.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesO.html deleted file mode 100644 index e3e5f594a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesO.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    objects, $.jqplot.CanvasOverlay
    offset, $.jqplot.shadowRenderer
    openColor, $.jqplot.OHLCRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesP.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesP.html deleted file mode 100644 index f1a4b167a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesP.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    pad, Axis
    padMax, Axis
    padMin, Axis
    pegNeedle, $.jqplot.MeterGaugeRenderer
    placement, Legend
    predraw, Legend
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesR.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesR.html deleted file mode 100644 index a462e0991..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesR.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    ringColor, $.jqplot.MeterGaugeRenderer
    ringMargin, $.jqplot.DonutRenderer
    ringWidth, $.jqplot.MeterGaugeRenderer
    rowSpacing, Legend
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesS.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesS.html deleted file mode 100644 index 712da7fb9..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesS.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    sectionMargin, $.jqplot.FunnelRenderer
    series, jqPlot
    seriesColors, jqPlot
    seriesLabelIndex, $.jqplot.PointLabels
    shadowRenderer, $.jqplot.MarkerRenderer
    shapeRenderer, $.jqplot.MarkerRenderer
    showBorders, $.jqplot.MekkoRenderer
    showCursorLegend, $.jqplot.Cursor
    showHorizontalLine, $.jqplot.Cursor
    showLine, Series
    showLines, $.jqplot.LineRenderer
    showSwatch, Legend
    showTickLabels, $.jqplot.MeterGaugeRenderer
    showTooltipDataPosition, $.jqplot.Cursor
    showTooltipGridPosition, $.jqplot.Cursor
    showTooltipOutsideZoom, $.jqplot.Cursor
    showTooltipPrecision, $.jqplot.CanvasOverlay
    showTooltipUnitPosition, $.jqplot.Cursor
    showVerticalLine, $.jqplot.Cursor
    sizeAdjust, $.jqplot.Highlighter
    smooth, $.jqplot.LineRenderer
    sortData, jqPlot
    sortMergedLabels, $.jqplot.CategoryAxisRenderer
    stackedValue, $.jqplot.PointLabels
    stackSeries, jqPlot
    start, Line
    stop, Line
    strokeRect, $.jqplot.shapeRenderer
    strokeStyle, $.jqplot.shapeRenderer
    suffix, $.jqplot.AxisTickRenderer
    syncTicks, Axis
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesT.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesT.html deleted file mode 100644 index bc107de45..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesT.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    text, Title
    textAlign, Title
    themes, $.jqplot.ThemeEngine
    thickness, $.jqplot.DonutRenderer
    tickColor, $.jqplot.MeterGaugeRenderer
    tickLength, $.jqplot.OHLCRenderer
    tickMode, $.jqplot.MekkoAxisRenderer
    tickPadding, $.jqplot.MeterGaugeRenderer
    title, jqPlot
    tooltipAxes, $.jqplot.Highlighter
    tooltipAxisGroups, $.jqplot.Cursor
    transposedData, $.jqplot.BarRenderer
    type, $.jqplot.Trendline
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesU.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesU.html deleted file mode 100644 index df97c192a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesU.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    upBodyColor, $.jqplot.OHLCRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesV.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesV.html deleted file mode 100644 index ebd8349eb..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesV.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    varyBarColor, $.jqplot.BarRenderer
    varyBlockColors, $.jqplot.BlockRenderer
    varyBubbleColors, $.jqplot.BubbleRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesW.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesW.html deleted file mode 100644 index ce589762e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesW.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    waterfall, $.jqplot.BarRenderer
    wickColor, $.jqplot.OHLCRenderer
    widthRatio, $.jqplot.FunnelRenderer
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesX.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesX.html deleted file mode 100644 index 443e98c48..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesX.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    xmax, HorizontalLine
    xmin, HorizontalLine
    xoffset, Legend
    xpadding, $.jqplot.PointLabels
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesY.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesY.html deleted file mode 100644 index 8f6ea7a62..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesY.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    y, HorizontalLine
    yoffset, Legend
    ypadding, $.jqplot.PointLabels
    yvalues, $.jqplot.Highlighter
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesZ.html b/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesZ.html deleted file mode 100644 index 9da6ccfc7..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/search/PropertiesZ.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - -
    Loading...
    zoom, $.jqplot.Cursor
    Searching...
    No Matches
    \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/styles/1.css b/assets/javascripts/jquery/jquery.jqplot/docs/styles/1.css deleted file mode 100644 index 17e9cbc30..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/styles/1.css +++ /dev/null @@ -1,767 +0,0 @@ -/* - IMPORTANT: If you're editing this file in the output directory of one of - your projects, your changes will be overwritten the next time you run - Natural Docs. Instead, copy this file to your project directory, make your - changes, and you can use it with -s. Even better would be to make a CSS - file in your project directory with only your changes, which you can then - use with -s [original style] [your changes]. - - On the other hand, if you're editing this file in the Natural Docs styles - directory, the changes will automatically be applied to all your projects - that use this style the next time Natural Docs is run on them. - - This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure - Natural Docs is licensed under the GPL -*/ - -body { - font: 10pt Verdana, Arial, sans-serif; - color: #000000; - margin: 0; padding: 0; - } - -.ContentPage, -.IndexPage, -.FramedMenuPage { - background-color: #E8E8E8; - } -.FramedContentPage, -.FramedIndexPage, -.FramedSearchResultsPage, -.PopupSearchResultsPage { - background-color: #FFFFFF; - } - - -a:link, -a:visited { color: #900000; text-decoration: none } -a:hover { color: #900000; text-decoration: underline } -a:active { color: #FF0000; text-decoration: underline } - -td { - vertical-align: top } - -img { border: 0; } - - -/* - Comment out this line to use web-style paragraphs (blank line between - paragraphs, no indent) instead of print-style paragraphs (no blank line, - indented.) -*/ -p { - text-indent: 5ex; margin: 0 } - - -/* Opera doesn't break with just wbr, but will if you add this. */ -.Opera wbr:after { - content: "\00200B"; - } - - -/* Blockquotes are used as containers for things that may need to scroll. */ -blockquote { - padding: 0; - margin: 0; - overflow: auto; - } - - -.Firefox1 blockquote { - padding-bottom: .5em; - } - -/* Turn off scrolling when printing. */ -@media print { - blockquote { - overflow: visible; - } - .IE blockquote { - width: auto; - } - } - - - -#Menu { - font-size: 9pt; - padding: 10px 0 0 0; - } -.ContentPage #Menu, -.IndexPage #Menu { - position: absolute; - top: 0; - left: 0; - width: 31ex; - overflow: hidden; - } -.ContentPage .Firefox #Menu, -.IndexPage .Firefox #Menu { - width: 27ex; - } - - - .MTitle { - font-size: 16pt; font-weight: bold; font-variant: small-caps; - text-align: center; - padding: 5px 10px 15px 10px; - border-bottom: 1px dotted #000000; - margin-bottom: 15px } - - .MSubTitle { - font-size: 9pt; font-weight: normal; font-variant: normal; - margin-top: 1ex; margin-bottom: 5px } - - - .MEntry a:link, - .MEntry a:hover, - .MEntry a:visited { color: #606060; margin-right: 0 } - .MEntry a:active { color: #A00000; margin-right: 0 } - - - .MGroup { - font-variant: small-caps; font-weight: bold; - margin: 1em 0 1em 10px; - } - - .MGroupContent { - font-variant: normal; font-weight: normal } - - .MGroup a:link, - .MGroup a:hover, - .MGroup a:visited { color: #545454; margin-right: 10px } - .MGroup a:active { color: #A00000; margin-right: 10px } - - - .MFile, - .MText, - .MLink, - .MIndex { - padding: 1px 17px 2px 10px; - margin: .25em 0 .25em 0; - } - - .MText { - font-size: 8pt; font-style: italic } - - .MLink { - font-style: italic } - - #MSelected { - color: #000000; background-color: #FFFFFF; - /* Replace padding with border. */ - padding: 0 10px 0 10px; - border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000; - margin-right: 5px; - } - - /* Close off the left side when its in a group. */ - .MGroup #MSelected { - padding-left: 9px; border-left-width: 1px } - - /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ - .Firefox #MSelected { - -moz-border-radius-topright: 10px; - -moz-border-radius-bottomright: 10px } - .Firefox .MGroup #MSelected { - -moz-border-radius-topleft: 10px; - -moz-border-radius-bottomleft: 10px } - - - #MSearchPanel { - padding: 0px 6px; - margin: .25em 0; - } - - - #MSearchField { - font: italic 9pt Verdana, sans-serif; - color: #606060; - background-color: #E8E8E8; - border: none; - padding: 2px 4px; - width: 100%; - } - /* Only Opera gets it right. */ - .Firefox #MSearchField, - .IE #MSearchField, - .Safari #MSearchField { - width: 94%; - } - .Opera9 #MSearchField, - .Konqueror #MSearchField { - width: 97%; - } - .FramedMenuPage .Firefox #MSearchField, - .FramedMenuPage .Safari #MSearchField, - .FramedMenuPage .Konqueror #MSearchField { - width: 98%; - } - - /* Firefox doesn't do this right in frames without #MSearchPanel added on. - It's presence doesn't hurt anything other browsers. */ - #MSearchPanel.MSearchPanelInactive:hover #MSearchField { - background-color: #FFFFFF; - border: 1px solid #C0C0C0; - padding: 1px 3px; - } - .MSearchPanelActive #MSearchField { - background-color: #FFFFFF; - border: 1px solid #C0C0C0; - font-style: normal; - padding: 1px 3px; - } - - #MSearchType { - visibility: hidden; - font: 8pt Verdana, sans-serif; - width: 98%; - padding: 0; - border: 1px solid #C0C0C0; - } - .MSearchPanelActive #MSearchType, - /* As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */ - #MSearchPanel.MSearchPanelInactive:hover #MSearchType, - #MSearchType:focus { - visibility: visible; - color: #606060; - } - #MSearchType option#MSearchEverything { - font-weight: bold; - } - - .Opera8 .MSearchPanelInactive:hover, - .Opera8 .MSearchPanelActive { - margin-left: -1px; - } - - - iframe#MSearchResults { - width: 60ex; - height: 15em; - } - #MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000000; - background-color: #E8E8E8; - } - #MSearchResultsWindowClose { - font-weight: bold; - font-size: 8pt; - display: block; - padding: 2px 5px; - } - #MSearchResultsWindowClose:link, - #MSearchResultsWindowClose:visited { - color: #000000; - text-decoration: none; - } - #MSearchResultsWindowClose:active, - #MSearchResultsWindowClose:hover { - color: #800000; - text-decoration: none; - background-color: #F4F4F4; - } - - - - -#Content { - padding-bottom: 15px; - } - -.ContentPage #Content { - border-width: 0 0 1px 1px; - border-style: solid; - border-color: #000000; - background-color: #FFFFFF; - font-size: 9pt; /* To make 31ex match the menu's 31ex. */ - margin-left: 31ex; - } -.ContentPage .Firefox #Content { - margin-left: 27ex; - } - - - - .CTopic { - font-size: 10pt; - margin-bottom: 3em; - } - - - .CTitle { - font-size: 12pt; font-weight: bold; - border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0; - margin: 0 15px .5em 15px } - - .CGroup .CTitle { - font-size: 16pt; font-variant: small-caps; - padding-left: 15px; padding-right: 15px; - border-width: 0 0 2px 0; border-color: #000000; - margin-left: 0; margin-right: 0 } - - .CClass .CTitle, - .CInterface .CTitle, - .CDatabase .CTitle, - .CDatabaseTable .CTitle, - .CSection .CTitle { - font-size: 18pt; - color: #FFFFFF; background-color: #A0A0A0; - padding: 10px 15px 10px 15px; - border-width: 2px 0; border-color: #000000; - margin-left: 0; margin-right: 0 } - - #MainTopic .CTitle { - font-size: 20pt; - color: #FFFFFF; background-color: #7070C0; - padding: 10px 15px 10px 15px; - border-width: 0 0 3px 0; border-color: #000000; - margin-left: 0; margin-right: 0 } - - .CBody { - margin-left: 15px; margin-right: 15px } - - - .CToolTip { - position: absolute; visibility: hidden; - left: 0; top: 0; - background-color: #FFFFE0; - padding: 5px; - border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000; - font-size: 8pt; - } - - .Opera .CToolTip { - max-width: 98%; - } - - /* Scrollbars would be useless. */ - .CToolTip blockquote { - overflow: hidden; - } - .IE6 .CToolTip blockquote { - overflow: visible; - } - - .CHeading { - font-weight: bold; font-size: 10pt; - margin: 1.5em 0 .5em 0; - } - - .CBody pre { - font: 10pt "Courier New", Courier, monospace; - margin: 1em 0; - } - - .CBody ul { - /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever. - Reapply it here as padding. */ - padding-left: 15px; padding-right: 15px; - margin: .5em 5ex .5em 5ex; - } - - .CDescriptionList { - margin: .5em 5ex 0 5ex } - - .CDLEntry { - font: 10pt "Courier New", Courier, monospace; color: #808080; - padding-bottom: .25em; - white-space: nowrap } - - .CDLDescription { - font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */ - padding-bottom: .5em; padding-left: 5ex } - - - .CTopic img { - text-align: center; - display: block; - margin: 1em auto; - } - .CImageCaption { - font-variant: small-caps; - font-size: 8pt; - color: #808080; - text-align: center; - position: relative; - top: 1em; - } - - .CImageLink { - color: #808080; - font-style: italic; - } - a.CImageLink:link, - a.CImageLink:visited, - a.CImageLink:hover { color: #808080 } - - - - - -.Prototype { - font: 10pt "Courier New", Courier, monospace; - padding: 5px 3ex; - border-width: 1px; border-style: solid; - margin: 0 5ex 1.5em 5ex; - } - - .Prototype td { - font-size: 10pt; - } - - .PDefaultValue, - .PDefaultValuePrefix, - .PTypePrefix { - color: #8F8F8F; - } - .PTypePrefix { - text-align: right; - } - .PAfterParameters { - vertical-align: bottom; - } - - .IE .Prototype table { - padding: 0; - } - - .CFunction .Prototype { - background-color: #F4F4F4; border-color: #D0D0D0 } - .CProperty .Prototype { - background-color: #F4F4FF; border-color: #C0C0E8 } - .CVariable .Prototype { - background-color: #FFFFF0; border-color: #E0E0A0 } - - .CClass .Prototype { - border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; - background-color: #F4F4F4; - } - .CInterface .Prototype { - border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0; - background-color: #F4F4FF; - } - - .CDatabaseIndex .Prototype, - .CConstant .Prototype { - background-color: #D0D0D0; border-color: #000000 } - .CType .Prototype, - .CEnumeration .Prototype { - background-color: #FAF0F0; border-color: #E0B0B0; - } - .CDatabaseTrigger .Prototype, - .CEvent .Prototype, - .CDelegate .Prototype { - background-color: #F0FCF0; border-color: #B8E4B8 } - - .CToolTip .Prototype { - margin: 0 0 .5em 0; - white-space: nowrap; - } - - - - - -.Summary { - margin: 1.5em 5ex 0 5ex } - - .STitle { - font-size: 12pt; font-weight: bold; - margin-bottom: .5em } - - - .SBorder { - background-color: #FFFFF0; - padding: 15px; - border: 1px solid #C0C060 } - - /* In a frame IE 6 will make them too long unless you set the width to 100%. Without frames it will be correct without a width - or slightly too long (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. IE 7 has the same - problem with frames, haven't tested it without. */ - .FramedContentPage .IE .SBorder { - width: 100% } - - /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */ - .Firefox .SBorder { - -moz-border-radius: 20px } - - - .STable { - font-size: 9pt; width: 100% } - - .SEntry { - width: 30% } - .SDescription { - width: 70% } - - - .SMarked { - background-color: #F8F8D8 } - - .SDescription { padding-left: 2ex } - .SIndent1 .SEntry { padding-left: 1.5ex } .SIndent1 .SDescription { padding-left: 3.5ex } - .SIndent2 .SEntry { padding-left: 3.0ex } .SIndent2 .SDescription { padding-left: 5.0ex } - .SIndent3 .SEntry { padding-left: 4.5ex } .SIndent3 .SDescription { padding-left: 6.5ex } - .SIndent4 .SEntry { padding-left: 6.0ex } .SIndent4 .SDescription { padding-left: 8.0ex } - .SIndent5 .SEntry { padding-left: 7.5ex } .SIndent5 .SDescription { padding-left: 9.5ex } - - .SDescription a { color: #800000} - .SDescription a:active { color: #A00000 } - - .SGroup td { - padding-top: .5em; padding-bottom: .25em } - - .SGroup .SEntry { - font-weight: bold; font-variant: small-caps } - - .SGroup .SEntry a { color: #800000 } - .SGroup .SEntry a:active { color: #F00000 } - - - .SMain td, - .SClass td, - .SDatabase td, - .SDatabaseTable td, - .SSection td { - font-size: 10pt; - padding-bottom: .25em } - - .SClass td, - .SDatabase td, - .SDatabaseTable td, - .SSection td { - padding-top: 1em } - - .SMain .SEntry, - .SClass .SEntry, - .SDatabase .SEntry, - .SDatabaseTable .SEntry, - .SSection .SEntry { - font-weight: bold; - } - - .SMain .SEntry a, - .SClass .SEntry a, - .SDatabase .SEntry a, - .SDatabaseTable .SEntry a, - .SSection .SEntry a { color: #000000 } - - .SMain .SEntry a:active, - .SClass .SEntry a:active, - .SDatabase .SEntry a:active, - .SDatabaseTable .SEntry a:active, - .SSection .SEntry a:active { color: #A00000 } - - - - - -.ClassHierarchy { - margin: 0 15px 1em 15px } - - .CHEntry { - border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0; - margin-bottom: 3px; - padding: 2px 2ex; - font-size: 10pt; - background-color: #F4F4F4; color: #606060; - } - - .Firefox .CHEntry { - -moz-border-radius: 4px; - } - - .CHCurrent .CHEntry { - font-weight: bold; - border-color: #000000; - color: #000000; - } - - .CHChildNote .CHEntry { - font-style: italic; - font-size: 8pt; - } - - .CHIndent { - margin-left: 3ex; - } - - .CHEntry a:link, - .CHEntry a:visited, - .CHEntry a:hover { - color: #606060; - } - .CHEntry a:active { - color: #800000; - } - - - - - -#Index { - background-color: #FFFFFF; - } - -/* As opposed to .PopupSearchResultsPage #Index */ -.IndexPage #Index, -.FramedIndexPage #Index, -.FramedSearchResultsPage #Index { - padding: 15px; - } - -.IndexPage #Index { - border-width: 0 0 1px 1px; - border-style: solid; - border-color: #000000; - font-size: 9pt; /* To make 27ex match the menu's 27ex. */ - margin-left: 27ex; - } - - - .IPageTitle { - font-size: 20pt; font-weight: bold; - color: #FFFFFF; background-color: #7070C0; - padding: 10px 15px 10px 15px; - border-width: 0 0 3px 0; border-color: #000000; border-style: solid; - margin: -15px -15px 0 -15px } - - .FramedSearchResultsPage .IPageTitle { - margin-bottom: 15px; - } - - .INavigationBar { - font-size: 10pt; - text-align: center; - background-color: #FFFFF0; - padding: 5px; - border-bottom: solid 1px black; - margin: 0 -15px 15px -15px; - } - - .INavigationBar a { - font-weight: bold } - - .IHeading { - font-size: 16pt; font-weight: bold; - padding: 2.5em 0 .5em 0; - text-align: center; - width: 3.5ex; - } - #IFirstHeading { - padding-top: 0; - } - - .IEntry { - font-size: 10pt; - padding-left: 1ex; - } - .PopupSearchResultsPage .IEntry { - font-size: 8pt; - padding: 1px 5px; - } - .PopupSearchResultsPage .Opera9 .IEntry, - .FramedSearchResultsPage .Opera9 .IEntry { - text-align: left; - } - .FramedSearchResultsPage .IEntry { - padding: 0; - } - - .ISubIndex { - padding-left: 3ex; padding-bottom: .5em } - .PopupSearchResultsPage .ISubIndex { - display: none; - } - - /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the - index if everything's the same color. */ - .ISymbol { - font-weight: bold; color: #900000 } - - .IndexPage .ISymbolPrefix, - .FramedIndexPage .ISymbolPrefix { - font-size: 10pt; - text-align: right; - color: #C47C7C; - background-color: #F8F8F8; - border-right: 3px solid #E0E0E0; - border-left: 1px solid #E0E0E0; - padding: 0 1px 0 2px; - } - .PopupSearchResultsPage .ISymbolPrefix, - .FramedSearchResultsPage .ISymbolPrefix { - color: #900000; - } - .PopupSearchResultsPage .ISymbolPrefix { - font-size: 8pt; - } - - .IndexPage #IFirstSymbolPrefix, - .FramedIndexPage #IFirstSymbolPrefix { - border-top: 1px solid #E0E0E0; - } - .IndexPage #ILastSymbolPrefix, - .FramedIndexPage #ILastSymbolPrefix { - border-bottom: 1px solid #E0E0E0; - } - .IndexPage #IOnlySymbolPrefix, - .FramedIndexPage #IOnlySymbolPrefix { - border-top: 1px solid #E0E0E0; - border-bottom: 1px solid #E0E0E0; - } - - a.IParent, - a.IFile { - display: block; - } - - .PopupSearchResultsPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; - } - .FramedSearchResultsPage .SRStatus { - font-size: 10pt; - font-style: italic; - } - - .SRResult { - display: none; - } - - - -#Footer { - font-size: 8pt; - color: #989898; - text-align: right; - } - -#Footer p { - text-indent: 0; - margin-bottom: .5em; - } - -.ContentPage #Footer, -.IndexPage #Footer { - text-align: right; - margin: 2px; - } - -.FramedMenuPage #Footer { - text-align: center; - margin: 5em 10px 10px 10px; - padding-top: 1em; - border-top: 1px solid #C8C8C8; - } - - #Footer a:link, - #Footer a:hover, - #Footer a:visited { color: #989898 } - #Footer a:active { color: #A00000 } - diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/styles/2.css b/assets/javascripts/jquery/jquery.jqplot/docs/styles/2.css deleted file mode 100644 index 12117d4e6..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/styles/2.css +++ /dev/null @@ -1,174 +0,0 @@ -html, body { - height: 100%; -} - -/* -div.Firefox { - height: 100%; -} -*/ - -.MTitle { - font-variant: normal; -} - -.MLink { - font-style: normal; -} - -.CBody { -margin-left: 30px; -margin-right: 30px; -} - -p { - text-indent: 0; - margin-bottom: 1em; - } - -.CBody p { -/* - padding-top: 4px; - padding-bottom: 4px; -*/ -} - -#Menu { - margin-top: 94px; - border: 0px; -} - -body.ContentPage { - background-image: url('../../images/background.jpg'); - background-color: #818181; - background-position: left top; - background-repeat: repeat-x; -} - -.MGroup a:link, -.MGroup a:hover, -.MGroup a:visited { color: #bfbfbf; margin-right: 10px } -.MGroup a:active { color: #f58f07; margin-right: 10px } - - -.MEntry a:link, -.MEntry a:hover, -.MEntry a:visited { color: #bfbfbf; margin-right: 0 } -.MEntry a:active { color: #f58f07; margin-right: 0 } - -#Footer { - color: #bfbfbf; -} - -#Footer a:link, #Footer a:hover, #Footer a:visited { - color: #5c93f0; -} - -#MainTopic div.CTitle.logo { - color: #292929; - font-size: 0px; - font-style: normal; - font-weight: normal; - border-width: 0px; - padding: 0px; - margin: 0px; - background-position: left top; - background-repeat: no-repeat; - background-image: url('../../images/logo.jpg'); - background-color: #292929; - height: 94px; - position: relative; - -} - -#MainTopic h1.CTitle a { - display: none; -} - - -#MainTopic div.CBody p:first-child { - margin-top: 24px; -} - -.ContentPage #Content { - border: 0px; -/* height: 100%; */ -} - -#IPageLogo { - width: 780px; - color: #292929; - font-style: normal; - font-weight: normal; - border-width: 0px; - padding: 0px; - margin: 0px; - background-position: left top; - background-repeat: no-repeat; - background-image: url('../../images/logo.jpg'); - background-color: #292929; - height: 94px; - position: relative; - left: 27ex; -} - -#Menu, #IPageLogo { - font-size: 9pt; -} - -body.IndexPage { - background-image: url('../../images/background.jpg'); -} - -/*#IPageLogo:hover { - cursor: pointer; -}*/ - -.IPageTitle { - background-color:#FFFFF0; - color: #333333; - border: 0px; -} - - - -div.nav { - position:relative; - top: 70px; - text-align: right; -} - -a.nav span { - font-size: 11px; - position: relative; - bottom: 2px; -} - -a.nav:visited { - text-decoration: none; - border: 0px; - color: #aaaaaa; -} - -a.nav, a.nav:link { - border: 0px; - text-decoration: none; - font-family: Tahoma, "Helvetica Neue", "Trebuchet MS", Verdana, Arial, sans-serif; - font-size: 16px; - color: #aaaaaa; - margin-right: 11px; -} - -a.nav:hover { - text-decoration: none; - border: 0px; - color: #E0771C; -} - -a.nav:active { - text-decoration: none; - border: 0px; - color: #E0771C; -} - - diff --git a/assets/javascripts/jquery/jquery.jqplot/docs/styles/main.css b/assets/javascripts/jquery/jquery.jqplot/docs/styles/main.css deleted file mode 100644 index a672a9492..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/docs/styles/main.css +++ /dev/null @@ -1,2 +0,0 @@ -@import URL("1.css"); -@import URL("2.css"); diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/KCPsample4.csv b/assets/javascripts/jquery/jquery.jqplot/examples/KCPsample4.csv deleted file mode 100644 index 453517b0e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/KCPsample4.csv +++ /dev/null @@ -1,25 +0,0 @@ -Product or service,v01,v02,v03,v04,v05,v06,v07,v08,v09,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20 -Rice,15.8442,13.0993,11.2898,10.7892,10.252,9.0165,8.5287,7.7442,6.9867,6.5213,5.9473,5.4766,4.9214,4.6398,3.8935,3.5228,3.0128,2.4847,2.0357,1.0672 -Bread and other cereals,1.7703,2.2535,2.2753,2.7927,2.2509,2.4341,2.5518,2.5547,2.4204,2.4186,2.4261,2.2927,2.4386,2.2295,2.2203,1.915,1.8791,1.7941,1.6567,0.9296 -Meat,8.3728,8.1221,8.3989,7.9758,8.8246,8.2377,8.432,7.8466,7.5343,7.1171,6.9801,6.9349,5.8307,5.7089,4.927,4.2237,3.6872,3.1429,2.581,1.3766 -Fish and seafood,9.1249,8.7326,7.6122,7.8577,7.1625,6.8527,6.5158,6.1715,6.1298,5.8702,5.3456,4.9906,4.4424,4.3022,3.5298,3.405,2.9977,2.4159,2.0832,1.1499 -Fruits and vegetables,8.0508,7.7875,7.6534,7.4448,7.3702,7.4188,7.3882,7.1647,6.9617,6.6576,6.6077,6.4823,5.9117,5.8149,5.505,5.5355,5.0907,4.569,4.3049,2.6325 -Other food products,10.4408,9.8278,9.9293,9.5176,9.6658,9.2359,9.2842,8.6497,8.7656,8.2962,8.155,7.7294,7.3674,6.9888,6.2995,5.7314,5.2703,4.6947,3.9614,2.2509 -Catering services,4.1883,4.7514,5.3198,5.8819,5.1732,5.5764,6.1713,6.7915,6.8511,7.2681,7.1461,8.109,9.2649,9.5322,11.2138,12.8299,12.9621,13.8936,13.7828,10.0525 -Non-alcoholic beverages,0.6641,0.8454,0.9018,1.0461,1.0113,1.235,1.279,1.3049,1.5024,1.4471,1.5358,1.5796,1.6471,1.6443,1.6562,1.6763,1.6097,1.5039,1.3752,0.864 -Alcoholic beverages,0.5221,0.6997,0.8513,0.8849,0.9168,0.9099,0.8339,0.9921,1.1169,1.1764,1.1936,1.1415,1.1181,1.2889,1.1378,1.023,1.1283,1.0417,0.9839,0.587 -Tobacco and narcotics,1.0969,1.188,1.0713,1.2803,1.1787,1.148,1.3229,1.1726,1.3764,1.3887,1.4011,1.3034,1.4368,1.5017,1.4899,1.4123,1.3168,1.1407,0.8458,0.38 -Clothing and footwear,2.275,2.5511,3.1025,2.9834,3.2857,3.7625,3.1928,3.7071,4.0364,3.629,3.9258,3.2208,3.7113,3.3166,3.4775,3.429,3.6121,3.4569,3.8416,4.1323 -Rentals (actual or imputed) and maintenance and repair of the dwelling,16.0654,15.719,16.3773,16.0175,15.8853,16.132,16.1309,16.3491,15.8512,16.4743,16.2862,15.7327,16.2793,16.6329,17.4903,17.4425,17.3413,18.3527,18.5029,15.2763 -Water supply and miscellaneous services related to the dwelling,1.1145,1.176,1.1183,1.0411,1.0058,1.0796,1.0321,1.0714,1.1117,1.0278,1.136,1.1397,1.1556,1.2206,1.2871,1.2361,1.2111,1.2312,1.1545,0.7881 -Electricity gas and other fuels,4.5928,4.7558,4.8855,4.4684,4.6677,4.6038,4.7789,4.6098,4.4171,4.5078,4.4137,4.4645,4.2693,4.2836,4.1709,4.159,3.8423,3.9957,3.6816,2.5785 -Furnishing household equipment and routine household maintenance,2.1027,2.1576,2.0721,2.0623,2.3498,2.2573,2.2866,2.3766,2.2488,2.3665,2.3445,2.2474,2.3345,2.2479,2.158,2.355,2.0744,2.2269,3.0474,3.8925 -Health,1.2709,1.6007,1.3996,1.612,1.4649,1.5875,1.7056,1.7315,1.7378,2.0401,2.3265,2.1096,2.0513,2.1548,2.0634,2.2206,1.8427,2.4817,2.3066,2.1685 -Transport,4.6414,5.6167,5.9571,6.5372,7.0242,7.6332,7.9823,8.3906,9.112,9.6872,10.2014,11.0074,11.375,11.6753,12.0489,12.0692,13.2962,13.2183,14.6559,32.0912 -Communication,0.2334,0.3642,0.5267,0.5911,0.8888,1.1633,1.0997,1.76,1.9811,2.1708,2.931,3.2634,3.6254,4.107,4.6944,5.0941,5.9984,6.2419,6.6059,5.8353 -Recreation and culture,2.2553,2.8903,2.9564,3.2839,3.4822,3.255,3.1666,3.4245,3.4066,3.8536,3.6333,4.0331,4.4847,4.3552,4.2768,4.1439,4.7196,4.6585,4.4286,3.921 -Education,0.3437,0.3282,0.4805,0.3881,0.4796,0.9766,0.6589,0.6443,1.0423,0.7941,1.064,1.5504,1.3977,1.5226,1.8344,1.9186,2.3022,2.8188,2.8424,2.7792 -Personal care,3.4466,3.5641,3.5711,3.4219,3.2835,3.3569,3.3416,3.4544,3.3675,3.2806,3.118,3.1881,3.2252,3.0588,3.0051,2.9868,3.0361,2.8972,2.9611,2.2867 -Other miscellaneous goods and services,1.5831,1.9691,2.2498,2.122,2.3766,2.1273,2.3165,2.0884,2.0421,2.0067,1.8809,2.0027,1.7115,1.7734,1.6204,1.6702,1.769,1.7391,2.3607,2.9604 -Food and non-alcoholic beverages,58.4561,55.4196,53.3806,53.3059,51.7105,50.007,50.1509,48.2276,47.1521,45.5962,44.1436,43.5952,41.8242,40.8606,39.2451,38.8396,36.5095,34.4988,31.7809,20.3231 -Non food,41.5439,44.5804,46.6194,46.6941,48.2895,49.993,49.8491,51.7724,52.8479,54.4038,55.8564,56.4048,58.1758,59.1394,60.7549,61.1604,63.4905,65.5012,68.2191,79.6769 diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/ages.json b/assets/javascripts/jquery/jquery.jqplot/examples/ages.json deleted file mode 100644 index 86916187f..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/ages.json +++ /dev/null @@ -1,5 +0,0 @@ -[[1043353182,539695335,503657847,28.24,27.51,29.01,51.78], -[0.0085318435343400800,0.0088774027062416400,0.0094714560875224100,0.0101640893891056000,0.0108249758696292000,0.0113773174183149000,0.0117954271696904000,0.0120868766491156000,0.0122726357410028000,0.0123620512208843000,0.0124092312631522000,0.0123929933989534000,0.0123170841477326000,0.0121788940682660000,0.0119848553256476000,0.0117367932349178000,0.0114334768233470000,0.0110840887113746000,0.0107005336950161000,0.0102889073661635000,0.0098746874267631800,0.0094727992165526500,0.0091066817836288100,0.0087853078056091400,0.0085176451289595700,0.0082955898249666400,0.0081021034227657000,0.0079410857437656400,0.0078129432771183200,0.0077041517746791700,0.0076076629996558600,0.0075063773837400400,0.0074212932416191700,0.0073577960797626100,0.0073199937766648000,0.0072872222696609900,0.0072249036551971000,0.0071436496521446000,0.0070535868312601700,0.0069442503777637000,0.0068032069975035000,0.0066093294501292200,0.0063936409488174700,0.0061768176372133200,0.0059737878831400300,0.0057724507581444500,0.0055456647375558400,0.0053139201135624000,0.0050952395722700100,0.0048873227886988200,0.0046839194356973000,0.0044709211871979300,0.0042683374557587400,0.0040886232834079100,0.0039394433696905200,0.0038097165950705600,0.0036797119436340500,0.0035595490798891500,0.0034559622921317600,0.0033586853733251200,0.0032515219944251700,0.0031141174480235800,0.0029601056879342400,0.0027997057390388600,0.0026388958299152400,0.0024706340765107900,0.0022829305753990900,0.0020900571013307600,0.0019037152224417700,0.0017251049256371200,0.0015499961243315000,0.0013709889555399900,0.0011982773790103000,0.0010401790931594200,0.0009015220565900700,0.0007812832602556460,0.0006749752626942340,0.0005833580512023270,0.0005061657847658260,0.0004399544894590220,0.0003808034210932470,0.0003273788998735520,0.0002794993115460400,0.0002369793671257210,0.0001995479850687680,0.0001668101805315270,0.0001383186716039340,0.0001138075253115040,0.0000929924552954457,0.0000755223736670678,0.0000610047525059652,0.0000490638302928227,0.0000396489252832302,0.0000330891826825378,0.0000281195284929135,0.0001070412478036410], -[0.0071192629623232800,0.0072839317935624000,0.0075693293189514500,0.0079091875498352200,0.0082360857829773300,0.0084979038169712600,0.0086893986451354100,0.0088353986277422900,0.0089633895658643000,0.0090878796761182500,0.0092337667384807200,0.0093792123312149900,0.0095192745279032600,0.0096463104169553400,0.0097588790000607600,0.0098544841215461300,0.0099282199747865200,0.0099763812248601700,0.0099957597226035700,0.0099801585489242500,0.0099375446097938400,0.0098709094654945100,0.0097926096630396900,0.0097014318757340600,0.0095968423362564000,0.0094699215837397400,0.0093120985109391200,0.0091337644254482100,0.0089445678055607600,0.0087423328014590000,0.0085321350430430500,0.0083104164267343500,0.0081040369311665900,0.0079207770770160300,0.0077675098774536000,0.0076284130950824500,0.0074765938644635800,0.0073237591351693500,0.0071772210497332700,0.0070244435483804400,0.0068550745015274400,0.0066526057090785200,0.0064404461001358000,0.0062305720357510500,0.0060342707683446500,0.0058408705961082800,0.0056264339860478000,0.0054065565344313600,0.0051920462742280000,0.0049765895152515200,0.0047558832991186200,0.0045207003388048400,0.0042899070487080500,0.0040745089551306800,0.0038817655555785800,0.0037053224400247200,0.0035332134254902200,0.0033727187145046400,0.0032284905944481100,0.0030937679725170100,0.0029582187048090100,0.0028081834596732200,0.0026513461722362800,0.0024926069125082600,0.0023353006048059200,0.0021744630786167700,0.0020021420693961100,0.0018298895084829500,0.0016671380010344600,0.0015153637133401800,0.0013712248188900700,0.0012284616818527500,0.0010934572254154500,0.0009707133813897040,0.0008622603131043950,0.0007661899219731710,0.0006786114871838230,0.0006005435486257860,0.0005322956370150040,0.0004715229254612440,0.0004158721219136000,0.0003645948643149670,0.0003176904909297340,0.0002751152300590630,0.0002367021156783720,0.0002021700726755280,0.0001712214234345020,0.0001437557719387760,0.0001197138111336940,0.0000989925882290494,0.0000814263200020563,0.0000667991474109870,0.0000549164545704749,0.0000455518367647343,0.0000384480445034309,0.0001437755914949950], -[1.284165231,1.3059697282,1.3408259576,1.3770498469,1.4083776842,1.4346340126,1.4545779876,1.4658887137,1.4671638972,1.457608962,1.4400548643,1.4158684686,1.3864911961,1.3528812542,1.3159697978,1.27622903,1.2340137083,1.1905291022,1.1471037258,1.1047013276,1.0647737249,1.0283340659,0.9964942039,0.9703629438,0.9510519527,0.9386721807,0.932316307,0.9316292996,0.9359838821,0.9443012277,0.9554470086,0.9678781103,0.9812761433,0.9953894103,1.0098153246,1.0236249732,1.035479081,1.0451994053,1.0530930686,1.0593183708,1.0634438538,1.0645809137,1.0637641578,1.0623066923,1.0608111193,1.0589993944,1.0561690641,1.0531914677,1.0515722425,1.052330754,1.0553372965,1.0597522653,1.0661637808,1.0752634417,1.0874733411,1.1017415355,1.1159815378,1.1309096828,1.1470504754,1.1633078085,1.1777943775,1.1882903501,1.1963378464,1.2035708256,1.2108560457,1.2175013424,1.2218302494,1.2239011525,1.223611334,1.2198647763,1.2112533925,1.1958739376,1.1742717733,1.1482333683,1.1203430352,1.0926602484,1.0658097999,1.040887396,1.0189501507,0.9998112064,0.9811922123,0.9621730704,0.9427349027,0.9230154312,0.903354613,0.8841353287,0.8656369091,0.8483181293,0.8323701879,0.8174967062,0.8028084248,0.7870522949,0.7736454722,0.7783827557,0.7836945697,0.7977724963], -[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,"95+", ""]] \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/ages.json.bak b/assets/javascripts/jquery/jquery.jqplot/examples/ages.json.bak deleted file mode 100644 index 46c341019..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/ages.json.bak +++ /dev/null @@ -1,20 +0,0 @@ -[[[27777522,13657657,14119865,22.9618524272778,22.9234010487667,22.9984003916577,95.1543545247194], -[0.0635441,0.1066868,0.0889602,0.0816883,0.10164580000000001,0.0916705,0.079569,0.0970443,0.1046451,0.13356859999999998,0.09269619999999999,0.0936646,0.09194050000000001,0.0722027,0.0896342,0.0993397,0.061379399999999994,0.0916921,0.0828748,0.043487,0.0391652,0.05173029999999999,0.0507104,0.0336168,0.0554176,0.06918260000000001,0.066553,0.0686232,0.07097,0.0356915,0.0756028,0.0430155,0.0420597,0.06085890000000001,0.0609348,0.083607,0.079871,0.063388,0.0866719,0.07110419999999999,0.11604289999999999,0.0439268,0.0659694,0.046840599999999996,0.0340002,0.09966620000000001,0.037104700000000004,0.0638918,0.0462334,0.0467053,0.054563799999999996,0.0463275,0.048099199999999995,0.051574699999999994,0.0499415,0.0287639,0.0520332,0.0443779,0.0334986,0.043161,0.047440500000000003,0.0179186,0.0620127,0.0219074,0.0411669,0.0495684,0.0315231,0.0275056,0.0157341,0.0113926,0.024991,0.012811300000000001,0.017529700000000002,0.0103093,0.025329200000000003,0.0988836], -[0.0767078,0.0679554,0.1064493,0.0915063,0.0860792,0.0785728,0.0892471,0.0687886,0.1055313,0.0921839,0.0659624,0.11451599999999999,0.0910735,0.1279864,0.0714669,0.0873929,0.09284529999999999,0.059575199999999995,0.1093534,0.0501142,0.052829,0.041160600000000006,0.0633309,0.0616121,0.0621781,0.0621598,0.0638378,0.0703724,0.0742589,0.048523,0.0735727,0.08988159999999999,0.0740614,0.0991105,0.148909,0.12269959999999999,0.1020624,0.0737742,0.09468170000000001,0.069129,0.0933744,0.0957472,0.0793112,0.0581121,0.0767528,0.1031739,0.1202133,0.0626926,0.0959522,0.059430300000000005,0.1202145,0.0611707,0.0480779,0.0383338,0.053287600000000004,0.0849878,0.05245300000000001,0.0660183,0.025419000000000004,0.0137567,0.0762322,0.0490294,0.0463194,0.0566921,0.0353006,0.0730591,0.034669,0.0271638,0.0309785,0.0152756,0.0478111,0.0177234,0.026930199999999998,0.0396318,0.0194934,0.1683044], -[0.08012745758,0.15185614577,0.08083484276,0.08634844480000001,0.11421861070999999,0.11285038043,0.08623735826,0.13645806801,0.09591427898,0.14015059741,0.13592869247,0.07911429639999999,0.09764735666999999,0.05456765264,0.121314988,0.10994927001000002,0.06394526214,0.14887167252,0.07330538177,0.08393523364,0.07170899168,0.12156511277,0.07745100072,0.05277594468,0.08620965831,0.10765468343,0.10084059099,0.09432227357,0.0924425572,0.07114801921,0.09939552755,0.04629134908,0.05493130422,0.059395027600000004,0.0395813042,0.06590906497,0.07569531533,0.08310902697,0.08854375327,0.09949027633,0.12020884008999999,0.04437610101,0.08045511693,0.07796533275,0.04284823143,0.09343803786,0.02985534283,0.09857675082,0.04660650676,0.07601580528,0.04390292048,0.07325564077999999,0.0967693938,0.13013691132,0.09065276996,0.03273684636,0.09595240406,0.06502016503,0.12747172211,0.30347497827000003,0.0601944515,0.03535030403,0.12949809292,0.037377818480000005,0.11280068435999999,0.0656260462,0.08794947713,0.09794364354,0.049127784359999996,0.07213901846000001,0.0505592422,0.06991845436,0.06296229678000001,0.025161181890000002,0.12568386739999998,0.0568295813]], -[[27749565,13838477,13911088,24.5976082172601,24.9314069236505,24.2580664163534,77.8912115153135], -[0.0635441,0.1066868,0.0889602,0.0816883,0.10164580000000001,0.0916705,0.079569,0.0970443,0.1046451,0.13356859999999998,0.09269619999999999,0.0936646,0.09194050000000001,0.0722027,0.0896342,0.0993397,0.061379399999999994,0.0916921,0.0828748,0.043487,0.0391652,0.05173029999999999,0.0507104,0.0336168,0.0554176,0.06918260000000001,0.066553,0.0686232,0.07097,0.0356915,0.0756028,0.0430155,0.0420597,0.06085890000000001,0.0609348,0.083607,0.079871,0.063388,0.0866719,0.07110419999999999,0.11604289999999999,0.0439268,0.0659694,0.046840599999999996,0.0340002,0.09966620000000001,0.037104700000000004,0.0638918,0.0462334,0.0467053,0.054563799999999996,0.0463275,0.048099199999999995,0.051574699999999994,0.0499415,0.0287639,0.0520332,0.0443779,0.0334986,0.043161,0.047440500000000003,0.0179186,0.0620127,0.0219074,0.0411669,0.0495684,0.0315231,0.0275056,0.0157341,0.0113926,0.024991,0.012811300000000001,0.017529700000000002,0.0103093,0.025329200000000003,0.0988836], -[0.0767078,0.0679554,0.1064493,0.0915063,0.0860792,0.0785728,0.0892471,0.0687886,0.1055313,0.0921839,0.0659624,0.11451599999999999,0.0910735,0.1279864,0.0714669,0.0873929,0.09284529999999999,0.059575199999999995,0.1093534,0.0501142,0.052829,0.041160600000000006,0.0633309,0.0616121,0.0621781,0.0621598,0.0638378,0.0703724,0.0742589,0.048523,0.0735727,0.08988159999999999,0.0740614,0.0991105,0.148909,0.12269959999999999,0.1020624,0.0737742,0.09468170000000001,0.069129,0.0933744,0.0957472,0.0793112,0.0581121,0.0767528,0.1031739,0.1202133,0.0626926,0.0959522,0.059430300000000005,0.1202145,0.0611707,0.0480779,0.0383338,0.053287600000000004,0.0849878,0.05245300000000001,0.0660183,0.025419000000000004,0.0137567,0.0762322,0.0490294,0.0463194,0.0566921,0.0353006,0.0730591,0.034669,0.0271638,0.0309785,0.0152756,0.0478111,0.0177234,0.026930199999999998,0.0396318,0.0194934,0.1683044], -[0.08240677231,0.15617586288000002,0.08313427985,0.08880472244,0.11746768624,0.11606053513,0.08869047591,0.14033976966,0.09864266742,0.14413733717,0.13979533545,0.08136479062999999,0.10042504443,0.056119890260000006,0.12476592788,0.11307689939000001,0.06576425631,0.15310649297,0.07539063496000001,0.0863228648,0.07374883377,0.12502316773,0.07965418065999999,0.054277215180000005,0.08866198801,0.11071704075,0.10370911384999999,0.09700537564,0.09507218864,0.07317190382,0.10222294398000001,0.04760815804,0.05649388631,0.061084585270000005,0.04070723846,0.0677839217,0.07784855284,0.08547315576,0.0910624789,0.10232038799000001,0.12362831435999999,0.045638428599999996,0.0827437523,0.08018314344000001,0.04406709707,0.09609598687000001,0.03070461129,0.10138087623,0.04793228073,0.07817815948,0.04515178793,0.07533947903,0.09952210692999999,0.13383880063,0.09323148892000001,0.0336680824,0.09868187701,0.06686973601,0.13109779715,0.31210766186,0.06190674968,0.03635588278,0.13318181034,0.03844107214,0.1160094254,0.06749285214,0.09045129791999999,0.10072975952,0.05052527888,0.07419109314,0.051997456129999994,0.07190736263,0.0647533294,0.025876919720000002,0.12925908492,0.058446162010000004]], -[[27773083,14068521,13704562,26.031249743982,26.4622397434507,25.5923334000026,66.9928635958906], -[0.0635441,0.1066868,0.0889602,0.0816883,0.10164580000000001,0.0916705,0.079569,0.0970443,0.1046451,0.13356859999999998,0.09269619999999999,0.0936646,0.09194050000000001,0.0722027,0.0896342,0.0993397,0.061379399999999994,0.0916921,0.0828748,0.043487,0.0391652,0.05173029999999999,0.0507104,0.0336168,0.0554176,0.06918260000000001,0.066553,0.0686232,0.07097,0.0356915,0.0756028,0.0430155,0.0420597,0.06085890000000001,0.0609348,0.083607,0.079871,0.063388,0.0866719,0.07110419999999999,0.11604289999999999,0.0439268,0.0659694,0.046840599999999996,0.0340002,0.09966620000000001,0.037104700000000004,0.0638918,0.0462334,0.0467053,0.054563799999999996,0.0463275,0.048099199999999995,0.051574699999999994,0.0499415,0.0287639,0.0520332,0.0443779,0.0334986,0.043161,0.047440500000000003,0.0179186,0.0620127,0.0219074,0.0411669,0.0495684,0.0315231,0.0275056,0.0157341,0.0113926,0.024991,0.012811300000000001,0.017529700000000002,0.0103093,0.025329200000000003,0.0988836], -[0.0767078,0.0679554,0.1064493,0.0915063,0.0860792,0.0785728,0.0892471,0.0687886,0.1055313,0.0921839,0.0659624,0.11451599999999999,0.0910735,0.1279864,0.0714669,0.0873929,0.09284529999999999,0.059575199999999995,0.1093534,0.0501142,0.052829,0.041160600000000006,0.0633309,0.0616121,0.0621781,0.0621598,0.0638378,0.0703724,0.0742589,0.048523,0.0735727,0.08988159999999999,0.0740614,0.0991105,0.148909,0.12269959999999999,0.1020624,0.0737742,0.09468170000000001,0.069129,0.0933744,0.0957472,0.0793112,0.0581121,0.0767528,0.1031739,0.1202133,0.0626926,0.0959522,0.059430300000000005,0.1202145,0.0611707,0.0480779,0.0383338,0.053287600000000004,0.0849878,0.05245300000000001,0.0660183,0.025419000000000004,0.0137567,0.0762322,0.0490294,0.0463194,0.0566921,0.0353006,0.0730591,0.034669,0.0271638,0.0309785,0.0152756,0.0478111,0.0177234,0.026930199999999998,0.0396318,0.0194934,0.1683044], -[0.08503916535,0.16116472779,0.08578991231000001,0.0916414909,0.12122006133,0.11976796032999999,0.0915235949,0.14482276812,0.10179369814000001,0.14874164471,0.14426094256,0.08396389872,0.10363301120999999,0.057912577980000005,0.12875143722,0.11668901566,0.06786502261,0.15799731026,0.07779890527,0.08908035308,0.07610465856000001,0.12901689431000002,0.08219864521,0.05601104069,0.09149419698,0.11425377395,0.10702198658999999,0.10010410488999999,0.09810916438,0.07550929921,0.10548834266,0.0491289479,0.05829852092,0.06303586467,0.04200758609,0.06994920397,0.08033533861,0.08820350101999999,0.09397136889999999,0.10558889942000001,0.12757748389,0.04709629764,0.08538690978999999,0.08274450512,0.04547477166,0.0991656667,0.031685436080000004,0.104619376,0.04946342433,0.08067547417000001,0.04659411177,0.07774611522,0.10270123037000001,0.13811413283,0.09620966553,0.03474357199,0.10183416024,0.06900581564,0.13528557103,0.32207759532,0.06388429221,0.03751723118,0.13743615571,0.03966902959,0.11971521796,0.06964883652000001,0.09334066442,0.10394746008,0.052139252930000005,0.07656104541,0.05365845725,0.07420436366,0.06682180277000001,0.026703529250000003,0.13338812317999998,0.0603131599]], -[[27763227,14197178,13566049,27.1801825364803,27.2072646746751,27.152230557176,58.6206806491801], -[0.0635441,0.1066868,0.0889602,0.0816883,0.10164580000000001,0.0916705,0.079569,0.0970443,0.1046451,0.13356859999999998,0.09269619999999999,0.0936646,0.09194050000000001,0.0722027,0.0896342,0.0993397,0.061379399999999994,0.0916921,0.0828748,0.043487,0.0391652,0.05173029999999999,0.0507104,0.0336168,0.0554176,0.06918260000000001,0.066553,0.0686232,0.07097,0.0356915,0.0756028,0.0430155,0.0420597,0.06085890000000001,0.0609348,0.083607,0.079871,0.063388,0.0866719,0.07110419999999999,0.11604289999999999,0.0439268,0.0659694,0.046840599999999996,0.0340002,0.09966620000000001,0.037104700000000004,0.0638918,0.0462334,0.0467053,0.054563799999999996,0.0463275,0.048099199999999995,0.051574699999999994,0.0499415,0.0287639,0.0520332,0.0443779,0.0334986,0.043161,0.047440500000000003,0.0179186,0.0620127,0.0219074,0.0411669,0.0495684,0.0315231,0.0275056,0.0157341,0.0113926,0.024991,0.012811300000000001,0.017529700000000002,0.0103093,0.025329200000000003,0.0988836], -[0.0767078,0.0679554,0.1064493,0.0915063,0.0860792,0.0785728,0.0892471,0.0687886,0.1055313,0.0921839,0.0659624,0.11451599999999999,0.0910735,0.1279864,0.0714669,0.0873929,0.09284529999999999,0.059575199999999995,0.1093534,0.0501142,0.052829,0.041160600000000006,0.0633309,0.0616121,0.0621781,0.0621598,0.0638378,0.0703724,0.0742589,0.048523,0.0735727,0.08988159999999999,0.0740614,0.0991105,0.148909,0.12269959999999999,0.1020624,0.0737742,0.09468170000000001,0.069129,0.0933744,0.0957472,0.0793112,0.0581121,0.0767528,0.1031739,0.1202133,0.0626926,0.0959522,0.059430300000000005,0.1202145,0.0611707,0.0480779,0.0383338,0.053287600000000004,0.0849878,0.05245300000000001,0.0660183,0.025419000000000004,0.0137567,0.0762322,0.0490294,0.0463194,0.0566921,0.0353006,0.0730591,0.034669,0.0271638,0.0309785,0.0152756,0.0478111,0.0177234,0.026930199999999998,0.0396318,0.0194934,0.1683044], -[0.08669306385,0.1642991671,0.08745841185,0.09342379585,0.12357763008,0.12209728765000001,0.09330360693,0.14763937807,0.10377345,0.15163447160000001,0.14706662576,0.08559688473,0.10564853525,0.059038900490000004,0.1312554812,0.11895846161000001,0.06918490692,0.16107014750999998,0.07931199036,0.09081284731,0.07758479281,0.13152610108,0.08379729938,0.05710038083,0.09327363726,0.11647585767999999,0.10910342170000001,0.10205099641,0.10001725696,0.07697785452,0.10753995044,0.050084440509999995,0.05943234951,0.06426182829,0.04282457769,0.07130962283,0.08189775395,0.08991894164,0.09579898687,0.10764246288999998,0.13005869604,0.0480122579,0.08704757146,0.08435377554,0.04635919541,0.10109430684000001,0.032301675610000004,0.10665408353000001,0.05042542206,0.0822445047,0.047500305189999995,0.07925817361000001,0.10469863252,0.14080026877000001,0.09808081538999999,0.035419288189999995,0.10381469903,0.07034788685,0.13791669521,0.3283415756,0.06512675661,0.03824689136,0.1401091059,0.04044053939,0.12204351951,0.07100341363,0.09515601602,0.10596909973999999,0.05315329196,0.07805005578,0.05470204278,0.0756475397,0.06812139784,0.02722287733,0.13598234452,0.061486170529999995]], -[[27754352,14075999,13678353,29.1168227998273,29.25251358929,28.974780426636,50.90167162031], -[0.0635441,0.1066868,0.0889602,0.0816883,0.10164580000000001,0.0916705,0.079569,0.0970443,0.1046451,0.13356859999999998,0.09269619999999999,0.0936646,0.09194050000000001,0.0722027,0.0896342,0.0993397,0.061379399999999994,0.0916921,0.0828748,0.043487,0.0391652,0.05173029999999999,0.0507104,0.0336168,0.0554176,0.06918260000000001,0.066553,0.0686232,0.07097,0.0356915,0.0756028,0.0430155,0.0420597,0.06085890000000001,0.0609348,0.083607,0.079871,0.063388,0.0866719,0.07110419999999999,0.11604289999999999,0.0439268,0.0659694,0.046840599999999996,0.0340002,0.09966620000000001,0.037104700000000004,0.0638918,0.0462334,0.0467053,0.054563799999999996,0.0463275,0.048099199999999995,0.051574699999999994,0.0499415,0.0287639,0.0520332,0.0443779,0.0334986,0.043161,0.047440500000000003,0.0179186,0.0620127,0.0219074,0.0411669,0.0495684,0.0315231,0.0275056,0.0157341,0.0113926,0.024991,0.012811300000000001,0.017529700000000002,0.0103093,0.025329200000000003,0.0988836], -[0.0767078,0.0679554,0.1064493,0.0915063,0.0860792,0.0785728,0.0892471,0.0687886,0.1055313,0.0921839,0.0659624,0.11451599999999999,0.0910735,0.1279864,0.0714669,0.0873929,0.09284529999999999,0.059575199999999995,0.1093534,0.0501142,0.052829,0.041160600000000006,0.0633309,0.0616121,0.0621781,0.0621598,0.0638378,0.0703724,0.0742589,0.048523,0.0735727,0.08988159999999999,0.0740614,0.0991105,0.148909,0.12269959999999999,0.1020624,0.0737742,0.09468170000000001,0.069129,0.0933744,0.0957472,0.0793112,0.0581121,0.0767528,0.1031739,0.1202133,0.0626926,0.0959522,0.059430300000000005,0.1202145,0.0611707,0.0480779,0.0383338,0.053287600000000004,0.0849878,0.05245300000000001,0.0660183,0.025419000000000004,0.0137567,0.0762322,0.0490294,0.0463194,0.0566921,0.0353006,0.0730591,0.034669,0.0271638,0.0309785,0.0152756,0.0478111,0.0177234,0.026930199999999998,0.0396318,0.0194934,0.1683044], -[0.08524739676000001,0.16155936429,0.08599998204,0.09186588912,0.12151688721000001,0.12006123050999999,0.09174770443,0.14517738883,0.10204295559000001,0.14910586138999998,0.14461418755,0.08416949718,0.1038867725,0.058054385789999996,0.12906670482,0.11697474658,0.06803120051,0.15838419085,0.07798940778999999,0.08929847996,0.07629101246,0.12933281191999998,0.08239992117,0.056148192289999996,0.09171823453,0.1145335418,0.10728404630999999,0.10034922511,0.09834939968,0.07569419529,0.10574664702,0.04924924765,0.05844127377,0.06319021764,0.04211044809,0.07012048531000001,0.08053205197999999,0.08841948079,0.09420147217,0.10584745,0.12788987689,0.04721162013,0.08559599271,0.08294711769999999,0.0455861236,0.09940848901,0.03176302272,0.10487555256,0.04958454309,0.08087302042,0.04670820459,0.07793648848,0.10295271005,0.13845232642,0.09644524963,0.03482864694,0.10208351676,0.06917478694,0.13561683846,0.32286625161,0.06404072268,0.03760909786,0.13777268917000002,0.03976616528,0.12000835899,0.06981938236,0.09356922331999999,0.10420199135,0.05226692387,0.07674851685,0.053789848200000004,0.0743860644,0.06698542618,0.026768916929999997,0.13371474441,0.060460845900000004]]] \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/ajax-loader.gif b/assets/javascripts/jquery/jquery.jqplot/examples/ajax-loader.gif deleted file mode 100644 index 3288d1035..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/ajax-loader.gif and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/area.html b/assets/javascripts/jquery/jquery.jqplot/examples/area.html deleted file mode 100644 index 139ed5319..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/area.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - Filled (Area) Charts - - - - - - - - - - - - - -
    - - - - - - - - -

    Area charts support highlighting and mouse events by default. The options and handlers and callbacks are essentially the same as with bar, pie, donut and funnel charts. One notable exception for area charts is that no data point index will be provided to the callback and the entire data set for the highlighted area will be returned. This is because the area is not associated with one particular data point, but with the entire data set of the series.

    - -
    Moused Over: Nothing
    - -
    - -

    For the chart below, mouseover has been disabled and click handling is enabled by setting "highlightMouseDown: true". For "fillToZero" area charts that have both negative and positive values as shown below, clicking in either the positive of negative regions will generate the same result.

    - -
    You Clicked: Nothing yet
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/axisLabelTests.html b/assets/javascripts/jquery/jquery.jqplot/examples/axisLabelTests.html deleted file mode 100644 index fe71750eb..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/axisLabelTests.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - Line Charts and Options - - - - - - - - - - - - - -
    - - - - - - -

    jqPlot support axis labels through the "label" option of each axis. The default label renderer creates labels in div tags, which allows full css control over every label. Labels are assigned css classes like "jqplot-axis_name-label" where "axis_name" will be xaxis, yaxis, etc.

    - -
    - -
    
    -
    -
    -

    By including the "jqplot.canvasTextRenderer.min.js" and "jqplot.canvasAxisLabelRenderer.min.js" plugins, you can render label text directly onto canvas elements. This allows text to be rotated and yaxes will have their labels rotated 90 degrees by default. By default the labels will be rendered using the Hershey font metrics and not stroked as text. Most recent browsers (include IE 9) support native text rendering in canvas elements.

    - -
    - -
    
    -
    -      
    -

    If a visitors is using a browser suppporting native canvas fonts, the plot belowsupported browser, they will see the labels in the plot below rendered as 12 pt Georgia (or their system serif font if Georgia is unavailable). If they are on an unsupported browser, they will see the default Hershey font.

    - -
    - -
    
    -
    -
    -  
    -
    -  
    -
    -  
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -  
    -  
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/axisLabelsRotatedText.html b/assets/javascripts/jquery/jquery.jqplot/examples/axisLabelsRotatedText.html deleted file mode 100644 index 5acfde39d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/axisLabelsRotatedText.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - Axis Labels and Rotated Text - - - - - - - - - - - - - -
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/axisScalingForceTickAt.html b/assets/javascripts/jquery/jquery.jqplot/examples/axisScalingForceTickAt.html deleted file mode 100644 index e09aa7503..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/axisScalingForceTickAt.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - Force Plot to Have Tick at 0 or 100 - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - -
    -
    
    -
    -
    
    -
    -
    
    -
    -
    
    -
    -
    
    -
    - -
    - - -
    -
    - - -
    - -
    
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -  
    -  
    -  
    -  
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/bandedLine.html b/assets/javascripts/jquery/jquery.jqplot/examples/bandedLine.html deleted file mode 100644 index e94f472b8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/bandedLine.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - Error Bands and Confidence Intervals - - - - - - - - - - - - - -
    - - - - - -

    Bands (like confidence intervals or error bands) can be added to line charts through the "bands" option of the line renderer. The band data can be automatically computed or manually assigned. If assigned manually, the simpliest approach is to set the "rendererOptions: { bandData: [] }" array on the series. Note that band data is taken into account when axes scale themselves so bands will not get clipped.

    - - -

    Band data can be supplied as arrays of [x,y] values. One array for the upper band line and one for the lower band line.

    - -
    -
    
    -
    -
    -

    The number of points in the band data arrays does not have to correspond to the number of points in the data series. Also, band data will be drawn as smoothed lines if the data series is smoothed.

    - -
    -
    
    -
    -

    In this example, band data is supplied as an array of arrays of y values for the low and hi bands. X values for the bands are taken from the x values of the series. The band data is of the form: [ [y low 1, y hi 1], [y low 2, y hi 2], ... ] and there must be a corresponding array of low/hi y values for each x value in the data series.

    - -
    -
    
    -
    -

    The band data can also be supplied as an array of [low y values], [hi y values]. In this case there must also be an equal number of low y values and hi y values as there are data points in the series. X values for the low and hi bands will be taken from the series data. Additionally, the order of low/hi values does not matter as long as they are consistent. jqPlot will figure out which is the low values and which are the high values.

    - -
    -
    
    -
    -

    Band data does not have to be provided. By default, jqPlot will compute +/- 3% band intervals if the "rendererOptions: { bands: { show: true } }" option is set. The band intervals can be customized as well through the "rendererOptions: { bands: { interval: [number|string|arry] } }" option. Valid intervals are:

    - -
      -
    • '1.7' - will add bands at y +/- 1.7 above and below the line.
    • -
    • '10%' - will compute +/- 10% interval bands.
    • -
    • [3, '-10%'] - will add bands at y + 3 and y - 10% above and below the line.
    • -
    - -

    Examples of such interval specifications are shown below:

    - -
    -
    
    - 
    -
    
    -
    - 
    -
    
    -    
    -

    You can also customize the fill color of the bands and turn on/off band lines. By default, bands respond to the mouse over event, but they can be set to respond to mouse down as well.

    -
    -
    
    -
    -

    Note, the plots on this page all extend the following pre-defined theme:

    - -
    
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/bar-charts.html b/assets/javascripts/jquery/jquery.jqplot/examples/bar-charts.html deleted file mode 100644 index 4c6f824e3..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/bar-charts.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - Vertical and Horizontal Bar Charts - - - - - - - - - - - - - -
    - - - - - - - - - -
    - -
    
    -
    -    
    - -
    
    -
    -    

    Click on a bar in the plot below to update the text box.

    -

    You Clicked: - Nothing yet. -

    -
    - -
    
    -
    -  
    -  
    -
    -
    -
    -    
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -    
    -    
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/barLineAnimated.html b/assets/javascripts/jquery/jquery.jqplot/examples/barLineAnimated.html deleted file mode 100644 index 41a60ac97..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/barLineAnimated.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - Animated Charts - - - - - - - - - - - - - -
    - - - - - - -
    - -

    This plot animates the bars bottom to top and the line series left to right upon initial page load. Since the animateReplot: true option is set, the bars and line will also animate upon calls to plot1.replot( { resetAxes: true } ).

    - -
    
    -
    -
    - 
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -  
    -  
    -   
    -  
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/barTest.html b/assets/javascripts/jquery/jquery.jqplot/examples/barTest.html deleted file mode 100644 index b4b495f87..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/barTest.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - Bar Charts - - - - - - - - - - - - - -
    - - - - - - -

    Below is a default bar plot. Bars will highlight on mouseover. Events are triggered when you mouseover a bar and also when you click on a bar. Here We capture the 'jqplotDataClick' event and display the clicked series index, point index and data values. When series data is assigned as a 1-dimensional array as in this example, jqPlot automatically converts it into a 2-dimensional array for plotting. So a series defined as [2, 6, 7, 10] will become [[1,2], [2,6], [3,7], [4,10]].

    - -

    You Clicked: Nothing yet
    - -
    -
    
    -
    -    

    The plot target also fires a 'jqplotDataMouseOver' when the cursor is moused over a bar even if highlighting is turned off. This event will fire continuously as the user mouses over the bar. 'jqplotDataHighlight' fires only once when the user first passes over the bar. Additionally, a 'jqplotDataUnhighlight' event is fired when the user moves out of a bar (if highlighting is enabled).

    - -

    Moused Over: Nothing
    - -
    -
    
    -    
    -    
    Moused Over: Nothing
    -
    Clicked: Nothing
    - -
    -
    
    -    
    -    

    The next example has the plot's 'captureRightClick' option set to true. This causes the plot to fire a 'jqplotRightClick' event the the user clicks the right mouse button over a bar. Here, the 'highlightMouseDown' option is also set to true. This will highlight a slice on mouse down instead of on move over. Highlighting will occur for either left or right click.

    - -
    You Right Clicked: Nothing yet
    - -
    -
    
    -    
    -    
    -
    
    -    
    -    
    -
    
    -        
    -

    A pie chart is added to test for incompatibilities.

    -
    -
    
    -
    -

    The nex example shows the placement of point labels on negative bars. They shou be placed on the opposite position. That is, if it is placed 'north' to the positive bars, then it should be placed 'south' to the negative bars.

    -
    -
    
    -
    -  
    -    
    -  
    -    
    -  
    -    
    -  
    -    
    -  
    -    
    -  
    -
    -   
    -
    -     
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -  
    -  
    -  
    -  
    -  
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/bezierCurve.html b/assets/javascripts/jquery/jquery.jqplot/examples/bezierCurve.html deleted file mode 100644 index 2c5a61409..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/bezierCurve.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Bezier Curve Plots - - - - - - - - - - - - - -
    - - - - - - -

    The Bezier curve renderer can distinguish between two different input data formats. This first example has the data passed in as 2 data points, the second one defining the Bezier curve to the end point. With this format, non-default axes renderers will require specifying the minimum and maximum on the axes.

    -
    -    [[xstart, ystart], [cp1x, cp1y, cp2x, cp2y, xend, yend]];
    -
    -
    -

    This second example has the data broken out into 4 points, which will be assembled to define the Bezier Curve. With this format, any axes renderer can be used without explicitly specifying the minimum and maximum.

    -
    -    [[xstart, ystart], [cp1x, cp1y], [cp2x, cp2y], [xend, yend]];
    -
    -
    -

    Here is an example using a date axis renderer with Bezier curves. The data looks like:

    -
    -    [['01/01/2010', 6], ['02/01/2010', 9], ['03/01/2010', 8], ['04/01/2010', 3]]
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/blockPlot.html b/assets/javascripts/jquery/jquery.jqplot/examples/blockPlot.html deleted file mode 100644 index 2558f7b3c..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/blockPlot.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - Block Plots - - - - - - - - - - - - - -
    - - - - - - -

    Below is an example block plot. This plot also uses the Enhanced Legend Renderer plugin. Clicking on an item in the legend will toggle display of the appropriate series.

    - -
    - -

    Blocks can be moved by selecting the series, the point, and an optional duration parameter. If specified, duration will animate the movement. Duration is either a number in milliseconds, or the keywords 'fast' or 'slow'. Higher numbers will cause a slower animation.

    - Series: - Point: - Duration: - X: - Y: - -
    
    -    
    -    
    -    

    This second chart is like the first except the "varyBlockColors" renderer option is set to true. This will vary the color of each block in a series separately. This allows displaying a third dimension to the data such as grouping beverage products by producer and by category such as "cola", "tea", "energy drink", etc.

    - -

    Also, the legend has it's "showSwathces" option set to false, since the blocks of each series will be of varying color and won't correspond to one swatch color. This still enables the user to show and hide the series by clicking on a label in the legend.

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/bubble-plots.html b/assets/javascripts/jquery/jquery.jqplot/examples/bubble-plots.html deleted file mode 100644 index 15333c443..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/bubble-plots.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - Bubble Plots - - - - - - - - - - - - - -
    - - - - - - - - -

    Bubble charts represent 3 dimensional data. First, a basic bubble chart with the "bubbleGradients: true" option to specify gradient fills. Radial gradients are not supported in IE version before IE 9 and will be automatically disabled.

    - -
    - -
    
    -
    -
    -

    Data is passed in to a bubble chart as a series of [x, y, radius, <label or object>]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.

    - -

    By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.

    - -

    Next are some basic customizations of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.

    - -
    - -
    
    -
    -
    -

    In the following example, display of a custom toolip and highlighting of a custom table legend is performed by binding to the "jqplotDataHighlight" and "jqplotDataUnhighlight" events. The custom legend table here is dynamically created with a few lines of jQuery (O.K., it could be done in one line) based on the data array of the plot.

    - - - - - - -
    CompanyR Value
    - -
    
    -
    -
    -
    -  
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/bubbleChart.html b/assets/javascripts/jquery/jquery.jqplot/examples/bubbleChart.html deleted file mode 100644 index 99a907d62..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/bubbleChart.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - Bubble Charts - - - - - - - - - - - - - -
    - - - - - - - - - -

    Bubble charts represent 3 dimensional data. Data is passed in to a bubble chart as a series of [x, y, radius, <label or object>]. The optional fourth element of the data point can either be either a label string or an object having 'label' and/or 'color' properties to assign to the bubble.

    - -

    By default, all bubbles are scaled according to the size of the plot area. The radius value in the data point will be adjusted to fit the bubbles in the chart. If the "autoscaleBubbles" option is set to false, the radius value in the data will be taken as a literal pixel value for the radius of the points.

    - -

    The below chart show basic customization of bubble appearance with the "bubbleAlpha" and "highlightAlpha" options.

    - -
    -
    
    -
    -
    -
    -
    -    
    -    
    -
    CompanyR Value
    -
    
    -
    -

    Below is a basic bubble chart showing usage of the optional label and color properties passed in with the data.

    - -
    -
    
    -
    -

    The next chart uses the "bubbleGradients: true" option to specify gradient fills on the bubbles. Radial gradients are not supported in IE* and will be automatically disabled.

    - -
    - -

    *Radial gradients are not supported in IE 7 and IE 8 because they are not supported in the excanvas emulation layer used by jqPlot to render charts in IE 7 and IE 8. jqPlot renders charts using the HTML canvas element which is supported by nearly every browser including IE 9. Excanvas translates the canvas rendering to VML rendering for IE 7 and 8, but unfortunately does not properly handle radial gradients.

    - -
    
    -
    -

    The following bubble chart shows the "autoscalePointsFactor" and "autoscaleMultiplier" options which can be used to control bubble scaling. The "autoscalePointsFactor" options controls bubble scaling with the number of points on the plot. A negative value will decrease bubble size and number of bubbles increases. The "autoscaleMultiplier" will makes all bubbles larger or smaller for values greater or less than 1.0.

    - -

    This chart also demonstrates some of the highlighting options. Bubble highlighting is controlled with the "highlightMouseOver" and "highlightMouseDown" boolean options. Here the "highlightMouseDown: true" option is set which causes the plot to highlight on mousedown (click). This automatically sets the "highlightMouseOver" option to false.

    - -

    Events are also trigger with plot interaction. Specifically, "jqplotDataHighlight", "jqplotDataUnhighlight", "jqplotDataClick" and "jqplotDataRightClick" events are triggered. Handlers are passed an event object, the series index, the point index, and the bubble data.

    - -
    -
    
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -  
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/candlestick-charts.html b/assets/javascripts/jquery/jquery.jqplot/examples/candlestick-charts.html deleted file mode 100644 index 7f88c4210..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/candlestick-charts.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - Open Hi Low Close and Candlestick Charts - - - - - - - - - - - - - -
    - - - - - - -

    OHLC, HLC and Candlestick charts are all created using the $.jqplot.OHLCRenderer plugin. The plots on this page make use of the highlighter plugin which shows a customized tooltip as the mouse moves over a data point.

    -
    - -
    
    -
    -
    - -
    
    -
    -

    The previous plots use the following data set. jqPlot will parse most human readable date formats. It is always safest, however, to pass a date in as a JavaScript timestamp rather than have jqPlot parse an arbitrary date string.

    - -
    
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -    
    -    
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/candlestick.html b/assets/javascripts/jquery/jquery.jqplot/examples/candlestick.html deleted file mode 100644 index c227b3893..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/candlestick.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - Candlestick and Open Hi Low Close charts - - - - - - - - - - - - - -
    - - - - - - -
    -
    
    -
    -
    
    -
    -
    
    -
    -
    
    -
    -
    
    -

    The examples on this page use the folowing code:

    -
    
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/canvas-overlay.html b/assets/javascripts/jquery/jquery.jqplot/examples/canvas-overlay.html deleted file mode 100644 index bbef3c051..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/canvas-overlay.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - Draw Lines on Plots - Canvas Overlay - - - - - - - - - - - - - -
    - - - - - - - -
    - - - -
    
    -
    -    
    -
    
    -
    -  
    -  
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -  
    -  
    -  
    -  
    -  
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/README b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/README deleted file mode 100644 index a0a0cc5a8..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/README +++ /dev/null @@ -1,140 +0,0 @@ -jQuery.colorpicker v0.6 - -Copyright (c) 2011 Martijn W. van der Lee -Licensed under the MIT. - -Full-featured colorpicker for jQueryUI with full theming support. -Most images from jPicker by Christopher T. Tillman. -Sourcecode created from scratch by Martijn W. van der Lee. - -IE support; make sure you have a doctype defined, or the colorpicker will not display correctly. - -Options: - alpha: false - Whether or not to show the inputs for alpha. - - altAlpha: true - Change the opacity of the altField element(s) according to the alpha - setting. - - altField: '' - Change the background color of the elements specified in this element. - - altOnChange: true - If true, the altField element(s) are updated on every change, otherwise - only upon closing. - - altProperties: 'background-color' - Comma-separated list of CSS properties to set color of in the altField. - The following properties are allowed, all others are ignored. - background-color - color - border-color - outline-color - - autoOpen: false - If true, the dialog opens automatically upon page load. - - buttonColorize: false - If a buttonimage is specified, change the background color of the - image when the color is changed. - - buttonImage: 'images/ui-colorpicker.png' - Same as jQueryUI DatePicker. - - buttonImageOnly: false - Same as jQueryUI DatePicker. - - buttonText: 'Color' - Same as jQueryUI DatePicker. - - closeOnOutside: true - Close the window when clicking outside the colorpicker display. - - color: '#00FF00' - Initial color. Formats recognized are: - #rrggbb - rrggbb (same as previous, but without the #) - rgb(rrr,ggg,bbb) - rgba(rrr,ggg,bbb,a.a) - rgb(rrr%,ggg%,bbb%) - rgba(rrr%,ggg%,bbb%,aaa%) - w3c-defined color name - - duration: 'fast' - Same as jQueryUI DatePicker. - - hsv: true - Whether or not to show the inputs for HSV. - - layout: { ... } - Set the position of elements in a table layout. - You could create any layout possible with HTML tables by specifying cell - position and size of each part. - @todo document how this works. - - limit: '' - Limit the selectable colors to any of the predefined limits: - '' No limitations, allow 8bpp color for a palette of all - 16 million colors. - 'websafe' Set of 216 colors composed of 00, 33, 66, 99, cc and ff - color channel values in #rrggbb. - 'nibble' 4 bits per color, can be easily converted to #rgb format. - The palette is limited to 4096 colors. - 'binary' Allow only #00 or #ff as color channel values for primary - colors only; only 8 colors are available with this limit. - - mode: 'h' - Determines the functionality of the map and bar components. Allowed values - are; 'h', 's', 'l', 'r', 'g', 'b' or 'a', for hue, saturation, luminosity, - red, green, blue and alpha respectively. - - parts: '' - Determine which parts to display. - Use any of the preset names ('full', 'popup' or 'inline') or specify - an array of part names (i.e. ['header', 'map', 'bar', 'hex', 'inputs', - 'preview', 'swatches', 'footer']). If an empty string is given, the parts - will be automatically chosen as preset 'popup' or 'inline' depending on - the context in which the colorpicker is used. - - rgb: true, // Show RGB controls and modes - Whether or not to show the inputs for RGB. - - showAnim: 'fadeIn' - Same as jQueryUI DatePicker. - - showOn: 'focus' - Same as jQueryUI DatePicker. - - showOptions: {} - Same as jQueryUI DatePicker. - - swatches: null - 'null' to show swatches of HTML colors or provide your own object - with colornames and [r,g,b] array. - For example { 'red': [ 255, 0, 0 ], 'blue': [0, 0, 255] } - - title: 'Pick a color' - Title to display in the header. - -Events: - onClose: null - Triggered when the popup is closed. - - onSelect: null - Triggered on each change, confirmation (click on OK button) and - cancellation (click on Cancel, outside window or window close button) - respectively. - Note that onSelect may be triggered in rapid succession when dragging the - mouse accross the map or bar and may be triggered without a change in color - upon specific user interactions. - -Methods: - open - Open the dialog - - close - Close the dialog - - destroy - Destroy the widget \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/TODO b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/TODO deleted file mode 100644 index acc10df3e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/TODO +++ /dev/null @@ -1,14 +0,0 @@ -Make simple blog page + demo - -Post to... - http://wiki.jqueryui.com/w/page/12137750/ColorPicker - - screenshot - - link(s) - - check specs/requirements and add/fix them - -Colorwheel -Triangle/wheel -Related-colors swatching -Configurable swatch layout - container-width/height, swatch-width/height - Autoscaling (table?) \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-alpha.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-alpha.png deleted file mode 100644 index 2950daeb8..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-alpha.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-opacity.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-opacity.png deleted file mode 100644 index e42ad0812..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-opacity.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-pointer.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-pointer.png deleted file mode 100644 index 6e980cfa7..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar-pointer.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar.png deleted file mode 100644 index 80eb2bbe7..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/bar.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map-opacity.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map-opacity.png deleted file mode 100644 index 6756cee6d..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map-opacity.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map-pointer.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map-pointer.png deleted file mode 100644 index 64992968b..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map-pointer.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map.png deleted file mode 100644 index 853d38c68..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/map.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/preview-opacity.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/preview-opacity.png deleted file mode 100644 index 0dd9a2f8b..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/preview-opacity.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/ui-colorpicker.png b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/ui-colorpicker.png deleted file mode 100644 index e244c689e..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/images/ui-colorpicker.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/index.html b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/index.html deleted file mode 100644 index a3f14211b..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/index.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - jqcp - - - - - - - - - - - - -
    - - Color: -
    -
    Text
    -
    - -
    - - Inline:
    - -
    - - Activated by buttons: -
    -
    -
    - - diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/jquery.colorpicker.css b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/jquery.colorpicker.css deleted file mode 100644 index 4e61a526c..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/jquery.colorpicker.css +++ /dev/null @@ -1,129 +0,0 @@ -.ui-colorpicker { - display: inline-block; - width: auto; -} - -.ui-colorpicker-inline { - position: static; -} - -.ui-colorpicker .ui-colorpicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-colorpicker .ui-colorpicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-colorpicker .ui-colorpicker-buttonpane button.ui-colorpicker-current { float:left; } - -.ui-colorpicker table { - font-size: 100%; /* Reset browser table font-size */ - margin: 0; -} - -.ui-colorpicker table td { - vertical-align: top; -} - -.ui-colorpicker-padding-left { - padding-left: 10px; -} -.ui-colorpicker-padding-top { - padding-top: 10px; -} - -.ui-colorpicker-border { - border: 1px inset; - display: inline-block; -} - -/* Bar & map */ -#ui-colorpicker-map > *, -#ui-colorpicker-bar > * { - position: absolute; - cursor: crosshair; -} - -#ui-colorpicker-map-pointer, -#ui-colorpicker-bar-pointer { - position: absolute; -} -/* Map */ -#ui-colorpicker-map, -#ui-colorpicker-map > * { - display: block; - width: 256px; - height: 256px; - overflow: hidden; -} - -#ui-colorpicker-map-layer-1, -#ui-colorpicker-map-layer-2 { background: url(images/map.png) no-repeat; } -#ui-colorpicker-map-layer-alpha { background: url(images/map-opacity.png); } -#ui-colorpicker-map-pointer { display: inline-block; width: 15px; height: 15px; background: url(images/map-pointer.png) no-repeat; } - - -/* Bar */ -#ui-colorpicker-bar, -#ui-colorpicker-bar > * { - display: block; - width: 20px; - height: 256px; - overflow: hidden; - background-repeat: repeat-x; -} - -#ui-colorpicker-bar-layer-1, -#ui-colorpicker-bar-layer-2, -#ui-colorpicker-bar-layer-3, -#ui-colorpicker-bar-layer-4 { background: url(images/bar.png) repeat-x; } -#ui-colorpicker-bar-layer-alpha { background: url(images/bar-opacity.png); } -#ui-colorpicker-bar-layer-alphabar { background: url(images/bar-alpha.png); } -#ui-colorpicker-bar-pointer { display: inline-block; width: 20px; height: 7px; background: url(images/bar-pointer.png) no-repeat; } - -/* Preview */ -#ui-colorpicker-preview { - text-align: center; -} - -#ui-colorpicker-preview-initial { - cursor: pointer; -} - -#ui-colorpicker-preview-initial, -#ui-colorpicker-preview-current { - width: 50px; - height: 20px; - display: inline-block; -} - -#ui-colorpicker-preview-initial-alpha, -#ui-colorpicker-preview-current-alpha { - width: 50px; - height: 20px; - display: inline-block; - background: url(images/preview-opacity.png) repeat; -} - -/* Inputs */ -#ui-colorpicker-inputs label { - width: 1.5em; - display: inline-block; -} - -/* Hex */ -#ui-colorpicker-hex { - text-align: center; -} - -/* Swatches */ -#ui-colorpicker-swatches { - width: 84px; - height: 256px; - overflow: auto; - background-color: #f8f8f8; -} - -.ui-colorpicker-swatch { - cursor: pointer; - float: left; - width: 11px; - height: 11px; - border-right: 1px solid black; - border-bottom: 1px solid black; -} diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/jquery.colorpicker.js b/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/jquery.colorpicker.js deleted file mode 100644 index 6ad9a564a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/colorpicker/jquery.colorpicker.js +++ /dev/null @@ -1,1654 +0,0 @@ -/*jslint devel: true, bitwise: true, regexp: true, browser: true, confusion: true, unparam: true, eqeq: true, white: true, nomen: true, plusplus: true, maxerr: 50, indent: 4 */ -/*globals jQuery */ - -/* - * ColorPicker v0.6 - * - * Copyright (c) 2011 Martijn W. van der Lee - * Licensed under the MIT. - * - * Full-featured colorpicker for jQueryUI with full theming support. - * Most images from jPicker by Christopher T. Tillman. - * Sourcecode created from scratch by Martijn W. van der Lee. - * - * @todo Custom buttons ->none" -> special "none" state? - * @todo Undo/redo memory? - * @todo Small size variant (128x128) - * @todo Distance between rgb/hsv/a options - * @todo Force hex correction (limit and padding) upon done - * @todo if limit, correct initial color upon open - * @todo Shared swatches; cookies/session/global - * @todo Language files: Done/Color/Pick a color/H/S/V/R/G/B/A/color swatches - * @todo isRTL? What to RTL, besides button? - * @todo Implement 'disabled' option - * @todo Include header/footer in layout? - * @todo Split inputs into rgb/hsv/a parts - * @todo Modal popup mode - */ - -(function ($) { - "use strict"; - - var _container_popup = '', - - _container_inline = '
    ', - - _parts_lists = { - 'full': ['header', 'map', 'bar', 'hex', 'inputs', 'preview', 'swatches', 'footer'], - 'popup': ['map', 'bar', 'hex', 'inputs', 'preview', 'footer'], - 'inline': ['map', 'bar', 'hex', 'inputs', 'preview'] - }, - - _colors = { - 'Black': [0x00, 0x00, 0x00], - 'DimGray': [0x69, 0x69, 0x69], - 'Gray': [0x80, 0x80, 0x80], - 'DarkGray': [0xA9, 0xA9, 0xA9], - 'Silver': [0xC0, 0xC0, 0xC0], - 'LightGrey': [0xD3, 0xD3, 0xD3], - 'Gainsboro': [0xDC, 0xDC, 0xDC], - 'WhiteSmoke': [0xF5, 0xF5, 0xF5], - 'White': [0xFF, 0xFF, 0xFF], - 'RosyBrown': [0xBC, 0x8F, 0x8F], - 'IndianRed': [0xCD, 0x5C, 0x5C], - 'Brown': [0xA5, 0x2A, 0x2A], - 'FireBrick': [0xB2, 0x22, 0x22], - 'LightCoral': [0xF0, 0x80, 0x80], - 'Maroon': [0x80, 0x00, 0x00], - 'DarkRed': [0x8B, 0x00, 0x00], - 'Red': [0xFF, 0x00, 0x00], - 'Snow': [0xFF, 0xFA, 0xFA], - 'Salmon': [0xFA, 0x80, 0x72], - 'MistyRose': [0xFF, 0xE4, 0xE1], - 'Tomato': [0xFF, 0x63, 0x47], - 'DarkSalmon': [0xE9, 0x96, 0x7A], - 'OrangeRed': [0xFF, 0x45, 0x00], - 'Coral': [0xFF, 0x7F, 0x50], - 'LightSalmon': [0xFF, 0xA0, 0x7A], - 'Sienna': [0xA0, 0x52, 0x2D], - 'Seashell': [0xFF, 0xF5, 0xEE], - 'Chocolate': [0xD2, 0x69, 0x1E], - 'SaddleBrown': [0x8B, 0x45, 0x13], - 'SandyBrown': [0xF4, 0xA4, 0x60], - 'PeachPuff': [0xFF, 0xDA, 0xB9], - 'Peru': [0xCD, 0x85, 0x3F], - 'Linen': [0xFA, 0xF0, 0xE6], - 'DarkOrange': [0xFF, 0x8C, 0x00], - 'Bisque': [0xFF, 0xE4, 0xC4], - 'BurlyWood': [0xDE, 0xB8, 0x87], - 'Tan': [0xD2, 0xB4, 0x8C], - 'AntiqueWhite': [0xFA, 0xEB, 0xD7], - 'NavajoWhite': [0xFF, 0xDE, 0xAD], - 'BlanchedAlmond': [0xFF, 0xEB, 0xCD], - 'PapayaWhip': [0xFF, 0xEF, 0xD5], - 'Orange': [0xFF, 0xA5, 0x00], - 'Moccasin': [0xFF, 0xE4, 0xB5], - 'Wheat': [0xF5, 0xDE, 0xB3], - 'OldLace': [0xFD, 0xF5, 0xE6], - 'FloralWhite': [0xFF, 0xFA, 0xF0], - 'Goldenrod': [0xDA, 0xA5, 0x20], - 'DarkGoldenrod': [0xB8, 0x86, 0x0B], - 'Cornsilk': [0xFF, 0xF8, 0xDC], - 'Gold': [0xFF, 0xD7, 0x00], - 'PaleGoldenrod': [0xEE, 0xE8, 0xAA], - 'Khaki': [0xF0, 0xE6, 0x8C], - 'LemonChiffon': [0xFF, 0xFA, 0xCD], - 'DarkKhaki': [0xBD, 0xB7, 0x6B], - 'Beige': [0xF5, 0xF5, 0xDC], - 'LightGoldenrodYellow': [0xFA, 0xFA, 0xD2], - 'Olive': [0x80, 0x80, 0x00], - 'Yellow': [0xFF, 0xFF, 0x00], - 'LightYellow': [0xFF, 0xFF, 0xE0], - 'Ivory': [0xFF, 0xFF, 0xF0], - 'OliveDrab': [0x6B, 0x8E, 0x23], - 'YellowGreen': [0x9A, 0xCD, 0x32], - 'DarkOliveGreen': [0x55, 0x6B, 0x2F], - 'GreenYellow': [0xAD, 0xFF, 0x2F], - 'LawnGreen': [0x7C, 0xFC, 0x00], - 'Chartreuse': [0x7F, 0xFF, 0x00], - 'DarkSeaGreen': [0x8F, 0xBC, 0x8F], - 'ForestGreen': [0x22, 0x8B, 0x22], - 'LimeGreen': [0x32, 0xCD, 0x32], - 'LightGreen': [0x90, 0xEE, 0x90], - 'PaleGreen': [0x98, 0xFB, 0x98], - 'DarkGreen': [0x00, 0x64, 0x00], - 'Green': [0x00, 0x80, 0x00], - 'Lime': [0x00, 0xFF, 0x00], - 'Honeydew': [0xF0, 0xFF, 0xF0], - 'MediumSeaGreen': [0x3C, 0xB3, 0x71], - 'SeaGreen': [0x2E, 0x8B, 0x57], - 'SpringGreen': [0x00, 0xFF, 0x7F], - 'MintCream': [0xF5, 0xFF, 0xFA], - 'MediumSpringGreen': [0x00, 0xFA, 0x9A], - 'MediumAquamarine': [0x66, 0xCD, 0xAA], - 'Aquamarine': [0x7F, 0xFF, 0xD4], - 'Turquoise': [0x40, 0xE0, 0xD0], - 'LightSeaGreen': [0x20, 0xB2, 0xAA], - 'MediumTurquoise': [0x48, 0xD1, 0xCC], - 'DarkSlateGray': [0x2F, 0x4F, 0x4F], - 'PaleTurquoise': [0xAF, 0xEE, 0xEE], - 'Teal': [0x00, 0x80, 0x80], - 'DarkCyan': [0x00, 0x8B, 0x8B], - 'DarkTurquoise': [0x00, 0xCE, 0xD1], - 'Aqua': [0x00, 0xFF, 0xFF], - 'Cyan': [0x00, 0xFF, 0xFF], - 'LightCyan': [0xE0, 0xFF, 0xFF], - 'Azure': [0xF0, 0xFF, 0xFF], - 'CadetBlue': [0x5F, 0x9E, 0xA0], - 'PowderBlue': [0xB0, 0xE0, 0xE6], - 'LightBlue': [0xAD, 0xD8, 0xE6], - 'DeepSkyBlue': [0x00, 0xBF, 0xFF], - 'SkyBlue': [0x87, 0xCE, 0xEB], - 'LightSkyBlue': [0x87, 0xCE, 0xFA], - 'SteelBlue': [0x46, 0x82, 0xB4], - 'AliceBlue': [0xF0, 0xF8, 0xFF], - 'DodgerBlue': [0x1E, 0x90, 0xFF], - 'SlateGray': [0x70, 0x80, 0x90], - 'LightSlateGray': [0x77, 0x88, 0x99], - 'LightSteelBlue': [0xB0, 0xC4, 0xDE], - 'CornflowerBlue': [0x64, 0x95, 0xED], - 'RoyalBlue': [0x41, 0x69, 0xE1], - 'MidnightBlue': [0x19, 0x19, 0x70], - 'Lavender': [0xE6, 0xE6, 0xFA], - 'Navy': [0x00, 0x00, 0x80], - 'DarkBlue': [0x00, 0x00, 0x8B], - 'MediumBlue': [0x00, 0x00, 0xCD], - 'Blue': [0x00, 0x00, 0xFF], - 'GhostWhite': [0xF8, 0xF8, 0xFF], - 'DarkSlateBlue': [0x48, 0x3D, 0x8B], - 'SlateBlue': [0x6A, 0x5A, 0xCD], - 'MediumSlateBlue': [0x7B, 0x68, 0xEE], - 'MediumPurple': [0x93, 0x70, 0xDB], - 'BlueViolet': [0x8A, 0x2B, 0xE2], - 'Indigo': [0x4B, 0x00, 0x82], - 'DarkOrchid': [0x99, 0x32, 0xCC], - 'DarkViolet': [0x94, 0x00, 0xD3], - 'MediumOrchid': [0xBA, 0x55, 0xD3], - 'Thistle': [0xD8, 0xBF, 0xD8], - 'Plum': [0xDD, 0xA0, 0xDD], - 'Violet': [0xEE, 0x82, 0xEE], - 'Purple': [0x80, 0x00, 0x80], - 'DarkMagenta': [0x8B, 0x00, 0x8B], - 'Magenta': [0xFF, 0x00, 0xFF], - 'Fuchsia': [0xFF, 0x00, 0xFF], - 'Orchid': [0xDA, 0x70, 0xD6], - 'MediumVioletRed': [0xC7, 0x15, 0x85], - 'DeepPink': [0xFF, 0x14, 0x93], - 'HotPink': [0xFF, 0x69, 0xB4], - 'PaleVioletRed': [0xDB, 0x70, 0x93], - 'LavenderBlush': [0xFF, 0xF0, 0xF5], - 'Crimson': [0xDC, 0x14, 0x3C], - 'Pink': [0xFF, 0xC0, 0xCB], - 'LightPink': [0xFF, 0xB6, 0xC1] - }; - - $.widget("vanderlee.colorpicker", { - options: { - alpha: false, // Show alpha controls and mode - altAlpha: true, // change opacity of altField as well? - altField: '', // selector for DOM elements which change background color on change. - altOnChange: true, // true to update on each change, false to update only on close. - altProperties: 'background-color', // comma separated list of any of 'background-color', 'color', 'border-color', 'outline-color' - autoOpen: false, // Open dialog automatically upon creation - buttonColorize: false, - buttonImage: 'images/ui-colorpicker.png', - buttonImageOnly: false, - buttonText: 'Color', // Text on the button and/or title of button image. - closeOnOutside: true, // Close the dialog when clicking outside the dialog (not for inline) - color: '#00FF00', // Initial color (for inline only) - duration: 'fast', - hsv: true, // Show HSV controls and modes - layout: { - map: [0, 0, 1, 3], // Left, Top, Width, Height (in table cells). - bar: [1, 0, 1, 3], - preview: [2, 0, 1, 1], - inputs: [2, 1, 1, 1], - hex: [2, 2, 1, 1], - swatches: [3, 0, 1, 3] - }, - limit: '', // Limit color "resolution": '', 'websafe', 'nibble', 'binary' - mode: 'h', // Initial editing mode, h, s, v, r, g, b or a - parts: '', - rgb: true, // Show RGB controls and modes - showAnim: 'fadeIn', - showOn: 'focus', // 'focus', 'button', 'both' - showOptions: {}, - swatches: null, - title: 'Pick a color', - - onClose: null, - onSelect: null - }, - - _create: function () { - var self = this; - - self.opened = false; - self.generated = false; - self.inline = false; - self.changed = false; - - self.dialog = null; - self.button = null; - self.image = null; - - self.mode = self.options.mode; - - if (self.options.swatches === null) { - self.options.swatches = _colors; - } - - if (this.element[0].nodeName.toLowerCase() === 'input') { - if (self.element.val()) { - self.options.color = self.element.val(); - } - self._loadColor(); - - $('body').append(_container_popup); - self.dialog = $('.ui-colorpicker:last'); - - // Click outside/inside - $(document).mousedown(function (event) { - if (!self.opened || event.target === self.element[0]) { - return; - } - - // Check if clicked on any part of dialog - if ($(event.target).parents('.ui-colorpicker').length > 0) { - self.element.blur(); // inside window! - return; - } - - // Check if clicked on button - var p, - parents = $(event.target).parents(); - for (p in parents) { - if (self.button !== null && parents[p] === self.button[0]) { - return; - } - } - - // no closeOnOutside - if (!self.options.closeOnOutside) { - return; - } - - self.close(); - }); - - if (self.options.showOn === 'focus' || self.options.showOn === 'both') { - self.element.focus(function () { - self.open(); - }); - } - if (self.options.showOn === 'button' || self.options.showOn === 'both') { - if (self.options.buttonImage !== '') { - self.image = $('').attr({ - 'src': self.options.buttonImage, - 'alt': self.options.buttonText, - 'title': self.options.buttonText - }); - - if (self.options.buttonColorize) { - self.image.css('background-color', self.color.toCSS()); - } - } - - if (self.options.buttonImageOnly && self.image) { - self.button = self.image; - } else { - self.button = $('').html(self.image || self.options.buttonText).button(); - self.image = self.image ? $('img', self.button).first() : null; - } - self.button.insertAfter(self.element).click(function () { - self[self.opened ? 'close' : 'open'](); - }); - } - - if (self.options.autoOpen) { - self.open(); - } - - self.element.keydown(function (event) { - if (event.keyCode === 9) { - self.close(); - } - }); - - self.element.keyup(function (event) { - var rgb = self._parseHex(self.element.val()); - if (rgb) { - self.color = (rgb === false ? new self.Color() : new self.Color(rgb[0], rgb[1], rgb[2])); - self._change(); - } - }); - } else { - self.inline = true; - - $(this.element).html(_container_inline); - self.dialog = $('.ui-colorpicker', this.element); - - self._generate(); - - self.opened = true; - } - - return this; - }, - - destroy: function() { - this.element.unbind(); - - if (this.image !== null) { - this.image.remove(); - } - - if (this.button !== null) { - this.button.remove(); - } - - if (this.dialog !== null) { - this.dialog.remove(); - } - }, - - _setOption: function(key, value){ - var self = this; - - switch (key) { - case "disabled": - if (value) { - self.dialog.addClass('ui-colorpicker-disabled'); - } else { - self.dialog.removeClass('ui-colorpicker-disabled'); - } - break; - } - - $.Widget.prototype._setOption.apply(self, arguments); - }, - - _setAltField: function () { - if (this.options.altField && this.options.altProperties) { - var index, - property, - properties = this.options.altProperties.split(','); - - for (index in properties) { - property = $.trim(properties[index]); - switch (property) { - case 'color': - case 'background-color': - case 'outline-color': - case 'border-color': - $(this.options.altField).css(property, this.color.toCSS()); - break; - } - } - - if (this.options.altAlpha) { - $(this.options.altField).css('opacity', this.color.a); - } - } - }, - - _loadColor: function () { - var rgb = this._parseColor(this.options.color); //@todo - this.color = (rgb === false ? new this.Color() : new this.Color(rgb[0], rgb[1], rgb[2])); - this.currentColor = $.extend({}, this.color); - - this._setAltField(); - }, - - _generate: function () { - var self = this, - index, - part, - parts_list; - - // Determine the parts to include in this colorpicker - if (typeof self.options.parts === 'string') { - if (self.options.parts in _parts_lists) { - parts_list = _parts_lists[self.options.parts]; - } else { - // automatic - parts_list = _parts_lists[self.inline ? 'inline' : 'popup']; - } - } else { - parts_list = self.options.parts; - } - - // Add any parts to the internal parts list - self.parts = {}; - for (index in parts_list) { - part = parts_list[index]; - if (part in self._parts) { - self.parts[part] = new self._parts[part](self); - } - } - - - if (typeof this.color !== "object" || this.color.constructor !== this.Color) { - self._loadColor(); - } - - if (!self.generated) { - var layout_parts = []; - - for (index in self.options.layout) { - if (index in self.parts) { - layout_parts.push({ - part: index, - pos: self.options.layout[index] - }); - } - } - - $(self._layoutTable(layout_parts, function(cell, x, y) { - var classes = []; - - if (x > 0) { - classes.push('ui-colorpicker-padding-left'); - } - - if (y > 0) { - classes.push('ui-colorpicker-padding-top'); - } - - return ' 1 ? ' colspan="' + cell.pos[2] + '"' : '') - + (cell.pos[3] > 1 ? ' rowspan="' + cell.pos[3] + '"' : '') - + (classes.length > 0 ? ' class="' + classes.join(' ') + '"' : '') - + ' valign="top">'; - })).appendTo(self.dialog).addClass('ui-dialog-content ui-widget-content'); - - self._initAllParts(); - self._generateAllParts(); - self.generated = true; - } - }, - - _layoutTable: function(layout, callback) { - var layout = layout.sort(function(a, b) { - if (a.pos[1] == b.pos[1]) { - return a.pos[0] - b.pos[0]; - } - return a.pos[1] - b.pos[1]; - }), - bitmap, - x, - y, - width, height, - columns, rows, - index, - cell, - html; - - // Determine dimensions of the table - width = 0; - height = 0; - for (index in layout) { - width = Math.max(width, layout[index].pos[0] + layout[index].pos[2]); - height = Math.max(height, layout[index].pos[1] + layout[index].pos[3]); - } - - // Initialize bitmap - bitmap = []; - for (x = 0; x < width; ++x) { - bitmap.push(new Array(height)); - } - - // Mark rows and columns which have layout assigned - rows = new Array(height); - columns = new Array(width); - for (index in layout) { - // mark columns - for (x = 0; x < layout[index].pos[2]; x += 1) { - columns[layout[index].pos[0] + x] = true; - } - for (y = 0; y < layout[index].pos[3]; y += 1) { - rows[layout[index].pos[1] + y] = true; - } - } - - // Generate the table - html = ''; - cell = layout[index = 0]; - for (y = 0; y < height; ++y) { - html += ''; - for (x = 0; x < width;) { - if (cell !== undefined && x == cell.pos[0] && y == cell.pos[1]) { - // Create a "real" cell - var w, - h; - - html += callback(cell, x, y); - - for (h = 0; h < cell.pos[3]; h +=1) { - for (w = 0; w < cell.pos[2]; w +=1) { - bitmap[x + w][y + h] = true; - } - } - - x += cell.pos[2]; - cell = layout[++index]; - } else { - // Fill in the gaps - var colspan = 0; - var walked = false; - - while (x < width && bitmap[x][y] === undefined && (cell === undefined || y < cell.pos[1] || (y == cell.pos[1] && x < cell.pos[0]))) { - if (columns[x] === true) { - colspan += 1; - } - walked = true; - x += 1; - } - - if (colspan > 0) { - html += ''; - } else if (!walked) { - x += 1; - } - } - } - html += ''; - } - - return '' + html + '
    '; - }, - - _effectGeneric: function (show, slide, fade, callback) { - var self = this; - - if ($.effects && $.effects[self.options.showAnim]) { - self.dialog[show](self.options.showAnim, self.options.showOptions, self.options.duration, callback); - } else { - self.dialog[(self.options.showAnim === 'slideDown' ? - slide - : (self.options.showAnim === 'fadeIn' ? - fade - : show))]((self.options.showAnim ? self.options.duration : null), callback); - if (!self.options.showAnim || !self.options.duration) { - callback(); - } - } - }, - - _effectShow: function (callback) { - this._effectGeneric('show', 'slideDown', 'fadeIn', callback); - }, - - _effectHide: function (callback) { - this._effectGeneric('hide', 'slideUp', 'fadeOut', callback); - }, - - open: function () { - if (!this.opened) { - this._generate(); - - var offset = this.element.offset(), - x = offset.left, - y = offset.top + this.element.outerHeight(); - x -= Math.max(0, (x + this.dialog.width()) - $(window).width() + 20); - y -= Math.max(0, (y + this.dialog.height()) - $(window).height() + 20); - this.dialog.css({'left': x, 'top': y}); - - this._effectShow(); - this.opened = true; - } - }, - - close: function () { - var self = this; - - this._setAltField(); - - self.currentColor = $.extend({}, self.color); - self.changed = false; - - // tear down the interface - self._effectHide(function () { - self.dialog.empty(); - self.generated = false; - - self.opened = false; - self._callback(self.options.onClose); - }); - }, - - _callback: function (f) { - var self = this; - - if (f instanceof Function) { - f(self.color.toCSS(), { - r: self.color.r, - g: self.color.g, - b: self.color.b, - a: self.color.a - }, self); - } - }, - - _generateAllParts: function () { - $.each(this.parts, function (index, part) { - part.generate(); - }); - }, - - _initAllParts: function () { - $.each(this.parts, function (index, part) { - part.init(); - }); - }, - - _change: function () { - this.changed = true; - - switch (this.options.limit) { - case 'websafe': - this.color.limit(6); - break; - - case 'nibble': - this.color.limit(16); - break; - - case 'binary': - this.color.limit(2); - break; - } - - // update colors - if (!this.inline) { - if (!this.color.equals(this._parseHex(this.element.val()))) { - this.element.val(this.color.toHex()); - } - - if (this.image && this.options.buttonColorize) { - this.image.css('background-color', this.color.toCSS()); - } - - if (this.options.altOnChange) { - this._setAltField(); - } - } - - // callback - this._callback(this.options.onSelect); - - $.each(this.parts, function (index, part) { - part.repaint(); - }); - }, - - _intToHex: function (dec) { - var result = dec.toString(16); - if (result.length === 1) { - result = ('0' + result); - } - return result.toLowerCase(); - }, - - // This will be deprecated by jQueryUI 1.9 widget - _hoverable: function (e) { - e.hover(function () { - e.addClass("ui-state-hover"); - }, function () { - e.removeClass("ui-state-hover"); - }); - }, - - // This will be deprecated by jQueryUI 1.9 widget - _focusable: function (e) { - e.focus(function () { - e.addClass("ui-state-focus"); - }).blur(function () { - e.removeClass("ui-state-focus"); - }); - }, - - _parts: { - header: function (inst) { - var self = this, - e = null, - _html; - - _html = function () { - return '
    ' - + '' + inst.options.title + '' - + '' - + '
    '; - }; - - this.init = function () { - e = $(_html()).prependTo(inst.dialog); - var close = $('.ui-dialog-titlebar-close', e); - inst._hoverable(close); - inst._focusable(close); - - close.click( function() { - inst.close() - }); - }; - - this.repaint = function () { - }; - - this.generate = function () { - this.repaint(); - }; - }, - - map: function (inst) { - var self = this, - e = null, - _mousedown, _mouseup, _mousemove, _html; - - _mousedown = function (event) { - if (!inst.opened) { - return; - } - - var div = $('#ui-colorpicker-map-layer-pointer', e), - offset = div.offset(), - width = div.width(), - height = div.height(), - x = event.pageX - offset.left, - y = event.pageY - offset.top; - - if (x >= 0 && x < width && y >= 0 && y < height) { - event.stopImmediatePropagation(); - event.preventDefault(); - $(document).unbind('mousedown', _mousedown); - $(document).bind('mouseup', _mouseup); - $(document).bind('mousemove', _mousemove); - _mousemove(event); - } - }; - - _mouseup = function (event) { - event.stopImmediatePropagation(); - event.preventDefault(); - $(document).unbind('mouseup', _mouseup); - $(document).unbind('mousemove', _mousemove); - $(document).bind('mousedown', _mousedown); - }; - - _mousemove = function (event) { - event.stopImmediatePropagation(); - event.preventDefault(); - - if (event.pageX === self.x && event.pageY === self.y) { - return; - } - self.x = event.pageX; - self.y = event.pageY; - - var div = $('#ui-colorpicker-map-layer-pointer', e), - offset = div.offset(), - width = div.width(), - height = div.height(), - x = event.pageX - offset.left, - y = event.pageY - offset.top; - - x = Math.max(0, Math.min(x / width, 1)); - y = Math.max(0, Math.min(y / height, 1)); - - // interpret values - switch (inst.mode) { - case 'h': - inst.color.s = x; - inst.color.v = 1 - y; - inst.color.updateRGB(); - break; - - case 's': - case 'a': - inst.color.h = x; - inst.color.v = 1 - y; - inst.color.updateRGB(); - break; - - case 'v': - inst.color.h = x; - inst.color.s = 1 - y; - inst.color.updateRGB(); - break; - - case 'r': - inst.color.b = x; - inst.color.g = 1 - y; - inst.color.updateHSV(); - break; - - case 'g': - inst.color.b = x; - inst.color.r = 1 - y; - inst.color.updateHSV(); - break; - - case 'b': - inst.color.r = x; - inst.color.g = 1 - y; - inst.color.updateHSV(); - break; - } - - inst._change(); - }; - - _html = function () { - var html = '
    ' - + ' ' - + ' ' - + (inst.options.alpha ? ' ' : '') - + '
    '; - return html; - }; - - this.generate = function () { - switch (inst.mode) { - case 'h': - $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show(); - $('#ui-colorcasepicker-map-layer-2', e).hide(); - break; - - case 's': - case 'a': - $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show(); - $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); - break; - - case 'v': - $(e).css('background-color', 'black'); - $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -780px', 'opacity': ''}).show(); - $('#ui-colorpicker-map-layer-2', e).hide(); - break; - - case 'r': - $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1040px', 'opacity': ''}).show(); - $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show(); - break; - - case 'g': - $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show(); - $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -1820px', 'opacity': ''}).show(); - break; - - case 'b': - $('#ui-colorpicker-map-layer-1', e).css({'background-position': '0 -2080px', 'opacity': ''}).show(); - $('#ui-colorpicker-map-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show(); - break; - } - self.repaint(); - }; - - this.repaint = function () { - var div = $('#ui-colorpicker-map-layer-pointer', e), - x = 0, - y = 0; - - switch (inst.mode) { - case 'h': - x = inst.color.s * div.width(); - y = (1 - inst.color.v) * div.width(); - $(e).css('background-color', inst.color.normClone().toCSS()); - break; - - case 's': - case 'a': - x = inst.color.h * div.width(); - y = (1 - inst.color.v) * div.width(); - $('#ui-colorpicker-map-layer-2', e).css('opacity', 1 - inst.color.s); - break; - - case 'v': - x = inst.color.h * div.width(); - y = (1 - inst.color.s) * div.width(); - $('#ui-colorpicker-map-layer-1', e).css('opacity', inst.color.v); - break; - - case 'r': - x = inst.color.b * div.width(); - y = (1 - inst.color.g) * div.width(); - $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.r); - break; - - case 'g': - x = inst.color.b * div.width(); - y = (1 - inst.color.r) * div.width(); - $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.g); - break; - - case 'b': - x = inst.color.r * div.width(); - y = (1 - inst.color.g) * div.width(); - $('#ui-colorpicker-map-layer-2', e).css('opacity', inst.color.b); - break; - } - - if (inst.options.alpha) { - $('#ui-colorpicker-map-layer-alpha', e).css('opacity', 1 - inst.color.a); - } - - $('#ui-colorpicker-map-pointer', e).css({ - 'left': x - 7, - 'top': y - 7 - }); - }; - - this.init = function () { - e = $(_html()).appendTo($('#ui-colorpicker-map-container', inst.dialog)); - - e.bind('mousedown', _mousedown); - }; - }, - - bar: function (inst) { - var self = this, - e = null, - _mousedown, _mouseup, _mousemove, _html; - - _mousedown = function (event) { - if (!inst.opened) { - return; - } - - var div = $('#ui-colorpicker-bar-layer-pointer', e), - offset = div.offset(), - width = div.width(), - height = div.height(), - x = event.pageX - offset.left, - y = event.pageY - offset.top; - - if (x >= 0 && x < width && y >= 0 && y < height) { - event.stopImmediatePropagation(); - event.preventDefault(); - $(document).unbind('mousedown', _mousedown); - $(document).bind('mouseup', _mouseup); - $(document).bind('mousemove', _mousemove); - _mousemove(event); - } - }; - - _mouseup = function (event) { - event.stopImmediatePropagation(); - event.preventDefault(); - $(document).unbind('mouseup', _mouseup); - $(document).unbind('mousemove', _mousemove); - $(document).bind('mousedown', _mousedown); - }; - - _mousemove = function (event) { - event.stopImmediatePropagation(); - event.preventDefault(); - - if (event.pageY === self.y) { - return; - } - self.y = event.pageY; - - var div = $('#ui-colorpicker-bar-layer-pointer', e), - offset = div.offset(), - height = div.height(), - y = event.pageY - offset.top; - - y = Math.max(0, Math.min(y / height, 1)); - - // interpret values - switch (inst.mode) { - case 'h': - inst.color.h = 1 - y; - inst.color.updateRGB(); - break; - - case 's': - inst.color.s = 1 - y; - inst.color.updateRGB(); - break; - - case 'v': - inst.color.v = 1 - y; - inst.color.updateRGB(); - break; - - case 'r': - inst.color.r = 1 - y; - inst.color.updateHSV(); - break; - - case 'g': - inst.color.g = 1 - y; - inst.color.updateHSV(); - break; - - case 'b': - inst.color.b = 1 - y; - inst.color.updateHSV(); - break; - - case 'a': - inst.color.a = 1 - y; - break; - } - - inst._change(); - }; - - _html = function () { - var html = '
    ' - + ' ' - + ' ' - + ' ' - + ' '; - - if (inst.options.alpha) { - html += ' ' - + ' '; - } - - html += '
    '; - - return html; - }; - - this.generate = function () { - switch (inst.mode) { - case 'h': - case 's': - case 'v': - case 'r': - case 'g': - case 'b': - $('#ui-colorpicker-bar-layer-alpha', e).show(); - $('#ui-colorpicker-bar-layer-alphabar', e).hide(); - break; - - case 'a': - $('#ui-colorpicker-bar-layer-alpha', e).hide(); - $('#ui-colorpicker-bar-layer-alphabar', e).show(); - break; - } - - switch (inst.mode) { - case 'h': - $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 0', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-2', e).hide(); - $('#ui-colorpicker-bar-layer-3', e).hide(); - $('#ui-colorpicker-bar-layer-4', e).hide(); - break; - - case 's': - $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -260px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-3', e).hide(); - $('#ui-colorpicker-bar-layer-4', e).hide(); - break; - - case 'v': - $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -520px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-2', e).hide(); - $('#ui-colorpicker-bar-layer-3', e).hide(); - $('#ui-colorpicker-bar-layer-4', e).hide(); - break; - - case 'r': - $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -1560px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -1300px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -780px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -1040px', 'opacity': ''}).show(); - break; - - case 'g': - $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -2600px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -2340px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -1820px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -2080px', 'opacity': ''}).show(); - break; - - case 'b': - $('#ui-colorpicker-bar-layer-1', e).css({'background-position': '0 -3640px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-2', e).css({'background-position': '0 -3380px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-3', e).css({'background-position': '0 -2860px', 'opacity': ''}).show(); - $('#ui-colorpicker-bar-layer-4', e).css({'background-position': '0 -3120px', 'opacity': ''}).show(); - break; - - case 'a': - $('#ui-colorpicker-bar-layer-1', e).hide(); - $('#ui-colorpicker-bar-layer-2', e).hide(); - $('#ui-colorpicker-bar-layer-3', e).hide(); - $('#ui-colorpicker-bar-layer-4', e).hide(); - break; - } - self.repaint(); - }; - - this.repaint = function () { - var div = $('#ui-colorpicker-bar-layer-pointer', e), - y = 0; - - switch (inst.mode) { - case 'h': - y = (1 - inst.color.h) * div.height(); - break; - - case 's': - y = (1 - inst.color.s) * div.height(); - $('#ui-colorpicker-bar-layer-2', e).css('opacity', 1 - inst.color.v); - $(e).css('background-color', inst.color.normClone().toCSS()); - break; - - case 'v': - y = (1 - inst.color.v) * div.height(); - $(e).css('background-color', inst.color.normClone().toCSS()); - break; - - case 'r': - y = (1 - inst.color.r) * div.height(); - $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.g))); - $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.b))); - $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.b, inst.color.g)); - break; - - case 'g': - y = (1 - inst.color.g) * div.height(); - $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.b - inst.color.r))); - $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.r - inst.color.b))); - $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.b)); - break; - - case 'b': - y = (1 - inst.color.b) * div.height(); - $('#ui-colorpicker-bar-layer-2', e).css('opacity', Math.max(0, (inst.color.r - inst.color.g))); - $('#ui-colorpicker-bar-layer-3', e).css('opacity', Math.max(0, (inst.color.g - inst.color.r))); - $('#ui-colorpicker-bar-layer-4', e).css('opacity', Math.min(inst.color.r, inst.color.g)); - break; - - case 'a': - y = (1 - inst.color.a) * div.height(); - $(e).css('background-color', inst.color.normClone().toCSS()); - break; - } - - if (inst.mode !== 'a') { - $('#ui-colorpicker-bar-layer-alpha', e).css('opacity', 1 - inst.color.a); - } - - $('#ui-colorpicker-bar-pointer', e).css('top', y - 3); - }; - - this.init = function () { - e = $(_html()).appendTo($('#ui-colorpicker-bar-container', inst.dialog)); - - e.bind('mousedown', _mousedown); - }; - }, - - inputs: function (inst) { - var self = this, - e = null, - _html; - - _html = function () { - var html = '
    '; - - if (inst.options.hsv) { - html += '
    °
    ' - + '
    %
    ' - + '
    %
    '; - } - - if (inst.options.rgb) { - html += '
    ' - + '
    ' - + '
    '; - } - - if (inst.options.alpha) { - html += '
    %
    '; - } - - return html + '
    '; - }; - - this.init = function () { - e = $(_html()).appendTo($('#ui-colorpicker-inputs-container', inst.dialog)); - - $('.ui-colorpicker-mode', e).click(function () { - inst.mode = $(this).val(); - inst._generateAllParts(); - }); - - $('.ui-colorpicker-number', e).bind('change input keyup', function () { - inst.color.r = $('#ui-colorpicker-r .ui-colorpicker-number', e).val() / 255; - inst.color.g = $('#ui-colorpicker-g .ui-colorpicker-number', e).val() / 255; - inst.color.b = $('#ui-colorpicker-b .ui-colorpicker-number', e).val() / 255; - inst.color.a = $('#ui-colorpicker-a .ui-colorpicker-number', e).val() / 100; - inst.color.h = $('#ui-colorpicker-h .ui-colorpicker-number', e).val() / 360; - inst.color.s = $('#ui-colorpicker-s .ui-colorpicker-number', e).val() / 100; - inst.color.v = $('#ui-colorpicker-v .ui-colorpicker-number', e).val() / 100; - - if ($(this).hasClass('ui-colorpicker-number-hsv')) { - inst.color.updateRGB(); - } else if ($(this).hasClass('ui-colorpicker-number-rgb')) { - inst.color.updateHSV(); - } - - inst._change(); - }); - }; - - this.repaint = function () { - var c = $.extend(inst.color); - c.h *= 360; - c.s *= 100; - c.v *= 100; - c.r *= 255; - c.g *= 255; - c.b *= 255; - c.a *= 100; - - $.each(c, function (index, value) { - var v = Math.round(value); - if (!$('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).is(':focus') - && $('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val() !== v) { - $('#ui-colorpicker-' + index + ' .ui-colorpicker-number', e).val(v); - } - }); - }; - - this.generate = function () { - $('.ui-colorpicker-mode', e).each(function () { - $(this).attr('checked', $(this).val() === inst.mode); - }); - this.repaint(); - }; - }, - - preview: function (inst) { - var self = this, - e = null, - _html; - - _html = function () { - return '
    ' - + '' - + '
    ' - + '
    ' - + '
    ' - + '
    '; - }; - - this.init = function () { - e = $(_html()).appendTo($('#ui-colorpicker-preview-container', inst.dialog)); - - $('#ui-colorpicker-preview-initial', e).click(function () { - inst.color = $.extend({}, inst.currentColor); - inst._change(); - }); - - }; - - this.repaint = function () { - $('#ui-colorpicker-preview-initial', e).css('background-color', inst.currentColor.toCSS()).attr('title', inst.currentColor.toHex()); - $('#ui-colorpicker-preview-initial-alpha', e).css('opacity', 1 - inst.currentColor.a); - $('#ui-colorpicker-preview-current', e).css('background-color', inst.color.toCSS()).attr('title', inst.color.toHex()); - $('#ui-colorpicker-preview-current-alpha', e).css('opacity', 1 - inst.color.a); - }; - - this.generate = function () { - if (inst.options.alpha) { - $('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).show(); - } else { - $('#ui-colorpicker-preview-initial-alpha, #ui-colorpicker-preview-current-alpha', e).hide(); - } - - this.repaint(); - }; - }, - - hex: function (inst) { - var self = this, - e = null, - _html; - - _html = function () { - var html = ''; - - if (inst.options.alpha) { - html += ''; - } - - html += ''; - - return '
    ' + html + '
    '; - }; - - this.init = function () { - e = $(_html()).appendTo($('#ui-colorpicker-hex-container', inst.dialog)); - - $('#ui-colorpicker-hex-input', e).bind('change keyup', function () { - var rgb = inst._parseHex($(this).val()); - inst.color.r = rgb[0]; - inst.color.g = rgb[1]; - inst.color.b = rgb[2]; - inst.color.updateHSV(); - inst._change(); - }); - - $('#ui-colorpicker-hex-alpha', e).bind('change keyup', function () { - inst.color.a = parseInt($('#ui-colorpicker-hex-alpha', e).val(), 16); - inst._change(); - }); - }; - - this.repaint = function () { - if (!$('#ui-colorpicker-hex-input', e).is(':focus')) { - $('#ui-colorpicker-hex-input', e).val(inst.color.toHex(true)); - } - - if (!$('#ui-colorpicker-hex-alpha', e).is(':focus')) { - $('#ui-colorpicker-hex-alpha', e).val(inst._intToHex(inst.color.a * 255)); - } - }; - - this.generate = function () { - this.repaint(); - }; - }, - - swatches: function (inst) { - var self = this, - e = null, - _html; - - _html = function () { - var html = ''; - - $.each(inst.options.swatches, function (name, color) { - var hex = inst._intToHex(color[0]) + inst._intToHex(color[1]) + inst._intToHex(color[2]); - html += '
    '; - }); - - return '
    ' + html + '
    '; - }; - - this.init = function () { - e = $(_html()).appendTo($('#ui-colorpicker-swatches-container', inst.dialog)); - - $('.ui-colorpicker-swatch', e).click(function () { - var rgb = inst._parseColor($(this).css('background-color')); - inst.color = (rgb === false ? new inst.Color() : new inst.Color(rgb[0], rgb[1], rgb[2])); - inst._change(); - }); - }; - - this.repaint = function () { - // Not affected by changing color; - }; - - this.generate = function () { - // Not affected by changing color; - }; - }, - - footer: function (inst) { - var self = this, - e = null, - _html; - - _html = function () { - return '
    ' - + (inst.options.alpha ? '' : '') - + (inst.inline ? '' : '
    ' - + '' - + '
    ') - + '
    '; - }; - - this.init = function () { - e = $(_html()).appendTo(inst.dialog); - - $('.ui-colorpicker-close', e).button().click(function () { - inst.close(); - }); - - if (inst.options.alpha) { - $('.ui-colorpicker-transparent', e).button().click(function () { - inst.color.a = 0; - inst._change(); - }); - } - }; - - this.repaint = function () {}; - - this.generate = function () {}; - } - }, - - _parseHex: function (color) { - var name = $.trim(color).toLowerCase(), - c, - m; - - if (_colors[name]) { - c = _colors[name]; - return [c[0] / 255, c[1] / 255, c[2] / 255]; - } - - // {#}rrggbb - m = /^#?([a-fA-F0-9]{0,6})/.exec(color); - if (m) { - c = parseInt(m[1], 16); - return [((c >> 16) & 0xFF) / 255, - ((c >> 8) & 0xFF) / 255, - (c & 0xFF) / 255]; - } - }, - - _parseColor: function (color) { - var m; - - // rgba(r,g,b,a) - m = /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color); - if (m) { - return [ - m[1] / 255, - m[2] / 255, - m[3] / 255, - m[4] / 255 - ]; - } - - // rgba(r%,g%,b%,a%) - m = /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/.exec(color); - if (m) { - return [ - m[1] / 100, - m[2] / 100, - m[3] / 100, - m[4] / 100 - ]; - } - - // #rrggbb - m = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color); - if (m) { - return [ - parseInt(m[1], 16) / 255, - parseInt(m[2], 16) / 255, - parseInt(m[3], 16) / 255 - ]; - } - - // #rgb - m = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color); - if (m) { - return [ - parseInt(m[1] + m[1], 16) / 255, - parseInt(m[2] + m[2], 16) / 255, - parseInt(m[3] + m[3], 16) / 255 - ]; - } - - return this._parseHex(color); - }, - - Color: function () { - var a, args = arguments; - - this.updateRGB = function () { - this.h = Math.max(0, Math.min(this.h, 1)); - this.s = Math.max(0, Math.min(this.s, 1)); - this.v = Math.max(0, Math.min(this.v, 1)); - - if (this.s === 0) { - this.r = this.g = this.b = this.v; - } else { - var var_h = this.h === 1 ? 0 : this.h * 6, - var_i = Math.floor(var_h), - var_1 = this.v * (1 - this.s), - var_2 = this.v * (1 - this.s * (var_h - var_i)), - var_3 = this.v * (1 - this.s * (1 - (var_h - var_i))); - - if (var_i === 0) { - this.r = this.v; - this.g = var_3; - this.b = var_1; - } else if (var_i === 1) { - this.r = var_2; - this.g = this.v; - this.b = var_1; - } else if (var_i === 2) { - this.r = var_1; - this.g = this.v; - this.b = var_3; - } else if (var_i === 3) { - this.r = var_1; - this.g = var_2; - this.b = this.v; - } else if (var_i === 4) { - this.r = var_3; - this.g = var_1; - this.b = this.v; - } else { - this.r = this.v; - this.g = var_1; - this.b = var_2; - } - } - return this; - }; - - this.updateHSV = function () { - var minVal, maxVal, delta, del_R, del_G, del_B; - this.r = Math.max(0, Math.min(this.r, 1)); - this.g = Math.max(0, Math.min(this.g, 1)); - this.b = Math.max(0, Math.min(this.b, 1)); - - minVal = Math.min(this.r, this.g, this.b); - maxVal = Math.max(this.r, this.g, this.b); - delta = maxVal - minVal; - - this.v = maxVal; - - if (delta === 0) { - this.h = 0; - this.s = 0; - } else { - this.s = delta / maxVal; - del_R = (((maxVal - this.r) / 6) + (delta / 2)) / delta; - del_G = (((maxVal - this.g) / 6) + (delta / 2)) / delta; - del_B = (((maxVal - this.b) / 6) + (delta / 2)) / delta; - - if (this.r === maxVal) { - this.h = del_B - del_G; - } else if (this.g === maxVal) { - this.h = (1 / 3) + del_R - del_B; - } else if (this.b === maxVal) { - this.h = (2 / 3) + del_G - del_R; - } - - if (this.h < 0) { - this.h += 1; - } else if (this.h > 1) { - this.h -= 1; - } - } - return this; - }; - - this._hexify = function (number) { - // return Math.round(number).toString(16); - var digits = '0123456789abcdef', - lsd = number % 16, - msd = (number - lsd) / 16, - hexified = digits.charAt(msd) + digits.charAt(lsd); - return hexified; - }; - - this.toHex = function () { - return this._hexify(this.r * 255) + this._hexify(this.g * 255) + this._hexify(this.b * 255); - }; - - this.toCSS = function () { - return '#' + this.toHex(); - }; - - this.toHexAlpha = function () { - return this._hexify(this.a * 255); - }; - - this.normClone = function () { - return $.extend({}, this, {s: 1, v: 1}).updateRGB(); - }; - - this.equals = function (rgb) { - return rgb[0] === this.r - && rgb[1] === this.g - && rgb[2] === this.b; - }; - - this.limit = function (steps) { - steps -= 1; - this.r = Math.round(this.r * steps) / steps; - this.g = Math.round(this.g * steps) / steps; - this.b = Math.round(this.b * steps) / steps; - this.updateHSV(); - }; - - for (a = 0; a < args.length; a += 1) { - args[a] = Math.max(0, Math.min(args[a], 1)); - } - - if (args.length === 0) { - this.r = 0; - this.g = 0; - this.b = 0; - this.a = 1; - this.h = 0; - this.s = 0; - this.v = 0; - } else if (args.length === 3) { - // r,g,b - this.r = args[0] || 0; - this.g = args[1] || 0; - this.b = args[2] || 0; - this.a = 1; - this.updateHSV(); - } else if (args.length === 7) { - // r,g,b,a,h,s,v - this.r = args[0] || 0; - this.g = args[1] || 0; - this.b = args[2] || 0; - this.a = args[3] || 0; - this.h = args[4] || 0; - this.s = args[5] || 0; - this.v = args[6] || 0; - } - } - }); - -}(jQuery)); diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/cursor-highlighter.html b/assets/javascripts/jquery/jquery.jqplot/examples/cursor-highlighter.html deleted file mode 100644 index 0606bc7b3..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/cursor-highlighter.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - Data Point Highlighting, Tooltips and Cursor Tracking - - - - - - - - - - - - - -
    - - - - - - -

    The Highlighter plugin will highlight data points near the mouse and display an optional tooltip with the data point value. By default, the tooltip values will be formatted with the same formatter as used to display the axes tick values. The text format can be customized with an optional sprintf style format string.

    - -
    - -
    
    -
    -

    The Cursor plugin changes the mouse cursor when it enters the graph area and displays an optional tooltip with the mouse position. The tooltip can be in a fixed location, or it can follow the mouse. The pointer style, set to "crosshair" by default, can also be customized. Tooltip values are formatted similar to the Highlighter plugin. By default they use the axes formatters, but can be customized with a sprintf format string.

    - -
    - -
    
    -
    -
    -  
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -    
    -    
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/customHighlighterCursorTrendline.html b/assets/javascripts/jquery/jquery.jqplot/examples/customHighlighterCursorTrendline.html deleted file mode 100644 index e85fa64f5..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/customHighlighterCursorTrendline.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - Highlighting, Dragging Points, Cursor and Trend Lines. - - - - - - - - - - - - - -
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/dashboardWidget.html b/assets/javascripts/jquery/jquery.jqplot/examples/dashboardWidget.html deleted file mode 100644 index 7f6b3b011..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/dashboardWidget.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - Animated Dashboard Sample - Filled Line with Log Axis - - - - - - - - - - - - - -
    - - - - - - - - - -
    -
    Hi Powered Data
    -
    -
    -
    -
    - -
    
    -
    -    
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -    
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/dashedLines.html b/assets/javascripts/jquery/jquery.jqplot/examples/dashedLines.html deleted file mode 100644 index 13aca5a5e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/dashedLines.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - Dashed Lines with Smoothing - - - - - - - - - - - - - -
    - - - - - - - - - -
    - -
    - -
    - -
    - -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/data-renderers.html b/assets/javascripts/jquery/jquery.jqplot/examples/data-renderers.html deleted file mode 100644 index ac2e96d43..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/data-renderers.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - AJAX and JSON Data Loading via Data Renderers - - - - - - - - - - - - - -
    - - - - - - -

    Data renderers allow jqPlot to pull data from any external source (e.g. a function implementing an AJAX call). Simply assign the external source to the "dataRenderer" plot option. The only requirement on data renderers is that it must return a valid jqPlot data array.

    - -
    - -
    
    -
    -
    -

    Data renderers get passed options by the plot. The signiture for a data renderer is:

    - - -
    -function(userData, plotObject, options) {
    -  ...
    -  return data;
    -}
    -
    - - -

    Where userData is whatever data was passed into the plot, plotObject is a reference back to the plot itself, and options are any options passed into the plots "dataRendererOption" option. The following example shows a more complicated example which uses ajax pulls data from an external json data source.

    - -
    - -
    
    -
    -
    -
    -
    -  
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/date-axes.html b/assets/javascripts/jquery/jquery.jqplot/examples/date-axes.html deleted file mode 100644 index 1047e6adc..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/date-axes.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - Date Axes - - - - - - - - - - - - - -
    - - - - - -

    Date axes support is provided through the dateAxisRenderer plugin. Date axes expand javascripts native date handling capabilities. This allow dates to be input in almost any unambiguous form, not just in milliseconds!

    - -

    Note, although jqPlot will parse most any human readable date, it is safest to use javascript time stamps when possible. Also, it is best to specify a date and time and not just a date alone. This is due to inconsistent browser handling of local time vs. UTC with bare dates.

    - -
    - -
    
    -
    -

    Date Axes also provide powerful formatting features. This allows custom formatter strings to be used to format axis tick labels precisely the way you want.

    - -
    - -
    
    -  
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -    
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/dateAxisLogAxisZooming.html b/assets/javascripts/jquery/jquery.jqplot/examples/dateAxisLogAxisZooming.html deleted file mode 100644 index 5032603c5..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/dateAxisLogAxisZooming.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - Zooming with Date and Log Axes - - - - - - - - - - - - - -
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/dateAxisRenderer.html b/assets/javascripts/jquery/jquery.jqplot/examples/dateAxisRenderer.html deleted file mode 100644 index fede7f8d7..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/dateAxisRenderer.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - Date Axes - - - - - - - - - - - - - -
    - - - - - - -

    Date axis renderer with default settings. Ticks are given wider spacing by default since date axes typically have longer tick labels.

    -
    -

    Date axis recognizes rotated tick labels. It will space ticks a little closer when labels are rotated.

    -
    -

    If you want more or less ticks, specify the "numberTicks" options. Date axes will try to produce the desired number of ticks, but may adjust to get a nice interval.

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/example.js b/assets/javascripts/jquery/jquery.jqplot/examples/example.js deleted file mode 100644 index ff85cd205..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/example.js +++ /dev/null @@ -1,114 +0,0 @@ -$(document).ready(function(){ - if (!$.jqplot._noCodeBlock) { - $('script.code').each(function(index) { - if ($('pre.code').eq(index).length ) { - $('pre.code').eq(index).text($(this).html()); - } - else { - // var str = $(this).text(); - // $('div.jqplot-target').eq(index).after($('
    '+str+'
    ')); - var pre = $('
    ');
    -                $('div.jqplot-target').eq(index).after(pre);
    -                pre.text($(this).html());
    -                pre = null;
    -            }
    -        });
    -
    -        $('script.common').each(function(index) {
    -            $('pre.common').eq(index).text($(this).html());
    -        });
    -
    -        var elstr='';
    -        if ($('script.include, link.include').length > 0) {
    -
    -            if ($('pre.include').length == 0) {
    -                var temp = [
    -                    '
    ', - '

    The charts on this page depend on the following files:

    ', - '
    ',
    -                    '
    ' - ]; - - temp = $(temp.join('\n')); - $('div.example-content').append(temp); - temp = null; - } - - - $('script.include').each(function(index) { - if (elstr !== '') { - elstr += '\n'; - } - elstr += ''; - }); - - $('link.include').each(function(index) { - if (elstr !== '') { - elstr += '\n'; - } - elstr += ''; - }) - - $('pre.include').text(elstr); - } - - else { - $('pre.include').remove(); - $('div.include').remove(); - } - } - - if (!$.jqplot.use_excanvas) { - $('div.jqplot-target').each(function(){ - var outerDiv = $(document.createElement('div')); - var header = $(document.createElement('div')); - var div = $(document.createElement('div')); - - outerDiv.append(header); - outerDiv.append(div); - - outerDiv.addClass('jqplot-image-container'); - header.addClass('jqplot-image-container-header'); - div.addClass('jqplot-image-container-content'); - - header.html('Right Click to Save Image As...'); - - var close = $(document.createElement('a')); - close.addClass('jqplot-image-container-close'); - close.html('Close'); - close.attr('href', '#'); - close.click(function() { - $(this).parents('div.jqplot-image-container').hide(500); - }) - header.append(close); - - $(this).after(outerDiv); - outerDiv.hide(); - - outerDiv = header = div = close = null; - - if (!$.jqplot._noToImageButton) { - var btn = $(document.createElement('button')); - btn.text('View Plot Image'); - btn.addClass('jqplot-image-button'); - btn.bind('click', {chart: $(this)}, function(evt) { - var imgelem = evt.data.chart.jqplotToImageElem(); - var div = $(this).nextAll('div.jqplot-image-container').first(); - div.children('div.jqplot-image-container-content').empty(); - div.children('div.jqplot-image-container-content').append(imgelem); - div.show(500); - div = null; - }); - - $(this).after(btn); - btn.after('
    '); - btn = null; - } - }); - } - - SyntaxHighlighter.defaults['toolbar'] = true; - SyntaxHighlighter.all(); - - $(document).unload(function() {$('*').unbind(); }); -}); \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/example.min.js b/assets/javascripts/jquery/jquery.jqplot/examples/example.min.js deleted file mode 100644 index 132e22953..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/example.min.js +++ /dev/null @@ -1 +0,0 @@ -$(document).ready(function(){if(!$.jqplot._noCodeBlock){$("script.code").each(function(c){if($("pre.code").eq(c).length){$("pre.code").eq(c).text($(this).html())}else{var d=$('
    ');$("div.jqplot-target").eq(c).after(d);d.text($(this).html());d=null}});$("script.common").each(function(c){$("pre.common").eq(c).text($(this).html())});var b="";if($("script.include, link.include").length>0){if($("pre.include").length==0){var a=['
    ','

    The charts on this page depend on the following files:

    ','
    ',"
    "];a=$(a.join("\n"));$("div.example-content").append(a);a=null}$("script.include").each(function(c){if(b!==""){b+="\n"}b+=' - - - - - -
    - - - - - - - - - -
    - -

    Enter 2 series to fill between:

    - - - - - - - -
    
    -
    -
    -    
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/hiddenPlotsInTabs.html b/assets/javascripts/jquery/jquery.jqplot/examples/hiddenPlotsInTabs.html deleted file mode 100644 index 794d90c8c..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/hiddenPlotsInTabs.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - Hidden Plots - - - - - - - - - - - - - -
    - - - - - - - - -

    This page demonstrates placing plots within jQuery UI widgets. Tab 2 and tab 3 contain plots. Using a combination of alternate sizing specification and the jqplot "replot" method the plots are properly displayed when their containers are shown.

    - -

    The alternate sizing specifications for setting plot height and width are needed because a hidden element (or child of a hidden element) has no size. The first example in tab 2 uses custom "data-height" and "data-width" attributes on the plot target element. The second example uses "width" and "height" properties specified on the options object passed into the $.jqplot() function.

    - -

    The default plot size is 300px wide by 400px high. The default setting can be overridden by specifying different values to the $.jqplot.config.defaultHeight and $.jqplot.config.defaultWidth properties. Height and width values are taken in this order of precedence: -

    - -
      -
    1. The css properties of the plot target if available (not available with display:none;).
    2. -
    3. Options object passed into the $.jqplot() function.
    4. -
    5. Custom data-height and data-width attributes on the plot target.
    6. -
    7. The config defaults.
    8. -
    - -
    - -
    - Tabs 2 and 3 have plots. Since tabs 2 and 3 are initially inactive, their contents (and the plots) are initially hidden. -
    - -
    -

    This plot was in an initially hidden container. It's hieght and width are set by the "data-height" and "data-width" properties of the plot container.

    -
    -
    - -
    -

    This plot is in an initially hidden container. It's height and width are set by the 'height' and 'width' properties of the options object passed into the plot constructor.

    -
    -
    - -
    - -

    In the accordion below, section 2 contains a plot. Sizing plots in hidden accordion sections is very similar to sizing in a tab widget. Because of the default animation on accordions, however, the plot will not draw itself until the entire accordion panel is shown.

    - -
    - -

    Section 1

    -
    - Here is section 1 there is no plot. Section 2 has a plot that will display once the section is completely shown. -
    - -

    Section 2

    -
    -

    - This plot also has it's height and width set with the data-height and data-width attributes. Note, if you want the accordion widget to properly size itself before the plot is shown, you must also specify a css height and width on the plot target. -

    -
    -
    - -
    - -

    Code for generating the plots follows. It is critical to bind the callback to the UI widgets "show" or "change" method which calls the plots "replot" method. Without this, the plot won't properly redraw itself when it's container becomes visible.

    - -

    - Note in the ui.index and plot._drawCount properties in the tabsshow callback. ui.index gives the index of the activated tab. plot._drawCount keeps track of how many times the plot was visibly drawn (or redrawn/replotted). Generally, replot only needs to be called the first time the plot is visibly drawn, hence the check for plot._drawCount === 0. -

    - -
    
    -
    - 
    -
    -
    -
    -
    -
    -
    -    
    -    
    -    
    -    
    -
    -
    -
    -  
    -  
    -  
    -  
    -   
    -  
    -
    -
    -
    -
    -	
    - - - - - - \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/images/logo.jpg b/assets/javascripts/jquery/jquery.jqplot/examples/images/logo.jpg deleted file mode 100644 index a12fffcd5..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/images/logo.jpg and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/images/ui-colorpicker.png b/assets/javascripts/jquery/jquery.jqplot/examples/images/ui-colorpicker.png deleted file mode 100644 index e244c689e..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/images/ui-colorpicker.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/index.html b/assets/javascripts/jquery/jquery.jqplot/examples/index.html deleted file mode 100644 index 01ed06366..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/index.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - jqPlot Sample Charts - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index 5b5dab2ab..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100644 index ac8b229af..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100644 index ad3d6346e..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100644 index 42ccba269..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100644 index 5a46b47cb..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png deleted file mode 100644 index 86c2baa65..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 4443fdc1a..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100644 index 7c9fa6c6e..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png deleted file mode 100644 index b273ff111..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 09d1cdc85..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_2e83ff_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png deleted file mode 100644 index 59bd45b90..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_454545_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png deleted file mode 100644 index 6d02426c1..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_888888_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index 2ab019b73..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css deleted file mode 100644 index 0f1a7e770..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/jquery-ui.css +++ /dev/null @@ -1,568 +0,0 @@ -/* - * jQuery UI CSS Framework 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/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 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/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } -.ui-widget-content a { color: #222222; } -.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } -.ui-widget-header a { color: #222222; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } -.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } -.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* - * 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/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * 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/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * 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#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * 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#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.16 - * - * Copyright 2010, 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/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * 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#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * 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#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * 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#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * 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#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * 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#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * 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#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css deleted file mode 100644 index 08821f537..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/smoothness/jquery-ui.min.css +++ /dev/null @@ -1 +0,0 @@ -.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;} \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png deleted file mode 100644 index 954e22dbd..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png deleted file mode 100644 index 64ece5707..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png deleted file mode 100644 index abdc01082..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100644 index 9b383f4d2..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png deleted file mode 100644 index a23baad25..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100644 index 42ccba269..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png deleted file mode 100644 index 39d5824d6..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100644 index f1273672d..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png deleted file mode 100644 index 359397acf..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png deleted file mode 100644 index a641a371a..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png deleted file mode 100644 index 85e63e9f6..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png deleted file mode 100644 index e117effa3..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png deleted file mode 100644 index 42f8f992c..000000000 Binary files a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png and /dev/null differ diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css deleted file mode 100644 index cd66d5377..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.css +++ /dev/null @@ -1,612 +0,0 @@ -/* - * jQuery UI CSS Framework 1.9pre - * - * 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/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } -/* - * jQuery UI Accordion 1.9pre - * - * 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#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-heading { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-heading { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * jQuery UI Autocomplete 1.9pre - * - * 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#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ -/* - * jQuery UI Button 1.9pre - * - * 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#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * jQuery UI Datepicker 1.9pre - * - * 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#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * jQuery UI Dialog 1.9pre - * - * 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#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * jQuery UI Menu 1.9pre - * - * 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/Menu#theming - */ -.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; } -.ui-menu .ui-menu { margin-top: -3px; position: absolute; } -.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; } -.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; } -.ui-menu .ui-menu-item a.ui-state-focus, -.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } - -.ui-menu li.ui-state-disabled { font-weight: normal; padding: .0em .4em; margin: .4em 0 .2em; line-height: 1.5; } - -/* icon support */ -.ui-menu-icons { position: relative; } -.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; } - -/* left-aligned */ -.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; } - -/* right-aligned */ -.ui-menu .ui-menu-icon { position: static; float: right; } -/* - * jQuery UI Menubar 1.9pre - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - */ -.ui-menubar { list-style: none; margin: 0; padding-left: 0; } - -.ui-menubar-item { float: left; } - -.ui-menubar .ui-button { float: left; font-weight: normal; border-top-width: 0 !important; border-bottom-width: 0 !important; margin: 0; outline: none; } -.ui-menubar .ui-menubar-link { border-right: 1px dashed transparent; border-left: 1px dashed transparent; } - -.ui-menubar .ui-menu { width: 200px; position: absolute; z-index: 9999; } -/* - * jQuery UI Progressbar 1.9pre - * - * 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#theming - */ -.ui-progressbar { height:2em; text-align: left; overflow: hidden; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* - * jQuery UI Resizable 1.9pre - * - * 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/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.9pre - * - * 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/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * jQuery UI Slider 1.9pre - * - * 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#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Spinner 1.9pre - * - * 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/Spinner#theming - */ -.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } -.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } -.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; z-index: 100; text-align: center; vertical-align: middle; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } -.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */ -.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */ -.ui-spinner-up { top: 0; } -.ui-spinner-down { bottom: 0; } - -/* TR overrides */ -span.ui-spinner { background: none; } -.ui-spinner .ui-icon-triangle-1-s { - /* need to fix icons sprite */ - background-position:-65px -16px; -} -/* - * jQuery UI Tabs 1.9pre - * - * 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#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -/* - * jQuery UI Tooltip 1.9pre - * - * 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/Tooltip#theming - */ -.ui-tooltip { - padding:8px; - position:absolute; - z-index:9999; - -o-box-shadow: 0 0 5px #aaa; - -moz-box-shadow: 0 0 5px #aaa; - -webkit-box-shadow: 0 0 5px #aaa; - box-shadow: 0 0 5px #aaa; -} -/* Fades and background-images don't work well together in IE6, drop the image */ -* html .ui-tooltip { - background-image: none; -} -body .ui-tooltip { border-width:2px; } -/* - * jQuery UI CSS Framework 1.9pre - * - * 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/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/ - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } -.ui-widget-content a { color: #222222/*{fcContent}*/; } -.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } -.ui-widget-header a { color: #222222/*{fcHeader}*/; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } -.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-on { background-position: -96px -144px; } -.ui-icon-radio-off { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } -.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css deleted file mode 100644 index 56a9be11a..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui-1.9pre.min.css +++ /dev/null @@ -1,10 +0,0 @@ -/* - * jQuery UI CSS Framework 1.9pre - * - * 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/Theming/API - */ -.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-heading{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-heading{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none;}.ui-menu .ui-menu{margin-top:-3px;position:absolute;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal;}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-menu li.ui-state-disabled{font-weight:normal;padding:.0em .4em;margin:.4em 0 .2em;line-height:1.5;}.ui-menu-icons{position:relative;}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em;}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em;}.ui-menu .ui-menu-icon{position:static;float:right;}.ui-menubar{list-style:none;margin:0;padding-left:0;}.ui-menubar-item{float:left;}.ui-menubar .ui-button{float:left;font-weight:normal;border-top-width:0!important;border-bottom-width:0!important;margin:0;outline:none;}.ui-menubar .ui-menubar-link{border-right:1px dashed transparent;border-left:1px dashed transparent;}.ui-menubar .ui-menu{width:200px;position:absolute;z-index:9999;}.ui-progressbar{height:2em;text-align:left;overflow:hidden;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle;}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px;}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;z-index:100;text-align:center;vertical-align:middle;position:absolute;cursor:default;display:block;overflow:hidden;right:0;}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none;}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0;}.ui-spinner-up{top:0;}.ui-spinner-down{bottom:0;}span.ui-spinner{background:none;}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tooltip{padding:8px;position:absolute;z-index:9999;-o-box-shadow:0 0 5px #aaa;-moz-box-shadow:0 0 5px #aaa;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa;}* html .ui-tooltip{background-image:none;}body .ui-tooltip{border-width:2px;}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222;}.ui-widget-content a{color:#222;}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold;}.ui-widget-header a{color:#222;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-on{background-position:-96px -144px;}.ui-icon-radio-off{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;} \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css deleted file mode 100644 index 5547c7b9d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.css +++ /dev/null @@ -1,568 +0,0 @@ -/* - * jQuery UI CSS Framework 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/Theming/API - */ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - -/* - * jQuery UI CSS Framework 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/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* - * 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/Resizable#theming - */ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } -.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } -.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * 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/Selectable#theming - */ -.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } -/* - * 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#theming - */ -/* IE/Win - Fix animation bug - #4615 */ -.ui-accordion { width: 100%; } -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } -.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } -.ui-accordion .ui-accordion-content-active { display: block; } -/* - * 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#theming - */ -.ui-autocomplete { position: absolute; cursor: default; } - -/* workarounds */ -* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ - -/* - * jQuery UI Menu 1.8.16 - * - * Copyright 2010, 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/Menu#theming - */ -.ui-menu { - list-style:none; - padding: 2px; - margin: 0; - display:block; - float: left; -} -.ui-menu .ui-menu { - margin-top: -3px; -} -.ui-menu .ui-menu-item { - margin:0; - padding: 0; - zoom: 1; - float: left; - clear: left; - width: 100%; -} -.ui-menu .ui-menu-item a { - text-decoration:none; - display:block; - padding:.2em .4em; - line-height:1.5; - zoom:1; -} -.ui-menu .ui-menu-item a.ui-state-hover, -.ui-menu .ui-menu-item a.ui-state-active { - font-weight: normal; - margin: -1px; -} -/* - * 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#theming - */ -.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ -.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ -button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ -.ui-button-icons-only { width: 3.4em; } -button.ui-button-icons-only { width: 3.7em; } - -/*button text element */ -.ui-button .ui-button-text { display: block; line-height: 1.4; } -.ui-button-text-only .ui-button-text { padding: .4em 1em; } -.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } -.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } -.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } -.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } -/* no icon support for input elements, provide padding by default */ -input.ui-button { padding: .4em 1em; } - -/*button icon element(s) */ -.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } -.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } -.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } -.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } -.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } - -/*button sets*/ -.ui-buttonset { margin-right: 7px; } -.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } - -/* workarounds */ -button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ -/* - * 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#theming - */ -.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } -.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } -.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* - * 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#theming - */ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * 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#theming - */ -.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ -.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } -.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } -/* - * 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#theming - */ -.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* - * 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#theming - */ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css deleted file mode 100644 index 78f7d3d06..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css +++ /dev/null @@ -1 +0,0 @@ -.ui-helper-hidden{display:none;}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none;}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.ui-helper-clearfix{display:inline-block;}/* required comment for clearfix to work in Opera \*/ * html .ui-helper-clearfix{height:1%;}.ui-helper-clearfix{display:block;}/* end clearfix */ .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0);}.ui-state-disabled{cursor:default!important;}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%;}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em;}.ui-widget .ui-widget{font-size:1em;}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em;}.ui-widget-content{border:1px solid #ddd;background:#eee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x;color:#333;}.ui-widget-content a{color:#333;}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x;color:#fff;font-weight:bold;}.ui-widget-header a{color:#fff;}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#1c94c4;}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none;}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#c77405;}.ui-state-hover a,.ui-state-hover a:hover{color:#c77405;text-decoration:none;}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:bold;color:#eb8f00;}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none;}.ui-widget :active{outline:none;}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x;color:#363636;}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636;}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat;color:#fff;}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff;}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff;}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold;}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal;}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png);}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png);}.ui-state-default .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-active .ui-icon{background-image:url(images/ui-icons_ef8c08_256x240.png);}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_228ef1_256x240.png);}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_ffd27a_256x240.png);}.ui-icon-carat-1-n{background-position:0 0;}.ui-icon-carat-1-ne{background-position:-16px 0;}.ui-icon-carat-1-e{background-position:-32px 0;}.ui-icon-carat-1-se{background-position:-48px 0;}.ui-icon-carat-1-s{background-position:-64px 0;}.ui-icon-carat-1-sw{background-position:-80px 0;}.ui-icon-carat-1-w{background-position:-96px 0;}.ui-icon-carat-1-nw{background-position:-112px 0;}.ui-icon-carat-2-n-s{background-position:-128px 0;}.ui-icon-carat-2-e-w{background-position:-144px 0;}.ui-icon-triangle-1-n{background-position:0 -16px;}.ui-icon-triangle-1-ne{background-position:-16px -16px;}.ui-icon-triangle-1-e{background-position:-32px -16px;}.ui-icon-triangle-1-se{background-position:-48px -16px;}.ui-icon-triangle-1-s{background-position:-64px -16px;}.ui-icon-triangle-1-sw{background-position:-80px -16px;}.ui-icon-triangle-1-w{background-position:-96px -16px;}.ui-icon-triangle-1-nw{background-position:-112px -16px;}.ui-icon-triangle-2-n-s{background-position:-128px -16px;}.ui-icon-triangle-2-e-w{background-position:-144px -16px;}.ui-icon-arrow-1-n{background-position:0 -32px;}.ui-icon-arrow-1-ne{background-position:-16px -32px;}.ui-icon-arrow-1-e{background-position:-32px -32px;}.ui-icon-arrow-1-se{background-position:-48px -32px;}.ui-icon-arrow-1-s{background-position:-64px -32px;}.ui-icon-arrow-1-sw{background-position:-80px -32px;}.ui-icon-arrow-1-w{background-position:-96px -32px;}.ui-icon-arrow-1-nw{background-position:-112px -32px;}.ui-icon-arrow-2-n-s{background-position:-128px -32px;}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px;}.ui-icon-arrow-2-e-w{background-position:-160px -32px;}.ui-icon-arrow-2-se-nw{background-position:-176px -32px;}.ui-icon-arrowstop-1-n{background-position:-192px -32px;}.ui-icon-arrowstop-1-e{background-position:-208px -32px;}.ui-icon-arrowstop-1-s{background-position:-224px -32px;}.ui-icon-arrowstop-1-w{background-position:-240px -32px;}.ui-icon-arrowthick-1-n{background-position:0 -48px;}.ui-icon-arrowthick-1-ne{background-position:-16px -48px;}.ui-icon-arrowthick-1-e{background-position:-32px -48px;}.ui-icon-arrowthick-1-se{background-position:-48px -48px;}.ui-icon-arrowthick-1-s{background-position:-64px -48px;}.ui-icon-arrowthick-1-sw{background-position:-80px -48px;}.ui-icon-arrowthick-1-w{background-position:-96px -48px;}.ui-icon-arrowthick-1-nw{background-position:-112px -48px;}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px;}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px;}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px;}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px;}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px;}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px;}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px;}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px;}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px;}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px;}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px;}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px;}.ui-icon-arrowreturn-1-w{background-position:-64px -64px;}.ui-icon-arrowreturn-1-n{background-position:-80px -64px;}.ui-icon-arrowreturn-1-e{background-position:-96px -64px;}.ui-icon-arrowreturn-1-s{background-position:-112px -64px;}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px;}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px;}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px;}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px;}.ui-icon-arrow-4{background-position:0 -80px;}.ui-icon-arrow-4-diag{background-position:-16px -80px;}.ui-icon-extlink{background-position:-32px -80px;}.ui-icon-newwin{background-position:-48px -80px;}.ui-icon-refresh{background-position:-64px -80px;}.ui-icon-shuffle{background-position:-80px -80px;}.ui-icon-transfer-e-w{background-position:-96px -80px;}.ui-icon-transferthick-e-w{background-position:-112px -80px;}.ui-icon-folder-collapsed{background-position:0 -96px;}.ui-icon-folder-open{background-position:-16px -96px;}.ui-icon-document{background-position:-32px -96px;}.ui-icon-document-b{background-position:-48px -96px;}.ui-icon-note{background-position:-64px -96px;}.ui-icon-mail-closed{background-position:-80px -96px;}.ui-icon-mail-open{background-position:-96px -96px;}.ui-icon-suitcase{background-position:-112px -96px;}.ui-icon-comment{background-position:-128px -96px;}.ui-icon-person{background-position:-144px -96px;}.ui-icon-print{background-position:-160px -96px;}.ui-icon-trash{background-position:-176px -96px;}.ui-icon-locked{background-position:-192px -96px;}.ui-icon-unlocked{background-position:-208px -96px;}.ui-icon-bookmark{background-position:-224px -96px;}.ui-icon-tag{background-position:-240px -96px;}.ui-icon-home{background-position:0 -112px;}.ui-icon-flag{background-position:-16px -112px;}.ui-icon-calendar{background-position:-32px -112px;}.ui-icon-cart{background-position:-48px -112px;}.ui-icon-pencil{background-position:-64px -112px;}.ui-icon-clock{background-position:-80px -112px;}.ui-icon-disk{background-position:-96px -112px;}.ui-icon-calculator{background-position:-112px -112px;}.ui-icon-zoomin{background-position:-128px -112px;}.ui-icon-zoomout{background-position:-144px -112px;}.ui-icon-search{background-position:-160px -112px;}.ui-icon-wrench{background-position:-176px -112px;}.ui-icon-gear{background-position:-192px -112px;}.ui-icon-heart{background-position:-208px -112px;}.ui-icon-star{background-position:-224px -112px;}.ui-icon-link{background-position:-240px -112px;}.ui-icon-cancel{background-position:0 -128px;}.ui-icon-plus{background-position:-16px -128px;}.ui-icon-plusthick{background-position:-32px -128px;}.ui-icon-minus{background-position:-48px -128px;}.ui-icon-minusthick{background-position:-64px -128px;}.ui-icon-close{background-position:-80px -128px;}.ui-icon-closethick{background-position:-96px -128px;}.ui-icon-key{background-position:-112px -128px;}.ui-icon-lightbulb{background-position:-128px -128px;}.ui-icon-scissors{background-position:-144px -128px;}.ui-icon-clipboard{background-position:-160px -128px;}.ui-icon-copy{background-position:-176px -128px;}.ui-icon-contact{background-position:-192px -128px;}.ui-icon-image{background-position:-208px -128px;}.ui-icon-video{background-position:-224px -128px;}.ui-icon-script{background-position:-240px -128px;}.ui-icon-alert{background-position:0 -144px;}.ui-icon-info{background-position:-16px -144px;}.ui-icon-notice{background-position:-32px -144px;}.ui-icon-help{background-position:-48px -144px;}.ui-icon-check{background-position:-64px -144px;}.ui-icon-bullet{background-position:-80px -144px;}.ui-icon-radio-off{background-position:-96px -144px;}.ui-icon-radio-on{background-position:-112px -144px;}.ui-icon-pin-w{background-position:-128px -144px;}.ui-icon-pin-s{background-position:-144px -144px;}.ui-icon-play{background-position:0 -160px;}.ui-icon-pause{background-position:-16px -160px;}.ui-icon-seek-next{background-position:-32px -160px;}.ui-icon-seek-prev{background-position:-48px -160px;}.ui-icon-seek-end{background-position:-64px -160px;}.ui-icon-seek-start{background-position:-80px -160px;}.ui-icon-seek-first{background-position:-80px -160px;}.ui-icon-stop{background-position:-96px -160px;}.ui-icon-eject{background-position:-112px -160px;}.ui-icon-volume-off{background-position:-128px -160px;}.ui-icon-volume-on{background-position:-144px -160px;}.ui-icon-power{background-position:0 -176px;}.ui-icon-signal-diag{background-position:-16px -176px;}.ui-icon-signal{background-position:-32px -176px;}.ui-icon-battery-0{background-position:-48px -176px;}.ui-icon-battery-1{background-position:-64px -176px;}.ui-icon-battery-2{background-position:-80px -176px;}.ui-icon-battery-3{background-position:-96px -176px;}.ui-icon-circle-plus{background-position:0 -192px;}.ui-icon-circle-minus{background-position:-16px -192px;}.ui-icon-circle-close{background-position:-32px -192px;}.ui-icon-circle-triangle-e{background-position:-48px -192px;}.ui-icon-circle-triangle-s{background-position:-64px -192px;}.ui-icon-circle-triangle-w{background-position:-80px -192px;}.ui-icon-circle-triangle-n{background-position:-96px -192px;}.ui-icon-circle-arrow-e{background-position:-112px -192px;}.ui-icon-circle-arrow-s{background-position:-128px -192px;}.ui-icon-circle-arrow-w{background-position:-144px -192px;}.ui-icon-circle-arrow-n{background-position:-160px -192px;}.ui-icon-circle-zoomin{background-position:-176px -192px;}.ui-icon-circle-zoomout{background-position:-192px -192px;}.ui-icon-circle-check{background-position:-208px -192px;}.ui-icon-circlesmall-plus{background-position:0 -208px;}.ui-icon-circlesmall-minus{background-position:-16px -208px;}.ui-icon-circlesmall-close{background-position:-32px -208px;}.ui-icon-squaresmall-plus{background-position:-48px -208px;}.ui-icon-squaresmall-minus{background-position:-64px -208px;}.ui-icon-squaresmall-close{background-position:-80px -208px;}.ui-icon-grip-dotted-vertical{background-position:0 -224px;}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px;}.ui-icon-grip-solid-vertical{background-position:-32px -224px;}.ui-icon-grip-solid-horizontal{background-position:-48px -224px;}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px;}.ui-icon-grip-diagonal-se{background-position:-80px -224px;}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px;}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px;}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px;}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.50;filter:Alpha(Opacity=50);}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x;opacity:.20;filter:Alpha(Opacity=20);-moz-border-radius:5px;-khtml-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none;}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0;}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0;}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%;}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%;}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px;}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px;}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px;}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px;}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black;}.ui-accordion{width:100%;}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;}.ui-accordion .ui-accordion-li-fix{display:inline;}.ui-accordion .ui-accordion-header-active{border-bottom:0!important;}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em;}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em;}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px;}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1;}.ui-accordion .ui-accordion-content-active{display:block;}.ui-autocomplete{position:absolute;cursor:default;}* html .ui-autocomplete{width:1px;}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left;}.ui-menu .ui-menu{margin-top:-3px;}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%;}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1;}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px;}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible;}.ui-button-icon-only{width:2.2em;}button.ui-button-icon-only{width:2.4em;}.ui-button-icons-only{width:3.4em;}button.ui-button-icons-only{width:3.7em;}.ui-button .ui-button-text{display:block;line-height:1.4;}.ui-button-text-only .ui-button-text{padding:.4em 1em;}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em;}input.ui-button{padding:.4em 1em;}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px;}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px;}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em;}.ui-buttonset{margin-right:7px;}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em;}button.ui-button::-moz-focus-inner{border:0;padding:0;}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden;}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative;}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px;}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0;}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1;}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right;}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px;}.ui-draggable .ui-dialog-titlebar{cursor:move;}.ui-slider{position:relative;text-align:left;}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0;}.ui-slider-horizontal{height:.8em;}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em;}.ui-slider-horizontal .ui-slider-range{top:0;height:100%;}.ui-slider-horizontal .ui-slider-range-min{left:0;}.ui-slider-horizontal .ui-slider-range-max{right:0;}.ui-slider-vertical{width:.8em;height:100px;}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em;}.ui-slider-vertical .ui-slider-range{left:0;width:100%;}.ui-slider-vertical .ui-slider-range-min{bottom:0;}.ui-slider-vertical .ui-slider-range-max{top:0;}.ui-tabs{position:relative;padding:.2em;zoom:1;}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0;}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap;}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text;}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer;}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none;}.ui-tabs .ui-tabs-hide{display:none!important;}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none;}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em;}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px;}.ui-datepicker .ui-datepicker-prev{left:2px;}.ui-datepicker .ui-datepicker-next{right:2px;}.ui-datepicker .ui-datepicker-prev-hover{left:1px;}.ui-datepicker .ui-datepicker-next-hover{right:1px;}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px;}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center;}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0;}.ui-datepicker select.ui-datepicker-month-year{width:100%;}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%;}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em;}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0;}.ui-datepicker td{border:0;padding:1px;}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none;}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0;}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible;}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;}.ui-datepicker.ui-datepicker-multi{width:auto;}.ui-datepicker-multi .ui-datepicker-group{float:left;}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em;}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%;}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%;}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%;}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0;}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left;}.ui-datepicker-row-break{clear:both;width:100%;font-size:0;}.ui-datepicker-rtl{direction:rtl;}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto;}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto;}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto;}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right;}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left;}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right;}.ui-datepicker-rtl .ui-datepicker-group{float:right;}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px;}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px;}.ui-progressbar{height:2em;text-align:left;}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%;} \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js deleted file mode 100644 index 5ca2642d2..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui-1.9pre.min.js +++ /dev/null @@ -1,473 +0,0 @@ -/*! - * jQuery UI 1.9pre - * - * 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(a,g){function d(e,f){var i=e.nodeName.toLowerCase();if("area"===i){i=e.parentNode;var b=i.name;if(!e.href||!b||i.nodeName.toLowerCase()!=="map")return false;i=a("img[usemap=#"+b+"]")[0];return!!i&&c(i)}return(/input|select|textarea|button|object/.test(i)?!e.disabled:"a"==i?e.href||f:f)&&c(e)}function c(e){return!a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(!a.ui.version){a.extend(a.ui,{version:"1.9pre", -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}});a.fn.extend({_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var i=this;setTimeout(function(){a(i).focus(); -f&&f.call(i)},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;e=a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this, -"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!e.length?a(document):e},zIndex:function(e){if(e!==g)return this.css("zIndex",e);if(this.length){e=a(this[0]);for(var f;e.length&&e[0]!==document;){f=e.css("position");if(f==="absolute"||f==="relative"||f==="fixed"){f=parseInt(e.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}e=e.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", -function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(e,f){function i(l,j,m,n){a.each(b,function(){j-=parseFloat(a.curCSS(l,"padding"+this,true))||0;if(m)j-=parseFloat(a.curCSS(l,"border"+this+"Width",true))||0;if(n)j-=parseFloat(a.curCSS(l,"margin"+this,true))||0});return j}var b=f==="Width"?["Left","Right"]:["Top","Bottom"],h=f.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth, -outerHeight:a.fn.outerHeight};a.fn["inner"+f]=function(l){if(l===g)return k["inner"+f].call(this);return this.each(function(){a(this).css(h,i(this,l)+"px")})};a.fn["outer"+f]=function(l,j){if(typeof l!=="number")return k["outer"+f].call(this,l);return this.each(function(){a(this).css(h,i(this,l,true,j)+"px")})}});a.extend(a.expr[":"],{data:function(e,f,i){return!!a.data(e,i[3])},focusable:function(e){return d(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(e){var f=a.attr(e,"tabindex"),i=isNaN(f); -return(i||f>=0)&&d(e,!i)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart"in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(e,f,i){e=a.ui[e].prototype;for(var b in i){e.plugins[b]=e.plugins[b]||[];e.plugins[b].push([f,i[b]])}},call:function(e,f,i){if((f=e.plugins[f])&&e.element[0].parentNode)for(var b= -0;b0)return true;e[i]=1;b=e[i]>0;e[i]=0;return b},isOverAxis:function(e,f,i){return e>f&&e", -options:{disabled:false,create:null},_createWidget:function(e,f){f=a(f||this.defaultElement||this)[0];this.element=a(f);this.options=a.widget.extend({},this.options,this._getCreateOptions(),e);this.bindings=a();this.hoverable=a();this.focusable=a();if(f!==this){a.data(f,this.widgetName,this);this._bind({remove:"destroy"})}this._create();this._trigger("create");this._init()},_getCreateOptions:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy();this.element.unbind("."+this.widgetName).removeData(this.widgetName); -this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled");this.bindings.unbind("."+this.widgetName);this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(e,f){var i=e,b,h,k;if(arguments.length===0)return a.widget.extend({},this.options);if(typeof e==="string"){i={};b=e.split(".");e=b.shift();if(b.length){h=i[e]=a.widget.extend({}, -this.options[e]);for(k=0;k=9)&&!d.button)return this._mouseUp(d);if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,d)!==false)?this._mouseDrag(d):this._mouseUp(d);return!this._mouseStarted},_mouseUp:function(d){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName, -this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;d.target==this._mouseDownEvent.target&&a.data(d.target,this.widgetName+".preventClickEvent",true);this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -(function(a){a.widget("ui.draggable",a.ui.mouse,{version:"1.9pre",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(g){var d= -this.options;if(this.helper||d.disabled||a(g.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(g);if(!this.handle)return false;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(a(this).offset()).appendTo("body")});return true},_mouseStart:function(g){var d=this.options;this.helper= -this._createHelper(g);this._cacheHelperProportions();if(a.ui.ddmanager)a.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};a.extend(this.offset,{click:{left:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); -this.originalPosition=this.position=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);d.containment&&this._setContainment();if(this._trigger("start",g)===false){this._clear();return false}this._cacheHelperProportions();a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(g,true);a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,g);return true}, -_mouseDrag:function(g,d){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();if(this._trigger("drag",g,c)===false){this._mouseUp({});return false}this.position=c.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";a.ui.ddmanager&&a.ui.ddmanager.drag(this,g);return false},_mouseStop:function(g){var d= -false;if(a.ui.ddmanager&&!this.options.dropBehaviour)d=a.ui.ddmanager.drop(this,g);if(this.dropped){d=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!d||this.options.revert=="valid"&&d||this.options.revert===true||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d)){var c=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",g)!== -false&&c._clear()})}else this._trigger("stop",g)!==false&&this._clear();return false},_mouseUp:function(g){this.options.iframeFix===true&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,g);return a.ui.mouse.prototype._mouseUp.call(this,g)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(g){var d=!this.options.handle||!a(this.options.handle,this.element).length? -true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==g.target)d=true});return d},_createHelper:function(g){var d=this.options;g=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[g])):d.helper=="clone"?this.element.clone().removeAttr("id"):this.element;g.parents("body").length||g.appendTo(d.appendTo=="parent"?this.element[0].parentNode:d.appendTo);g[0]!=this.element[0]&&!/(fixed|absolute)/.test(g.css("position"))&&g.css("position","absolute");return g}, -_adjustOffsetFromHelper:function(g){if(typeof g=="string")g=g.split(" ");if(a.isArray(g))g={left:+g[0],top:+g[1]||0};if("left"in g)this.offset.click.left=g.left+this.margins.left;if("right"in g)this.offset.click.left=this.helperProportions.width-g.right+this.margins.left;if("top"in g)this.offset.click.top=g.top+this.margins.top;if("bottom"in g)this.offset.click.top=this.helperProportions.height-g.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var g= -this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0])){g.left+=this.scrollParent.scrollLeft();g.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)g={top:0,left:0};return{top:g.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:g.left+(parseInt(this.offsetParent.css("borderLeftWidth"), -10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var g=this.element.position();return{top:g.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:g.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 g=this.options;if(g.containment=="parent")g.containment=this.helper[0].parentNode;if(g.containment=="document"||g.containment=="window")this.containment=[g.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,g.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, -(g.containment=="document"?0:a(window).scrollLeft())+a(g.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(g.containment=="document"?0:a(window).scrollTop())+(a(g.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(g.containment)&&g.containment.constructor!=Array){g=a(g.containment);var d=g[0];if(d){g.offset();var c=a(d).css("overflow")!= -"hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(c?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"), -10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=g}}else if(g.containment.constructor==Array)this.containment=g.containment},_convertPositionTo:function(g,d){if(!d)d=this.position;var c=g=="absolute"?1:-1,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(e[0].tagName);return{top:d.top+ -this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:e.scrollTop())*c),left:d.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*c)}},_generatePosition:function(g){var d=this.options,c=this.cssPosition=="absolute"&& -!(this.scrollParent[0]!=document&&a.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName),f=g.pageX,i=g.pageY;if(this.originalPosition){var b;if(this.containment){if(this.relative_container){b=this.relative_container.offset();b=[this.containment[0]+b.left,this.containment[1]+b.top,this.containment[2]+b.left,this.containment[3]+b.top]}else b=this.containment;if(g.pageX-this.offset.click.leftb[2])f=b[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>b[3])i=b[3]+this.offset.click.top}if(d.grid){i=d.grid[1]?this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1]:this.originalPageY;i=b?!(i-this.offset.click.topb[3])?i:!(i-this.offset.click.topb[2])?f:!(f-this.offset.click.left=0;l--){var j=c.snapElements[l].left,m=j+c.snapElements[l].width,n=c.snapElements[l].top,o=n+c.snapElements[l].height;if(j-f=l&&i<=j||b>=l&&b<=j||ij)&&(e>=h&&e<=k||f>=h&&f<=k||ek);default:return false}}; -a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(g,d){var c=a.ui.ddmanager.droppables[g.options.scope]||[],e=d?d.type:null,f=(g.currentItem||g.element).find(":data(droppable)").andSelf(),i=0;a:for(;i').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=e.handles||(!a(".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 f=this.handles.split(",");this.handles={};for(var i=0;i');/sw|se|ne|nw/.test(b)&&h.css({zIndex:++e.zIndex});"se"==b&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[b]=".ui-resizable-"+b;this.element.append(h)}}this._renderAxis=function(k){k=k||this.element;for(var l in this.handles){if(this.handles[l].constructor== -String)this.handles[l]=a(this.handles[l],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=a(this.handles[l],this.element),m=0;m=/sw|ne|nw|se|n|s/.test(l)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(l)?"Top":/se|sw|s/.test(l)?"Bottom":/^e$/.test(l)?"Right":"Left"].join("");k.css(j,m);this._proportionallyResize()}a(this.handles[l])}};this._renderAxis(this.element);this._handles=a(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!c.resizing){if(this.className)var k=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);c.axis=k&&k[1]?k[1]:"se"}});if(e.autoHide){this._handles.hide();a(this.element).addClass("ui-resizable-autohide").hover(function(){if(!e.disabled){a(this).removeClass("ui-resizable-autohide");c._handles.show()}},function(){if(!e.disabled)if(!c.resizing){a(this).addClass("ui-resizable-autohide");c._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); -var c=function(f){a(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){c(this.element);var e=this.element;e.after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);c(this.originalElement);return this},_mouseCapture:function(c){var e= -false,f;for(f in this.handles)if(a(this.handles[f])[0]==c.target)e=true;return!this.options.disabled&&e},_mouseStart:function(c){var e=this.options,f=this.element.position(),i=this.element;this.resizing=true;this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()};if(i.is(".ui-draggable")||/absolute/.test(i.css("position")))i.css({position:"absolute",top:f.top,left:f.left});a.browser.opera&&/relative/.test(i.css("position"))&&i.css({position:"relative",top:"auto",left:"auto"}); -this._renderProxy();f=g(this.helper.css("left"));var b=g(this.helper.css("top"));if(e.containment){f+=a(e.containment).scrollLeft()||0;b+=a(e.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:f,top:b};this.size=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalSize=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalPosition={left:f,top:b};this.sizeDiff= -{width:i.outerWidth()-i.width(),height:i.outerHeight()-i.height()};this.originalMousePosition={left:c.pageX,top:c.pageY};this.aspectRatio=typeof e.aspectRatio=="number"?e.aspectRatio:this.originalSize.width/this.originalSize.height||1;e=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",e=="auto"?this.axis+"-resize":e);i.addClass("ui-resizable-resizing");this._propagate("start",c);return true},_mouseDrag:function(c){var e=this.helper,f=this.originalMousePosition,i=this._change[this.axis]; -if(!i)return false;f=i.apply(this,[c,c.pageX-f.left||0,c.pageY-f.top||0]);this._updateVirtualBoundaries(c.shiftKey);if(this._aspectRatio||c.shiftKey)f=this._updateRatio(f,c);f=this._respectSize(f,c);this._propagate("resize",c);e.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(f);this._trigger("resize",c,this.ui());return false}, -_mouseStop:function(c){this.resizing=false;var e=this.options;if(this._helper){var f=this._proportionallyResizeElements,i=f.length&&/textarea/i.test(f[0].nodeName);f=i&&a.ui.hasScroll(f[0],"left")?0:this.sizeDiff.height;i=i?0:this.sizeDiff.width;i={width:this.helper.width()-i,height:this.helper.height()-f};f=parseInt(this.element.css("left"),10)+(this.position.left-this.originalPosition.left)||null;var b=parseInt(this.element.css("top"),10)+(this.position.top-this.originalPosition.top)||null;e.animate|| -this.element.css(a.extend(i,{top:b,left:f}));this.helper.height(this.size.height);this.helper.width(this.size.width);this._helper&&!e.animate&&this._proportionallyResize()}a("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",c);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(c){var e=this.options,f,i,b;e={minWidth:d(e.minWidth)?e.minWidth:0,maxWidth:d(e.maxWidth)?e.maxWidth:Infinity,minHeight:d(e.minHeight)?e.minHeight: -0,maxHeight:d(e.maxHeight)?e.maxHeight:Infinity};if(this._aspectRatio||c){c=e.minHeight*this.aspectRatio;i=e.minWidth/this.aspectRatio;f=e.maxHeight*this.aspectRatio;b=e.maxWidth/this.aspectRatio;if(c>e.minWidth)e.minWidth=c;if(i>e.minHeight)e.minHeight=i;if(fc.width,k=d(c.height)&&e.minHeight&&e.minHeight>c.height;if(h)c.width=e.minWidth;if(k)c.height=e.minHeight;if(i)c.width=e.maxWidth;if(b)c.height=e.maxHeight;var l=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,m=/sw|nw|w/.test(f);f=/nw|ne|n/.test(f);if(h&&m)c.left=l-e.minWidth;if(i&&m)c.left=l-e.maxWidth;if(k&&f)c.top=j-e.minHeight;if(b&&f)c.top=j-e.maxHeight;if((e=!c.width&&!c.height)&&!c.left&&c.top)c.top=null; -else if(e&&!c.top&&c.left)c.left=null;return c},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var c=this.helper||this.element,e=0;e');var e=a.browser.msie&&a.browser.version<7,f=e?1:0;e=e?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ -e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++c.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(c,e){return{width:this.originalSize.width+e}},w:function(c,e){return{left:this.originalPosition.left+e,width:this.originalSize.width-e}},n:function(c,e,f){return{top:this.originalPosition.top+f,height:this.originalSize.height-f}},s:function(c,e,f){return{height:this.originalSize.height+ -f}},se:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},sw:function(c,e,f){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[c,e,f]))},ne:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[c,e,f]))},nw:function(c,e,f){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[c,e,f]))}},_propagate:function(c,e){a.ui.plugin.call(this,c,[e,this.ui()]); -c!="resize"&&this._trigger(c,e,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}}});a.ui.plugin.add("resizable","alsoResize",{start:function(){var c=a(this).data("resizable").options,e=function(f){a(f).each(function(){var i=a(this);i.data("resizable-alsoresize",{width:parseInt(i.width(),10),height:parseInt(i.height(),10), -left:parseInt(i.css("left"),10),top:parseInt(i.css("top"),10),position:i.css("position")})})};if(typeof c.alsoResize=="object"&&!c.alsoResize.parentNode)if(c.alsoResize.length){c.alsoResize=c.alsoResize[0];e(c.alsoResize)}else a.each(c.alsoResize,function(f){e(f)});else e(c.alsoResize)},resize:function(c,e){var f=a(this).data("resizable"),i=f.options,b=f.originalSize,h=f.originalPosition,k={height:f.size.height-b.height||0,width:f.size.width-b.width||0,top:f.position.top-h.top||0,left:f.position.left- -h.left||0},l=function(j,m){a(j).each(function(){var n=a(this),o=a(this).data("resizable-alsoresize"),p={},q=m&&m.length?m:n.parents(e.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(q,function(u,s){var r=(o[s]||0)+(k[s]||0);if(r&&r>=0)p[s]=r||null});if(a.browser.opera&&/relative/.test(n.css("position"))){f._revertToRelativePosition=true;n.css({position:"absolute",top:"auto",left:"auto"})}n.css(p)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?a.each(i.alsoResize, -function(j,m){l(j,m)}):l(i.alsoResize)},stop:function(){var c=a(this).data("resizable"),e=c.options,f=function(i){a(i).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};if(c._revertToRelativePosition){c._revertToRelativePosition=false;typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(i){f(i)}):f(e.alsoResize)}a(this).removeData("resizable-alsoresize")}});a.ui.plugin.add("resizable","animate",{stop:function(c){var e=a(this).data("resizable"), -f=e.options,i=e._proportionallyResizeElements,b=i.length&&/textarea/i.test(i[0].nodeName),h=b&&a.ui.hasScroll(i[0],"left")?0:e.sizeDiff.height;b={width:e.size.width-(b?0:e.sizeDiff.width),height:e.size.height-h};h=parseInt(e.element.css("left"),10)+(e.position.left-e.originalPosition.left)||null;var k=parseInt(e.element.css("top"),10)+(e.position.top-e.originalPosition.top)||null;e.element.animate(a.extend(b,k&&h?{top:k,left:h}:{}),{duration:f.animateDuration,easing:f.animateEasing,step:function(){var l= -{width:parseInt(e.element.css("width"),10),height:parseInt(e.element.css("height"),10),top:parseInt(e.element.css("top"),10),left:parseInt(e.element.css("left"),10)};i&&i.length&&a(i[0]).css({width:l.width,height:l.height});e._updateCache(l);e._propagate("resize",c)}})}});a.ui.plugin.add("resizable","containment",{start:function(){var c=a(this).data("resizable"),e=c.element,f=c.options.containment;if(e=f instanceof a?f.get(0):/parent/.test(f)?e.parent().get(0):f){c.containerElement=a(e);if(/document/.test(f)|| -f==document){c.containerOffset={left:0,top:0};c.containerPosition={left:0,top:0};c.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight}}else{var i=a(e),b=[];a(["Top","Right","Left","Bottom"]).each(function(l,j){b[l]=g(i.css("padding"+j))});c.containerOffset=i.offset();c.containerPosition=i.position();c.containerSize={height:i.innerHeight()-b[3],width:i.innerWidth()-b[1]};f=c.containerOffset;var h=c.containerSize.height, -k=c.containerSize.width;k=a.ui.hasScroll(e,"left")?e.scrollWidth:k;h=a.ui.hasScroll(e)?e.scrollHeight:h;c.parentData={element:e,left:f.left,top:f.top,width:k,height:h}}}},resize:function(c){var e=a(this).data("resizable"),f=e.options,i=e.containerOffset,b=e.position;c=e._aspectRatio||c.shiftKey;var h={top:0,left:0},k=e.containerElement;if(k[0]!=document&&/static/.test(k.css("position")))h=i;if(b.left<(e._helper?i.left:0)){e.size.width+=e._helper?e.position.left-i.left:e.position.left-h.left;if(c)e.size.height= -e.size.width/f.aspectRatio;e.position.left=f.helper?i.left:0}if(b.top<(e._helper?i.top:0)){e.size.height+=e._helper?e.position.top-i.top:e.position.top;if(c)e.size.width=e.size.height*f.aspectRatio;e.position.top=e._helper?i.top:0}e.offset.left=e.parentData.left+e.position.left;e.offset.top=e.parentData.top+e.position.top;f=Math.abs((e._helper?e.offset.left-h.left:e.offset.left-h.left)+e.sizeDiff.width);i=Math.abs((e._helper?e.offset.top-h.top:e.offset.top-i.top)+e.sizeDiff.height);b=e.containerElement.get(0)== -e.element.parent().get(0);h=/relative|absolute/.test(e.containerElement.css("position"));if(b&&h)f-=e.parentData.left;if(f+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-f;if(c)e.size.height=e.size.width/e.aspectRatio}if(i+e.size.height>=e.parentData.height){e.size.height=e.parentData.height-i;if(c)e.size.width=e.size.height*e.aspectRatio}},stop:function(){var c=a(this).data("resizable"),e=c.options,f=c.containerOffset,i=c.containerPosition,b=c.containerElement,h=a(c.helper),k= -h.offset(),l=h.outerWidth()-c.sizeDiff.width;h=h.outerHeight()-c.sizeDiff.height;c._helper&&!e.animate&&/relative/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h});c._helper&&!e.animate&&/static/.test(b.css("position"))&&a(this).css({left:k.left-i.left-f.left,width:l,height:h})}});a.ui.plugin.add("resizable","ghost",{start:function(){var c=a(this).data("resizable"),e=c.options,f=c.size;c.ghost=c.originalElement.clone();c.ghost.css({opacity:0.25,display:"block",position:"relative", -height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:"");c.ghost.appendTo(c.helper)},resize:function(){var c=a(this).data("resizable");c.ghost&&c.ghost.css({position:"relative",height:c.size.height,width:c.size.width})},stop:function(){var c=a(this).data("resizable");c.ghost&&c.helper&&c.helper.get(0).removeChild(c.ghost.get(0))}});a.ui.plugin.add("resizable","grid",{resize:function(){var c=a(this).data("resizable"),e=c.options, -f=c.size,i=c.originalSize,b=c.originalPosition,h=c.axis;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-i.width)/(e.grid[0]||1))*(e.grid[0]||1);e=Math.round((f.height-i.height)/(e.grid[1]||1))*(e.grid[1]||1);if(/^(se|s|e)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else if(/^(ne)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}else{if(/^(sw)$/.test(h)){c.size.width=i.width+k;c.size.height=i.height+e}else{c.size.width= -i.width+k;c.size.height=i.height+e;c.position.top=b.top-e}c.position.left=b.left-k}}});var g=function(c){return parseInt(c,10)||0},d=function(c){return!isNaN(parseInt(c,10))}})(jQuery); -(function(a){a.widget("ui.selectable",a.ui.mouse,{version:"1.9pre",options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var g=this;this.element.addClass("ui-selectable");this.dragged=false;var d;this.refresh=function(){d=a(g.options.filter,g.element[0]);d.each(function(){var c=a(this),e=c.offset();a.data(this,"selectable-item",{element:this,$element:c,left:e.left,top:e.top,right:e.left+c.outerWidth(),bottom:e.top+c.outerHeight(),startselected:false, -selected:c.hasClass("ui-selected"),selecting:c.hasClass("ui-selecting"),unselecting:c.hasClass("ui-unselecting")})})};this.refresh();this.selectees=d.addClass("ui-selectee");this._mouseInit();this.helper=a("
    ")},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(g){var d= -this;this.opos=[g.pageX,g.pageY];if(!this.options.disabled){var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",g);a(c.appendTo).append(this.helper);this.helper.css({left:g.clientX,top:g.clientY,width:0,height:0});c.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!g.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting= -true;d._trigger("unselecting",g,{unselecting:e.element})}});a(g.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){var f=!g.metaKey||!e.$element.hasClass("ui-selected");e.$element.removeClass(f?"ui-unselecting":"ui-selected").addClass(f?"ui-selecting":"ui-unselecting");e.unselecting=!f;e.selecting=f;(e.selected=f)?d._trigger("selecting",g,{selecting:e.element}):d._trigger("unselecting",g,{unselecting:e.element});return false}})}},_mouseDrag:function(g){var d=this; -this.dragged=true;if(!this.options.disabled){var c=this.options,e=this.opos[0],f=this.opos[1],i=g.pageX,b=g.pageY;if(e>i){var h=i;i=e;e=h}if(f>b){h=b;b=f;f=h}this.helper.css({left:e,top:f,width:i-e,height:b-f});this.selectees.each(function(){var k=a.data(this,"selectable-item");if(!(!k||k.element==d.element[0])){var l=false;if(c.tolerance=="touch")l=!(k.left>i||k.rightb||k.bottome&&k.rightf&&k.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var g=this.options;this.containerCache= -{};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?g.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");this._mouseDestroy();for(var g=this.items.length-1;g>=0;g--)this.items[g].item.removeData(this.widgetName+"-item");return this},_setOption:function(g, -d){if(g==="disabled"){this.options[g]=d;this.widget().toggleClass("ui-sortable-disabled",!!d)}else a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(g,d){var c=this;if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(g);var e=null,f=this;a(g.target).parents().each(function(){if(a.data(this,c.widgetName+"-item")==f){e=a(this);return false}});if(a.data(g.target,c.widgetName+"-item")==f)e=a(g.target);if(!e)return false; -if(this.options.handle&&!d){var i=false;a(this.options.handle,e).find("*").andSelf().each(function(){if(this==g.target)i=true});if(!i)return false}this.currentItem=e;this._removeCurrentsFromItems();return true},_mouseStart:function(g,d,c){d=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(g);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");a.extend(this.offset,{click:{left:g.pageX-this.offset.left,top:g.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(g);this.originalPageX=g.pageX;this.originalPageY=g.pageY;d.cursorAt&&this._adjustOffsetFromHelper(d.cursorAt);this.domPosition={prev:this.currentItem.prev()[0], -parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();d.containment&&this._setContainment();if(d.cursor){if(a("body").css("cursor"))this._storedCursor=a("body").css("cursor");a("body").css("cursor",d.cursor)}if(d.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",d.opacity)}if(d.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex", -d.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",g,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",g,this._uiHash(this));if(a.ui.ddmanager)a.ui.ddmanager.current=this;a.ui.ddmanager&&!d.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,g);this.dragging=true;this.helper.addClass("ui-sortable-helper"); -this._mouseDrag(g);return true},_mouseDrag:function(g){this.position=this._generatePosition(g);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var d=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-g.pageY=0;d--){c=this.items[d];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!a.contains(this.placeholder[0],e)&&(this.options.type== -"semi-dynamic"?!a.contains(this.element[0],e):1)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(g,c);else break;this._trigger("change",g,this._uiHash());break}}this._contactContainers(g);a.ui.ddmanager&&a.ui.ddmanager.drag(this,g);this._trigger("sort",g,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(g,d){if(g){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,g);if(this.options.revert){var c= -this,e=c.placeholder.offset();c.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.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(g)})}else this._clear(g,d);return false}},cancel:function(){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 g=this.containers.length-1;g>=0;g--){this.containers[g]._trigger("deactivate",null,this._uiHash(this));if(this.containers[g].containerCache.over){this.containers[g]._trigger("out",null,this._uiHash(this));this.containers[g].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();a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};a(d).each(function(){var e=(a(g.item||this).attr(g.attribute||"id")||"").match(g.expression||/(.+)[-=_](.+)/);if(e)c.push((g.key||e[1]+"[]")+"="+ -(g.key&&g.expression?e[1]:e[2]))});!c.length&&g.key&&c.push(g.key+"=");return c.join("&")},toArray:function(g){var d=this._getItemsAsjQuery(g&&g.connected),c=[];g=g||{};d.each(function(){c.push(a(g.item||this).attr(g.attribute||"id")||"")});return c},_intersectsWith:function(g){var d=this.positionAbs.left,c=d+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,i=g.left,b=i+g.width,h=g.top,k=h+g.height,l=this.offset.click.top,j=this.offset.click.left;return this.options.tolerance== -"pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>g[this.floating?"width":"height"]?e+l>h&&e+li&&d+j0?"down":"up")},_getDragHorizontalDirection:function(){var g=this.positionAbs.left-this.lastPositionAbs.left;return g!=0&&(g>0?"right":"left")},refresh:function(g){this._refreshItems(g);this.refreshPositions();return this},_connectWith:function(){var g=this.options;return g.connectWith.constructor==String?[g.connectWith]: -g.connectWith},_getItemsAsjQuery:function(g){var d=[],c=[],e=this._connectWith();if(e&&g)for(g=e.length-1;g>=0;g--)for(var f=a(e[g]),i=f.length-1;i>=0;i--){var b=a.data(f[i],this.widgetName);if(b&&b!=this&&!b.options.disabled)c.push([a.isFunction(b.options.items)?b.options.items.call(b.element):a(b.options.items,b.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),b])}c.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}): -a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(g=c.length-1;g>=0;g--)c[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){for(var g=this.currentItem.find(":data("+this.widgetName+"-item)"),d=0;d=0;f--)for(var i=a(e[f]),b=i.length-1;b>=0;b--){var h=a.data(i[b],this.widgetName);if(h&&h!=this&&!h.options.disabled){c.push([a.isFunction(h.options.items)?h.options.items.call(h.element[0],g,{item:this.currentItem}):a(h.options.items,h.element),h]);this.containers.push(h)}}for(f=c.length-1;f>=0;f--){g=c[f][1];e=c[f][0];b=0;for(i=e.length;b< -i;b++){h=a(e[b]);h.data(this.widgetName+"-item",g);d.push({item:h,instance:g,width:0,height:0,left:0,top:0})}}},refreshPositions:function(g){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var d=this.items.length-1;d>=0;d--){var c=this.items[d];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?a(this.options.toleranceElement,c.item):c.item;if(!g){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(d=this.containers.length-1;d>=0;d--){e=this.containers[d].element.offset();this.containers[d].containerCache.left=e.left;this.containers[d].containerCache.top=e.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}return this},_createPlaceholder:function(g){var d= -g||this,c=d.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=a(document.createElement(d.currentItem[0].nodeName)).addClass(e||d.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,i){if(!(e&&!c.forcePlaceholderSize)){i.height()||i.height(d.currentItem.innerHeight()-parseInt(d.currentItem.css("paddingTop")||0,10)-parseInt(d.currentItem.css("paddingBottom")|| -0,10));i.width()||i.width(d.currentItem.innerWidth()-parseInt(d.currentItem.css("paddingLeft")||0,10)-parseInt(d.currentItem.css("paddingRight")||0,10))}}}}d.placeholder=a(c.placeholder.element.call(d.element,d.currentItem));d.currentItem.after(d.placeholder);c.placeholder.update(d,d.placeholder)},_contactContainers:function(g){for(var d=null,c=null,e=this.containers.length-1;e>=0;e--)if(!a.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(d&& -a.contains(this.containers[e].element[0],d.element[0]))){d=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",g,this._uiHash(this));this.containers[e].containerCache.over=0}if(d)if(this.containers.length===1){this.containers[c]._trigger("over",g,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){d=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],i=this.items.length- -1;i>=0;i--)if(a.contains(this.containers[c].element[0],this.items[i].item[0])){var b=this.items[i][this.containers[c].floating?"left":"top"];if(Math.abs(b-f) -this.containment[2])f=this.containment[2]+this.offset.click.left;if(g.pageY-this.offset.click.top>this.containment[3])i=this.containment[3]+this.offset.click.top}if(d.grid){i=this.originalPageY+Math.round((i-this.originalPageY)/d.grid[1])*d.grid[1];i=this.containment?!(i-this.offset.click.topthis.containment[3])?i:!(i-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(a.contains(this.containers[e].element[0],this.currentItem[0])&&!d){c.push(function(f){return function(i){f._trigger("receive",i,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(i){f._trigger("update", -i,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){d||c.push(function(f){return function(i){f._trigger("deactivate",i,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(i){f._trigger("out",i,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&a("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(!d){this._trigger("beforeStop",g,this._uiHash());for(e=0;e").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), -n={width:l.width(),height:l.height()},o=document.activeElement;l.wrap(m);if(l[0]===o||a.contains(l[0],o))a(o).focus();m=l.parent();if(l.css("position")==="static"){m.css({position:"relative"});l.css({position:"relative"})}else{a.extend(j,{position:l.css("position"),zIndex:l.css("z-index")});a.each(["top","left","bottom","right"],function(p,q){j[q]=l.css(q);if(isNaN(parseInt(j[q],10)))j[q]="auto"});l.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}l.css(n);return m.css(j).show()}, -removeWrapper:function(l){var j=document.activeElement;if(l.parent().is(".ui-effects-wrapper")){l.parent().replaceWith(l);if(l[0]===j||a.contains(l[0],j))a(j).focus()}return l},setTransition:function(l,j,m,n){n=n||{};a.each(j,function(o,p){var q=l.cssUnit(p);if(q[0]>0)n[p]=q[0]*m+q[1]});return n}});a.fn.extend({effect:function(){function l(q){function u(){a.isFunction(r)&&r.call(s[0]);a.isFunction(q)&&q()}var s=a(this),r=j.complete,t=j.mode;(s.is(":hidden")?t==="hide":t==="show")?u():o.call(s[0], -j,u)}var j=e.apply(this,arguments),m=j.mode,n=j.queue,o=a.effects.effect[j.effect],p=!o&&i&&a.effects[j.effect];if(a.fx.off||!(o||p))return m?this[m](j.duration,j.complete):this.each(function(){j.complete&&j.complete.call(this)});return o?n===false?this.each(l):this.queue(n||"fx",l):p.call(this,{options:j,duration:j.duration,callback:j.complete,mode:j.mode})},_show:a.fn.show,show:function(l){if(f(l))return this._show.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="show";return this.effect.call(this, -j)}},_hide:a.fn.hide,hide:function(l){if(f(l))return this._hide.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="hide";return this.effect.call(this,j)}},__toggle:a.fn.toggle,toggle:function(l){if(f(l)||typeof l==="boolean"||a.isFunction(l))return this.__toggle.apply(this,arguments);else{var j=e.apply(this,arguments);j.mode="toggle";return this.effect.call(this,j)}},cssUnit:function(l){var j=this.css(l),m=[];a.each(["em","px","%","pt"],function(n,o){if(j.indexOf(o)>0)m=[parseFloat(j), -o]});return m}});a.easing.jswing=a.easing.swing;a.extend(a.easing,{def:"easeOutQuad",swing:function(l,j,m,n,o){return a.easing[a.easing.def](l,j,m,n,o)},easeInQuad:function(l,j,m,n,o){return n*(j/=o)*j+m},easeOutQuad:function(l,j,m,n,o){return-n*(j/=o)*(j-2)+m},easeInOutQuad:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j+m;return-n/2*(--j*(j-2)-1)+m},easeInCubic:function(l,j,m,n,o){return n*(j/=o)*j*j+m},easeOutCubic:function(l,j,m,n,o){return n*((j=j/o-1)*j*j+1)+m},easeInOutCubic:function(l,j, -m,n,o){if((j/=o/2)<1)return n/2*j*j*j+m;return n/2*((j-=2)*j*j+2)+m},easeInQuart:function(l,j,m,n,o){return n*(j/=o)*j*j*j+m},easeOutQuart:function(l,j,m,n,o){return-n*((j=j/o-1)*j*j*j-1)+m},easeInOutQuart:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j+m;return-n/2*((j-=2)*j*j*j-2)+m},easeInQuint:function(l,j,m,n,o){return n*(j/=o)*j*j*j*j+m},easeOutQuint:function(l,j,m,n,o){return n*((j=j/o-1)*j*j*j*j+1)+m},easeInOutQuint:function(l,j,m,n,o){if((j/=o/2)<1)return n/2*j*j*j*j*j+m;return n/2* -((j-=2)*j*j*j*j+2)+m},easeInSine:function(l,j,m,n,o){return-n*Math.cos(j/o*(Math.PI/2))+n+m},easeOutSine:function(l,j,m,n,o){return n*Math.sin(j/o*(Math.PI/2))+m},easeInOutSine:function(l,j,m,n,o){return-n/2*(Math.cos(Math.PI*j/o)-1)+m},easeInExpo:function(l,j,m,n,o){return j==0?m:n*Math.pow(2,10*(j/o-1))+m},easeOutExpo:function(l,j,m,n,o){return j==o?m+n:n*(-Math.pow(2,-10*j/o)+1)+m},easeInOutExpo:function(l,j,m,n,o){if(j==0)return m;if(j==o)return m+n;if((j/=o/2)<1)return n/2*Math.pow(2,10*(j-1))+ -m;return n/2*(-Math.pow(2,-10*--j)+2)+m},easeInCirc:function(l,j,m,n,o){return-n*(Math.sqrt(1-(j/=o)*j)-1)+m},easeOutCirc:function(l,j,m,n,o){return n*Math.sqrt(1-(j=j/o-1)*j)+m},easeInOutCirc:function(l,j,m,n,o){if((j/=o/2)<1)return-n/2*(Math.sqrt(1-j*j)-1)+m;return n/2*(Math.sqrt(1-(j-=2)*j)+1)+m},easeInElastic:function(l,j,m,n,o){l=1.70158;var p=o*0.3,q=n;if(j==0)return m;if((j/=o)==1)return m+n;if(q1&&q.splice.apply(q,[1,0].concat(q.splice(u,l+1)));c.dequeue()}})(jQuery); -(function(a){a.effects.effect.clip=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide")==="show",i=(g.direction||"vertical")==="vertical",b=i?"height":"width";i=i?"top":"left";var h={},k,l;a.effects.save(c,e);c.show();k=a.effects.createWrapper(c).css({overflow:"hidden"});k=c[0].tagName==="IMG"?k:c;l=k[b]();if(f){k.css(b,0);k.css(i,l/2)}h[b]=f?l:0;h[i]=f?0:l/2;k.animate(h,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f|| -c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery); -(function(a){a.effects.effect.drop=function(g,d){var c=a(this),e=["position","top","bottom","left","right","opacity","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=g.direction||"left",h=b==="up"||b==="down"?"top":"left";b=b==="up"||b==="left"?"pos":"neg";var k={opacity:i?1:0},l;a.effects.save(c,e);c.show();a.effects.createWrapper(c);l=g.distance||c[h=="top"?"outerHeight":"outerWidth"]({margin:true})/2;if(i)c.css("opacity",0).css(h,b=="pos"?-l:l);k[h]=(i?b==="pos"?"+=":"-=": -b==="pos"?"-=":"+=")+l;c.animate(k,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery); -(function(a){a.effects.effect.explode=function(g,d){function c(){j.push(this);if(j.length==e*f){i.css({visibility:"visible"});a(j).remove();b||i.hide();d()}}var e=g.pieces?Math.round(Math.sqrt(g.pieces)):3,f=e,i=a(this),b=a.effects.setMode(i,g.mode||"hide")==="show",h=i.show().css("visibility","hidden").offset(),k=Math.ceil(i.outerWidth()/f),l=Math.ceil(i.outerHeight()/e),j=[],m,n,o,p,q,u;for(m=0;m").css({position:"absolute", -visibility:"visible",left:-n*k,top:-m*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:k,height:l,left:o+(b?q*k:0),top:p+(b?u*l:0),opacity:b?0:1}).animate({left:o+(b?0:q*k),top:p+(b?0:u*l),opacity:b?1:0},g.duration||500,g.easing,c)}}}})(jQuery); -(function(a){a.effects.effect.fade=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"toggle")==="hide";c.show();c.animate({opacity:e?0:1},{queue:false,duration:g.duration,easing:g.easing,complete:function(){e&&c.hide();d()}})}})(jQuery); -(function(a){a.effects.effect.fold=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"hide"),i=f==="show",b=f==="hide";f=g.size||15;var h=/([0-9]+)%/.exec(f),k=!!g.horizFirst,l=i!=k,j=l?["width","height"]:["height","width"],m=g.duration/2,n,o={},p={};a.effects.save(c,e);c.show();n=a.effects.createWrapper(c).css({overflow:"hidden"});l=l?[n.width(),n.height()]:[n.height(),n.width()];if(h)f=parseInt(h[1],10)/100*l[b?0:1];if(i)n.css(k? -{height:0,width:f}:{height:f,width:0});o[j[0]]=i?l[0]:f;p[j[1]]=i?l[1]:0;n.animate(o,m,g.easing).animate(p,m,g.easing,function(){b&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()})}})(jQuery); -(function(a){a.effects.effect.highlight=function(g,d){var c=a(this),e=["backgroundImage","backgroundColor","opacity"],f=a.effects.setMode(c,g.mode||"show"),i={backgroundColor:c.css("backgroundColor")};if(f==="hide")i.opacity=0;a.effects.save(c,e);c.show().css({backgroundImage:"none",backgroundColor:g.color||"#ffff99"}).animate(i,{queue:false,duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);d()}})}})(jQuery); -(function(a){a.effects.effect.pulsate=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"show"),f=e==="show",i=e==="hide";e=(g.times||5)*2+(f||e==="hide"?1:0);var b=g.duration/e,h=0,k=c.queue(),l=k.length;if(f||!c.is(":visible")){c.css("opacity",0).show();h=1}for(f=1;f1&&k.splice.apply(k,[1,0].concat(k.splice(l,e+1)));c.dequeue()}})(jQuery); -(function(a){a.effects.effect.puff=function(g,d){var c=a(this),e=a.effects.setMode(c,g.mode||"hide"),f=e==="hide",i=parseInt(g.percent,10)||150,b=i/100,h={height:c.height(),width:c.width()};a.extend(g,{effect:"scale",queue:false,fade:true,mode:e,complete:d,percent:f?i:100,from:f?h:{height:h.height*b,width:h.width*b}});c.effect(g)};a.effects.effect.scale=function(g,d){var c=a(this),e=a.extend(true,{},g),f=a.effects.setMode(c,g.mode||"effect"),i=parseInt(g.percent,10)||(parseInt(g.percent,10)==0?0: -f=="hide"?0:100),b=g.direction||"both",h=g.origin,k={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};i={y:b!="horizontal"?i/100:1,x:b!="vertical"?i/100:1};e.effect="size";e.queue=false;e.complete=d;if(f!="effect"){e.origin=h||["middle","center"];e.restore=true}e.from=g.from||(f=="show"?{height:0,width:0}:k);e.to={height:k.height*i.y,width:k.width*i.x,outerHeight:k.outerHeight*i.y,outerWidth:k.outerWidth*i.x};if(e.fade){if(f=="show"){e.from.opacity=0;e.to.opacity= -1}if(f=="hide"){e.from.opacity=1;e.to.opacity=0}}c.effect(e)};a.effects.effect.size=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],f=["position","top","bottom","left","right","overflow","opacity"],i=["width","height","overflow"],b=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],l=a.effects.setMode(c,g.mode||"effect"),j=g.restore|| -l!=="effect",m=g.scale||"both",n=g.origin||["middle","center"],o,p,q,u=c.css("position"),s=c.css("bottom")!=="auto"?"bottom":"top";originalHorizontalPositioning=c.css("right")!=="auto"?"right":"left";l==="show"&&c.show();o={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};c.from=g.from||o;c.to=g.to||o;q={from:{y:c.from.height/o.height,x:c.from.width/o.width},to:{y:c.to.height/o.height,x:c.to.width/o.width}};if(m=="box"||m=="both"){if(q.from.y!==q.to.y){e=e.concat(h); -c.from=a.effects.setTransition(c,h,q.from.y,c.from);c.to=a.effects.setTransition(c,h,q.to.y,c.to)}if(q.from.x!==q.to.x){e=e.concat(k);c.from=a.effects.setTransition(c,k,q.from.x,c.from);c.to=a.effects.setTransition(c,k,q.to.x,c.to)}}if(m=="content"||m=="both")if(q.from.y!==q.to.y){e=e.concat(b);c.from=a.effects.setTransition(c,b,q.from.y,c.from);c.to=a.effects.setTransition(c,b,q.to.y,c.to)}a.effects.save(c,j?e:f);c.show();a.effects.createWrapper(c);c.css("overflow","hidden").css(c.from);if(n){p= -a.effects.getBaseline(n,o);c.from.top=(o.outerHeight-c.outerHeight())*p.y;c.from.left=(o.outerWidth-c.outerWidth())*p.x;c.to.top=(o.outerHeight-c.to.outerHeight)*p.y;c.to.left=(o.outerWidth-c.to.outerWidth)*p.x}c.css(c.from);if(m=="content"||m=="both"){h=h.concat(["marginTop","marginBottom"]).concat(b);k=k.concat(["marginLeft","marginRight"]);i=e.concat(h).concat(k);c.find("*[width]").each(function(){var r=a(this),t={height:r.height(),width:r.width()};j&&a.effects.save(r,i);r.from={height:t.height* -q.from.y,width:t.width*q.from.x};r.to={height:t.height*q.to.y,width:t.width*q.to.x};if(q.from.y!=q.to.y){r.from=a.effects.setTransition(r,h,q.from.y,r.from);r.to=a.effects.setTransition(r,h,q.to.y,r.to)}if(q.from.x!=q.to.x){r.from=a.effects.setTransition(r,k,q.from.x,r.from);r.to=a.effects.setTransition(r,k,q.to.x,r.to)}r.css(r.from);r.animate(r.to,g.duration,g.easing,function(){j&&a.effects.restore(r,i)})})}c.animate(c.to,{queue:false,duration:g.duration,easing:g.easing,complete:function(){c.to.opacity=== -0&&c.css("opacity",c.from.opacity);l=="hide"&&c.hide();a.effects.restore(c,j?e:f);j||(u==="static"?c.css({position:"relative",top:c.to.top,left:c.to.left}):a.each([s,originalHorizontalPositioning],function(r,t){c.css(t,function(v,w){var x=parseInt(w,10),C=r?c.to.left:c.to.top,A=r?c.to.outerWidth-c.from.outerWidth:c.to.outerHeight-c.from.outerHeight,y=n[r]===t,D=n[r]==="middle"||n[r]==="center";if(w==="auto")return C+"px";if(!(t=="left"||t=="top"))if(u==="relative")C*=-1;else D||(C-=A*(y?-1:1));return x+ -C+"px"})}));a.effects.removeWrapper(c);d()}})}})(jQuery); -(function(a){a.effects.effect.shake=function(g,d){var c=a(this),e=["position","top","bottom","left","right","height","width"],f=a.effects.setMode(c,g.mode||"effect"),i=g.direction||"left",b=g.distance||20,h=g.times||3,k=h*2+1,l=g.duration,j=i=="up"||i=="down"?"top":"left",m=i=="up"||i=="left";i={};var n={},o={},p=c.queue(),q=p.length;a.effects.save(c,e);c.show();a.effects.createWrapper(c);i[j]=(m?"-=":"+=")+b;n[j]=(m?"+=":"-=")+b*2;o[j]=(m?"-=":"+=")+b*2;c.animate(i,l,g.easing);for(b=1;b1&&p.splice.apply(p,[1,0].concat(p.splice(q,k+1)));c.dequeue()}})(jQuery); -(function(a){a.effects.effect.slide=function(g,d){var c=a(this),e=["position","top","bottom","left","right","width","height"],f=a.effects.setMode(c,g.mode||"show"),i=f==="show",b=g.direction||"left",h=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left";var k,l={};a.effects.save(c,e);c.show();k=g.distance||c[h==="top"?"outerHeight":"outerWidth"]({margin:true});a.effects.createWrapper(c).css({overflow:"hidden"});if(i)c.css(h,b?isNaN(k)?"-"+k:-k:k);l[h]=(i?b?"+=":"-=":b?"-=":"+=")+k;c.animate(l,{queue:false, -duration:g.duration,easing:g.easing,complete:function(){f==="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d()}})}})(jQuery); -(function(a){a.effects.effect.transfer=function(g,d){var c=a(this),e=a(g.to),f=e.css("position")==="fixed",i=a("body"),b=f?i.scrollTop():0;i=f?i.scrollLeft():0;var h=e.offset();e={top:h.top-b,left:h.left-i,height:e.innerHeight(),width:e.innerWidth()};h=c.offset();var k=a('
    ').appendTo(document.body).addClass(g.className).css({top:h.top-b,left:h.left-i,height:c.innerHeight(),width:c.innerWidth(),position:f?"fixed":"absolute"}).animate(e,g.duration,g.easing,function(){k.remove(); -d()})}})(jQuery); -(function(a){a.widget("ui.accordion",{version:"1.9pre",options:{active:0,animated:"slide",collapsible:false,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var g=this.options;this.lastToggle={};this.element.addClass("ui-accordion ui-widget ui-helper-reset");this.headers=this.element.find(g.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all");this._hoverable(this.headers); -this._focusable(this.headers);this.headers.find(":first-child").addClass("ui-accordion-heading");this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(!g.collapsible&&g.active===false)g.active=0;if(g.active<0)g.active+=this.headers.length;this.active=this._findActive(g.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");this._createIcons(); -this.refresh();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown.accordion",a.proxy(this,"_keydown")).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();this.active.length?this.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):this.headers.eq(0).attr("tabIndex",0);a.browser.safari||this.headers.find("a").attr("tabIndex",-1);this._setupEvents(g.event)},_createIcons:function(){var g= -this.options.icons;if(g){a("").addClass("ui-accordion-header-icon ui-icon "+g.header).prependTo(this.headers);this.active.children(".ui-accordion-header-icon").removeClass(g.header).addClass(g.activeHeader);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-accordion-header-icon").remove();this.element.removeClass("ui-accordion-icons")},_destroy:function(){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").find("a").removeAttr("tabIndex").end().find(".ui-accordion-heading").removeClass("ui-accordion-heading"); -this._destroyIcons();var g=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");this.options.heightStyle!=="content"&&g.css("height","")},_setOption:function(g,d){if(g==="active")this._activate(d);else{if(g==="event"){this.options.event&&this.headers.unbind(this.options.event+".accordion",this._eventHandler);this._setupEvents(d)}this._super("_setOption", -g,d);g==="collapsible"&&!d&&this.options.active===false&&this._activate(0);if(g==="icons"){this._destroyIcons();d&&this._createIcons()}g==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-accordion-disabled ui-state-disabled",!!d)}},_keydown:function(g){if(!(this.options.disabled||g.altKey||g.ctrlKey)){var d=a.ui.keyCode,c=this.headers.length,e=this.headers.index(g.target),f=false;switch(g.keyCode){case d.RIGHT:case d.DOWN:f=this.headers[(e+1)%c];break;case d.LEFT:case d.UP:f=this.headers[(e- -1+c)%c];break;case d.SPACE:case d.ENTER:this._eventHandler(g)}if(f){a(g.target).attr("tabIndex",-1);a(f).attr("tabIndex",0);f.focus();g.preventDefault()}}},refresh:function(){var g=this.options,d=this.element.parent(),c,e;if(g.heightStyle==="fill"){if(!a.support.minHeight){e=d.css("overflow");d.css("overflow","hidden")}c=d.height();this.element.siblings(":visible").each(function(){var f=a(this),i=f.css("position");i==="absolute"||i==="fixed"||(c-=f.outerHeight(true))});e&&d.css("overflow",e);this.headers.each(function(){c-= -a(this).outerHeight(true)});this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else if(g.heightStyle==="auto"){c=0;this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c)}return this},_activate:function(g){g=this._findActive(g)[0];if(g!==this.active[0]){g=g||this.active[0];this._eventHandler({target:g,currentTarget:g,preventDefault:a.noop})}},_findActive:function(g){return typeof g==="number"? -this.headers.eq(g):a()},_setupEvents:function(g){g&&this.headers.bind(g.split(" ").join(".accordion ")+".accordion",a.proxy(this,"_eventHandler"))},_eventHandler:function(g){var d=this.options,c=this.active,e=a(g.currentTarget),f=e[0]===c[0],i=f&&d.collapsible,b=i?a():e.next(),h=c.next();b={oldHeader:c,oldContent:h,newHeader:i?a():e,newContent:b};g.preventDefault();if(!(d.disabled||f&&!d.collapsible||this._trigger("beforeActivate",g,b)===false)){d.active=i?false:this.headers.index(e);this.active= -f?a():e;this._toggle(b);c.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-accordion-header-icon").removeClass(d.icons.activeHeader).addClass(d.icons.header);if(!f){e.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-accordion-header-icon").removeClass(d.icons.header).addClass(d.icons.activeHeader);e.next().addClass("ui-accordion-content-active")}}},_toggle:function(g){function d(){c._completed(g)} -var c=this,e=c.options,f=g.newContent,i=g.oldContent;if(e.animated){var b=a.ui.accordion.animations;e=e.animated;var h;if(!b[e]){h={easing:a.easing[e]?e:"slide",duration:700};e="slide"}b[e]({widget:c,toShow:f,toHide:i,prevShow:c.lastToggle.toShow,prevHide:c.lastToggle.toHide,complete:d,down:f.length&&(!i.length||f.index()",options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var d=this,c=this.element[0].ownerDocument,e,f;this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"];this.element.addClass("ui-autocomplete-input").attr("autocomplete", -"off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(i){if(d.options.disabled||d.element.prop("readOnly"))f=e=true;else{f=e=false;var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:e=true;d._move("previousPage",i);break;case b.PAGE_DOWN:e=true;d._move("nextPage",i);break;case b.UP:e=true;d._move("previous",i);i.preventDefault();break;case b.DOWN:e=true;d._move("next",i);i.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:if(d.menu.active){e= -true;i.preventDefault()}case b.TAB:if(!d.menu.active)break;d.menu.select(i);break;case b.ESCAPE:if(d.menu.element.is(":visible")){d._value(d.term);d.close(i)}break;default:d._searchTimeout(i)}}}).bind("keypress.autocomplete",function(i){if(e){e=false;i.preventDefault()}else{var b=a.ui.keyCode;switch(i.keyCode){case b.PAGE_UP:d._move("previousPage",i);break;case b.PAGE_DOWN:d._move("nextPage",i);break;case b.UP:d._move("previous",i);i.preventDefault();break;case b.DOWN:d._move("next",i);i.preventDefault()}}}).bind("input.autocomplete", -function(i){if(f){f=false;i.preventDefault()}else d._searchTimeout(i)}).bind("focus.autocomplete",function(){if(!d.options.disabled){d.selectedItem=null;d.previous=d._value()}}).bind("blur.autocomplete",function(i){if(!d.options.disabled){clearTimeout(d.searching);d.closing=setTimeout(function(){d.close(i);d._change(i)},150)}});this._initSource();this.response=function(){return d._response.apply(d,arguments)};this.menu=a("
      ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body", -c)[0]).mousedown(function(i){var b=d.menu.element[0];a(i.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(h){h.target!==d.element[0]&&h.target!==b&&!a.contains(b,h.target)&&d.close()})},1);setTimeout(function(){clearTimeout(d.closing)},13)}).menu({input:a(),focus:function(i,b){var h=b.item.data("item.autocomplete");false!==d._trigger("focus",i,{item:h})&&/^key/.test(i.originalEvent.type)&&d._value(h.value)},select:function(i,b){var h=b.item.data("item.autocomplete"), -k=d.previous;if(d.element[0]!==c.activeElement){d.element.focus();d.previous=k;setTimeout(function(){d.previous=k;d.selectedItem=h},1)}false!==d._trigger("select",i,{item:h})&&d._value(h.value);d.term=d._value();d.close(i);d.selectedItem=h}}).zIndex(this.element.zIndex()+1).hide().data("menu");a.fn.bgiframe&&this.menu.element.bgiframe()},_destroy:function(){clearTimeout(this.searching);this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); -this.menu.element.remove()},_setOption:function(d,c){this._super("_setOption",d,c);d==="source"&&this._initSource();if(d==="appendTo")this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]);d==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var d=this,c,e;if(a.isArray(this.options.source)){c=this.options.source;this.source=function(f,i){i(a.ui.autocomplete.filter(c,f.term))}}else if(typeof this.options.source==="string"){e=this.options.source;this.source=function(f, -i){d.xhr&&d.xhr.abort();d.xhr=a.ajax({url:e,data:f,dataType:"json",autocompleteRequest:++g,success:function(b){this.autocompleteRequest===g&&i(b)},error:function(){this.autocompleteRequest===g&&i([])}})}}else this.source=this.options.source},_searchTimeout:function(d){var c=this;clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!==c._value()){c.selectedItem=null;c.search(null,d)}},c.options.delay)},search:function(d,c){d=d!=null?d:this._value();this.term=this._value();if(d.length< -this.options.minLength)return this.close(c);clearTimeout(this.closing);if(this._trigger("search",c)!==false)return this._search(d)},_search:function(d){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:d},this.response)},_response:function(d){if(d)d=this._normalize(d);this._trigger("response",null,{content:d});if(!this.options.disabled&&d&&d.length){this._suggest(d);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")}, -close:function(d){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.blur();this._trigger("close",d)}},_change:function(d){this.previous!==this._value()&&this._trigger("change",d,{item:this.selectedItem})},_normalize:function(d){if(d.length&&d[0].label&&d[0].value)return d;return a.map(d,function(c){if(typeof c==="string")return{label:c,value:c};return a.extend({label:c.label||c.value,value:c.value||c.label},c)})},_suggest:function(d){var c=this.menu.element.empty().zIndex(this.element.zIndex()+ -1);this._renderMenu(c,d);this.menu.blur();this.menu.refresh();c.show();this._resizeMenu();c.position(a.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var d=this.menu.element;d.outerWidth(Math.max(d.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(d,c){var e=this;a.each(c,function(f,i){e._renderItem(d,i)})},_renderItem:function(d,c){return a("
    • ").data("item.autocomplete",c).append(a("").text(c.label)).appendTo(d)}, -_move:function(d,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(d)||this.menu.last()&&/^next/.test(d)){this._value(this.term);this.menu.blur()}else this.menu[d](c);else this.search(null,c)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)}});a.extend(a.ui.autocomplete,{escapeRegex:function(d){return d.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(d,c){var e=RegExp(a.ui.autocomplete.escapeRegex(c), -"i");return a.grep(d,function(f){return e.test(f.label||f.value||f)})}})})(jQuery); -(function(a){var g,d,c,e,f=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},i=function(b){var h=b.name,k=b.form,l=a([]);if(h)l=k?a(k).find("[name='"+h+"']"):a("[name='"+h+"']",b.ownerDocument).filter(function(){return!this.form});return l};a.widget("ui.button",{version:"1.9pre",defaultElement:"').addClass(this._triggerClass).html(j==""?k:a("").attr({src:j,alt:k,title:k})));b[l?"before":"after"](h.trigger);h.trigger.click(function(){a.datepicker._datepickerShowing&&a.datepicker._lastInput==b[0]?a.datepicker._hideDatepicker(): -a.datepicker._showDatepicker(b[0]);return false})}},_autoSize:function(b){if(this._get(b,"autoSize")&&!b.inline){var h=new Date(2009,11,20),k=this._get(b,"dateFormat");if(k.match(/[DM]/)){var l=function(j){for(var m=0,n=0,o=0;om){m=j[o].length;n=o}return n};h.setMonth(l(this._get(b,k.match(/MM/)?"monthNames":"monthNamesShort")));h.setDate(l(this._get(b,k.match(/DD/)?"dayNames":"dayNamesShort"))+20-h.getDay())}b.input.attr("size",this._formatDate(b,h).length)}},_inlineDatepicker:function(b, -h){var k=a(b);if(!k.hasClass(this.markerClassName)){k.addClass(this.markerClassName).append(h.dpDiv).bind("setData.datepicker",function(l,j,m){h.settings[j]=m}).bind("getData.datepicker",function(l,j){return this._get(h,j)});a.data(b,"datepicker",h);this._setDate(h,this._getDefaultDate(h),true);this._updateDatepicker(h);this._updateAlternate(h);h.settings.disabled&&this._disableDatepicker(b);h.dpDiv.css("display","block")}},_dialogDatepicker:function(b,h,k,l,j){b=this._dialogInst;if(!b){this.uuid+= -1;this._dialogInput=a('');this._dialogInput.keydown(this._doKeyDown);a("body").append(this._dialogInput);b=this._dialogInst=this._newInst(this._dialogInput,false);b.settings={};a.data(this._dialogInput[0],"datepicker",b)}e(b.settings,l||{});h=h&&h.constructor==Date?this._formatDate(b,h):h;this._dialogInput.val(h);this._pos=j?j.length?j:[j.pageX,j.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");b.settings.onSelect=k;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);a.blockUI&&a.blockUI(this.dpDiv);a.data(this._dialogInput[0],"datepicker",b);return this},_destroyDatepicker:function(b){var h= -a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();a.removeData(b,"datepicker");if(l=="input"){k.append.remove();k.trigger.remove();h.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(l=="div"||l=="span")h.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(b){var h=a(b),k=a.data(b,"datepicker");if(h.hasClass(this.markerClassName)){var l= -b.nodeName.toLowerCase();if(l=="input"){b.disabled=false;k.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().removeClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",false)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b?null:j})}},_disableDatepicker:function(b){var h=a(b),k=a.data(b, -"datepicker");if(h.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();if(l=="input"){b.disabled=true;k.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(l=="div"||l=="span"){h=h.children("."+this._inlineClass);h.children().addClass("ui-state-disabled");h.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",true)}this._disabledInputs=a.map(this._disabledInputs,function(j){return j==b? -null:j});this._disabledInputs[this._disabledInputs.length]=b}},_isDisabledDatepicker:function(b){if(!b)return false;for(var h=0;h-1}},_doKeyUp:function(b){b=a.datepicker._getInst(b.target);if(b.input.val()!=b.lastVal)try{if(a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,a.datepicker._getFormatConfig(b))){a.datepicker._setDateFromField(b);a.datepicker._updateAlternate(b);a.datepicker._updateDatepicker(b)}}catch(h){a.datepicker.log(h)}return true},_showDatepicker:function(b){b=b.target||b;if(b.nodeName.toLowerCase()!= -"input")b=a("input",b.parentNode)[0];if(!(a.datepicker._isDisabledDatepicker(b)||a.datepicker._lastInput==b)){var h=a.datepicker._getInst(b);if(a.datepicker._curInst&&a.datepicker._curInst!=h){a.datepicker._curInst.dpDiv.stop(true,true);h&&a.datepicker._datepickerShowing&&a.datepicker._hideDatepicker(a.datepicker._curInst.input[0])}var k=a.datepicker._get(h,"beforeShow");k=k?k.apply(b,[b,h]):{};if(k!==false){e(h.settings,k);h.lastVal=null;a.datepicker._lastInput=b;a.datepicker._setDateFromField(h); -if(a.datepicker._inDialog)b.value="";if(!a.datepicker._pos){a.datepicker._pos=a.datepicker._findPos(b);a.datepicker._pos[1]+=b.offsetHeight}var l=false;a(b).parents().each(function(){l|=a(this).css("position")=="fixed";return!l});if(l&&a.browser.opera){a.datepicker._pos[0]-=document.documentElement.scrollLeft;a.datepicker._pos[1]-=document.documentElement.scrollTop}k={left:a.datepicker._pos[0],top:a.datepicker._pos[1]};a.datepicker._pos=null;h.dpDiv.empty();h.dpDiv.css({position:"absolute",display:"block", -top:"-1000px"});a.datepicker._updateDatepicker(h);k=a.datepicker._checkOffset(h,k,l);h.dpDiv.css({position:a.datepicker._inDialog&&a.blockUI?"static":l?"fixed":"absolute",display:"none",left:k.left+"px",top:k.top+"px"});if(!h.inline){k=a.datepicker._get(h,"showAnim");var j=a.datepicker._get(h,"duration"),m=function(){var n=h.dpDiv.find("iframe.ui-datepicker-cover");if(n.length){var o=a.datepicker._getBorders(h.dpDiv);n.css({left:-o[0],top:-o[1],width:h.dpDiv.outerWidth(),height:h.dpDiv.outerHeight()})}}; -h.dpDiv.zIndex(a(b).zIndex()+1);a.datepicker._datepickerShowing=true;if(a.effects&&(a.effects.effect[k]||a.effects[k]))h.dpDiv.show(k,a.datepicker._get(h,"showOptions"),j,m);else h.dpDiv[k||"show"](k?j:null,m);if(!k||!j)m();h.input.is(":visible")&&!h.input.is(":disabled")&&h.input.focus();a.datepicker._curInst=h}}}},_updateDatepicker:function(b){this.maxRows=4;var h=a.datepicker._getBorders(b.dpDiv);i=b;b.dpDiv.empty().append(this._generateHTML(b));var k=b.dpDiv.find("iframe.ui-datepicker-cover"); -k.length&&k.css({left:-h[0],top:-h[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()});b.dpDiv.find("."+this._dayOverClass+" a").mouseover();h=this._getNumberOfMonths(b);k=h[1];b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");k>1&&b.dpDiv.addClass("ui-datepicker-multi-"+k).css("width",17*k+"em");b.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");b.dpDiv[(this._get(b,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"); -b==a.datepicker._curInst&&a.datepicker._datepickerShowing&&b.input&&b.input.is(":visible")&&!b.input.is(":disabled")&&b.input[0]!=document.activeElement&&b.input.focus();if(b.yearshtml){var l=b.yearshtml;setTimeout(function(){l===b.yearshtml&&b.yearshtml&&b.dpDiv.find("select.ui-datepicker-year:first").replaceWith(b.yearshtml);l=b.yearshtml=null},0)}},_getBorders:function(b){var h=function(k){return{thin:1,medium:2,thick:3}[k]||k};return[parseFloat(h(b.css("border-left-width"))),parseFloat(h(b.css("border-top-width")))]}, -_checkOffset:function(b,h,k){var l=b.dpDiv.outerWidth(),j=b.dpDiv.outerHeight(),m=b.input?b.input.outerWidth():0,n=b.input?b.input.outerHeight():0,o=document.documentElement.clientWidth+a(document).scrollLeft(),p=document.documentElement.clientHeight+a(document).scrollTop();h.left-=this._get(b,"isRTL")?l-m:0;h.left-=k&&h.left==b.input.offset().left?a(document).scrollLeft():0;h.top-=k&&h.top==b.input.offset().top+n?a(document).scrollTop():0;h.left-=Math.min(h.left,h.left+l>o&&o>l?Math.abs(h.left+l- -o):0);h.top-=Math.min(h.top,h.top+j>p&&p>j?Math.abs(j+n):0);return h},_findPos:function(b){for(var h=this._get(this._getInst(b),"isRTL");b&&(b.type=="hidden"||b.nodeType!=1||a.expr.filters.hidden(b));)b=b[h?"previousSibling":"nextSibling"];b=a(b).offset();return[b.left,b.top]},_hideDatepicker:function(b){var h=this._curInst;if(!(!h||b&&h!=a.data(b,"datepicker")))if(this._datepickerShowing){b=this._get(h,"showAnim");var k=this._get(h,"duration"),l=function(){a.datepicker._tidyDialog(h);this._curInst= -null};if(a.effects&&(a.effects.effect[b]||a.effects[b]))h.dpDiv.hide(b,a.datepicker._get(h,"showOptions"),k,l);else h.dpDiv[b=="slideDown"?"slideUp":b=="fadeIn"?"fadeOut":"hide"](b?k:null,l);b||l();this._datepickerShowing=false;if(b=this._get(h,"onClose"))b.apply(h.input?h.input[0]:null,[h.input?h.input.val():"",h]);this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(a.blockUI){a.unblockUI();a("body").append(this.dpDiv)}}this._inDialog=false}}, -_tidyDialog:function(b){b.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(b){if(a.datepicker._curInst){b=a(b.target);var h=a.datepicker._getInst(b[0]);if(b[0].id!=a.datepicker._mainDivId&&b.parents("#"+a.datepicker._mainDivId).length==0&&!b.hasClass(a.datepicker.markerClassName)&&!b.hasClass(a.datepicker._triggerClass)&&a.datepicker._datepickerShowing&&!(a.datepicker._inDialog&&a.blockUI)||b.hasClass(a.datepicker.markerClassName)&&a.datepicker._curInst!= -h)a.datepicker._hideDatepicker()}},_adjustDate:function(b,h,k){b=a(b);var l=this._getInst(b[0]);if(!this._isDisabledDatepicker(b[0])){this._adjustInstDate(l,h+(k=="M"?this._get(l,"showCurrentAtPos"):0),k);this._updateDatepicker(l)}},_gotoToday:function(b){b=a(b);var h=this._getInst(b[0]);if(this._get(h,"gotoCurrent")&&h.currentDay){h.selectedDay=h.currentDay;h.drawMonth=h.selectedMonth=h.currentMonth;h.drawYear=h.selectedYear=h.currentYear}else{var k=new Date;h.selectedDay=k.getDate();h.drawMonth= -h.selectedMonth=k.getMonth();h.drawYear=h.selectedYear=k.getFullYear()}this._notifyChange(h);this._adjustDate(b)},_selectMonthYear:function(b,h,k){b=a(b);var l=this._getInst(b[0]);l["selected"+(k=="M"?"Month":"Year")]=l["draw"+(k=="M"?"Month":"Year")]=parseInt(h.options[h.selectedIndex].value,10);this._notifyChange(l);this._adjustDate(b)},_selectDay:function(b,h,k,l){var j=a(b);if(!(a(l).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay= -a("a",l).html();j.selectedMonth=j.currentMonth=h;j.selectedYear=j.currentYear=k;this._selectDate(b,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(b){b=a(b);this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(b,h){var k=this._getInst(a(b)[0]);h=h!=null?h:this._formatDate(k);k.input&&k.input.val(h);this._updateAlternate(k);var l=this._get(k,"onSelect");if(l)l.apply(k.input?k.input[0]:null,[h,k]);else k.input&&k.input.trigger("change");if(k.inline)this._updateDatepicker(k); -else{this._hideDatepicker();this._lastInput=k.input[0];typeof k.input[0]!="object"&&k.input.focus();this._lastInput=null}},_updateAlternate:function(b){var h=this._get(b,"altField");if(h){var k=this._get(b,"altFormat")||this._get(b,"dateFormat"),l=this._getDate(b),j=this.formatDate(k,l,this._getFormatConfig(b));a(h).each(function(){a(this).val(j)})}},noWeekends:function(b){b=b.getDay();return[b>0&&b<6,""]},iso8601Week:function(b){b=new Date(b.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var h= -b.getTime();b.setMonth(0);b.setDate(1);return Math.floor(Math.round((h-b)/864E5)/7)+1},parseDate:function(b,h,k){if(b==null||h==null)throw"Invalid arguments";h=typeof h=="object"?h.toString():h+"";if(h=="")return null;var l=(k?k.shortYearCutoff:null)||this._defaults.shortYearCutoff;l=typeof l!="string"?l:(new Date).getFullYear()%100+parseInt(l,10);for(var j=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,m=(k?k.dayNames:null)||this._defaults.dayNames,n=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort, -o=(k?k.monthNames:null)||this._defaults.monthNames,p=k=-1,q=-1,u=-1,s=false,r=function(y){(y=C+1-1){p=1;q=u;do{l=this._getDaysInMonth(k,p-1); -if(q<=l)break;p++;q-=l}while(1)}A=this._daylightSavingAdjust(new Date(k,p-1,q));if(A.getFullYear()!=k||A.getMonth()+1!=p||A.getDate()!=q)throw"Invalid date";return A},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))*864E9,formatDate:function(b,h,k){if(!h)return""; -var l=(k?k.dayNamesShort:null)||this._defaults.dayNamesShort,j=(k?k.dayNames:null)||this._defaults.dayNames,m=(k?k.monthNamesShort:null)||this._defaults.monthNamesShort;k=(k?k.monthNames:null)||this._defaults.monthNames;var n=function(r){(r=s+112?b.getHours()+2:0);return b},_setDate:function(b,h,k){var l=!h,j=b.selectedMonth,m=b.selectedYear;h=this._restrictMinMax(b,this._determineDate(b,h,new Date));b.selectedDay=b.currentDay=h.getDate();b.drawMonth=b.selectedMonth=b.currentMonth=h.getMonth();b.drawYear=b.selectedYear=b.currentYear=h.getFullYear();if((j!=b.selectedMonth||m!=b.selectedYear)&& -!k)this._notifyChange(b);this._adjustInstDate(b);if(b.input)b.input.val(l?"":this._formatDate(b))},_getDate:function(b){return!b.currentYear||b.input&&b.input.val()==""?null:this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay))},_generateHTML:function(b){var h=new Date;h=this._daylightSavingAdjust(new Date(h.getFullYear(),h.getMonth(),h.getDate()));var k=this._get(b,"isRTL"),l=this._get(b,"showButtonPanel"),j=this._get(b,"hideIfNoPrevNext"),m=this._get(b,"navigationAsDateFormat"), -n=this._getNumberOfMonths(b),o=this._get(b,"showCurrentAtPos"),p=this._get(b,"stepMonths"),q=n[0]!=1||n[1]!=1,u=this._daylightSavingAdjust(!b.currentDay?new Date(9999,9,9):new Date(b.currentYear,b.currentMonth,b.currentDay)),s=this._getMinMaxDate(b,"min"),r=this._getMinMaxDate(b,"max");o=b.drawMonth-o;var t=b.drawYear;if(o<0){o+=12;t--}if(r){var v=this._daylightSavingAdjust(new Date(r.getFullYear(),r.getMonth()-n[0]*n[1]+1,r.getDate()));for(v=s&&v -v;){o--;if(o<0){o=11;t--}}}b.drawMonth=o;b.drawYear=t;v=this._get(b,"prevText");v=!m?v:this.formatDate(v,this._daylightSavingAdjust(new Date(t,o-p,1)),this._getFormatConfig(b));v=this._canAdjustMonth(b,-1,t,o)?''+v+"":j?"":''+v+"";var w=this._get(b,"nextText");w=!m?w:this.formatDate(w,this._daylightSavingAdjust(new Date(t,o+p,1)),this._getFormatConfig(b));j=this._canAdjustMonth(b,+1,t,o)?''+w+"":j?"":''+w+"";p=this._get(b,"currentText");w=this._get(b,"gotoCurrent")&&b.currentDay?u:h;p=!m?p:this.formatDate(p,w,this._getFormatConfig(b));m=!b.inline?'":"";l=l?'
      '+(k?m:"")+(this._isInRange(b, -w)?'":"")+(k?"":m)+"
      ":"";m=parseInt(this._get(b,"firstDay"),10);m=isNaN(m)?0:m;p=this._get(b,"showWeek");w=this._get(b,"dayNames");this._get(b,"dayNamesShort");var x=this._get(b,"dayNamesMin"),C=this._get(b,"monthNames"),A=this._get(b,"monthNamesShort"),y=this._get(b,"beforeShowDay"),D=this._get(b,"showOtherMonths"), -J=this._get(b,"selectOtherMonths");this._get(b,"calculateWeek");for(var I=this._getDefaultDate(b),H="",E=0;E1)switch(M){case 0:F+=" ui-datepicker-group-first";B=" ui-corner-"+(k?"right":"left");break;case n[1]-1:F+=" ui-datepicker-group-last";B=" ui-corner-"+(k?"left":"right");break;default:F+=" ui-datepicker-group-middle"; -B=""}F+='">'}F+='
      '+(/all|left/.test(B)&&E==0?k?j:v:"")+(/all|right/.test(B)&&E==0?k?v:j:"")+this._generateMonthYearHeader(b,o,t,s,r,E>0||M>0,C,A)+'
      ';var G=p?'":"";for(B=0;B<7;B++){var z=(B+m)%7;G+="=5?' class="ui-datepicker-week-end"':"")+'>'+x[z]+""}F+= -G+"";G=this._getDaysInMonth(t,o);if(t==b.selectedYear&&o==b.selectedMonth)b.selectedDay=Math.min(b.selectedDay,G);B=(this._getFirstDayOfMonth(t,o)-m+7)%7;G=Math.ceil((B+G)/7);this.maxRows=G=q?this.maxRows>G?this.maxRows:G:G;z=this._daylightSavingAdjust(new Date(t,o,1-B));for(var Q=0;Q";var R=!p?"":'";for(B=0;B<7;B++){var N=y?y.apply(b.input?b.input[0]:null,[z]):[true,""],L=z.getMonth()!= -o,O=L&&!J||!N[0]||s&&zr;R+='";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}F+=R+""}o++;if(o>11){o=0;t++}F+="
      '+this._get(b,"weekHeader")+"
      '+this._get(b,"calculateWeek")(z)+""+(L&&!D?" ":O?''+z.getDate()+"":''+z.getDate()+"")+"
      "+(q?""+ -(n[0]>0&&M==n[1]-1?'
      ':""):"");K+=F}H+=K}H+=l+(a.browser.msie&&parseInt(a.browser.version,10)<7&&!b.inline?'':"");b._keyEvent=false;return H},_generateMonthYearHeader:function(b,h,k,l,j,m,n,o){var p=this._get(b,"changeMonth"),q=this._get(b,"changeYear"),u=this._get(b,"showMonthAfterYear"),s='
      ',r="";if(m||!p)r+=''+ -n[h]+"";else{n=l&&l.getFullYear()==k;var t=j&&j.getFullYear()==k;r+='"}u||(s+=r+(m||!(p&&q)?" ":""));if(!b.yearshtml){b.yearshtml="";if(m||!q)s+=''+k+"";else{o=this._get(b, -"yearRange").split(":");var w=(new Date).getFullYear();n=function(x){x=x.match(/c[+-].*/)?k+parseInt(x.substring(1),10):x.match(/[+-].*/)?w+parseInt(x,10):parseInt(x,10);return isNaN(x)?w:x};h=n(o[0]);o=Math.max(h,n(o[1]||""));h=l?Math.max(h,l.getFullYear()):h;o=j?Math.min(o,j.getFullYear()):o;for(b.yearshtml+='";s+=b.yearshtml;b.yearshtml=null}}s+=this._get(b,"yearSuffix");if(u)s+=(m||!(p&&q)?" ":"")+r;s+="
      ";return s},_adjustInstDate:function(b,h,k){var l=b.drawYear+(k=="Y"?h:0),j=b.drawMonth+(k=="M"?h:0);h=Math.min(b.selectedDay,this._getDaysInMonth(l,j))+(k=="D"?h:0);l=this._restrictMinMax(b,this._daylightSavingAdjust(new Date(l,j,h)));b.selectedDay=l.getDate();b.drawMonth=b.selectedMonth=l.getMonth();b.drawYear=b.selectedYear=l.getFullYear();if(k== -"M"||k=="Y")this._notifyChange(b)},_restrictMinMax:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");k=k&&hl?l:k},_notifyChange:function(b){var h=this._get(b,"onChangeMonthYear");if(h)h.apply(b.input?b.input[0]:null,[b.selectedYear,b.selectedMonth+1,b])},_getNumberOfMonths:function(b){b=this._get(b,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(b,h){return this._determineDate(b,this._get(b,h+"Date"),null)}, -_getDaysInMonth:function(b,h){return 32-this._daylightSavingAdjust(new Date(b,h,32)).getDate()},_getFirstDayOfMonth:function(b,h){return(new Date(b,h,1)).getDay()},_canAdjustMonth:function(b,h,k,l){var j=this._getNumberOfMonths(b);k=this._daylightSavingAdjust(new Date(k,l+(h<0?h:j[0]*j[1]),1));h<0&&k.setDate(this._getDaysInMonth(k.getFullYear(),k.getMonth()));return this._isInRange(b,k)},_isInRange:function(b,h){var k=this._getMinMaxDate(b,"min"),l=this._getMinMaxDate(b,"max");return(!k||h.getTime()>= -k.getTime())&&(!l||h.getTime()<=l.getTime())},_getFormatConfig:function(b){var h=this._get(b,"shortYearCutoff");h=typeof h!="string"?h:(new Date).getFullYear()%100+parseInt(h,10);return{shortYearCutoff:h,dayNamesShort:this._get(b,"dayNamesShort"),dayNames:this._get(b,"dayNames"),monthNamesShort:this._get(b,"monthNamesShort"),monthNames:this._get(b,"monthNames")}},_formatDate:function(b,h,k,l){if(!h){b.currentDay=b.selectedDay;b.currentMonth=b.selectedMonth;b.currentYear=b.selectedYear}h=h?typeof h== -"object"?h:this._daylightSavingAdjust(new Date(l,k,h)):this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay));return this.formatDate(this._get(b,"dateFormat"),h,this._getFormatConfig(b))}});a.fn.datepicker=function(b){if(!this.length)return this;if(!a.datepicker.initialized){a(document).mousedown(a.datepicker._checkExternalClick).find("body").append(a.datepicker.dpDiv);a.datepicker.initialized=true}var h=Array.prototype.slice.call(arguments,1);if(typeof b=="string"&&(b=="isDisabled"|| -b=="getDate"||b=="widget"))return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(h));if(b=="option"&&arguments.length==2&&typeof arguments[1]=="string")return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(h));return this.each(function(){typeof b=="string"?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this].concat(h)):a.datepicker._attachDatepicker(this,b)})};a.datepicker=new d;a.datepicker.initialized=false;a.datepicker.uuid=(new Date).getTime(); -a.datepicker.version="1.9pre";window["DP_jQuery_"+f]=a})(jQuery); -(function(a,g){var d={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},c={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};a.widget("ui.dialog",{version:"1.9pre",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",of:window,collision:"fit",using:function(e){var f=a(this).css(e).offset().top; -f<0&&a(this).css("top",e.top-f)}},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 e=this,f=e.options,i=f.title||" ",b=a.ui.dialog.getTitleId(e.element),h=(e.uiDialog=a("
      ")).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+f.dialogClass).css({display:"none",outline:0,zIndex:f.zIndex}).attr("tabIndex", --1).keydown(function(j){if(f.closeOnEscape&&!j.isDefaultPrevented()&&j.keyCode&&j.keyCode===a.ui.keyCode.ESCAPE){e.close(j);j.preventDefault()}}).attr({role:"dialog","aria-labelledby":b}).mousedown(function(j){e.moveToTop(false,j)}).appendTo("body");e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(h);var k=(e.uiDialogTitlebar=a("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(h),l=a("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", -"button").click(function(j){j.preventDefault();e.close(j)}).appendTo(k);(e.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(f.closeText).appendTo(l);a("").addClass("ui-dialog-title").attr("id",b).html(i).prependTo(k);k.find("*").add(k).disableSelection();this._hoverable(l);this._focusable(l);f.draggable&&a.fn.draggable&&e._makeDraggable();f.resizable&&a.fn.resizable&&e._makeResizable();e._createButtons(f.buttons);e._isOpen=false;a.fn.bgiframe&&h.bgiframe()}, -_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){this.overlay&&this.overlay.destroy();this.uiDialog.hide();this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();this.originalTitle&&this.element.attr("title",this.originalTitle)},widget:function(){return this.uiDialog},close:function(e){if(!this._isOpen)return f;var f=this,i,b;if(false!==f._trigger("beforeClose",e)){f._isOpen=false;f.overlay&&f.overlay.destroy();f.uiDialog.unbind("keypress.ui-dialog"); -if(f.options.hide)f.uiDialog.hide(f.options.hide,function(){f._trigger("close",e)});else{f.uiDialog.hide();f._trigger("close",e)}a.ui.dialog.overlay.resize();if(f.options.modal){i=0;a(".ui-dialog").each(function(){if(this!==f.uiDialog[0]){b=a(this).css("z-index");isNaN(b)||(i=Math.max(i,b))}});a.ui.dialog.maxZ=i}return f}},isOpen:function(){return this._isOpen},moveToTop:function(e,f){var i=this.options;if(i.modal&&!e||!i.stack&&!i.modal)return this._trigger("focus",f);if(i.zIndex>a.ui.dialog.maxZ)a.ui.dialog.maxZ= -i.zIndex;if(this.overlay){a.ui.dialog.maxZ+=1;a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ;this.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ)}i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()};a.ui.dialog.maxZ+=1;this.uiDialog.css("z-index",a.ui.dialog.maxZ);this.element.attr(i);this._trigger("focus",f);return this},open:function(){if(!this._isOpen){var e=this.options,f=this.uiDialog;this._size();this._position(e.position);f.show(e.show);this.overlay=e.modal?new a.ui.dialog.overlay(this): -null;this.moveToTop(true);e.modal&&f.bind("keydown.ui-dialog",function(i){if(i.keyCode===a.ui.keyCode.TAB){var b=a(":tabbable",this),h=b.filter(":first");b=b.filter(":last");if(i.target===b[0]&&!i.shiftKey){h.focus(1);return false}else if(i.target===h[0]&&i.shiftKey){b.focus(1);return false}}});e=this.element.find(":tabbable");if(!e.length){e=f.find(".ui-dialog-buttonpane :tabbable");e.length||(e=f)}e.eq(0).focus();this._isOpen=true;this._trigger("open");return this}},_createButtons:function(e){var f= -this,i=false;f.uiDialog.find(".ui-dialog-buttonpane").remove();typeof e==="object"&&e!==null&&a.each(e,function(){return!(i=true)});if(i){var b=a("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),h=a("
      ").addClass("ui-dialog-buttonset").appendTo(b);a.each(e,function(k,l){l=a.isFunction(l)?{click:l,text:k}:l;var j=a("
      ").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()},value:function(d){if(d===g)return this._value();this._setOption("value",d);return this},_setOption:function(d,c){if(d==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}this._super("_setOption",d,c)},_value:function(){var d=this.options.value;if(typeof d!=="number")d=0;return Math.min(this.options.max,Math.max(this.min,d))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var d= -this.value(),c=this._percentage();if(this.oldValue!==d){this.oldValue=d;this._trigger("change")}this.valueDiv.toggle(d>this.min).toggleClass("ui-corner-right",d===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",d)}})})(jQuery); -(function(a){a.widget("ui.slider",a.ui.mouse,{version:"1.9pre",widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var g=this,d=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),e=d.values&&d.values.length||1,f=[];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"+(d.disabled?" ui-slider-disabled ui-disabled":""));this.range=a([]);if(d.range){if(d.range===true){if(!d.values)d.values=[this._valueMin(),this._valueMin()];if(d.values.length&&d.values.length!==2)d.values=[d.values[0],d.values[0]]}this.range=a("
      ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:""))}for(var i=c.length;i"); -this.handles=c.add(a(f.join("")).appendTo(g.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(b){b.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(d.disabled)a(this).blur();else{a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(b){a(this).data("index.ui-slider-handle", -b)});this.handles.keydown(function(b){var h=true,k=a(this).data("index.ui-slider-handle"),l,j,m;if(!g.options.disabled){switch(b.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:h=false;if(!g._keySliding){g._keySliding=true;a(this).addClass("ui-state-active");l=g._start(b,k);if(l===false)return}}m=g.options.step;l=g.options.values&&g.options.values.length? -j=g.values(k):j=g.value();switch(b.keyCode){case a.ui.keyCode.HOME:j=g._valueMin();break;case a.ui.keyCode.END:j=g._valueMax();break;case a.ui.keyCode.PAGE_UP:j=g._trimAlignValue(l+(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.PAGE_DOWN:j=g._trimAlignValue(l-(g._valueMax()-g._valueMin())/5);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(l===g._valueMax())return;j=g._trimAlignValue(l+m);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(l===g._valueMin())return;j=g._trimAlignValue(l- -m)}g._slide(b,k,j);return h}}).keyup(function(b){var h=a(this).data("index.ui-slider-handle");if(g._keySliding){g._keySliding=false;g._stop(b,h);g._change(b,h);a(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(g){var d=this.options,c,e,f,i,b;if(d.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:g.pageX,y:g.pageY});e=this._valueMax()-this._valueMin()+1;i=this;this.handles.each(function(h){var k=Math.abs(c-i.values(h));if(e>k){e=k;f=a(this);b=h}});if(d.range===true&&this.values(1)===d.min){b+=1;f=a(this.handles[b])}if(this._start(g,b)===false)return false; -this._mouseSliding=true;i._handleIndex=b;f.addClass("ui-state-active").focus();d=f.offset();this._clickOffset=!a(g.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:g.pageX-d.left-f.width()/2,top:g.pageY-d.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(g,b,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(g){var d= -this._normValueFromMouse({x:g.pageX,y:g.pageY});this._slide(g,this._handleIndex,d);return false},_mouseStop:function(g){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(g,this._handleIndex);this._change(g,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(g){var d;if(this.orientation==="horizontal"){d= -this.elementSize.width;g=g.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{d=this.elementSize.height;g=g.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}d=g/d;if(d>1)d=1;if(d<0)d=0;if(this.orientation==="vertical")d=1-d;g=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+d*g)},_start:function(g,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d); -c.values=this.values()}return this._trigger("start",g,c)},_slide:function(g,d,c){var e;if(this.options.values&&this.options.values.length){e=this.values(d?0:1);if(this.options.values.length===2&&this.options.range===true&&(d===0&&c>e||d===1&&c1){this.options.values[g]=this._trimAlignValue(d);this._refreshValue();this._change(null,g)}else if(arguments.length)if(a.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var d=this.options.step>0?this.options.step:1,c=(g-this._valueMin())%d;g-=c;if(Math.abs(c)*2>=d)g+=c>0?d:-d;return parseFloat(g.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var g= -this.options.range,d=this.options,c=this,e=!this._animateOff?d.animate:false,f,i={},b,h,k,l;if(this.options.values&&this.options.values.length)this.handles.each(function(j){f=(c.values(j)-c._valueMin())/(c._valueMax()-c._valueMin())*100;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";a(this).stop(1,1)[e?"animate":"css"](i,d.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(j===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({width:f- -b+"%"},{queue:false,duration:d.animate})}else{if(j===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},d.animate);if(j===1)c.range[e?"animate":"css"]({height:f-b+"%"},{queue:false,duration:d.animate})}b=f});else{h=this.value();k=this._valueMin();l=this._valueMax();f=l!==k?(h-k)/(l-k)*100:0;i[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](i,d.animate);if(g==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"}, -d.animate);if(g==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:d.animate});if(g==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},d.animate);if(g==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:d.animate})}}})})(jQuery); -(function(a){function g(d){return function(){var c=this.element.val();d.apply(this,arguments);this._refresh();c!==this.element.val()&&this._trigger("change")}}a.widget("ui.spinner",{version:"1.9pre",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,incremental:true,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._value(this.element.val(),true);this._draw();this._bind(this._events);this._refresh()},_getCreateOptions:function(){var d= -{},c=this.element;a.each(["min","max","step"],function(e,f){var i=c.attr(f);if(i!==undefined&&i.length)d[f]=i});return d},_events:{keydown:function(d){this._start(d)&&this._keydown(d)&&d.preventDefault()},keyup:"_stop",focus:function(){this.uiSpinner.addClass("ui-state-active");this.previous=this.element.val()},blur:function(d){this._refresh();this.uiSpinner.removeClass("ui-state-active");this.previous!==this.element.val()&&this._trigger("change",d)},mousewheel:function(d,c){if(c){if(!this.spinning&& -!this._start(d))return false;this._spin((c>0?1:-1)*this.options.step,d);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=setTimeout(function(){this.spinning&&this._stop(d)},100);d.preventDefault()}},"mousedown .ui-spinner-button":function(d){d.preventDefault();document.activeElement!==this.element[0]&&this.element.focus();if(this._start(d)!==false)this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(d){if(a(d.currentTarget).hasClass("ui-state-active")){if(this._start(d)=== -false)return false;this._repeat(null,a(d.currentTarget).hasClass("ui-spinner-up")?1:-1,d)}},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var d=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this._hoverable(d);this.element.attr("role","spinbutton");this.buttons=d.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all");this.buttons.height()===d.height()&&d.height()> -0&&d.height(d.height());this.options.disabled&&this.disable()},_keydown:function(d){var c=this.options,e=a.ui.keyCode;switch(d.keyCode){case e.UP:this._repeat(null,1,d);return true;case e.DOWN:this._repeat(null,-1,d);return true;case e.PAGE_UP:this._repeat(null,c.page,d);return true;case e.PAGE_DOWN:this._repeat(null,-c.page,d);return true}return false},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""}, -_start:function(d){if(!this.spinning&&this._trigger("start",d)===false)return false;if(!this.counter)this.counter=1;return this.spinning=true},_repeat:function(d,c,e){d=d||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,c,e)},d);this._spin(c*this.options.step,e)},_spin:function(d,c){var e=this.value()||0;if(!this.counter)this.counter=1;e=this._adjustValue(e+d*this._increment(this.counter));if(!this.spinning||this._trigger("spin",c,{value:e})!==false){this._value(e); -this.counter++}},_increment:function(d){var c=this.options.incremental;if(c)return a.isFunction(c)?c(d):Math.floor(d*d*d/5E4-d*d/500+17*d/200+1);return 1},_precision:function(){var d=this._precisionOf(this.options.step);if(this.options.min!==null)d=Math.max(d,this._precisionOf(this.options.min));return d},_precisionOf:function(d){d=d.toString();var c=d.indexOf(".");return c===-1?0:d.length-c-1},_adjustValue:function(d){var c,e=this.options;c=e.min!==null?e.min:0;d=Math.round((d-c)/e.step)*e.step; -d=parseFloat((c+d).toFixed(this._precision()));if(e.max!==null&&d>e.max)return e.max;if(e.min!==null&&d1&&b.href.replace(f,"")===i}}();a.widget("ui.tabs",{version:"1.9pre",options:{active:null,collapsible:false,event:"click",fx:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var f=this,i=f.options,b=i.active;f.running=false;f.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");f._processTabs();if(b===null){location.hash&& -f.anchors.each(function(h,k){if(k.hash===location.hash){b=h;return false}});if(b===null)b=f.lis.filter(".ui-tabs-active").index();if(b===null||b===-1)b=f.lis.length?0:false}if(b!==false){b=this.lis.eq(b).index();if(b===-1)b=i.collapsible?false:0}i.active=b;if(!i.collapsible&&i.active===false&&this.anchors.length)i.active=0;if(a.isArray(i.disabled))i.disabled=a.unique(i.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(h){return f.lis.index(h)}))).sort();this._setupFx(i.fx);this._refresh(); -this.panels.hide();this.lis.removeClass("ui-tabs-active ui-state-active");if(i.active!==false&&this.anchors.length){this.active=this._findActive(i.active);f._getPanelForTab(this.active).show();this.lis.eq(i.active).addClass("ui-tabs-active ui-state-active");this.load(i.active)}else this.active=a()},_setOption:function(f,i){if(f=="active")this._activate(i);else if(f==="disabled")this._setupDisabled(i);else{this._super("_setOption",f,i);f==="collapsible"&&!i&&this.options.active===false&&this._activate(0); -f==="event"&&this._setupEvents(i);f==="fx"&&this._setupFx(i)}},_tabId:function(f){return a(f).attr("aria-controls")||"ui-tabs-"+ ++d},_sanitizeSelector:function(f){return f?f.replace(/[!"$%&'()*+,.\/:;<=>?@[\]^`{|}~]/g,"\\$&"):""},refresh:function(){var f=this.options,i=this.list.children(":has(a[href])");f.disabled=a.map(i.filter(".ui-state-disabled"),function(b){return i.index(b)});this._processTabs();this._refresh();this.panels.not(this._getPanelForTab(this.active)).hide();if(f.active===false|| -!this.anchors.length){f.active=false;this.active=a()}else if(this.active.length&&!a.contains(this.list[0],this.active[0])){f=f.active-1;this._activate(f>=0?f:0)}else f.active=this.anchors.index(this.active)},_refresh:function(){var f=this.options;this.element.toggleClass("ui-tabs-collapsible",f.collapsible);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"); -this._setupDisabled(f.disabled);this._setupEvents(f.event);this.lis.unbind(".tabs");this._focusable(this.lis);this._hoverable(this.lis)},_processTabs:function(){var f=this;this.list=this.element.find("ol,ul").eq(0);this.lis=a(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);this.anchors.each(function(i,b){var h,k;if(c(b)){h=b.hash;k=f.element.find(f._sanitizeSelector(h))}else{var l=f._tabId(b);h="#"+l;k=f.element.find(h);if(!k.length){k= -f._createPanel(l);k.insertAfter(f.panels[i-1]||f.list)}}if(k.length)f.panels=f.panels.add(k);a(b).attr("aria-controls",h.substring(1))})},_createPanel:function(f){return a("
      ").attr("id",f).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)},_setupDisabled:function(f){if(a.isArray(f))if(f.length){if(f.length===this.anchors.length)f=true}else f=false;for(var i=0,b;b=this.lis[i];i++)a(b).toggleClass("ui-state-disabled",f===true||a.inArray(i,f)!==-1);this.options.disabled= -f},_setupFx:function(f){if(f)if(a.isArray(f)){this.hideFx=f[0];this.showFx=f[1]}else this.hideFx=this.showFx=f},_resetStyle:function(f,i){!a.support.opacity&&i.opacity&&f[0].style.removeAttribute("filter")},_setupEvents:function(f){this.anchors.unbind(".tabs");f&&this.anchors.bind(f.split(" ").join(".tabs ")+".tabs",a.proxy(this,"_eventHandler"));this.anchors.bind("click.tabs",function(i){i.preventDefault()})},_eventHandler:function(f){var i=this.options,b=this.active,h=a(f.currentTarget),k=h[0]=== -b[0],l=k&&i.collapsible,j=l?a():this._getPanelForTab(h),m=!b.length?a():this._getPanelForTab(b),n=h.closest("li");b={oldTab:b,oldPanel:m,newTab:l?a():h,newPanel:j};f.preventDefault();if(n.hasClass("ui-state-disabled")||n.hasClass("ui-tabs-loading")||this.running||k&&!i.collapsible||this._trigger("beforeActivate",f,b)===false)h[0].blur();else{i.active=l?false:this.anchors.index(h);this.active=k?a():h;this.xhr&&this.xhr.abort();if(!m.length&&!j.length)throw"jQuery UI Tabs: Mismatching fragment identifier."; -if(j.length){this.load(this.anchors.index(h),f);h[0].blur()}this._toggle(f,b)}},_toggle:function(f,i){function b(){k.running=false;k._trigger("activate",f,i)}function h(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(l.length&&k.showFx)l.animate(k.showFx,k.showFx.duration||"normal",function(){k._resetStyle(a(this),k.showFx);b()});else{l.show();b()}}var k=this,l=i.newPanel,j=i.oldPanel;k.running=true;if(j.length&&k.hideFx)j.animate(k.hideFx,k.hideFx.duration||"normal",function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"); -k._resetStyle(a(this),k.hideFx);h()});else{i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");j.hide();h()}},_activate:function(f){f=this._findActive(f)[0];if(f!==this.active[0]){f=f||this.active[0];this._eventHandler({target:f,currentTarget:f,preventDefault:a.noop})}},_findActive:function(f){return typeof f==="number"?this.anchors.eq(f):typeof f==="string"?this.anchors.filter("[href$='"+f+"']"):a()},_getIndex:function(f){if(typeof f=="string")f=this.anchors.index(this.anchors.filter("[href$="+ -f+"]"));return f},_destroy:function(){this.xhr&&this.xhr.abort();this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.unbind(".tabs").removeData("href.tabs").removeData("load.tabs");this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass("ui-state-default ui-corner-top ui-tabs-active ui-state-active ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom")}); -return this},enable:function(f){var i=this.options.disabled;if(i!==false){if(f===g)i=false;else{f=this._getIndex(f);i=a.isArray(i)?a.map(i,function(b){return b!==f?b:null}):a.map(this.lis,function(b,h){return h!==f?h:null})}this._setupDisabled(i)}},disable:function(f){var i=this.options.disabled;if(i!==true){if(f===g)i=true;else{f=this._getIndex(f);if(a.inArray(f,i)!==-1)return;i=a.isArray(i)?a.merge([f],i).sort():[f]}this._setupDisabled(i)}},load:function(f,i){f=this._getIndex(f);var b=this,h=this.anchors.eq(f), -k=b._getPanelForTab(h),l={tab:h,panel:k};if(!c(h[0])){if(this.xhr=a.ajax({url:h.attr("href"),beforeSend:function(j,m){return b._trigger("beforeLoad",i,a.extend({jqXHR:j,ajaxSettings:m},l))}})){this.lis.eq(f).addClass("ui-tabs-loading");this.xhr.success(function(j){setTimeout(function(){k.html(j);b._trigger("load",i,l)},1)}).complete(function(j,m){setTimeout(function(){m==="abort"&&b.panels.stop(false,true);b.lis.eq(f).removeClass("ui-tabs-loading");j===b.xhr&&delete b.xhr})})}return this}},_getPanelForTab:function(f){return this.element.find(this._sanitizeSelector("#"+ -a(f).attr("aria-controls")))}});if(a.uiBackCompat!==false){a.ui.tabs.prototype._ui=function(f,i){return{tab:f,panel:i,index:this.anchors.index(f)}};(function(f,i){i.url=function(b,h){this.anchors.eq(b).attr("href",h)}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{ajaxOptions:null,cache:false});var b=i._create,h=i._setOption,k=i._destroy,l=i.url||f.noop;f.extend(i,{_create:function(){b.call(this);var j=this;this.element.bind("tabsbeforeload.tabs",function(m,n){if(f.data(n.tab[0], -"cache.tabs"))m.preventDefault();else{f.extend(n.ajaxSettings,j.options.ajaxOptions,{error:function(o,p){try{j.options.ajaxOptions.error(o,p,n.tab.closest("li").index(),n.tab[0])}catch(q){}}});n.jqXHR.success(function(){j.options.cache&&f.data(n.tab[0],"cache.tabs",true)})}})},_setOption:function(j,m){j==="cache"&&m===false&&this.anchors.removeData("cache.tabs");h.apply(this,arguments)},_destroy:function(){this.anchors.removeData("cache.tabs");k.call(this)},url:function(j){this.anchors.eq(j).removeData("cache.tabs"); -l.apply(this,arguments)}})})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.abort=function(){this.xhr&&this.xhr.abort()}})(jQuery,jQuery.ui.tabs.prototype);a.widget("ui.tabs",a.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super("_create");this._bind({tabsbeforeload:function(f,i){if(this.options.spinner){var b=i.tab.find("span"),h=b.html();b.html(this.options.spinner);i.jqXHR.complete(function(){b.html(h)})}}})}});(function(f,i){f.extend(i.options,{enable:null,disable:null}); -var b=i.enable,h=i.disable;i.enable=function(k){var l=this.options,j;if(k&&l.disabled===true||f.isArray(l.disabled)&&f.inArray(k,l.disabled)!==-1)j=true;b.apply(this,arguments);j&&this._trigger("enable",null,this._ui(this.anchors[k],this.panels[k]))};i.disable=function(k){var l=this.options,j;if(k&&l.disabled===false||f.isArray(l.disabled)&&f.inArray(k,l.disabled)===-1)j=true;h.apply(this,arguments);j&&this._trigger("disable",null,this._ui(this.anchors[k],this.panels[k]))}})(jQuery,jQuery.ui.tabs.prototype); -(function(f,i){f.extend(i.options,{add:null,remove:null,tabTemplate:"
    • #{label}
    • "});i.add=function(b,h,k){if(k===g)k=this.anchors.length;var l=this.options;h=f(l.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,h));b=!b.indexOf("#")?b.replace("#",""):this._tabId(h.find("a")[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);h.find("a").attr("aria-controls",b);var j=k>=this.lis.length,m=this.element.find("#"+b);if(!m.length){m= -this._createPanel(b);if(j)k>0?m.insertAfter(this.panels.eq(-1)):m.appendTo(this.element);else m.insertBefore(this.panels[k])}m.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide();j?h.appendTo(this.list):h.insertBefore(this.lis[k]);l.disabled=f.map(l.disabled,function(n){return n>=k?++n:n});this.refresh();this.lis.length===1&&l.active===false&&this.option("active",0);this._trigger("add",null,this._ui(this.anchors[k],this.panels[k]));return this};i.remove=function(b){b=this._getIndex(b); -var h=this.options,k=this.lis.eq(b).remove(),l=this._getPanelForTab(k.find("a[aria-controls]")).remove();if(k.hasClass("ui-tabs-active")&&this.anchors.length>2)this._activate(b+(b+1=b?--j:j});this.refresh();this._trigger("remove",null,this._ui(k.find("a")[0],l[0]));return this}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.length=function(){return this.anchors.length}})(jQuery,jQuery.ui.tabs.prototype); -(function(f,i){f.extend(i.options,{idPrefix:"ui-tabs-"});i._tabId=function(b){return f(b).attr("aria-controls")||b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+ ++d}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{panelTemplate:"
      "});i._createPanel=function(b){return f(this.options.panelTemplate).attr("id",b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("destroy.tabs",true)}})(jQuery,jQuery.ui.tabs.prototype); -(function(f,i){var b=i._create,h=i._setOption,k=i._eventHandler;i._create=function(){var l=this.options;if(l.active===null&&l.selected!==g)l.active=l.selected===-1?false:l.selected;b.call(this);l.selected=l.active;if(l.selected===false)l.selected=-1};i._setOption=function(l,j){if(l!=="selected")return h.apply(this,arguments);var m=this.options;h.call(this,"active",j===-1?false:j);m.selected=m.active;if(m.selected===false)m.selected=-1};i._eventHandler=function(){k.apply(this,arguments);this.options.selected= -this.options.active;if(this.options.selected===false)this.options.selected=-1}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){f.extend(i.options,{show:null,select:null});var b=i._create,h=i._trigger;i._create=function(){b.call(this);this.options.active!==false&&this._trigger("show",null,this._ui(this.active[0],this._getPanelForTab(this.active)[0]))};i._trigger=function(k,l,j){if(!h.apply(this,arguments))return false;if(k==="beforeActivate"&&j.newTab.length)h.call(this,"select",l,{tab:j.newTab[0], -panel:j.newPanel[0],index:j.newTab.closest("li").index()});else k==="activate"&&j.newTab.length&&h.call(this,"show",l,{tab:j.newTab[0],panel:j.newPanel[0],index:j.newTab.closest("li").index()})}})(jQuery,jQuery.ui.tabs.prototype);(function(f,i){i.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.anchors.eq(b).trigger(this.options.event+".tabs")}})(jQuery,jQuery.ui.tabs.prototype);var e=0;a.widget("ui.tabs", -a.ui.tabs,{options:{cookie:null},_create:function(){var f=this.options,i;if(f.active==null&&f.cookie){i=parseInt(this._cookie(),10);if(i===-1)i=false;f.active=i}this._super("_create")},_cookie:function(f){var i=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++e)];if(arguments.length){i.push(f===false?-1:f);i.push(this.options.cookie)}return a.cookie.apply(null,i)},_refresh:function(){this._super("_refresh");this.options.cookie&&this._cookie(this.options.active,this.options.cookie)}, -_eventHandler:function(){this._superApply("_eventHandler",arguments);this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super("_destroy");this.options.cookie&&this._cookie(null,this.options.cookie)}});a.widget("ui.tabs",a.ui.tabs,{_trigger:function(f,i,b){b=a.extend({},b);if(f==="load"){b.panel=b.panel[0];b.tab=b.tab[0]}return this._super("_trigger",f,i,b)}})}})(jQuery); -(function(a){var g=0;a.widget("ui.tooltip",{version:"1.9pre",options:{content:function(){return a(this).attr("title")},hide:true,items:"[title]",position:{my:"left+15 center",at:"right center",collision:"flipfit flipfit"},show:true,tooltipClass:null,close:null,open:null},_create:function(){this._bind({mouseover:"open",focusin:"open"});this.tooltips={}},_setOption:function(d,c){if(d==="disabled"){this[c?"_disable":"_enable"]();this.options[d]=c}else this._super("_setOption",d,c)},_disable:function(){var d= -this;a.each(this.tooltips,function(c,e){var f=a.Event("blur");f.target=f.currentTarget=e[0];d.close(f,true)});this.element.find(this.options.items).andSelf().each(function(){var c=a(this);c.is("[title]")&&c.data("tooltip-title",c.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var d=a(this);d.data("tooltip-title")&&d.attr("title",d.data("tooltip-title"))})},open:function(d){var c,e=this,f=a(d?d.target:this.element).closest(this.options.items); -if(!(!f.length||f.attr("aria-describedby"))){f.data("tooltip-title")||f.data("tooltip-title",f.attr("title"));(c=this.options.content.call(f[0],function(i){setTimeout(function(){e._open(d,f,i)},1)}))&&e._open(d,f,c)}},_open:function(d,c,e){if(e){c.is("[title]")&&c.attr("title","");var f=this._find(c);if(!f.length){f=this._tooltip(c);c.attr("aria-describedby",f.attr("id"))}f.find(".ui-tooltip-content").html(e);f.stop(true).position(a.extend({of:c},this.options.position)).hide();this._show(f,this.options.show); -this._trigger("open",d,{tooltip:f});this._bind(c,{mouseleave:"close",blur:"close",keyup:function(i){if(i.keyCode==a.ui.keyCode.ESCAPE){i=a.Event(i);i.currentTarget=c[0];this.close(i,true)}}})}},close:function(d,c){var e=this,f=a(d?d.currentTarget:this.element),i=this._find(f);if(!(!c&&document.activeElement===f[0])){f.data("tooltip-title")&&f.attr("title",f.data("tooltip-title"));f.removeAttr("aria-describedby");i.stop(true);this._hide(i,this.options.hide,function(){a(this).remove();delete e.tooltips[this.id]}); -f.unbind("mouseleave.tooltip blur.tooltip keyup.tooltip");this._trigger("close",d,{tooltip:i})}},_tooltip:function(d){var c="ui-tooltip-"+g++,e=a("
      ").attr({id:c,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));a("
      ").addClass("ui-tooltip-content").appendTo(e);e.appendTo(document.body);a.fn.bgiframe&&e.bgiframe();this.tooltips[c]=d;return e},_find:function(d){return(d=d.attr("aria-describedby"))?a("#"+d):a()},_destroy:function(){a.each(this.tooltips, -function(d){a("#"+d).remove()})}})})(jQuery); diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui.js b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui.js deleted file mode 100644 index cd515f361..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui.js +++ /dev/null @@ -1,11767 +0,0 @@ -/*! - * 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( $, undefined ) { - -// prevent duplicate loading -// this is only a problem because we proxy existing functions -// and we don't want to double proxy them -$.ui = $.ui || {}; -if ( $.ui.version ) { - return; -} - -$.extend( $.ui, { - version: "1.8.16", - - keyCode: { - ALT: 18, - BACKSPACE: 8, - CAPS_LOCK: 20, - COMMA: 188, - COMMAND: 91, - COMMAND_LEFT: 91, // COMMAND - COMMAND_RIGHT: 93, - CONTROL: 17, - DELETE: 46, - DOWN: 40, - END: 35, - ENTER: 13, - ESCAPE: 27, - HOME: 36, - INSERT: 45, - LEFT: 37, - MENU: 93, // COMMAND_RIGHT - 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 // COMMAND - } -}); - -// plugins -$.fn.extend({ - propAttr: $.fn.prop || $.fn.attr, - - _focus: $.fn.focus, - focus: function( delay, fn ) { - return typeof delay === "number" ? - this.each(function() { - var elem = this; - setTimeout(function() { - $( elem ).focus(); - if ( fn ) { - fn.call( elem ); - } - }, delay ); - }) : - this._focus.apply( this, arguments ); - }, - - scrollParent: function() { - var scrollParent; - if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { - scrollParent = this.parents().filter(function() { - return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } else { - scrollParent = this.parents().filter(function() { - return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); - }).eq(0); - } - - return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; - }, - - zIndex: function( zIndex ) { - if ( zIndex !== undefined ) { - return this.css( "zIndex", zIndex ); - } - - if ( this.length ) { - var elem = $( this[ 0 ] ), position, value; - while ( elem.length && elem[ 0 ] !== document ) { - // Ignore z-index if position is set to a value where z-index is ignored by the browser - // This makes behavior of this function consistent across browsers - // WebKit always returns auto if the element is positioned - position = elem.css( "position" ); - if ( position === "absolute" || position === "relative" || position === "fixed" ) { - // IE returns 0 when zIndex is not specified - // other browsers return a string - // we ignore the case of nested elements with an explicit value of 0 - //
      - value = parseInt( elem.css( "zIndex" ), 10 ); - if ( !isNaN( value ) && value !== 0 ) { - return value; - } - } - elem = elem.parent(); - } - } - - return 0; - }, - - disableSelection: function() { - return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + - ".ui-disableSelection", function( event ) { - event.preventDefault(); - }); - }, - - enableSelection: function() { - return this.unbind( ".ui-disableSelection" ); - } -}); - -$.each( [ "Width", "Height" ], function( i, name ) { - var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], - type = name.toLowerCase(), - orig = { - innerWidth: $.fn.innerWidth, - innerHeight: $.fn.innerHeight, - outerWidth: $.fn.outerWidth, - outerHeight: $.fn.outerHeight - }; - - function reduce( elem, size, border, margin ) { - $.each( side, function() { - size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; - if ( border ) { - size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; - } - if ( margin ) { - size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; - } - }); - return size; - } - - $.fn[ "inner" + name ] = function( size ) { - if ( size === undefined ) { - return orig[ "inner" + name ].call( this ); - } - - return this.each(function() { - $( this ).css( type, reduce( this, size ) + "px" ); - }); - }; - - $.fn[ "outer" + name] = function( size, margin ) { - if ( typeof size !== "number" ) { - return orig[ "outer" + name ].call( this, size ); - } - - return this.each(function() { - $( this).css( type, reduce( this, size, true, margin ) + "px" ); - }); - }; -}); - -// selectors -function focusable( element, isTabIndexNotNaN ) { - var nodeName = element.nodeName.toLowerCase(); - if ( "area" === nodeName ) { - var map = element.parentNode, - mapName = map.name, - img; - if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { - return false; - } - img = $( "img[usemap=#" + mapName + "]" )[0]; - return !!img && visible( img ); - } - return ( /input|select|textarea|button|object/.test( nodeName ) - ? !element.disabled - : "a" == nodeName - ? element.href || isTabIndexNotNaN - : isTabIndexNotNaN) - // the element and all of its ancestors must be visible - && visible( element ); -} - -function visible( element ) { - return !$( element ).parents().andSelf().filter(function() { - return $.curCSS( this, "visibility" ) === "hidden" || - $.expr.filters.hidden( this ); - }).length; -} - -$.extend( $.expr[ ":" ], { - data: function( elem, i, match ) { - return !!$.data( elem, match[ 3 ] ); - }, - - focusable: function( element ) { - return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); - }, - - tabbable: function( element ) { - var tabIndex = $.attr( element, "tabindex" ), - isTabIndexNaN = isNaN( tabIndex ); - return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); - } -}); - -// support -$(function() { - var body = document.body, - div = body.appendChild( div = document.createElement( "div" ) ); - - $.extend( div.style, { - minHeight: "100px", - height: "auto", - padding: 0, - borderWidth: 0 - }); - - $.support.minHeight = div.offsetHeight === 100; - $.support.selectstart = "onselectstart" in div; - - // set display to none to avoid a layout bug in IE - // http://dev.jquery.com/ticket/4014 - body.removeChild( div ).style.display = "none"; -}); - - - - - -// deprecated -$.extend( $.ui, { - // $.ui.plugin is deprecated. Use the proxy pattern instead. - plugin: { - add: function( module, option, set ) { - var proto = $.ui[ module ].prototype; - for ( var i in set ) { - proto.plugins[ i ] = proto.plugins[ i ] || []; - proto.plugins[ i ].push( [ option, set[ i ] ] ); - } - }, - call: function( instance, name, args ) { - var set = instance.plugins[ name ]; - if ( !set || !instance.element[ 0 ].parentNode ) { - return; - } - - for ( var i = 0; i < set.length; i++ ) { - if ( instance.options[ set[ i ][ 0 ] ] ) { - set[ i ][ 1 ].apply( instance.element, args ); - } - } - } - }, - - // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() - contains: function( a, b ) { - return document.compareDocumentPosition ? - a.compareDocumentPosition( b ) & 16 : - a !== b && a.contains( b ); - }, - - // only used by resizable - hasScroll: function( el, a ) { - - //If overflow is hidden, the element might have extra content, but the user wants to hide it - if ( $( el ).css( "overflow" ) === "hidden") { - return false; - } - - var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", - has = false; - - if ( el[ scroll ] > 0 ) { - return true; - } - - // TODO: determine which cases actually cause this to happen - // if the element doesn't have the scroll set, see if it's possible to - // set the scroll - el[ scroll ] = 1; - has = ( el[ scroll ] > 0 ); - el[ scroll ] = 0; - return has; - }, - - // these are odd functions, fix the API or move into individual plugins - isOverAxis: function( x, reference, size ) { - //Determines when x coordinate is over "b" element axis - return ( x > reference ) && ( x < ( reference + size ) ); - }, - isOver: function( y, x, top, left, height, width ) { - //Determines when x, y coordinates is over "b" element - return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); - } -}); - -})( 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( $, undefined ) { - -// jQuery 1.4+ -if ( $.cleanData ) { - var _cleanData = $.cleanData; - $.cleanData = function( elems ) { - for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { - try { - $( elem ).triggerHandler( "remove" ); - // http://bugs.jquery.com/ticket/8235 - } catch( e ) {} - } - _cleanData( elems ); - }; -} else { - var _remove = $.fn.remove; - $.fn.remove = function( selector, keepData ) { - return this.each(function() { - if ( !keepData ) { - if ( !selector || $.filter( selector, [ this ] ).length ) { - $( "*", this ).add( [ this ] ).each(function() { - try { - $( this ).triggerHandler( "remove" ); - // http://bugs.jquery.com/ticket/8235 - } catch( e ) {} - }); - } - } - return _remove.call( $(this), selector, keepData ); - }); - }; -} - -$.widget = function( name, base, prototype ) { - var namespace = name.split( "." )[ 0 ], - fullName; - name = name.split( "." )[ 1 ]; - fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - // create selector for plugin - $.expr[ ":" ][ fullName ] = function( elem ) { - return !!$.data( elem, name ); - }; - - $[ namespace ] = $[ namespace ] || {}; - $[ namespace ][ name ] = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - - var basePrototype = new base(); - // we need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from -// $.each( basePrototype, function( key, val ) { -// if ( $.isPlainObject(val) ) { -// basePrototype[ key ] = $.extend( {}, val ); -// } -// }); - basePrototype.options = $.extend( true, {}, basePrototype.options ); - $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { - namespace: namespace, - widgetName: name, - widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, - widgetBaseClass: fullName - }, prototype ); - - $.widget.bridge( name, $[ namespace ][ name ] ); -}; - -$.widget.bridge = function( name, object ) { - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string", - args = Array.prototype.slice.call( arguments, 1 ), - returnValue = this; - - // allow multiple hashes to be passed on init - options = !isMethodCall && args.length ? - $.extend.apply( null, [ true, options ].concat(args) ) : - options; - - // prevent calls to internal methods - if ( isMethodCall && options.charAt( 0 ) === "_" ) { - return returnValue; - } - - if ( isMethodCall ) { - this.each(function() { - var instance = $.data( this, name ), - methodValue = instance && $.isFunction( instance[options] ) ? - instance[ options ].apply( instance, args ) : - instance; - // TODO: add this back in 1.9 and use $.error() (see #5972) -// if ( !instance ) { -// throw "cannot call methods on " + name + " prior to initialization; " + -// "attempted to call method '" + options + "'"; -// } -// if ( !$.isFunction( instance[options] ) ) { -// throw "no such method '" + options + "' for " + name + " widget instance"; -// } -// var methodValue = instance[ options ].apply( instance, args ); - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue; - return false; - } - }); - } else { - this.each(function() { - var instance = $.data( this, name ); - if ( instance ) { - instance.option( options || {} )._init(); - } else { - $.data( this, name, new object( options, this ) ); - } - }); - } - - return returnValue; - }; -}; - -$.Widget = function( options, element ) { - // allow instantiation without initializing for simple inheritance - if ( arguments.length ) { - this._createWidget( options, element ); - } -}; - -$.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - options: { - disabled: false - }, - _createWidget: function( options, element ) { - // $.widget.bridge stores the plugin instance, but we do it anyway - // so that it's stored even before the _create function runs - $.data( element, this.widgetName, this ); - this.element = $( element ); - this.options = $.extend( true, {}, - this.options, - this._getCreateOptions(), - options ); - - var self = this; - this.element.bind( "remove." + this.widgetName, function() { - self.destroy(); - }); - - this._create(); - this._trigger( "create" ); - this._init(); - }, - _getCreateOptions: function() { - return $.metadata && $.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( key, value ) { - var options = key; - - if ( arguments.length === 0 ) { - // don't return a reference to the internal hash - return $.extend( {}, this.options ); - } - - if (typeof key === "string" ) { - if ( value === undefined ) { - return this.options[ key ]; - } - options = {}; - options[ key ] = value; - } - - this._setOptions( options ); - - return this; - }, - _setOptions: function( options ) { - var self = this; - $.each( options, function( key, value ) { - self._setOption( key, value ); - }); - - return this; - }, - _setOption: function( key, value ) { - this.options[ key ] = value; - - if ( key === "disabled" ) { - this.widget() - [ value ? "addClass" : "removeClass"]( - this.widgetBaseClass + "-disabled" + " " + - "ui-state-disabled" ) - .attr( "aria-disabled", value ); - } - - return this; - }, - - enable: function() { - return this._setOption( "disabled", false ); - }, - disable: function() { - return this._setOption( "disabled", true ); - }, - - _trigger: function( type, event, data ) { - var callback = this.options[ type ]; - - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - data = data || {}; - - // copy original event properties over to the new event - // this would happen if we could call $.event.fix instead of $.Event - // but we don't have a way to force an event to be fixed multiple times - if ( event.originalEvent ) { - for ( var i = $.event.props.length, prop; i; ) { - prop = $.event.props[ --i ]; - event[ prop ] = event.originalEvent[ prop ]; - } - } - - this.element.trigger( event, data ); - - return !( $.isFunction(callback) && - callback.call( this.element[0], event, data ) === false || - event.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( $, undefined ) { - -var mouseHandled = false; -$( document ).mouseup( function( e ) { - mouseHandled = false; -}); - -$.widget("ui.mouse", { - options: { - cancel: ':input,option', - distance: 1, - delay: 0 - }, - _mouseInit: function() { - var self = this; - - this.element - .bind('mousedown.'+this.widgetName, function(event) { - return self._mouseDown(event); - }) - .bind('click.'+this.widgetName, function(event) { - if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) { - $.removeData(event.target, self.widgetName + '.preventClickEvent'); - event.stopImmediatePropagation(); - return false; - } - }); - - this.started = false; - }, - - // TODO: make sure destroying one instance of mouse doesn't mess with - // other instances of mouse - _mouseDestroy: function() { - this.element.unbind('.'+this.widgetName); - }, - - _mouseDown: function(event) { - // don't let more than one widget handle mouseStart - if( mouseHandled ) { return }; - - // we may have missed mouseup (out of window) - (this._mouseStarted && this._mouseUp(event)); - - this._mouseDownEvent = event; - - var self = this, - btnIsLeft = (event.which == 1), - // event.target.nodeName works around a bug in IE 8 with - // disabled inputs (#7620) - elIsCancel = (typeof this.options.cancel == "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); - if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { - return true; - } - - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function() { - self.mouseDelayMet = true; - }, this.options.delay); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = (this._mouseStart(event) !== false); - if (!this._mouseStarted) { - event.preventDefault(); - return true; - } - } - - // Click event may never have fired (Gecko & Opera) - if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) { - $.removeData(event.target, this.widgetName + '.preventClickEvent'); - } - - // these delegates are required to keep context - this._mouseMoveDelegate = function(event) { - return self._mouseMove(event); - }; - this._mouseUpDelegate = function(event) { - return self._mouseUp(event); - }; - $(document) - .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - event.preventDefault(); - - mouseHandled = true; - return true; - }, - - _mouseMove: function(event) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.browser.msie && !(document.documentMode >= 9) && !event.button) { - return this._mouseUp(event); - } - - if (this._mouseStarted) { - this._mouseDrag(event); - return event.preventDefault(); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = - (this._mouseStart(this._mouseDownEvent, event) !== false); - (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); - } - - return !this._mouseStarted; - }, - - _mouseUp: function(event) { - $(document) - .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) - .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); - - if (this._mouseStarted) { - this._mouseStarted = false; - - if (event.target == this._mouseDownEvent.target) { - $.data(event.target, this.widgetName + '.preventClickEvent', true); - } - - this._mouseStop(event); - } - - return false; - }, - - _mouseDistanceMet: function(event) { - return (Math.max( - Math.abs(this._mouseDownEvent.pageX - event.pageX), - Math.abs(this._mouseDownEvent.pageY - event.pageY) - ) >= this.options.distance - ); - }, - - _mouseDelayMet: function(event) { - return this.mouseDelayMet; - }, - - // These are placeholder methods, to be overriden by extending plugin - _mouseStart: function(event) {}, - _mouseDrag: function(event) {}, - _mouseStop: function(event) {}, - _mouseCapture: function(event) { return true; } -}); - -})(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( $, undefined ) { - -$.widget("ui.draggable", $.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')) return; - this.element - .removeData("draggable") - .unbind(".draggable") - .removeClass("ui-draggable" - + " ui-draggable-dragging" - + " ui-draggable-disabled"); - this._mouseDestroy(); - - return this; - }, - - _mouseCapture: function(event) { - - var o = this.options; - - // among others, prevent a drag on a resizable-handle - if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle')) - return false; - - //Quit if we're not on a valid handle - this.handle = this._getHandle(event); - if (!this.handle) - return false; - - if ( o.iframeFix ) { - $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { - $('
      ') - .css({ - width: this.offsetWidth+"px", height: this.offsetHeight+"px", - position: "absolute", opacity: "0.001", zIndex: 1000 - }) - .css($(this).offset()) - .appendTo("body"); - }); - } - - return true; - - }, - - _mouseStart: function(event) { - - var o = this.options; - - //Create and append the visible helper - this.helper = this._createHelper(event); - - //Cache the helper size - this._cacheHelperProportions(); - - //If ddmanager is used for droppables, set the global draggable - if($.ui.ddmanager) - $.ui.ddmanager.current = this; - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Store the helper's css position - this.cssPosition = this.helper.css("position"); - this.scrollParent = this.helper.scrollParent(); - - //The element's absolute position on the page minus margins - this.offset = this.positionAbs = this.element.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); - - //Generate the original position - this.originalPosition = this.position = this._generatePosition(event); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Set a containment if given in the options - if(o.containment) - this._setContainment(); - - //Trigger event + callbacks - if(this._trigger("start", event) === false) { - this._clear(); - return false; - } - - //Recache the helper size - this._cacheHelperProportions(); - - //Prepare the droppable offsets - if ($.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - - this.helper.addClass("ui-draggable-dragging"); - this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position - - //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) - if ( $.ui.ddmanager ) $.ui.ddmanager.dragStart(this, event); - - return true; - }, - - _mouseDrag: function(event, noPropagation) { - - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); - - //Call plugins and callbacks and use the resulting position if something is returned - if (!noPropagation) { - var ui = this._uiHash(); - if(this._trigger('drag', event, ui) === false) { - this._mouseUp({}); - return false; - } - this.position = ui.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'; - if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); - - return false; - }, - - _mouseStop: function(event) { - - //If we are using droppables, inform the manager about the drop - var dropped = false; - if ($.ui.ddmanager && !this.options.dropBehaviour) - dropped = $.ui.ddmanager.drop(this, event); - - //if a drop comes from outside (a sortable) - if(this.dropped) { - dropped = this.dropped; - this.dropped = false; - } - - //if the original element is removed, don't bother to continue if helper is set to "original" - if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original") - return false; - - if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { - var self = this; - $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { - if(self._trigger("stop", event) !== false) { - self._clear(); - } - }); - } else { - if(this._trigger("stop", event) !== false) { - this._clear(); - } - } - - return false; - }, - - _mouseUp: function(event) { - if (this.options.iframeFix === true) { - $("div.ui-draggable-iframeFix").each(function() { - this.parentNode.removeChild(this); - }); //Remove frame helpers - } - - //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) - if( $.ui.ddmanager ) $.ui.ddmanager.dragStop(this, event); - - return $.ui.mouse.prototype._mouseUp.call(this, event); - }, - - cancel: function() { - - if(this.helper.is(".ui-draggable-dragging")) { - this._mouseUp({}); - } else { - this._clear(); - } - - return this; - - }, - - _getHandle: function(event) { - - var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; - $(this.options.handle, this.element) - .find("*") - .andSelf() - .each(function() { - if(this == event.target) handle = true; - }); - - return handle; - - }, - - _createHelper: function(event) { - - var o = this.options; - var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone().removeAttr('id') : this.element); - - if(!helper.parents('body').length) - helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo)); - - if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) - helper.css("position", "absolute"); - - return helper; - - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj == 'string') { - obj = obj.split(' '); - } - if ($.isArray(obj)) { - obj = {left: +obj[0], top: +obj[1] || 0}; - } - if ('left' in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ('right' in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ('top' in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ('bottom' in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _getParentOffset: function() { - - //Get the offsetParent and cache its position - this.offsetParent = this.helper.offsetParent(); - var po = this.offsetParent.offset(); - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information - || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix - po = { top: 0, left: 0 }; - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) - }; - - }, - - _getRelativeOffset: function() { - - if(this.cssPosition == "relative") { - var p = this.element.position(); - return { - top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), - left: p.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 o = this.options; - if(o.containment == 'parent') o.containment = this.helper[0].parentNode; - if(o.containment == 'document' || o.containment == 'window') this.containment = [ - o.containment == 'document' ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, - o.containment == 'document' ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, - (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, - (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top - ]; - - if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) { - var c = $(o.containment); - var ce = c[0]; if(!ce) return; - var co = c.offset(); - var over = ($(ce).css("overflow") != 'hidden'); - - this.containment = [ - (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0), - (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0), - (over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, - (over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom - ]; - this.relative_container = c; - - } else if(o.containment.constructor == Array) { - this.containment = o.containment; - } - - }, - - _convertPositionTo: function(d, pos) { - - if(!pos) pos = this.position; - var mod = d == "absolute" ? 1 : -1; - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - return { - top: ( - pos.top // The absolute mouse position - + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) - ), - left: ( - pos.left // The absolute mouse position - + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) - ) - }; - - }, - - _generatePosition: function(event) { - - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - var pageX = event.pageX; - var pageY = event.pageY; - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - if(this.originalPosition) { //If we are not dragging yet, we won't check for options - var containment; - if(this.containment) { - if (this.relative_container){ - var co = this.relative_container.offset(); - containment = [ this.containment[0] + co.left, - this.containment[1] + co.top, - this.containment[2] + co.left, - this.containment[3] + co.top ]; - } - else { - containment = this.containment; - } - - if(event.pageX - this.offset.click.left < containment[0]) pageX = containment[0] + this.offset.click.left; - if(event.pageY - this.offset.click.top < containment[1]) pageY = containment[1] + this.offset.click.top; - if(event.pageX - this.offset.click.left > containment[2]) pageX = containment[2] + this.offset.click.left; - if(event.pageY - this.offset.click.top > containment[3]) pageY = containment[3] + this.offset.click.top; - } - - if(o.grid) { - //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950) - var top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY; - pageY = containment ? (!(top - this.offset.click.top < containment[1] || top - this.offset.click.top > containment[3]) ? top : (!(top - this.offset.click.top < containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - var left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX; - pageX = containment ? (!(left - this.offset.click.left < containment[0] || left - this.offset.click.left > containment[2]) ? left : (!(left - this.offset.click.left < containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - } - - return { - top: ( - pageY // The absolute mouse position - - this.offset.click.top // Click offset (relative to the element) - - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.top // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) - ), - left: ( - pageX // The absolute mouse position - - this.offset.click.left // Click offset (relative to the element) - - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.left // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) - ) - }; - - }, - - _clear: function() { - this.helper.removeClass("ui-draggable-dragging"); - if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove(); - //if($.ui.ddmanager) $.ui.ddmanager.current = null; - this.helper = null; - this.cancelHelperRemoval = false; - }, - - // From now on bulk stuff - mainly helpers - - _trigger: function(type, event, ui) { - ui = ui || this._uiHash(); - $.ui.plugin.call(this, type, [event, ui]); - if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins - return $.Widget.prototype._trigger.call(this, type, event, ui); - }, - - plugins: {}, - - _uiHash: function(event) { - return { - helper: this.helper, - position: this.position, - originalPosition: this.originalPosition, - offset: this.positionAbs - }; - } - -}); - -$.extend($.ui.draggable, { - version: "1.8.16" -}); - -$.ui.plugin.add("draggable", "connectToSortable", { - start: function(event, ui) { - - var inst = $(this).data("draggable"), o = inst.options, - uiSortable = $.extend({}, ui, { item: inst.element }); - inst.sortables = []; - $(o.connectToSortable).each(function() { - var sortable = $.data(this, 'sortable'); - if (sortable && !sortable.options.disabled) { - inst.sortables.push({ - instance: sortable, - shouldRevert: sortable.options.revert - }); - sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page). - sortable._trigger("activate", event, uiSortable); - } - }); - - }, - stop: function(event, ui) { - - //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper - var inst = $(this).data("draggable"), - uiSortable = $.extend({}, ui, { item: inst.element }); - - $.each(inst.sortables, function() { - if(this.instance.isOver) { - - this.instance.isOver = 0; - - inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance - this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) - - //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid' - if(this.shouldRevert) this.instance.options.revert = true; - - //Trigger the stop of the sortable - this.instance._mouseStop(event); - - this.instance.options.helper = this.instance.options._helper; - - //If the helper has been the original item, restore properties in the sortable - if(inst.options.helper == 'original') - this.instance.currentItem.css({ top: 'auto', left: 'auto' }); - - } else { - this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance - this.instance._trigger("deactivate", event, uiSortable); - } - - }); - - }, - drag: function(event, ui) { - - var inst = $(this).data("draggable"), self = this; - - var checkPos = function(o) { - var dyClick = this.offset.click.top, dxClick = this.offset.click.left; - var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left; - var itemHeight = o.height, itemWidth = o.width; - var itemTop = o.top, itemLeft = o.left; - - return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth); - }; - - $.each(inst.sortables, function(i) { - - //Copy over some variables to allow calling the sortable's native _intersectsWith - this.instance.positionAbs = inst.positionAbs; - this.instance.helperProportions = inst.helperProportions; - this.instance.offset.click = inst.offset.click; - - if(this.instance._intersectsWith(this.instance.containerCache)) { - - //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once - if(!this.instance.isOver) { - - this.instance.isOver = 1; - //Now we fake the start of dragging for the sortable instance, - //by cloning the list group item, appending it to the sortable and using it as inst.currentItem - //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) - this.instance.currentItem = $(self).clone().removeAttr('id').appendTo(this.instance.element).data("sortable-item", true); - this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it - this.instance.options.helper = function() { return ui.helper[0]; }; - - event.target = this.instance.currentItem[0]; - this.instance._mouseCapture(event, true); - this.instance._mouseStart(event, true, true); - - //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes - this.instance.offset.click.top = inst.offset.click.top; - this.instance.offset.click.left = inst.offset.click.left; - this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; - this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; - - inst._trigger("toSortable", event); - inst.dropped = this.instance.element; //draggable revert needs that - //hack so receive/update callbacks work (mostly) - inst.currentItem = inst.element; - this.instance.fromOutside = inst; - - } - - //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable - if(this.instance.currentItem) this.instance._mouseDrag(event); - - } else { - - //If it doesn't intersect with the sortable, and it intersected before, - //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval - if(this.instance.isOver) { - - this.instance.isOver = 0; - this.instance.cancelHelperRemoval = true; - - //Prevent reverting on this forced stop - this.instance.options.revert = false; - - // The out event needs to be triggered independently - this.instance._trigger('out', event, this.instance._uiHash(this.instance)); - - this.instance._mouseStop(event, true); - this.instance.options.helper = this.instance.options._helper; - - //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size - this.instance.currentItem.remove(); - if(this.instance.placeholder) this.instance.placeholder.remove(); - - inst._trigger("fromSortable", event); - inst.dropped = false; //draggable revert needs that - } - - }; - - }); - - } -}); - -$.ui.plugin.add("draggable", "cursor", { - start: function(event, ui) { - var t = $('body'), o = $(this).data('draggable').options; - if (t.css("cursor")) o._cursor = t.css("cursor"); - t.css("cursor", o.cursor); - }, - stop: function(event, ui) { - var o = $(this).data('draggable').options; - if (o._cursor) $('body').css("cursor", o._cursor); - } -}); - -$.ui.plugin.add("draggable", "opacity", { - start: function(event, ui) { - var t = $(ui.helper), o = $(this).data('draggable').options; - if(t.css("opacity")) o._opacity = t.css("opacity"); - t.css('opacity', o.opacity); - }, - stop: function(event, ui) { - var o = $(this).data('draggable').options; - if(o._opacity) $(ui.helper).css('opacity', o._opacity); - } -}); - -$.ui.plugin.add("draggable", "scroll", { - start: function(event, ui) { - var i = $(this).data("draggable"); - if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset(); - }, - drag: function(event, ui) { - - var i = $(this).data("draggable"), o = i.options, scrolled = false; - - if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') { - - if(!o.axis || o.axis != 'x') { - if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; - else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) - i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; - } - - if(!o.axis || o.axis != 'y') { - if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; - else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) - i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; - } - - } else { - - if(!o.axis || o.axis != 'x') { - if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); - } - - if(!o.axis || o.axis != 'y') { - if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); - } - - } - - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(i, event); - - } -}); - -$.ui.plugin.add("draggable", "snap", { - start: function(event, ui) { - - var i = $(this).data("draggable"), o = i.options; - i.snapElements = []; - - $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() { - var $t = $(this); var $o = $t.offset(); - if(this != i.element[0]) i.snapElements.push({ - item: this, - width: $t.outerWidth(), height: $t.outerHeight(), - top: $o.top, left: $o.left - }); - }); - - }, - drag: function(event, ui) { - - var inst = $(this).data("draggable"), o = inst.options; - var d = o.snapTolerance; - - var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, - y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; - - for (var i = inst.snapElements.length - 1; i >= 0; i--){ - - var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width, - t = inst.snapElements[i].top, b = t + inst.snapElements[i].height; - - //Yes, I know, this is insane ;) - if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) { - if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - inst.snapElements[i].snapping = false; - continue; - } - - if(o.snapMode != 'inner') { - var ts = Math.abs(t - y2) <= d; - var bs = Math.abs(b - y1) <= d; - var ls = Math.abs(l - x2) <= d; - var rs = Math.abs(r - x1) <= d; - if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; - if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; - if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; - if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; - } - - var first = (ts || bs || ls || rs); - - if(o.snapMode != 'outer') { - var ts = Math.abs(t - y1) <= d; - var bs = Math.abs(b - y2) <= d; - var ls = Math.abs(l - x1) <= d; - var rs = Math.abs(r - x2) <= d; - if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; - if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; - if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; - if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; - } - - if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) - (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); - inst.snapElements[i].snapping = (ts || bs || ls || rs || first); - - }; - - } -}); - -$.ui.plugin.add("draggable", "stack", { - start: function(event, ui) { - - var o = $(this).data("draggable").options; - - var group = $.makeArray($(o.stack)).sort(function(a,b) { - return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); - }); - if (!group.length) { return; } - - var min = parseInt(group[0].style.zIndex) || 0; - $(group).each(function(i) { - this.style.zIndex = min + i; - }); - - this[0].style.zIndex = min + group.length; - - } -}); - -$.ui.plugin.add("draggable", "zIndex", { - start: function(event, ui) { - var t = $(ui.helper), o = $(this).data("draggable").options; - if(t.css("zIndex")) o._zIndex = t.css("zIndex"); - t.css('zIndex', o.zIndex); - }, - stop: function(event, ui) { - var o = $(this).data("draggable").options; - if(o._zIndex) $(ui.helper).css('zIndex', o._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( $, undefined ) { - -$.widget("ui.droppable", { - widgetEventPrefix: "drop", - options: { - accept: '*', - activeClass: false, - addClasses: true, - greedy: false, - hoverClass: false, - scope: 'default', - tolerance: 'intersect' - }, - _create: function() { - - var o = this.options, accept = o.accept; - this.isover = 0; this.isout = 1; - - this.accept = $.isFunction(accept) ? accept : function(d) { - return d.is(accept); - }; - - //Store the droppable's proportions - this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; - - // Add the reference and positions to the manager - $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; - $.ui.ddmanager.droppables[o.scope].push(this); - - (o.addClasses && this.element.addClass("ui-droppable")); - - }, - - destroy: function() { - var drop = $.ui.ddmanager.droppables[this.options.scope]; - for ( var i = 0; i < drop.length; i++ ) - if ( drop[i] == this ) - drop.splice(i, 1); - - this.element - .removeClass("ui-droppable ui-droppable-disabled") - .removeData("droppable") - .unbind(".droppable"); - - return this; - }, - - _setOption: function(key, value) { - - if(key == 'accept') { - this.accept = $.isFunction(value) ? value : function(d) { - return d.is(value); - }; - } - $.Widget.prototype._setOption.apply(this, arguments); - }, - - _activate: function(event) { - var draggable = $.ui.ddmanager.current; - if(this.options.activeClass) this.element.addClass(this.options.activeClass); - (draggable && this._trigger('activate', event, this.ui(draggable))); - }, - - _deactivate: function(event) { - var draggable = $.ui.ddmanager.current; - if(this.options.activeClass) this.element.removeClass(this.options.activeClass); - (draggable && this._trigger('deactivate', event, this.ui(draggable))); - }, - - _over: function(event) { - - var draggable = $.ui.ddmanager.current; - if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element - - if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.hoverClass) this.element.addClass(this.options.hoverClass); - this._trigger('over', event, this.ui(draggable)); - } - - }, - - _out: function(event) { - - var draggable = $.ui.ddmanager.current; - if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element - - if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); - this._trigger('out', event, this.ui(draggable)); - } - - }, - - _drop: function(event,custom) { - - var draggable = custom || $.ui.ddmanager.current; - if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element - - var childrenIntersection = false; - this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { - var inst = $.data(this, 'droppable'); - if( - inst.options.greedy - && !inst.options.disabled - && inst.options.scope == draggable.options.scope - && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) - && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) - ) { childrenIntersection = true; return false; } - }); - if(childrenIntersection) return false; - - if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - if(this.options.activeClass) this.element.removeClass(this.options.activeClass); - if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); - this._trigger('drop', event, this.ui(draggable)); - return this.element; - } - - return false; - - }, - - ui: function(c) { - return { - draggable: (c.currentItem || c.element), - helper: c.helper, - position: c.position, - offset: c.positionAbs - }; - } - -}); - -$.extend($.ui.droppable, { - version: "1.8.16" -}); - -$.ui.intersect = function(draggable, droppable, toleranceMode) { - - if (!droppable.offset) return false; - - var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, - y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height; - var l = droppable.offset.left, r = l + droppable.proportions.width, - t = droppable.offset.top, b = t + droppable.proportions.height; - - switch (toleranceMode) { - case 'fit': - return (l <= x1 && x2 <= r - && t <= y1 && y2 <= b); - break; - case 'intersect': - return (l < x1 + (draggable.helperProportions.width / 2) // Right Half - && x2 - (draggable.helperProportions.width / 2) < r // Left Half - && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half - && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half - break; - case 'pointer': - var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left), - draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top), - isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width); - return isOver; - break; - case 'touch': - return ( - (y1 >= t && y1 <= b) || // Top edge touching - (y2 >= t && y2 <= b) || // Bottom edge touching - (y1 < t && y2 > b) // Surrounded vertically - ) && ( - (x1 >= l && x1 <= r) || // Left edge touching - (x2 >= l && x2 <= r) || // Right edge touching - (x1 < l && x2 > r) // Surrounded horizontally - ); - break; - default: - return false; - break; - } - -}; - -/* - This manager tracks offsets of draggables and droppables -*/ -$.ui.ddmanager = { - current: null, - droppables: { 'default': [] }, - prepareOffsets: function(t, event) { - - var m = $.ui.ddmanager.droppables[t.options.scope] || []; - var type = event ? event.type : null; // workaround for #2317 - var list = (t.currentItem || t.element).find(":data(droppable)").andSelf(); - - droppablesLoop: for (var i = 0; i < m.length; i++) { - - if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted - for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item - m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue - - if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables - - m[i].offset = m[i].element.offset(); - m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight }; - - } - - }, - drop: function(draggable, event) { - - var dropped = false; - $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { - - if(!this.options) return; - if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) - dropped = dropped || this._drop.call(this, event); - - if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { - this.isout = 1; this.isover = 0; - this._deactivate.call(this, event); - } - - }); - return dropped; - - }, - dragStart: function( draggable, event ) { - //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) - draggable.element.parents( ":not(body,html)" ).bind( "scroll.droppable", function() { - if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event ); - }); - }, - drag: function(draggable, event) { - - //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. - if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event); - - //Run through all droppables and check their positions based on specific tolerance options - $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { - - if(this.options.disabled || this.greedyChild || !this.visible) return; - var intersects = $.ui.intersect(draggable, this, this.options.tolerance); - - var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null); - if(!c) return; - - var parentInstance; - if (this.options.greedy) { - var parent = this.element.parents(':data(droppable):eq(0)'); - if (parent.length) { - parentInstance = $.data(parent[0], 'droppable'); - parentInstance.greedyChild = (c == 'isover' ? 1 : 0); - } - } - - // we just moved into a greedy child - if (parentInstance && c == 'isover') { - parentInstance['isover'] = 0; - parentInstance['isout'] = 1; - parentInstance._out.call(parentInstance, event); - } - - this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0; - this[c == "isover" ? "_over" : "_out"].call(this, event); - - // we just moved out of a greedy child - if (parentInstance && c == 'isout') { - parentInstance['isout'] = 0; - parentInstance['isover'] = 1; - parentInstance._over.call(parentInstance, event); - } - }); - - }, - dragStop: function( draggable, event ) { - draggable.element.parents( ":not(body,html)" ).unbind( "scroll.droppable" ); - //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) - if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event ); - } -}; - -})(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( $, undefined ) { - -$.widget("ui.resizable", $.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: 1000 - }, - _create: function() { - - var self = this, o = this.options; - this.element.addClass("ui-resizable"); - - $.extend(this, { - _aspectRatio: !!(o.aspectRatio), - aspectRatio: o.aspectRatio, - originalElement: this.element, - _proportionallyResizeElements: [], - _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null - }); - - //Wrap the element if it cannot hold child nodes - if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { - - //Opera fix for relative positioning - if (/relative/.test(this.element.css('position')) && $.browser.opera) - this.element.css({ position: 'relative', top: 'auto', left: 'auto' }); - - //Create a wrapper element and set the wrapper to the new current internal element - this.element.wrap( - $('
      ').css({ - position: this.element.css('position'), - width: this.element.outerWidth(), - height: this.element.outerHeight(), - top: this.element.css('top'), - left: this.element.css('left') - }) - ); - - //Overwrite the original this.element - this.element = this.element.parent().data( - "resizable", this.element.data('resizable') - ); - - this.elementIsWrapper = true; - - //Move margins to the wrapper - 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}); - - //Prevent Safari textarea resize - this.originalResizeStyle = this.originalElement.css('resize'); - this.originalElement.css('resize', 'none'); - - //Push the actual element to our proportionallyResize internal array - this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' })); - - // avoid IE jump (hard set the margin) - this.originalElement.css({ margin: this.originalElement.css('margin') }); - - // fix handlers offset - this._proportionallyResize(); - - } - - this.handles = o.handles || (!$('.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 n = this.handles.split(","); this.handles = {}; - - for(var i = 0; i < n.length; i++) { - - var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle; - var axis = $('
      '); - - // increase zIndex of sw, se, ne, nw axis - //TODO : this modifies original option - if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex }); - - //TODO : What's going on here? - if ('se' == handle) { - axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se'); - }; - - //Insert into internal handles object and append to element - this.handles[handle] = '.ui-resizable-'+handle; - this.element.append(axis); - } - - } - - this._renderAxis = function(target) { - - target = target || this.element; - - for(var i in this.handles) { - - if(this.handles[i].constructor == String) - this.handles[i] = $(this.handles[i], this.element).show(); - - //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls) - if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { - - var axis = $(this.handles[i], this.element), padWrapper = 0; - - //Checking the correct pad and border - padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); - - //The padding type i have to apply... - var padPos = [ 'padding', - /ne|nw|n/.test(i) ? 'Top' : - /se|sw|s/.test(i) ? 'Bottom' : - /^e$/.test(i) ? 'Right' : 'Left' ].join(""); - - target.css(padPos, padWrapper); - - this._proportionallyResize(); - - } - - //TODO: What's that good for? There's not anything to be executed left - if(!$(this.handles[i]).length) - continue; - - } - }; - - //TODO: make renderAxis a prototype function - this._renderAxis(this.element); - - this._handles = $('.ui-resizable-handle', this.element) - .disableSelection(); - - //Matching axis name - this._handles.mouseover(function() { - if (!self.resizing) { - if (this.className) - var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); - //Axis, default = se - self.axis = axis && axis[1] ? axis[1] : 'se'; - } - }); - - //If we want to auto hide the elements - if (o.autoHide) { - this._handles.hide(); - $(this.element) - .addClass("ui-resizable-autohide") - .hover(function() { - if (o.disabled) return; - $(this).removeClass("ui-resizable-autohide"); - self._handles.show(); - }, - function(){ - if (o.disabled) return; - if (!self.resizing) { - $(this).addClass("ui-resizable-autohide"); - self._handles.hide(); - } - }); - } - - //Initialize the mouse interaction - this._mouseInit(); - - }, - - destroy: function() { - - this._mouseDestroy(); - - var _destroy = function(exp) { - $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") - .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove(); - }; - - //TODO: Unwrap at same DOM position - if (this.elementIsWrapper) { - _destroy(this.element); - var wrapper = this.element; - wrapper.after( - this.originalElement.css({ - position: wrapper.css('position'), - width: wrapper.outerWidth(), - height: wrapper.outerHeight(), - top: wrapper.css('top'), - left: wrapper.css('left') - }) - ).remove(); - } - - this.originalElement.css('resize', this.originalResizeStyle); - _destroy(this.originalElement); - - return this; - }, - - _mouseCapture: function(event) { - var handle = false; - for (var i in this.handles) { - if ($(this.handles[i])[0] == event.target) { - handle = true; - } - } - - return !this.options.disabled && handle; - }, - - _mouseStart: function(event) { - - var o = this.options, iniPos = this.element.position(), el = this.element; - - this.resizing = true; - this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() }; - - // bugfix for http://dev.jquery.com/ticket/1749 - if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) { - el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left }); - } - - //Opera fixing relative position - if ($.browser.opera && (/relative/).test(el.css('position'))) - el.css({ position: 'relative', top: 'auto', left: 'auto' }); - - this._renderProxy(); - - var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top')); - - if (o.containment) { - curleft += $(o.containment).scrollLeft() || 0; - curtop += $(o.containment).scrollTop() || 0; - } - - //Store needed variables - this.offset = this.helper.offset(); - this.position = { left: curleft, top: curtop }; - this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; - this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; - this.originalPosition = { left: curleft, top: curtop }; - this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; - this.originalMousePosition = { left: event.pageX, top: event.pageY }; - - //Aspect Ratio - this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); - - var cursor = $('.ui-resizable-' + this.axis).css('cursor'); - $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor); - - el.addClass("ui-resizable-resizing"); - this._propagate("start", event); - return true; - }, - - _mouseDrag: function(event) { - - //Increase performance, avoid regex - var el = this.helper, o = this.options, props = {}, - self = this, smp = this.originalMousePosition, a = this.axis; - - var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0; - var trigger = this._change[a]; - if (!trigger) return false; - - // Calculate the attrs that will be change - var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff; - - // Put this in the mouseDrag handler since the user can start pressing shift while resizing - this._updateVirtualBoundaries(event.shiftKey); - if (this._aspectRatio || event.shiftKey) - data = this._updateRatio(data, event); - - data = this._respectSize(data, event); - - // plugins callbacks need to be called first - this._propagate("resize", event); - - el.css({ - top: this.position.top + "px", left: this.position.left + "px", - width: this.size.width + "px", height: this.size.height + "px" - }); - - if (!this._helper && this._proportionallyResizeElements.length) - this._proportionallyResize(); - - this._updateCache(data); - - // calling the user callback at the end - this._trigger('resize', event, this.ui()); - - return false; - }, - - _mouseStop: function(event) { - - this.resizing = false; - var o = this.options, self = this; - - if(this._helper) { - var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), - soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, - soffsetw = ista ? 0 : self.sizeDiff.width; - - var s = { width: (self.helper.width() - soffsetw), height: (self.helper.height() - soffseth) }, - left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, - top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; - - if (!o.animate) - this.element.css($.extend(s, { top: top, left: left })); - - self.helper.height(self.size.height); - self.helper.width(self.size.width); - - if (this._helper && !o.animate) this._proportionallyResize(); - } - - $('body').css('cursor', 'auto'); - - this.element.removeClass("ui-resizable-resizing"); - - this._propagate("stop", event); - - if (this._helper) this.helper.remove(); - return false; - - }, - - _updateVirtualBoundaries: function(forceAspectRatio) { - var o = this.options, pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b; - - b = { - minWidth: isNumber(o.minWidth) ? o.minWidth : 0, - maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity, - minHeight: isNumber(o.minHeight) ? o.minHeight : 0, - maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity - }; - - if(this._aspectRatio || forceAspectRatio) { - // We want to create an enclosing box whose aspect ration is the requested one - // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension - pMinWidth = b.minHeight * this.aspectRatio; - pMinHeight = b.minWidth / this.aspectRatio; - pMaxWidth = b.maxHeight * this.aspectRatio; - pMaxHeight = b.maxWidth / this.aspectRatio; - - if(pMinWidth > b.minWidth) b.minWidth = pMinWidth; - if(pMinHeight > b.minHeight) b.minHeight = pMinHeight; - if(pMaxWidth < b.maxWidth) b.maxWidth = pMaxWidth; - if(pMaxHeight < b.maxHeight) b.maxHeight = pMaxHeight; - } - this._vBoundaries = b; - }, - - _updateCache: function(data) { - var o = this.options; - this.offset = this.helper.offset(); - if (isNumber(data.left)) this.position.left = data.left; - if (isNumber(data.top)) this.position.top = data.top; - if (isNumber(data.height)) this.size.height = data.height; - if (isNumber(data.width)) this.size.width = data.width; - }, - - _updateRatio: function(data, event) { - - var o = this.options, cpos = this.position, csize = this.size, a = this.axis; - - if (isNumber(data.height)) data.width = (data.height * this.aspectRatio); - else if (isNumber(data.width)) data.height = (data.width / this.aspectRatio); - - if (a == 'sw') { - data.left = cpos.left + (csize.width - data.width); - data.top = null; - } - if (a == 'nw') { - data.top = cpos.top + (csize.height - data.height); - data.left = cpos.left + (csize.width - data.width); - } - - return data; - }, - - _respectSize: function(data, event) { - - var el = this.helper, o = this._vBoundaries, pRatio = this._aspectRatio || event.shiftKey, a = this.axis, - ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), - isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height); - - if (isminw) data.width = o.minWidth; - if (isminh) data.height = o.minHeight; - if (ismaxw) data.width = o.maxWidth; - if (ismaxh) data.height = o.maxHeight; - - var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height; - var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); - - if (isminw && cw) data.left = dw - o.minWidth; - if (ismaxw && cw) data.left = dw - o.maxWidth; - if (isminh && ch) data.top = dh - o.minHeight; - if (ismaxh && ch) data.top = dh - o.maxHeight; - - // fixing jump error on top/left - bug #2330 - var isNotwh = !data.width && !data.height; - if (isNotwh && !data.left && data.top) data.top = null; - else if (isNotwh && !data.top && data.left) data.left = null; - - return data; - }, - - _proportionallyResize: function() { - - var o = this.options; - if (!this._proportionallyResizeElements.length) return; - var element = this.helper || this.element; - - for (var i=0; i < this._proportionallyResizeElements.length; i++) { - - var prel = this._proportionallyResizeElements[i]; - - if (!this.borderDif) { - var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')], - p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')]; - - this.borderDif = $.map(b, function(v, i) { - var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0; - return border + padding; - }); - } - - if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length))) - continue; - - prel.css({ - height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, - width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 - }); - - }; - - }, - - _renderProxy: function() { - - var el = this.element, o = this.options; - this.elementOffset = el.offset(); - - if(this._helper) { - - this.helper = this.helper || $('
      '); - - // fix ie6 offset TODO: This seems broken - var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0), - pxyoffset = ( ie6 ? 2 : -1 ); - - this.helper.addClass(this._helper).css({ - width: this.element.outerWidth() + pxyoffset, - height: this.element.outerHeight() + pxyoffset, - position: 'absolute', - left: this.elementOffset.left - ie6offset +'px', - top: this.elementOffset.top - ie6offset +'px', - zIndex: ++o.zIndex //TODO: Don't modify option - }); - - this.helper - .appendTo("body") - .disableSelection(); - - } else { - this.helper = this.element; - } - - }, - - _change: { - e: function(event, dx, dy) { - return { width: this.originalSize.width + dx }; - }, - w: function(event, dx, dy) { - var o = this.options, cs = this.originalSize, sp = this.originalPosition; - return { left: sp.left + dx, width: cs.width - dx }; - }, - n: function(event, dx, dy) { - var o = this.options, cs = this.originalSize, sp = this.originalPosition; - return { top: sp.top + dy, height: cs.height - dy }; - }, - s: function(event, dx, dy) { - return { height: this.originalSize.height + dy }; - }, - se: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); - }, - sw: function(event, dx, dy) { - return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); - }, - ne: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); - }, - nw: function(event, dx, dy) { - return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); - } - }, - - _propagate: function(n, event) { - $.ui.plugin.call(this, n, [event, this.ui()]); - (n != "resize" && this._trigger(n, event, 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 - }; - } - -}); - -$.extend($.ui.resizable, { - version: "1.8.16" -}); - -/* - * Resizable Extensions - */ - -$.ui.plugin.add("resizable", "alsoResize", { - - start: function (event, ui) { - var self = $(this).data("resizable"), o = self.options; - - var _store = function (exp) { - $(exp).each(function() { - var el = $(this); - el.data("resizable-alsoresize", { - width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), - left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10), - position: el.css('position') // to reset Opera on stop() - }); - }); - }; - - if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) { - if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } - else { $.each(o.alsoResize, function (exp) { _store(exp); }); } - }else{ - _store(o.alsoResize); - } - }, - - resize: function (event, ui) { - var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition; - - var delta = { - height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0, - top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0 - }, - - _alsoResize = function (exp, c) { - $(exp).each(function() { - var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, - css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left']; - - $.each(css, function (i, prop) { - var sum = (start[prop]||0) + (delta[prop]||0); - if (sum && sum >= 0) - style[prop] = sum || null; - }); - - // Opera fixing relative position - if ($.browser.opera && /relative/.test(el.css('position'))) { - self._revertToRelativePosition = true; - el.css({ position: 'absolute', top: 'auto', left: 'auto' }); - } - - el.css(style); - }); - }; - - if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { - $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); - }else{ - _alsoResize(o.alsoResize); - } - }, - - stop: function (event, ui) { - var self = $(this).data("resizable"), o = self.options; - - var _reset = function (exp) { - $(exp).each(function() { - var el = $(this); - // reset position for Opera - no need to verify it was changed - el.css({ position: el.data("resizable-alsoresize").position }); - }); - }; - - if (self._revertToRelativePosition) { - self._revertToRelativePosition = false; - if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { - $.each(o.alsoResize, function (exp) { _reset(exp); }); - }else{ - _reset(o.alsoResize); - } - } - - $(this).removeData("resizable-alsoresize"); - } -}); - -$.ui.plugin.add("resizable", "animate", { - - stop: function(event, ui) { - var self = $(this).data("resizable"), o = self.options; - - var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), - soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, - soffsetw = ista ? 0 : self.sizeDiff.width; - - var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) }, - left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, - top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; - - self.element.animate( - $.extend(style, top && left ? { top: top, left: left } : {}), { - duration: o.animateDuration, - easing: o.animateEasing, - step: function() { - - var data = { - width: parseInt(self.element.css('width'), 10), - height: parseInt(self.element.css('height'), 10), - top: parseInt(self.element.css('top'), 10), - left: parseInt(self.element.css('left'), 10) - }; - - if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height }); - - // propagating resize, and updating values for each animation step - self._updateCache(data); - self._propagate("resize", event); - - } - } - ); - } - -}); - -$.ui.plugin.add("resizable", "containment", { - - start: function(event, ui) { - var self = $(this).data("resizable"), o = self.options, el = self.element; - var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc; - if (!ce) return; - - self.containerElement = $(ce); - - if (/document/.test(oc) || oc == document) { - self.containerOffset = { left: 0, top: 0 }; - self.containerPosition = { left: 0, top: 0 }; - - self.parentData = { - element: $(document), left: 0, top: 0, - width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight - }; - } - - // i'm a node, so compute top, left, right, bottom - else { - var element = $(ce), p = []; - $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); }); - - self.containerOffset = element.offset(); - self.containerPosition = element.position(); - self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) }; - - var co = self.containerOffset, ch = self.containerSize.height, cw = self.containerSize.width, - width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch); - - self.parentData = { - element: ce, left: co.left, top: co.top, width: width, height: height - }; - } - }, - - resize: function(event, ui) { - var self = $(this).data("resizable"), o = self.options, - ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position, - pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement; - - if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co; - - if (cp.left < (self._helper ? co.left : 0)) { - self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left)); - if (pRatio) self.size.height = self.size.width / o.aspectRatio; - self.position.left = o.helper ? co.left : 0; - } - - if (cp.top < (self._helper ? co.top : 0)) { - self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top); - if (pRatio) self.size.width = self.size.height * o.aspectRatio; - self.position.top = self._helper ? co.top : 0; - } - - self.offset.left = self.parentData.left+self.position.left; - self.offset.top = self.parentData.top+self.position.top; - - var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ), - hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height ); - - var isParent = self.containerElement.get(0) == self.element.parent().get(0), - isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position')); - - if(isParent && isOffsetRelative) woset -= self.parentData.left; - - if (woset + self.size.width >= self.parentData.width) { - self.size.width = self.parentData.width - woset; - if (pRatio) self.size.height = self.size.width / self.aspectRatio; - } - - if (hoset + self.size.height >= self.parentData.height) { - self.size.height = self.parentData.height - hoset; - if (pRatio) self.size.width = self.size.height * self.aspectRatio; - } - }, - - stop: function(event, ui){ - var self = $(this).data("resizable"), o = self.options, cp = self.position, - co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement; - - var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height; - - if (self._helper && !o.animate && (/relative/).test(ce.css('position'))) - $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); - - if (self._helper && !o.animate && (/static/).test(ce.css('position'))) - $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); - - } -}); - -$.ui.plugin.add("resizable", "ghost", { - - start: function(event, ui) { - - var self = $(this).data("resizable"), o = self.options, cs = self.size; - - self.ghost = self.originalElement.clone(); - self.ghost - .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) - .addClass('ui-resizable-ghost') - .addClass(typeof o.ghost == 'string' ? o.ghost : ''); - - self.ghost.appendTo(self.helper); - - }, - - resize: function(event, ui){ - var self = $(this).data("resizable"), o = self.options; - if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width }); - }, - - stop: function(event, ui){ - var self = $(this).data("resizable"), o = self.options; - if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0)); - } - -}); - -$.ui.plugin.add("resizable", "grid", { - - resize: function(event, ui) { - var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey; - o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid; - var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1); - - if (/^(se|s|e)$/.test(a)) { - self.size.width = os.width + ox; - self.size.height = os.height + oy; - } - else if (/^(ne)$/.test(a)) { - self.size.width = os.width + ox; - self.size.height = os.height + oy; - self.position.top = op.top - oy; - } - else if (/^(sw)$/.test(a)) { - self.size.width = os.width + ox; - self.size.height = os.height + oy; - self.position.left = op.left - ox; - } - else { - self.size.width = os.width + ox; - self.size.height = os.height + oy; - self.position.top = op.top - oy; - self.position.left = op.left - ox; - } - } - -}); - -var num = function(v) { - return parseInt(v, 10) || 0; -}; - -var isNumber = function(value) { - return !isNaN(parseInt(value, 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( $, undefined ) { - -$.widget("ui.selectable", $.ui.mouse, { - options: { - appendTo: 'body', - autoRefresh: true, - distance: 0, - filter: '*', - tolerance: 'touch' - }, - _create: function() { - var self = this; - - this.element.addClass("ui-selectable"); - - this.dragged = false; - - // cache selectee children based on filter - var selectees; - this.refresh = function() { - selectees = $(self.options.filter, self.element[0]); - selectees.each(function() { - var $this = $(this); - var pos = $this.offset(); - $.data(this, "selectable-item", { - element: this, - $element: $this, - left: pos.left, - top: pos.top, - right: pos.left + $this.outerWidth(), - bottom: pos.top + $this.outerHeight(), - startselected: false, - selected: $this.hasClass('ui-selected'), - selecting: $this.hasClass('ui-selecting'), - unselecting: $this.hasClass('ui-unselecting') - }); - }); - }; - this.refresh(); - - this.selectees = selectees.addClass("ui-selectee"); - - this._mouseInit(); - - this.helper = $("
      "); - }, - - 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(event) { - var self = this; - - this.opos = [event.pageX, event.pageY]; - - if (this.options.disabled) - return; - - var options = this.options; - - this.selectees = $(options.filter, this.element[0]); - - this._trigger("start", event); - - $(options.appendTo).append(this.helper); - // position helper (lasso) - this.helper.css({ - "left": event.clientX, - "top": event.clientY, - "width": 0, - "height": 0 - }); - - if (options.autoRefresh) { - this.refresh(); - } - - this.selectees.filter('.ui-selected').each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.startselected = true; - if (!event.metaKey) { - selectee.$element.removeClass('ui-selected'); - selectee.selected = false; - selectee.$element.addClass('ui-unselecting'); - selectee.unselecting = true; - // selectable UNSELECTING callback - self._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - }); - - $(event.target).parents().andSelf().each(function() { - var selectee = $.data(this, "selectable-item"); - if (selectee) { - var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected'); - selectee.$element - .removeClass(doSelect ? "ui-unselecting" : "ui-selected") - .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); - selectee.unselecting = !doSelect; - selectee.selecting = doSelect; - selectee.selected = doSelect; - // selectable (UN)SELECTING callback - if (doSelect) { - self._trigger("selecting", event, { - selecting: selectee.element - }); - } else { - self._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - return false; - } - }); - - }, - - _mouseDrag: function(event) { - var self = this; - this.dragged = true; - - if (this.options.disabled) - return; - - var options = this.options; - - var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY; - if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; } - if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; } - this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); - - this.selectees.each(function() { - var selectee = $.data(this, "selectable-item"); - //prevent helper from being selected if appendTo: selectable - if (!selectee || selectee.element == self.element[0]) - return; - var hit = false; - if (options.tolerance == 'touch') { - hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); - } else if (options.tolerance == 'fit') { - hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); - } - - if (hit) { - // SELECT - if (selectee.selected) { - selectee.$element.removeClass('ui-selected'); - selectee.selected = false; - } - if (selectee.unselecting) { - selectee.$element.removeClass('ui-unselecting'); - selectee.unselecting = false; - } - if (!selectee.selecting) { - selectee.$element.addClass('ui-selecting'); - selectee.selecting = true; - // selectable SELECTING callback - self._trigger("selecting", event, { - selecting: selectee.element - }); - } - } else { - // UNSELECT - if (selectee.selecting) { - if (event.metaKey && selectee.startselected) { - selectee.$element.removeClass('ui-selecting'); - selectee.selecting = false; - selectee.$element.addClass('ui-selected'); - selectee.selected = true; - } else { - selectee.$element.removeClass('ui-selecting'); - selectee.selecting = false; - if (selectee.startselected) { - selectee.$element.addClass('ui-unselecting'); - selectee.unselecting = true; - } - // selectable UNSELECTING callback - self._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - } - if (selectee.selected) { - if (!event.metaKey && !selectee.startselected) { - selectee.$element.removeClass('ui-selected'); - selectee.selected = false; - - selectee.$element.addClass('ui-unselecting'); - selectee.unselecting = true; - // selectable UNSELECTING callback - self._trigger("unselecting", event, { - unselecting: selectee.element - }); - } - } - } - }); - - return false; - }, - - _mouseStop: function(event) { - var self = this; - - this.dragged = false; - - var options = this.options; - - $('.ui-unselecting', this.element[0]).each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.$element.removeClass('ui-unselecting'); - selectee.unselecting = false; - selectee.startselected = false; - self._trigger("unselected", event, { - unselected: selectee.element - }); - }); - $('.ui-selecting', this.element[0]).each(function() { - var selectee = $.data(this, "selectable-item"); - selectee.$element.removeClass('ui-selecting').addClass('ui-selected'); - selectee.selecting = false; - selectee.selected = true; - selectee.startselected = true; - self._trigger("selected", event, { - selected: selectee.element - }); - }); - this._trigger("stop", event); - - this.helper.remove(); - - return false; - } - -}); - -$.extend($.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( $, undefined ) { - -$.widget("ui.sortable", $.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: 1000 - }, - _create: function() { - - var o = this.options; - this.containerCache = {}; - this.element.addClass("ui-sortable"); - - //Get the items - this.refresh(); - - //Let's determine if the items are being displayed horizontally - this.floating = this.items.length ? o.axis === 'x' || (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false; - - //Let's determine the parent's offset - this.offset = this.element.offset(); - - //Initialize mouse events for interaction - this._mouseInit(); - - }, - - destroy: function() { - this.element - .removeClass("ui-sortable ui-sortable-disabled") - .removeData("sortable") - .unbind(".sortable"); - this._mouseDestroy(); - - for ( var i = this.items.length - 1; i >= 0; i-- ) - this.items[i].item.removeData("sortable-item"); - - return this; - }, - - _setOption: function(key, value){ - if ( key === "disabled" ) { - this.options[ key ] = value; - - this.widget() - [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" ); - } else { - // Don't call widget base _setOption for disable as it adds ui-state-disabled class - $.Widget.prototype._setOption.apply(this, arguments); - } - }, - - _mouseCapture: function(event, overrideHandle) { - - if (this.reverting) { - return false; - } - - if(this.options.disabled || this.options.type == 'static') return false; - - //We have to refresh the items data once first - this._refreshItems(event); - - //Find out if the clicked node (or one of its parents) is a actual item in this.items - var currentItem = null, self = this, nodes = $(event.target).parents().each(function() { - if($.data(this, 'sortable-item') == self) { - currentItem = $(this); - return false; - } - }); - if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target); - - if(!currentItem) return false; - if(this.options.handle && !overrideHandle) { - var validHandle = false; - - $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; }); - if(!validHandle) return false; - } - - this.currentItem = currentItem; - this._removeCurrentsFromItems(); - return true; - - }, - - _mouseStart: function(event, overrideHandle, noActivation) { - - var o = this.options, self = this; - this.currentContainer = this; - - //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture - this.refreshPositions(); - - //Create and append the visible helper - this.helper = this._createHelper(event); - - //Cache the helper size - this._cacheHelperProportions(); - - /* - * - Position generation - - * This block generates everything position related - it's the core of draggables. - */ - - //Cache the margins of the original element - this._cacheMargins(); - - //Get the next scrolling parent - this.scrollParent = this.helper.scrollParent(); - - //The element's absolute position on the page minus margins - this.offset = this.currentItem.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - - // Only after we got the offset, we can change the helper's position to absolute - // TODO: Still need to figure out a way to make relative sorting possible - this.helper.css("position", "absolute"); - this.cssPosition = this.helper.css("position"); - - $.extend(this.offset, { - click: { //Where the click happened, relative to the element - left: event.pageX - this.offset.left, - top: event.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper - }); - - //Generate the original position - this.originalPosition = this._generatePosition(event); - this.originalPageX = event.pageX; - this.originalPageY = event.pageY; - - //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied - (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); - - //Cache the former DOM position - this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; - - //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way - if(this.helper[0] != this.currentItem[0]) { - this.currentItem.hide(); - } - - //Create the placeholder - this._createPlaceholder(); - - //Set a containment if given in the options - if(o.containment) - this._setContainment(); - - if(o.cursor) { // cursor option - if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor"); - $('body').css("cursor", o.cursor); - } - - if(o.opacity) { // opacity option - if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); - this.helper.css("opacity", o.opacity); - } - - if(o.zIndex) { // zIndex option - if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); - this.helper.css("zIndex", o.zIndex); - } - - //Prepare scrolling - if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') - this.overflowOffset = this.scrollParent.offset(); - - //Call callbacks - this._trigger("start", event, this._uiHash()); - - //Recache the helper size - if(!this._preserveHelperProportions) - this._cacheHelperProportions(); - - - //Post 'activate' events to possible containers - if(!noActivation) { - for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); } - } - - //Prepare possible droppables - if($.ui.ddmanager) - $.ui.ddmanager.current = this; - - if ($.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - - this.dragging = true; - - this.helper.addClass("ui-sortable-helper"); - this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position - return true; - - }, - - _mouseDrag: function(event) { - - //Compute the helpers position - this.position = this._generatePosition(event); - this.positionAbs = this._convertPositionTo("absolute"); - - if (!this.lastPositionAbs) { - this.lastPositionAbs = this.positionAbs; - } - - //Do scrolling - if(this.options.scroll) { - var o = this.options, scrolled = false; - if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') { - - if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; - else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) - this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; - - if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; - else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) - this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; - - } else { - - if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); - else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) - scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); - - if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); - else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) - scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); - - } - - if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) - $.ui.ddmanager.prepareOffsets(this, event); - } - - //Regenerate the absolute position used for position checks - this.positionAbs = this._convertPositionTo("absolute"); - - //Set the helper 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'; - - //Rearrange - for (var i = this.items.length - 1; i >= 0; i--) { - - //Cache variables and intersection, continue if no intersection - var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item); - if (!intersection) continue; - - if(itemElement != this.currentItem[0] //cannot intersect with itself - && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before - && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked - && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) - //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container - ) { - - this.direction = intersection == 1 ? "down" : "up"; - - if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) { - this._rearrange(event, item); - } else { - break; - } - - this._trigger("change", event, this._uiHash()); - break; - } - } - - //Post events to containers - this._contactContainers(event); - - //Interconnect with droppables - if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); - - //Call callbacks - this._trigger('sort', event, this._uiHash()); - - this.lastPositionAbs = this.positionAbs; - return false; - - }, - - _mouseStop: function(event, noPropagation) { - - if(!event) return; - - //If we are using droppables, inform the manager about the drop - if ($.ui.ddmanager && !this.options.dropBehaviour) - $.ui.ddmanager.drop(this, event); - - if(this.options.revert) { - var self = this; - var cur = self.placeholder.offset(); - - self.reverting = true; - - $(this.helper).animate({ - left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), - top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) - }, parseInt(this.options.revert, 10) || 500, function() { - self._clear(event); - }); - } else { - this._clear(event, noPropagation); - } - - return false; - - }, - - cancel: function() { - - var self = this; - - if(this.dragging) { - - this._mouseUp({ target: null }); - - if(this.options.helper == "original") - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - else - this.currentItem.show(); - - //Post deactivating events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - this.containers[i]._trigger("deactivate", null, self._uiHash(this)); - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", null, self._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - if (this.placeholder) { - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove(); - - $.extend(this, { - helper: null, - dragging: false, - reverting: false, - _noFinalSort: null - }); - - if(this.domPosition.prev) { - $(this.domPosition.prev).after(this.currentItem); - } else { - $(this.domPosition.parent).prepend(this.currentItem); - } - } - - return this; - - }, - - serialize: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected); - var str = []; o = o || {}; - - $(items).each(function() { - var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/)); - if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2])); - }); - - if(!str.length && o.key) { - str.push(o.key + '='); - } - - return str.join('&'); - - }, - - toArray: function(o) { - - var items = this._getItemsAsjQuery(o && o.connected); - var ret = []; o = o || {}; - - items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); }); - return ret; - - }, - - /* Be careful with the following core functions */ - _intersectsWith: function(item) { - - var x1 = this.positionAbs.left, - x2 = x1 + this.helperProportions.width, - y1 = this.positionAbs.top, - y2 = y1 + this.helperProportions.height; - - var l = item.left, - r = l + item.width, - t = item.top, - b = t + item.height; - - var dyClick = this.offset.click.top, - dxClick = this.offset.click.left; - - var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; - - if( this.options.tolerance == "pointer" - || this.options.forcePointerForContainers - || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height']) - ) { - return isOverElement; - } else { - - return (l < x1 + (this.helperProportions.width / 2) // Right Half - && x2 - (this.helperProportions.width / 2) < r // Left Half - && t < y1 + (this.helperProportions.height / 2) // Bottom Half - && y2 - (this.helperProportions.height / 2) < b ); // Top Half - - } - }, - - _intersectsWithPointer: function(item) { - - var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), - isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), - isOverElement = isOverElementHeight && isOverElementWidth, - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (!isOverElement) - return false; - - return this.floating ? - ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 ) - : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) ); - - }, - - _intersectsWithSides: function(item) { - - var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), - isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), - verticalDirection = this._getDragVerticalDirection(), - horizontalDirection = this._getDragHorizontalDirection(); - - if (this.floating && horizontalDirection) { - return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf)); - } else { - return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf)); - } - - }, - - _getDragVerticalDirection: function() { - var delta = this.positionAbs.top - this.lastPositionAbs.top; - return delta != 0 && (delta > 0 ? "down" : "up"); - }, - - _getDragHorizontalDirection: function() { - var delta = this.positionAbs.left - this.lastPositionAbs.left; - return delta != 0 && (delta > 0 ? "right" : "left"); - }, - - refresh: function(event) { - this._refreshItems(event); - this.refreshPositions(); - return this; - }, - - _connectWith: function() { - var options = this.options; - return options.connectWith.constructor == String - ? [options.connectWith] - : options.connectWith; - }, - - _getItemsAsjQuery: function(connected) { - - var self = this; - var items = []; - var queries = []; - var connectWith = this._connectWith(); - - if(connectWith && connected) { - for (var i = connectWith.length - 1; i >= 0; i--){ - var cur = $(connectWith[i]); - for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); - if(inst && inst != this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]); - } - }; - }; - } - - queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]); - - for (var i = queries.length - 1; i >= 0; i--){ - queries[i][0].each(function() { - items.push(this); - }); - }; - - return $(items); - - }, - - _removeCurrentsFromItems: function() { - - var list = this.currentItem.find(":data(sortable-item)"); - - for (var i=0; i < this.items.length; i++) { - - for (var j=0; j < list.length; j++) { - if(list[j] == this.items[i].item[0]) - this.items.splice(i,1); - }; - - }; - - }, - - _refreshItems: function(event) { - - this.items = []; - this.containers = [this]; - var items = this.items; - var self = this; - var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]]; - var connectWith = this._connectWith(); - - if(connectWith) { - for (var i = connectWith.length - 1; i >= 0; i--){ - var cur = $(connectWith[i]); - for (var j = cur.length - 1; j >= 0; j--){ - var inst = $.data(cur[j], 'sortable'); - if(inst && inst != this && !inst.options.disabled) { - queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); - this.containers.push(inst); - } - }; - }; - } - - for (var i = queries.length - 1; i >= 0; i--) { - var targetData = queries[i][1]; - var _queries = queries[i][0]; - - for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) { - var item = $(_queries[j]); - - item.data('sortable-item', targetData); // Data for target checking (mouse manager) - - items.push({ - item: item, - instance: targetData, - width: 0, height: 0, - left: 0, top: 0 - }); - }; - }; - - }, - - refreshPositions: function(fast) { - - //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change - if(this.offsetParent && this.helper) { - this.offset.parent = this._getParentOffset(); - } - - for (var i = this.items.length - 1; i >= 0; i--){ - var item = this.items[i]; - - //We ignore calculating positions of all connected containers when we're not over them - if(item.instance != this.currentContainer && this.currentContainer && item.item[0] != this.currentItem[0]) - continue; - - var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; - - if (!fast) { - item.width = t.outerWidth(); - item.height = t.outerHeight(); - } - - var p = t.offset(); - item.left = p.left; - item.top = p.top; - }; - - if(this.options.custom && this.options.custom.refreshContainers) { - this.options.custom.refreshContainers.call(this); - } else { - for (var i = this.containers.length - 1; i >= 0; i--){ - var p = this.containers[i].element.offset(); - this.containers[i].containerCache.left = p.left; - this.containers[i].containerCache.top = p.top; - this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); - this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); - }; - } - - return this; - }, - - _createPlaceholder: function(that) { - - var self = that || this, o = self.options; - - if(!o.placeholder || o.placeholder.constructor == String) { - var className = o.placeholder; - o.placeholder = { - element: function() { - - var el = $(document.createElement(self.currentItem[0].nodeName)) - .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder") - .removeClass("ui-sortable-helper")[0]; - - if(!className) - el.style.visibility = "hidden"; - - return el; - }, - update: function(container, p) { - - // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that - // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified - if(className && !o.forcePlaceholderSize) return; - - //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item - if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); }; - if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); }; - } - }; - } - - //Create the placeholder - self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem)); - - //Append it after the actual current item - self.currentItem.after(self.placeholder); - - //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) - o.placeholder.update(self, self.placeholder); - - }, - - _contactContainers: function(event) { - - // get innermost container that intersects with item - var innermostContainer = null, innermostIndex = null; - - - for (var i = this.containers.length - 1; i >= 0; i--){ - - // never consider a container that's located within the item itself - if($.ui.contains(this.currentItem[0], this.containers[i].element[0])) - continue; - - if(this._intersectsWith(this.containers[i].containerCache)) { - - // if we've already found a container and it's more "inner" than this, then continue - if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0])) - continue; - - innermostContainer = this.containers[i]; - innermostIndex = i; - - } else { - // container doesn't intersect. trigger "out" event if necessary - if(this.containers[i].containerCache.over) { - this.containers[i]._trigger("out", event, this._uiHash(this)); - this.containers[i].containerCache.over = 0; - } - } - - } - - // if no intersecting containers found, return - if(!innermostContainer) return; - - // move the item into the container if it's not there already - if(this.containers.length === 1) { - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } else if(this.currentContainer != this.containers[innermostIndex]) { - - //When entering a new container, we will find the item with the least distance and append our item near it - var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; - for (var j = this.items.length - 1; j >= 0; j--) { - if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; - var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; - if(Math.abs(cur - base) < dist) { - dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; - } - } - - if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled - return; - - this.currentContainer = this.containers[innermostIndex]; - itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); - this._trigger("change", event, this._uiHash()); - this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); - - //Update the placeholder - this.options.placeholder.update(this.currentContainer, this.placeholder); - - this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); - this.containers[innermostIndex].containerCache.over = 1; - } - - - }, - - _createHelper: function(event) { - - var o = this.options; - var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem); - - if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already - $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); - - if(helper[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(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width()); - if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height()); - - return helper; - - }, - - _adjustOffsetFromHelper: function(obj) { - if (typeof obj == 'string') { - obj = obj.split(' '); - } - if ($.isArray(obj)) { - obj = {left: +obj[0], top: +obj[1] || 0}; - } - if ('left' in obj) { - this.offset.click.left = obj.left + this.margins.left; - } - if ('right' in obj) { - this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; - } - if ('top' in obj) { - this.offset.click.top = obj.top + this.margins.top; - } - if ('bottom' in obj) { - this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; - } - }, - - _getParentOffset: function() { - - - //Get the offsetParent and cache its position - this.offsetParent = this.helper.offsetParent(); - var po = this.offsetParent.offset(); - - // This is a special case where we need to modify a offset calculated on start, since the following happened: - // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent - // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that - // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag - if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { - po.left += this.scrollParent.scrollLeft(); - po.top += this.scrollParent.scrollTop(); - } - - if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information - || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix - po = { top: 0, left: 0 }; - - return { - top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), - left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) - }; - - }, - - _getRelativeOffset: function() { - - if(this.cssPosition == "relative") { - var p = this.currentItem.position(); - return { - top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), - left: p.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 o = this.options; - if(o.containment == 'parent') o.containment = this.helper[0].parentNode; - if(o.containment == 'document' || o.containment == 'window') this.containment = [ - 0 - this.offset.relative.left - this.offset.parent.left, - 0 - this.offset.relative.top - this.offset.parent.top, - $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, - ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top - ]; - - if(!(/^(document|window|parent)$/).test(o.containment)) { - var ce = $(o.containment)[0]; - var co = $(o.containment).offset(); - var over = ($(ce).css("overflow") != 'hidden'); - - this.containment = [ - co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, - co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, - co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, - co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - ]; - } - - }, - - _convertPositionTo: function(d, pos) { - - if(!pos) pos = this.position; - var mod = d == "absolute" ? 1 : -1; - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - return { - top: ( - pos.top // The absolute mouse position - + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) - ), - left: ( - pos.left // The absolute mouse position - + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent - + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) - - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) - ) - }; - - }, - - _generatePosition: function(event) { - - var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); - - // This is another very weird special case that only happens for relative elements: - // 1. If the css position is relative - // 2. and the scroll parent is the document or similar to the offset parent - // we have to refresh the relative offset during the scroll so there are no jumps - if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { - this.offset.relative = this._getRelativeOffset(); - } - - var pageX = event.pageX; - var pageY = event.pageY; - - /* - * - Position constraining - - * Constrain the position to a mix of grid, containment. - */ - - if(this.originalPosition) { //If we are not dragging yet, we won't check for options - - if(this.containment) { - if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; - if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; - if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; - if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; - } - - if(o.grid) { - var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; - pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; - - var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; - pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; - } - - } - - return { - top: ( - pageY // The absolute mouse position - - this.offset.click.top // Click offset (relative to the element) - - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.top // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) - ), - left: ( - pageX // The absolute mouse position - - this.offset.click.left // Click offset (relative to the element) - - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent - - this.offset.parent.left // The offsetParent's offset without borders (offset + border) - + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) - ) - }; - - }, - - _rearrange: function(event, i, a, hardRefresh) { - - a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling)); - - //Various things done here to improve the performance: - // 1. we create a setTimeout, that calls refreshPositions - // 2. on the instance, we have a counter variable, that get's higher after every append - // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same - // 4. this lets only the last addition to the timeout stack through - this.counter = this.counter ? ++this.counter : 1; - var self = this, counter = this.counter; - - window.setTimeout(function() { - if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove - },0); - - }, - - _clear: function(event, noPropagation) { - - this.reverting = false; - // We delay all events that have to be triggered to after the point where the placeholder has been removed and - // everything else normalized again - var delayedTriggers = [], self = this; - - // We first have to update the dom position of the actual currentItem - // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) - if(!this._noFinalSort && this.currentItem.parent().length) this.placeholder.before(this.currentItem); - this._noFinalSort = null; - - if(this.helper[0] == this.currentItem[0]) { - for(var i in this._storedCSS) { - if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = ''; - } - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - - if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, 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]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed - if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element - if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); - for (var i = this.containers.length - 1; i >= 0; i--){ - if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) { - delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - } - }; - }; - - //Post events to containers - for (var i = this.containers.length - 1; i >= 0; i--){ - if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - if(this.containers[i].containerCache.over) { - delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); - this.containers[i].containerCache.over = 0; - } - } - - //Do what was originally in plugins - if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor - if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity - if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index - - this.dragging = false; - if(this.cancelHelperRemoval) { - if(!noPropagation) { - this._trigger("beforeStop", event, this._uiHash()); - for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - return false; - } - - if(!noPropagation) this._trigger("beforeStop", event, this._uiHash()); - - //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - - if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null; - - if(!noPropagation) { - for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events - this._trigger("stop", event, this._uiHash()); - } - - this.fromOutside = false; - return true; - - }, - - _trigger: function() { - if ($.Widget.prototype._trigger.apply(this, arguments) === false) { - this.cancel(); - } - }, - - _uiHash: function(inst) { - var self = inst || this; - return { - helper: self.helper, - placeholder: self.placeholder || $([]), - position: self.position, - originalPosition: self.originalPosition, - offset: self.positionAbs, - item: self.currentItem, - sender: inst ? inst.element : null - }; - } - -}); - -$.extend($.ui.sortable, { - 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($, undefined) { - -$.effects = {}; - - - -/******************************************************************************/ -/****************************** COLOR ANIMATIONS ******************************/ -/******************************************************************************/ - -// override the animation for color styles -$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', - 'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'], -function(i, attr) { - $.fx.step[attr] = function(fx) { - if (!fx.colorInit) { - fx.start = getColor(fx.elem, attr); - fx.end = getRGB(fx.end); - fx.colorInit = true; - } - - fx.elem.style[attr] = 'rgb(' + - Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' + - Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' + - Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')'; - }; -}); - -// Color Conversion functions from highlightFade -// By Blair Mitchelmore -// http://jquery.offput.ca/highlightFade/ - -// Parse strings looking for color tuples [255,255,255] -function getRGB(color) { - var result; - - // Check if we're already dealing with an array of colors - if ( color && color.constructor == Array && color.length == 3 ) - return color; - - // Look for rgb(num,num,num) - if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) - return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; - - // Look for rgb(num%,num%,num%) - if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) - return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; - - // Look for #a0b1c2 - if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) - return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; - - // Look for #fff - if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) - return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; - - // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 - if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) - return colors['transparent']; - - // Otherwise, we're most likely dealing with a named color - return colors[$.trim(color).toLowerCase()]; -} - -function getColor(elem, attr) { - var color; - - do { - color = $.curCSS(elem, attr); - - // Keep going until we find an element that has color, or we hit the body - if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) - break; - - attr = "backgroundColor"; - } while ( elem = elem.parentNode ); - - return getRGB(color); -}; - -// Some named colors to work with -// From Interface by Stefan Petre -// http://interface.eyecon.ro/ - -var colors = { - 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] -}; - - - -/******************************************************************************/ -/****************************** CLASS ANIMATIONS ******************************/ -/******************************************************************************/ - -var classAnimationActions = ['add', 'remove', 'toggle'], - shorthandStyles = { - border: 1, - borderBottom: 1, - borderColor: 1, - borderLeft: 1, - borderRight: 1, - borderTop: 1, - borderWidth: 1, - margin: 1, - padding: 1 - }; - -function getElementStyles() { - var style = document.defaultView - ? document.defaultView.getComputedStyle(this, null) - : this.currentStyle, - newStyle = {}, - key, - camelCase; - - // webkit enumerates style porperties - if (style && style.length && style[0] && style[style[0]]) { - var len = style.length; - while (len--) { - key = style[len]; - if (typeof style[key] == 'string') { - camelCase = key.replace(/\-(\w)/g, function(all, letter){ - return letter.toUpperCase(); - }); - newStyle[camelCase] = style[key]; - } - } - } else { - for (key in style) { - if (typeof style[key] === 'string') { - newStyle[key] = style[key]; - } - } - } - - return newStyle; -} - -function filterStyles(styles) { - var name, value; - for (name in styles) { - value = styles[name]; - if ( - // ignore null and undefined values - value == null || - // ignore functions (when does this occur?) - $.isFunction(value) || - // shorthand styles that need to be expanded - name in shorthandStyles || - // ignore scrollbars (break in IE) - (/scrollbar/).test(name) || - - // only colors or values that can be converted to numbers - (!(/color/i).test(name) && isNaN(parseFloat(value))) - ) { - delete styles[name]; - } - } - - return styles; -} - -function styleDifference(oldStyle, newStyle) { - var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459 - name; - - for (name in newStyle) { - if (oldStyle[name] != newStyle[name]) { - diff[name] = newStyle[name]; - } - } - - return diff; -} - -$.effects.animateClass = function(value, duration, easing, callback) { - if ($.isFunction(easing)) { - callback = easing; - easing = null; - } - - return this.queue(function() { - var that = $(this), - originalStyleAttr = that.attr('style') || ' ', - originalStyle = filterStyles(getElementStyles.call(this)), - newStyle, - className = that.attr('class'); - - $.each(classAnimationActions, function(i, action) { - if (value[action]) { - that[action + 'Class'](value[action]); - } - }); - newStyle = filterStyles(getElementStyles.call(this)); - that.attr('class', className); - - that.animate(styleDifference(originalStyle, newStyle), { - queue: false, - duration: duration, - easing: easing, - complete: function() { - $.each(classAnimationActions, function(i, action) { - if (value[action]) { that[action + 'Class'](value[action]); } - }); - // work around bug in IE by clearing the cssText before setting it - if (typeof that.attr('style') == 'object') { - that.attr('style').cssText = ''; - that.attr('style').cssText = originalStyleAttr; - } else { - that.attr('style', originalStyleAttr); - } - if (callback) { callback.apply(this, arguments); } - $.dequeue( this ); - } - }); - }); -}; - -$.fn.extend({ - _addClass: $.fn.addClass, - addClass: function(classNames, speed, easing, callback) { - return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); - }, - - _removeClass: $.fn.removeClass, - removeClass: function(classNames,speed,easing,callback) { - return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); - }, - - _toggleClass: $.fn.toggleClass, - toggleClass: function(classNames, force, speed, easing, callback) { - if ( typeof force == "boolean" || force === undefined ) { - if ( !speed ) { - // without speed parameter; - return this._toggleClass(classNames, force); - } else { - return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]); - } - } else { - // without switch parameter; - return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]); - } - }, - - switchClass: function(remove,add,speed,easing,callback) { - return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); - } -}); - - - -/******************************************************************************/ -/*********************************** EFFECTS **********************************/ -/******************************************************************************/ - -$.extend($.effects, { - version: "1.8.16", - - // Saves a set of properties in a data storage - save: function(element, set) { - for(var i=0; i < set.length; i++) { - if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); - } - }, - - // Restores a set of previously saved properties from a data storage - restore: function(element, set) { - for(var i=0; i < set.length; i++) { - if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); - } - }, - - setMode: function(el, mode) { - if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle - return mode; - }, - - getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value - // this should be a little more flexible in the future to handle a string & hash - var y, x; - switch (origin[0]) { - case 'top': y = 0; break; - case 'middle': y = 0.5; break; - case 'bottom': y = 1; break; - default: y = origin[0] / original.height; - }; - switch (origin[1]) { - case 'left': x = 0; break; - case 'center': x = 0.5; break; - case 'right': x = 1; break; - default: x = origin[1] / original.width; - }; - return {x: x, y: y}; - }, - - // Wraps the element around a wrapper that copies position properties - createWrapper: function(element) { - - // if the element is already wrapped, return it - if (element.parent().is('.ui-effects-wrapper')) { - return element.parent(); - } - - // wrap the element - var props = { - width: element.outerWidth(true), - height: element.outerHeight(true), - 'float': element.css('float') - }, - wrapper = $('
      ') - .addClass('ui-effects-wrapper') - .css({ - fontSize: '100%', - background: 'transparent', - border: 'none', - margin: 0, - padding: 0 - }), - active = document.activeElement; - - element.wrap(wrapper); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - - wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element - - // transfer positioning properties to the wrapper - if (element.css('position') == 'static') { - wrapper.css({ position: 'relative' }); - element.css({ position: 'relative' }); - } else { - $.extend(props, { - position: element.css('position'), - zIndex: element.css('z-index') - }); - $.each(['top', 'left', 'bottom', 'right'], function(i, pos) { - props[pos] = element.css(pos); - if (isNaN(parseInt(props[pos], 10))) { - props[pos] = 'auto'; - } - }); - element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' }); - } - - return wrapper.css(props).show(); - }, - - removeWrapper: function(element) { - var parent, - active = document.activeElement; - - if (element.parent().is('.ui-effects-wrapper')) { - parent = element.parent().replaceWith(element); - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - return parent; - } - - return element; - }, - - setTransition: function(element, list, factor, value) { - value = value || {}; - $.each(list, function(i, x){ - unit = element.cssUnit(x); - if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; - }); - return value; - } -}); - - -function _normalizeArguments(effect, options, speed, callback) { - // shift params for method overloading - if (typeof effect == 'object') { - callback = options; - speed = null; - options = effect; - effect = options.effect; - } - if ($.isFunction(options)) { - callback = options; - speed = null; - options = {}; - } - if (typeof options == 'number' || $.fx.speeds[options]) { - callback = speed; - speed = options; - options = {}; - } - if ($.isFunction(speed)) { - callback = speed; - speed = null; - } - - options = options || {}; - - speed = speed || options.duration; - speed = $.fx.off ? 0 : typeof speed == 'number' - ? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default; - - callback = callback || options.complete; - - return [effect, options, speed, callback]; -} - -function standardSpeed( speed ) { - // valid standard speeds - if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { - return true; - } - - // invalid strings - treat as "normal" speed - if ( typeof speed === "string" && !$.effects[ speed ] ) { - return true; - } - - return false; -} - -$.fn.extend({ - effect: function(effect, options, speed, callback) { - var args = _normalizeArguments.apply(this, arguments), - // TODO: make effects take actual parameters instead of a hash - args2 = { - options: args[1], - duration: args[2], - callback: args[3] - }, - mode = args2.options.mode, - effectMethod = $.effects[effect]; - - if ( $.fx.off || !effectMethod ) { - // delegate to the original method (e.g., .show()) if possible - if ( mode ) { - return this[ mode ]( args2.duration, args2.callback ); - } else { - return this.each(function() { - if ( args2.callback ) { - args2.callback.call( this ); - } - }); - } - } - - return effectMethod.call(this, args2); - }, - - _show: $.fn.show, - show: function(speed) { - if ( standardSpeed( speed ) ) { - return this._show.apply(this, arguments); - } else { - var args = _normalizeArguments.apply(this, arguments); - args[1].mode = 'show'; - return this.effect.apply(this, args); - } - }, - - _hide: $.fn.hide, - hide: function(speed) { - if ( standardSpeed( speed ) ) { - return this._hide.apply(this, arguments); - } else { - var args = _normalizeArguments.apply(this, arguments); - args[1].mode = 'hide'; - return this.effect.apply(this, args); - } - }, - - // jQuery core overloads toggle and creates _toggle - __toggle: $.fn.toggle, - toggle: function(speed) { - if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { - return this.__toggle.apply(this, arguments); - } else { - var args = _normalizeArguments.apply(this, arguments); - args[1].mode = 'toggle'; - return this.effect.apply(this, args); - } - }, - - // helper functions - cssUnit: function(key) { - var style = this.css(key), val = []; - $.each( ['em','px','%','pt'], function(i, unit){ - if(style.indexOf(unit) > 0) - val = [parseFloat(style), unit]; - }); - return val; - } -}); - - - -/******************************************************************************/ -/*********************************** EASING ***********************************/ -/******************************************************************************/ - -/* - * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - * - * Uses the built in easing capabilities added In jQuery 1.1 - * to offer multiple easing options - * - * TERMS OF USE - jQuery Easing - * - * Open source under the BSD License. - * - * Copyright 2008 George McGinley Smith - * 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. - * -*/ - -// t: current time, b: begInnIng value, c: change In value, d: duration -$.easing.jswing = $.easing.swing; - -$.extend($.easing, -{ - def: 'easeOutQuad', - swing: function (x, t, b, c, d) { - //alert($.easing.default); - return $.easing[$.easing.def](x, t, b, c, d); - }, - easeInQuad: function (x, t, b, c, d) { - return c*(t/=d)*t + b; - }, - easeOutQuad: function (x, t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - }, - easeInOutQuad: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t + b; - return -c/2 * ((--t)*(t-2) - 1) + b; - }, - easeInCubic: function (x, t, b, c, d) { - return c*(t/=d)*t*t + b; - }, - easeOutCubic: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t + 1) + b; - }, - easeInOutCubic: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; - }, - easeInQuart: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - easeOutQuart: function (x, t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - easeInOutQuart: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t + b; - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - easeInQuint: function (x, t, b, c, d) { - return c*(t/=d)*t*t*t*t + b; - }, - easeOutQuint: function (x, t, b, c, d) { - return c*((t=t/d-1)*t*t*t*t + 1) + b; - }, - easeInOutQuint: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; - return c/2*((t-=2)*t*t*t*t + 2) + b; - }, - easeInSine: function (x, t, b, c, d) { - return -c * Math.cos(t/d * (Math.PI/2)) + c + b; - }, - easeOutSine: function (x, t, b, c, d) { - return c * Math.sin(t/d * (Math.PI/2)) + b; - }, - easeInOutSine: function (x, t, b, c, d) { - return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; - }, - easeInExpo: function (x, t, b, c, d) { - return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; - }, - easeOutExpo: function (x, t, b, c, d) { - return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; - }, - easeInOutExpo: function (x, t, b, c, d) { - if (t==0) return b; - if (t==d) return b+c; - if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; - return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; - }, - easeInCirc: function (x, t, b, c, d) { - return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; - }, - easeOutCirc: function (x, t, b, c, d) { - return c * Math.sqrt(1 - (t=t/d-1)*t) + b; - }, - easeInOutCirc: function (x, t, b, c, d) { - if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; - return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; - }, - easeInElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - easeOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - easeInOutElastic: function (x, t, b, c, d) { - var s=1.70158;var p=0;var a=c; - if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); - if (a < Math.abs(c)) { a=c; var s=p/4; } - else var s = p/(2*Math.PI) * Math.asin (c/a); - if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - easeInBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - easeOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - easeInOutBack: function (x, t, b, c, d, s) { - if (s == undefined) s = 1.70158; - if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - }, - easeInBounce: function (x, t, b, c, d) { - return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; - }, - easeOutBounce: function (x, t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - } - }, - easeInOutBounce: function (x, t, b, c, d) { - if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; - return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; - } -}); - -/* - * - * 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. - * - */ - -})(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( $, undefined ) { - -$.effects.blind = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode - var direction = o.options.direction || 'vertical'; // Default direction - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper - var ref = (direction == 'vertical') ? 'height' : 'width'; - var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width(); - if(mode == 'show') wrapper.css(ref, 0); // Shift - - // Animation - var animation = {}; - animation[ref] = mode == 'show' ? distance : 0; - - // Animate - wrapper.animate(animation, o.duration, o.options.easing, function() { - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(el[0], arguments); // Callback - el.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( $, undefined ) { - -$.effects.bounce = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode - var direction = o.options.direction || 'up'; // Default direction - var distance = o.options.distance || 20; // Default distance - var times = o.options.times || 5; // Default # of times - var speed = o.duration || 250; // Default speed per bounce - if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - $.effects.createWrapper(el); // Create Wrapper - var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; - var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; - var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3); - if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift - if (mode == 'hide') distance = distance / (times * 2); - if (mode != 'hide') times--; - - // Animate - if (mode == 'show') { // Show Bounce - var animation = {opacity: 1}; - animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance; - el.animate(animation, speed / 2, o.options.easing); - distance = distance / 2; - times--; - }; - for (var i = 0; i < times; i++) { // Bounces - var animation1 = {}, animation2 = {}; - animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; - animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; - el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing); - distance = (mode == 'hide') ? distance * 2 : distance / 2; - }; - if (mode == 'hide') { // Last Bounce - var animation = {opacity: 0}; - animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; - el.animate(animation, speed / 2, o.options.easing, function(){ - el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - }); - } else { - var animation1 = {}, animation2 = {}; - animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; - animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; - el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){ - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - }); - }; - el.queue('fx', function() { el.dequeue(); }); - el.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( $, undefined ) { - -$.effects.clip = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right','height','width']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode - var direction = o.options.direction || 'vertical'; // Default direction - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper - var animate = el[0].tagName == 'IMG' ? wrapper : el; - var ref = { - size: (direction == 'vertical') ? 'height' : 'width', - position: (direction == 'vertical') ? 'top' : 'left' - }; - var distance = (direction == 'vertical') ? animate.height() : animate.width(); - if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift - - // Animation - var animation = {}; - animation[ref.size] = mode == 'show' ? distance : 0; - animation[ref.position] = mode == 'show' ? 0 : distance / 2; - - // Animate - animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(el[0], arguments); // Callback - el.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( $, undefined ) { - -$.effects.drop = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right','opacity']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode - var direction = o.options.direction || 'left'; // Default Direction - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - $.effects.createWrapper(el); // Create Wrapper - var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; - var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; - var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2); - if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift - - // Animation - var animation = {opacity: mode == 'show' ? 1 : 0}; - animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; - - // Animate - el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - el.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( $, undefined ) { - -$.effects.explode = function(o) { - - return this.queue(function() { - - var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; - var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; - - o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode; - var el = $(this).show().css('visibility', 'hidden'); - var offset = el.offset(); - - //Substract the margins - not fixing the problem yet. - offset.top -= parseInt(el.css("marginTop"),10) || 0; - offset.left -= parseInt(el.css("marginLeft"),10) || 0; - - var width = el.outerWidth(true); - var height = el.outerHeight(true); - - for(var i=0;i
      ') - .css({ - position: 'absolute', - visibility: 'visible', - left: -j*(width/cells), - top: -i*(height/rows) - }) - .parent() - .addClass('ui-effects-explode') - .css({ - position: 'absolute', - overflow: 'hidden', - width: width/cells, - height: height/rows, - left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), - top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), - opacity: o.options.mode == 'show' ? 0 : 1 - }).animate({ - left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), - top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), - opacity: o.options.mode == 'show' ? 1 : 0 - }, o.duration || 500); - } - } - - // Set a timeout, to call the callback approx. when the other animations have finished - setTimeout(function() { - - o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); - if(o.callback) o.callback.apply(el[0]); // Callback - el.dequeue(); - - $('div.ui-effects-explode').remove(); - - }, o.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( $, undefined ) { - -$.effects.fade = function(o) { - return this.queue(function() { - var elem = $(this), - mode = $.effects.setMode(elem, o.options.mode || 'hide'); - - elem.animate({ opacity: mode }, { - queue: false, - duration: o.duration, - easing: o.options.easing, - complete: function() { - (o.callback && o.callback.apply(this, arguments)); - elem.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( $, undefined ) { - -$.effects.fold = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode - var size = o.options.size || 15; // Default fold size - var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value - var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper - var widthFirst = ((mode == 'show') != horizFirst); - var ref = widthFirst ? ['width', 'height'] : ['height', 'width']; - var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()]; - var percent = /([0-9]+)%/.exec(size); - if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1]; - if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift - - // Animation - var animation1 = {}, animation2 = {}; - animation1[ref[0]] = mode == 'show' ? distance[0] : size; - animation2[ref[1]] = mode == 'show' ? distance[1] : 0; - - // Animate - wrapper.animate(animation1, duration, o.options.easing) - .animate(animation2, duration, o.options.easing, function() { - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(el[0], arguments); // Callback - el.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( $, undefined ) { - -$.effects.highlight = function(o) { - return this.queue(function() { - var elem = $(this), - props = ['backgroundImage', 'backgroundColor', 'opacity'], - mode = $.effects.setMode(elem, o.options.mode || 'show'), - animation = { - backgroundColor: elem.css('backgroundColor') - }; - - if (mode == 'hide') { - animation.opacity = 0; - } - - $.effects.save(elem, props); - elem - .show() - .css({ - backgroundImage: 'none', - backgroundColor: o.options.color || '#ffff99' - }) - .animate(animation, { - queue: false, - duration: o.duration, - easing: o.options.easing, - complete: function() { - (mode == 'hide' && elem.hide()); - $.effects.restore(elem, props); - (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter')); - (o.callback && o.callback.apply(this, arguments)); - elem.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( $, undefined ) { - -$.effects.pulsate = function(o) { - return this.queue(function() { - var elem = $(this), - mode = $.effects.setMode(elem, o.options.mode || 'show'); - times = ((o.options.times || 5) * 2) - 1; - duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2, - isVisible = elem.is(':visible'), - animateTo = 0; - - if (!isVisible) { - elem.css('opacity', 0).show(); - animateTo = 1; - } - - if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) { - times--; - } - - for (var i = 0; i < times; i++) { - elem.animate({ opacity: animateTo }, duration, o.options.easing); - animateTo = (animateTo + 1) % 2; - } - - elem.animate({ opacity: animateTo }, duration, o.options.easing, function() { - if (animateTo == 0) { - elem.hide(); - } - (o.callback && o.callback.apply(this, arguments)); - }); - - elem - .queue('fx', function() { elem.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( $, undefined ) { - -$.effects.puff = function(o) { - return this.queue(function() { - var elem = $(this), - mode = $.effects.setMode(elem, o.options.mode || 'hide'), - percent = parseInt(o.options.percent, 10) || 150, - factor = percent / 100, - original = { height: elem.height(), width: elem.width() }; - - $.extend(o.options, { - fade: true, - mode: mode, - percent: mode == 'hide' ? percent : 100, - from: mode == 'hide' - ? original - : { - height: original.height * factor, - width: original.width * factor - } - }); - - elem.effect('scale', o.options, o.duration, o.callback); - elem.dequeue(); - }); -}; - -$.effects.scale = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this); - - // Set options - var options = $.extend(true, {}, o.options); - var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode - var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent - var direction = o.options.direction || 'both'; // Set default axis - var origin = o.options.origin; // The origin of the scaling - if (mode != 'effect') { // Set default origin and restore for show/hide - options.origin = origin || ['middle','center']; - options.restore = true; - } - var original = {height: el.height(), width: el.width()}; // Save original - el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state - - // Adjust - var factor = { // Set scaling factor - y: direction != 'horizontal' ? (percent / 100) : 1, - x: direction != 'vertical' ? (percent / 100) : 1 - }; - el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state - - if (o.options.fade) { // Fade option to support puff - if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; - if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; - }; - - // Animation - options.from = el.from; options.to = el.to; options.mode = mode; - - // Animate - el.effect('size', options, o.duration, o.callback); - el.dequeue(); - }); - -}; - -$.effects.size = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity']; - var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore - var props2 = ['width','height','overflow']; // Copy for children - var cProps = ['fontSize']; - var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; - var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode - var restore = o.options.restore || false; // Default restore - var scale = o.options.scale || 'both'; // Default scale mode - var origin = o.options.origin; // The origin of the sizing - var original = {height: el.height(), width: el.width()}; // Save original - el.from = o.options.from || original; // Default from state - el.to = o.options.to || original; // Default to state - // Adjust - if (origin) { // Calculate baseline shifts - var baseline = $.effects.getBaseline(origin, original); - el.from.top = (original.height - el.from.height) * baseline.y; - el.from.left = (original.width - el.from.width) * baseline.x; - el.to.top = (original.height - el.to.height) * baseline.y; - el.to.left = (original.width - el.to.width) * baseline.x; - }; - var factor = { // Set scaling factor - from: {y: el.from.height / original.height, x: el.from.width / original.width}, - to: {y: el.to.height / original.height, x: el.to.width / original.width} - }; - if (scale == 'box' || scale == 'both') { // Scale the css box - if (factor.from.y != factor.to.y) { // Vertical props scaling - props = props.concat(vProps); - el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); - el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); - }; - if (factor.from.x != factor.to.x) { // Horizontal props scaling - props = props.concat(hProps); - el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); - el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); - }; - }; - if (scale == 'content' || scale == 'both') { // Scale the content - if (factor.from.y != factor.to.y) { // Vertical props scaling - props = props.concat(cProps); - el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); - el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); - }; - }; - $.effects.save(el, restore ? props : props1); el.show(); // Save & Show - $.effects.createWrapper(el); // Create Wrapper - el.css('overflow','hidden').css(el.from); // Shift - - // Animate - if (scale == 'content' || scale == 'both') { // Scale the children - vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size - hProps = hProps.concat(['marginLeft','marginRight']); // Add margins - props2 = props.concat(vProps).concat(hProps); // Concat - el.find("*[width]").each(function(){ - child = $(this); - if (restore) $.effects.save(child, props2); - var c_original = {height: child.height(), width: child.width()}; // Save original - child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; - child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; - if (factor.from.y != factor.to.y) { // Vertical props scaling - child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); - child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); - }; - if (factor.from.x != factor.to.x) { // Horizontal props scaling - child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); - child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); - }; - child.css(child.from); // Shift children - child.animate(child.to, o.duration, o.options.easing, function(){ - if (restore) $.effects.restore(child, props2); // Restore children - }); // Animate children - }); - }; - - // Animate - el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { - if (el.to.opacity === 0) { - el.css('opacity', el.from.opacity); - } - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - el.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( $, undefined ) { - -$.effects.shake = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode - var direction = o.options.direction || 'left'; // Default direction - var distance = o.options.distance || 20; // Default distance - var times = o.options.times || 3; // Default # of times - var speed = o.duration || o.options.duration || 140; // Default speed per shake - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - $.effects.createWrapper(el); // Create Wrapper - var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; - var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; - - // Animation - var animation = {}, animation1 = {}, animation2 = {}; - animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; - animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2; - animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2; - - // Animate - el.animate(animation, speed, o.options.easing); - for (var i = 1; i < times; i++) { // Shakes - el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing); - }; - el.animate(animation1, speed, o.options.easing). - animate(animation, speed / 2, o.options.easing, function(){ // Last shake - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - }); - el.queue('fx', function() { el.dequeue(); }); - el.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( $, undefined ) { - -$.effects.slide = function(o) { - - return this.queue(function() { - - // Create element - var el = $(this), props = ['position','top','bottom','left','right']; - - // Set options - var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode - var direction = o.options.direction || 'left'; // Default Direction - - // Adjust - $.effects.save(el, props); el.show(); // Save & Show - $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper - var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; - var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; - var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true})); - if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift - - // Animation - var animation = {}; - animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; - - // Animate - el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { - if(mode == 'hide') el.hide(); // Hide - $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore - if(o.callback) o.callback.apply(this, arguments); // Callback - el.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( $, undefined ) { - -$.effects.transfer = function(o) { - return this.queue(function() { - var elem = $(this), - target = $(o.options.to), - endPosition = target.offset(), - animation = { - top: endPosition.top, - left: endPosition.left, - height: target.innerHeight(), - width: target.innerWidth() - }, - startPosition = elem.offset(), - transfer = $('
      ') - .appendTo(document.body) - .addClass(o.options.className) - .css({ - top: startPosition.top, - left: startPosition.left, - height: elem.innerHeight(), - width: elem.innerWidth(), - position: 'absolute' - }) - .animate(animation, o.duration, o.options.easing, function() { - transfer.remove(); - (o.callback && o.callback.apply(elem[0], arguments)); - elem.dequeue(); - }); - }); -}; - -})(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( $, undefined ) { - -$.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 self = this, - options = self.options; - - self.running = 0; - - self.element - .addClass( "ui-accordion ui-widget ui-helper-reset" ) - // in lack of child-selectors in CSS - // we need to mark top-LIs in a UL-accordion for some IE-fix - .children( "li" ) - .addClass( "ui-accordion-li-fix" ); - - self.headers = self.element.find( options.header ) - .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" ) - .bind( "mouseenter.accordion", function() { - if ( options.disabled ) { - return; - } - $( this ).addClass( "ui-state-hover" ); - }) - .bind( "mouseleave.accordion", function() { - if ( options.disabled ) { - return; - } - $( this ).removeClass( "ui-state-hover" ); - }) - .bind( "focus.accordion", function() { - if ( options.disabled ) { - return; - } - $( this ).addClass( "ui-state-focus" ); - }) - .bind( "blur.accordion", function() { - if ( options.disabled ) { - return; - } - $( this ).removeClass( "ui-state-focus" ); - }); - - self.headers.next() - .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ); - - if ( options.navigation ) { - var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 ); - if ( current.length ) { - var header = current.closest( ".ui-accordion-header" ); - if ( header.length ) { - // anchor within header - self.active = header; - } else { - // anchor within content - self.active = current.closest( ".ui-accordion-content" ).prev(); - } - } - } - - self.active = self._findActive( self.active || options.active ) - .addClass( "ui-state-default ui-state-active" ) - .toggleClass( "ui-corner-all" ) - .toggleClass( "ui-corner-top" ); - self.active.next().addClass( "ui-accordion-content-active" ); - - self._createIcons(); - self.resize(); - - // ARIA - self.element.attr( "role", "tablist" ); - - self.headers - .attr( "role", "tab" ) - .bind( "keydown.accordion", function( event ) { - return self._keydown( event ); - }) - .next() - .attr( "role", "tabpanel" ); - - self.headers - .not( self.active || "" ) - .attr({ - "aria-expanded": "false", - "aria-selected": "false", - tabIndex: -1 - }) - .next() - .hide(); - - // make sure at least one header is in the tab order - if ( !self.active.length ) { - self.headers.eq( 0 ).attr( "tabIndex", 0 ); - } else { - self.active - .attr({ - "aria-expanded": "true", - "aria-selected": "true", - tabIndex: 0 - }); - } - - // only need links in tab order for Safari - if ( !$.browser.safari ) { - self.headers.find( "a" ).attr( "tabIndex", -1 ); - } - - if ( options.event ) { - self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) { - self._clickHandler.call( self, event, this ); - event.preventDefault(); - }); - } - }, - - _createIcons: function() { - var options = this.options; - if ( options.icons ) { - $( "" ) - .addClass( "ui-icon " + options.icons.header ) - .prependTo( this.headers ); - this.active.children( ".ui-icon" ) - .toggleClass(options.icons.header) - .toggleClass(options.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 options = 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 contents = 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 ( options.autoHeight || options.fillHeight ) { - contents.css( "height", "" ); - } - - return $.Widget.prototype.destroy.call( this ); - }, - - _setOption: function( key, value ) { - $.Widget.prototype._setOption.apply( this, arguments ); - - if ( key == "active" ) { - this.activate( value ); - } - if ( key == "icons" ) { - this._destroyIcons(); - if ( value ) { - this._createIcons(); - } - } - // #5332 - opacity doesn't cascade to positioned elements in IE - // so we need to add the disabled class to the headers and panels - if ( key == "disabled" ) { - this.headers.add(this.headers.next()) - [ value ? "addClass" : "removeClass" ]( - "ui-accordion-disabled ui-state-disabled" ); - } - }, - - _keydown: function( event ) { - if ( this.options.disabled || event.altKey || event.ctrlKey ) { - return; - } - - var keyCode = $.ui.keyCode, - length = this.headers.length, - currentIndex = this.headers.index( event.target ), - toFocus = false; - - switch ( event.keyCode ) { - case keyCode.RIGHT: - case keyCode.DOWN: - toFocus = this.headers[ ( currentIndex + 1 ) % length ]; - break; - case keyCode.LEFT: - case keyCode.UP: - toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; - break; - case keyCode.SPACE: - case keyCode.ENTER: - this._clickHandler( { target: event.target }, event.target ); - event.preventDefault(); - } - - if ( toFocus ) { - $( event.target ).attr( "tabIndex", -1 ); - $( toFocus ).attr( "tabIndex", 0 ); - toFocus.focus(); - return false; - } - - return true; - }, - - resize: function() { - var options = this.options, - maxHeight; - - if ( options.fillSpace ) { - if ( $.browser.msie ) { - var defOverflow = this.element.parent().css( "overflow" ); - this.element.parent().css( "overflow", "hidden"); - } - maxHeight = this.element.parent().height(); - if ($.browser.msie) { - this.element.parent().css( "overflow", defOverflow ); - } - - this.headers.each(function() { - maxHeight -= $( this ).outerHeight( true ); - }); - - this.headers.next() - .each(function() { - $( this ).height( Math.max( 0, maxHeight - - $( this ).innerHeight() + $( this ).height() ) ); - }) - .css( "overflow", "auto" ); - } else if ( options.autoHeight ) { - maxHeight = 0; - this.headers.next() - .each(function() { - maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); - }) - .height( maxHeight ); - } - - return this; - }, - - activate: function( index ) { - // TODO this gets called on init, changing the option without an explicit call for that - this.options.active = index; - // call clickHandler with custom event - var active = this._findActive( index )[ 0 ]; - this._clickHandler( { target: active }, active ); - - return this; - }, - - _findActive: function( selector ) { - return selector - ? typeof selector === "number" - ? this.headers.filter( ":eq(" + selector + ")" ) - : this.headers.not( this.headers.not( selector ) ) - : selector === false - ? $( [] ) - : this.headers.filter( ":eq(0)" ); - }, - - // TODO isn't event.target enough? why the separate target argument? - _clickHandler: function( event, target ) { - var options = this.options; - if ( options.disabled ) { - return; - } - - // called only when using activate(false) to close all parts programmatically - if ( !event.target ) { - if ( !options.collapsible ) { - return; - } - this.active - .removeClass( "ui-state-active ui-corner-top" ) - .addClass( "ui-state-default ui-corner-all" ) - .children( ".ui-icon" ) - .removeClass( options.icons.headerSelected ) - .addClass( options.icons.header ); - this.active.next().addClass( "ui-accordion-content-active" ); - var toHide = this.active.next(), - data = { - options: options, - newHeader: $( [] ), - oldHeader: options.active, - newContent: $( [] ), - oldContent: toHide - }, - toShow = ( this.active = $( [] ) ); - this._toggle( toShow, toHide, data ); - return; - } - - // get the click target - var clicked = $( event.currentTarget || target ), - clickedIsActive = clicked[0] === this.active[0]; - - // TODO the option is changed, is that correct? - // TODO if it is correct, shouldn't that happen after determining that the click is valid? - options.active = options.collapsible && clickedIsActive ? - false : - this.headers.index( clicked ); - - // if animations are still active, or the active header is the target, ignore click - if ( this.running || ( !options.collapsible && clickedIsActive ) ) { - return; - } - - // find elements to show and hide - var active = this.active, - toShow = clicked.next(), - toHide = this.active.next(), - data = { - options: options, - newHeader: clickedIsActive && options.collapsible ? $([]) : clicked, - oldHeader: this.active, - newContent: clickedIsActive && options.collapsible ? $([]) : toShow, - oldContent: toHide - }, - down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] ); - - // when the call to ._toggle() comes after the class changes - // it causes a very odd bug in IE 8 (see #6720) - this.active = clickedIsActive ? $([]) : clicked; - this._toggle( toShow, toHide, data, clickedIsActive, down ); - - // switch classes - active - .removeClass( "ui-state-active ui-corner-top" ) - .addClass( "ui-state-default ui-corner-all" ) - .children( ".ui-icon" ) - .removeClass( options.icons.headerSelected ) - .addClass( options.icons.header ); - if ( !clickedIsActive ) { - clicked - .removeClass( "ui-state-default ui-corner-all" ) - .addClass( "ui-state-active ui-corner-top" ) - .children( ".ui-icon" ) - .removeClass( options.icons.header ) - .addClass( options.icons.headerSelected ); - clicked - .next() - .addClass( "ui-accordion-content-active" ); - } - - return; - }, - - _toggle: function( toShow, toHide, data, clickedIsActive, down ) { - var self = this, - options = self.options; - - self.toShow = toShow; - self.toHide = toHide; - self.data = data; - - var complete = function() { - if ( !self ) { - return; - } - return self._completed.apply( self, arguments ); - }; - - // trigger changestart event - self._trigger( "changestart", null, self.data ); - - // count elements to animate - self.running = toHide.size() === 0 ? toShow.size() : toHide.size(); - - if ( options.animated ) { - var animOptions = {}; - - if ( options.collapsible && clickedIsActive ) { - animOptions = { - toShow: $( [] ), - toHide: toHide, - complete: complete, - down: down, - autoHeight: options.autoHeight || options.fillSpace - }; - } else { - animOptions = { - toShow: toShow, - toHide: toHide, - complete: complete, - down: down, - autoHeight: options.autoHeight || options.fillSpace - }; - } - - if ( !options.proxied ) { - options.proxied = options.animated; - } - - if ( !options.proxiedDuration ) { - options.proxiedDuration = options.duration; - } - - options.animated = $.isFunction( options.proxied ) ? - options.proxied( animOptions ) : - options.proxied; - - options.duration = $.isFunction( options.proxiedDuration ) ? - options.proxiedDuration( animOptions ) : - options.proxiedDuration; - - var animations = $.ui.accordion.animations, - duration = options.duration, - easing = options.animated; - - if ( easing && !animations[ easing ] && !$.easing[ easing ] ) { - easing = "slide"; - } - if ( !animations[ easing ] ) { - animations[ easing ] = function( options ) { - this.slide( options, { - easing: easing, - duration: duration || 700 - }); - }; - } - - animations[ easing ]( animOptions ); - } else { - if ( options.collapsible && clickedIsActive ) { - toShow.toggle(); - } else { - toHide.hide(); - toShow.show(); - } - - complete( true ); - } - - // TODO assert that the blur and focus triggers are really necessary, remove otherwise - toHide.prev() - .attr({ - "aria-expanded": "false", - "aria-selected": "false", - tabIndex: -1 - }) - .blur(); - toShow.prev() - .attr({ - "aria-expanded": "true", - "aria-selected": "true", - tabIndex: 0 - }) - .focus(); - }, - - _completed: function( cancel ) { - this.running = cancel ? 0 : --this.running; - if ( this.running ) { - return; - } - - if ( this.options.clearStyle ) { - this.toShow.add( this.toHide ).css({ - height: "", - overflow: "" - }); - } - - // other classes are removed before the animation; this one needs to stay until completed - this.toHide.removeClass( "ui-accordion-content-active" ); - // Work around for rendering bug in IE (#5421) - if ( this.toHide.length ) { - this.toHide.parent()[0].className = this.toHide.parent()[0].className; - } - - this._trigger( "change", null, this.data ); - } -}); - -$.extend( $.ui.accordion, { - version: "1.8.16", - animations: { - slide: function( options, additions ) { - options = $.extend({ - easing: "swing", - duration: 300 - }, options, additions ); - if ( !options.toHide.size() ) { - options.toShow.animate({ - height: "show", - paddingTop: "show", - paddingBottom: "show" - }, options ); - return; - } - if ( !options.toShow.size() ) { - options.toHide.animate({ - height: "hide", - paddingTop: "hide", - paddingBottom: "hide" - }, options ); - return; - } - var overflow = options.toShow.css( "overflow" ), - percentDone = 0, - showProps = {}, - hideProps = {}, - fxAttrs = [ "height", "paddingTop", "paddingBottom" ], - originalWidth; - // fix width before calculating height of hidden element - var s = options.toShow; - originalWidth = s[0].style.width; - s.width( parseInt( s.parent().width(), 10 ) - - parseInt( s.css( "paddingLeft" ), 10 ) - - parseInt( s.css( "paddingRight" ), 10 ) - - ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 ) - - ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) ); - - $.each( fxAttrs, function( i, prop ) { - hideProps[ prop ] = "hide"; - - var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ ); - showProps[ prop ] = { - value: parts[ 1 ], - unit: parts[ 2 ] || "px" - }; - }); - options.toShow.css({ height: 0, overflow: "hidden" }).show(); - options.toHide - .filter( ":hidden" ) - .each( options.complete ) - .end() - .filter( ":visible" ) - .animate( hideProps, { - step: function( now, settings ) { - // only calculate the percent when animating height - // IE gets very inconsistent results when animating elements - // with small values, which is common for padding - if ( settings.prop == "height" ) { - percentDone = ( settings.end - settings.start === 0 ) ? 0 : - ( settings.now - settings.start ) / ( settings.end - settings.start ); - } - - options.toShow[ 0 ].style[ settings.prop ] = - ( percentDone * showProps[ settings.prop ].value ) - + showProps[ settings.prop ].unit; - }, - duration: options.duration, - easing: options.easing, - complete: function() { - if ( !options.autoHeight ) { - options.toShow.css( "height", "" ); - } - options.toShow.css({ - width: originalWidth, - overflow: overflow - }); - options.complete(); - } - }); - }, - bounceslide: function( options ) { - this.slide( options, { - easing: options.down ? "easeOutBounce" : "swing", - duration: options.down ? 1000 : 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( $, undefined ) { - -// used to prevent race conditions with remote data sources -var requestIndex = 0; - -$.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 self = this, - doc = this.element[ 0 ].ownerDocument, - suppressKeyPress; - - this.element - .addClass( "ui-autocomplete-input" ) - .attr( "autocomplete", "off" ) - // TODO verify these actually work as intended - .attr({ - role: "textbox", - "aria-autocomplete": "list", - "aria-haspopup": "true" - }) - .bind( "keydown.autocomplete", function( event ) { - if ( self.options.disabled || self.element.propAttr( "readOnly" ) ) { - return; - } - - suppressKeyPress = false; - var keyCode = $.ui.keyCode; - switch( event.keyCode ) { - case keyCode.PAGE_UP: - self._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - self._move( "nextPage", event ); - break; - case keyCode.UP: - self._move( "previous", event ); - // prevent moving cursor to beginning of text field in some browsers - event.preventDefault(); - break; - case keyCode.DOWN: - self._move( "next", event ); - // prevent moving cursor to end of text field in some browsers - event.preventDefault(); - break; - case keyCode.ENTER: - case keyCode.NUMPAD_ENTER: - // when menu is open and has focus - if ( self.menu.active ) { - // #6055 - Opera still allows the keypress to occur - // which causes forms to submit - suppressKeyPress = true; - event.preventDefault(); - } - //passthrough - ENTER and TAB both select the current element - case keyCode.TAB: - if ( !self.menu.active ) { - return; - } - self.menu.select( event ); - break; - case keyCode.ESCAPE: - self.element.val( self.term ); - self.close( event ); - break; - default: - // keypress is triggered before the input value is changed - clearTimeout( self.searching ); - self.searching = setTimeout(function() { - // only search if the value has changed - if ( self.term != self.element.val() ) { - self.selectedItem = null; - self.search( null, event ); - } - }, self.options.delay ); - break; - } - }) - .bind( "keypress.autocomplete", function( event ) { - if ( suppressKeyPress ) { - suppressKeyPress = false; - event.preventDefault(); - } - }) - .bind( "focus.autocomplete", function() { - if ( self.options.disabled ) { - return; - } - - self.selectedItem = null; - self.previous = self.element.val(); - }) - .bind( "blur.autocomplete", function( event ) { - if ( self.options.disabled ) { - return; - } - - clearTimeout( self.searching ); - // clicks on the menu (or a button to trigger a search) will cause a blur event - self.closing = setTimeout(function() { - self.close( event ); - self._change( event ); - }, 150 ); - }); - this._initSource(); - this.response = function() { - return self._response.apply( self, arguments ); - }; - this.menu = $( "
        " ) - .addClass( "ui-autocomplete" ) - .appendTo( $( this.options.appendTo || "body", doc )[0] ) - // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown) - .mousedown(function( event ) { - // clicking on the scrollbar causes focus to shift to the body - // but we can't detect a mouseup or a click immediately afterward - // so we have to track the next mousedown and close the menu if - // the user clicks somewhere outside of the autocomplete - var menuElement = self.menu.element[ 0 ]; - if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { - setTimeout(function() { - $( document ).one( 'mousedown', function( event ) { - if ( event.target !== self.element[ 0 ] && - event.target !== menuElement && - !$.ui.contains( menuElement, event.target ) ) { - self.close(); - } - }); - }, 1 ); - } - - // use another timeout to make sure the blur-event-handler on the input was already triggered - setTimeout(function() { - clearTimeout( self.closing ); - }, 13); - }) - .menu({ - focus: function( event, ui ) { - var item = ui.item.data( "item.autocomplete" ); - if ( false !== self._trigger( "focus", event, { item: item } ) ) { - // use value to match what will end up in the input, if it was a key event - if ( /^key/.test(event.originalEvent.type) ) { - self.element.val( item.value ); - } - } - }, - selected: function( event, ui ) { - var item = ui.item.data( "item.autocomplete" ), - previous = self.previous; - - // only trigger when focus was lost (click on menu) - if ( self.element[0] !== doc.activeElement ) { - self.element.focus(); - self.previous = previous; - // #6109 - IE triggers two focus events and the second - // is asynchronous, so we need to reset the previous - // term synchronously and asynchronously :-( - setTimeout(function() { - self.previous = previous; - self.selectedItem = item; - }, 1); - } - - if ( false !== self._trigger( "select", event, { item: item } ) ) { - self.element.val( item.value ); - } - // reset the term after the select event - // this allows custom select handling to work properly - self.term = self.element.val(); - - self.close( event ); - self.selectedItem = item; - }, - blur: function( event, ui ) { - // don't set the value of the text field if it's already correct - // this prevents moving the cursor unnecessarily - if ( self.menu.element.is(":visible") && - ( self.element.val() !== self.term ) ) { - self.element.val( self.term ); - } - } - }) - .zIndex( this.element.zIndex() + 1 ) - // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 - .css({ top: 0, left: 0 }) - .hide() - .data( "menu" ); - if ( $.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(); - $.Widget.prototype.destroy.call( this ); - }, - - _setOption: function( key, value ) { - $.Widget.prototype._setOption.apply( this, arguments ); - if ( key === "source" ) { - this._initSource(); - } - if ( key === "appendTo" ) { - this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] ) - } - if ( key === "disabled" && value && this.xhr ) { - this.xhr.abort(); - } - }, - - _initSource: function() { - var self = this, - array, - url; - if ( $.isArray(this.options.source) ) { - array = this.options.source; - this.source = function( request, response ) { - response( $.ui.autocomplete.filter(array, request.term) ); - }; - } else if ( typeof this.options.source === "string" ) { - url = this.options.source; - this.source = function( request, response ) { - if ( self.xhr ) { - self.xhr.abort(); - } - self.xhr = $.ajax({ - url: url, - data: request, - dataType: "json", - autocompleteRequest: ++requestIndex, - success: function( data, status ) { - if ( this.autocompleteRequest === requestIndex ) { - response( data ); - } - }, - error: function() { - if ( this.autocompleteRequest === requestIndex ) { - response( [] ); - } - } - }); - }; - } else { - this.source = this.options.source; - } - }, - - search: function( value, event ) { - value = value != null ? value : this.element.val(); - - // always save the actual value, not the one passed as an argument - this.term = this.element.val(); - - if ( value.length < this.options.minLength ) { - return this.close( event ); - } - - clearTimeout( this.closing ); - if ( this._trigger( "search", event ) === false ) { - return; - } - - return this._search( value ); - }, - - _search: function( value ) { - this.pending++; - this.element.addClass( "ui-autocomplete-loading" ); - - this.source( { term: value }, this.response ); - }, - - _response: function( content ) { - if ( !this.options.disabled && content && content.length ) { - content = this._normalize( content ); - this._suggest( content ); - this._trigger( "open" ); - } else { - this.close(); - } - this.pending--; - if ( !this.pending ) { - this.element.removeClass( "ui-autocomplete-loading" ); - } - }, - - close: function( event ) { - clearTimeout( this.closing ); - if ( this.menu.element.is(":visible") ) { - this.menu.element.hide(); - this.menu.deactivate(); - this._trigger( "close", event ); - } - }, - - _change: function( event ) { - if ( this.previous !== this.element.val() ) { - this._trigger( "change", event, { item: this.selectedItem } ); - } - }, - - _normalize: function( items ) { - // assume all items have the right format when the first item is complete - if ( items.length && items[0].label && items[0].value ) { - return items; - } - return $.map( items, function(item) { - if ( typeof item === "string" ) { - return { - label: item, - value: item - }; - } - return $.extend({ - label: item.label || item.value, - value: item.value || item.label - }, item ); - }); - }, - - _suggest: function( items ) { - var ul = this.menu.element - .empty() - .zIndex( this.element.zIndex() + 1 ); - this._renderMenu( ul, items ); - // TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate - this.menu.deactivate(); - this.menu.refresh(); - - // size and position menu - ul.show(); - this._resizeMenu(); - ul.position( $.extend({ - of: this.element - }, this.options.position )); - - if ( this.options.autoFocus ) { - this.menu.next( new $.Event("mouseover") ); - } - }, - - _resizeMenu: function() { - var ul = this.menu.element; - ul.outerWidth( Math.max( - ul.width( "" ).outerWidth(), - this.element.outerWidth() - ) ); - }, - - _renderMenu: function( ul, items ) { - var self = this; - $.each( items, function( index, item ) { - self._renderItem( ul, item ); - }); - }, - - _renderItem: function( ul, item) { - return $( "
      • " ) - .data( "item.autocomplete", item ) - .append( $( "" ).text( item.label ) ) - .appendTo( ul ); - }, - - _move: function( direction, event ) { - if ( !this.menu.element.is(":visible") ) { - this.search( null, event ); - return; - } - if ( this.menu.first() && /^previous/.test(direction) || - this.menu.last() && /^next/.test(direction) ) { - this.element.val( this.term ); - this.menu.deactivate(); - return; - } - this.menu[ direction ]( event ); - }, - - widget: function() { - return this.menu.element; - } -}); - -$.extend( $.ui.autocomplete, { - escapeRegex: function( value ) { - return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }, - filter: function(array, term) { - var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); - return $.grep( array, function(value) { - return matcher.test( value.label || value.value || value ); - }); - } -}); - -}( jQuery )); - -/* - * jQuery UI Menu (not officially released) - * - * This widget isn't yet finished and the API is subject to change. We plan to finish - * it for the next release. You're welcome to give it a try anyway and give us feedback, - * as long as you're okay with migrating your code later on. We can help with that, too. - * - * Copyright 2010, 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/Menu - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function($) { - -$.widget("ui.menu", { - _create: function() { - var self = this; - this.element - .addClass("ui-menu ui-widget ui-widget-content ui-corner-all") - .attr({ - role: "listbox", - "aria-activedescendant": "ui-active-menuitem" - }) - .click(function( event ) { - if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) { - return; - } - // temporary - event.preventDefault(); - self.select( event ); - }); - this.refresh(); - }, - - refresh: function() { - var self = this; - - // don't refresh list items that are already adapted - var items = this.element.children("li:not(.ui-menu-item):has(a)") - .addClass("ui-menu-item") - .attr("role", "menuitem"); - - items.children("a") - .addClass("ui-corner-all") - .attr("tabindex", -1) - // mouseenter doesn't work with event delegation - .mouseenter(function( event ) { - self.activate( event, $(this).parent() ); - }) - .mouseleave(function() { - self.deactivate(); - }); - }, - - activate: function( event, item ) { - this.deactivate(); - if (this.hasScroll()) { - var offset = item.offset().top - this.element.offset().top, - scroll = this.element.scrollTop(), - elementHeight = this.element.height(); - if (offset < 0) { - this.element.scrollTop( scroll + offset); - } else if (offset >= elementHeight) { - this.element.scrollTop( scroll + offset - elementHeight + item.height()); - } - } - this.active = item.eq(0) - .children("a") - .addClass("ui-state-hover") - .attr("id", "ui-active-menuitem") - .end(); - this._trigger("focus", event, { item: item }); - }, - - deactivate: function() { - if (!this.active) { return; } - - this.active.children("a") - .removeClass("ui-state-hover") - .removeAttr("id"); - this._trigger("blur"); - this.active = null; - }, - - next: function(event) { - this.move("next", ".ui-menu-item:first", event); - }, - - previous: function(event) { - this.move("prev", ".ui-menu-item:last", event); - }, - - 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(direction, edge, event) { - if (!this.active) { - this.activate(event, this.element.children(edge)); - return; - } - var next = this.active[direction + "All"](".ui-menu-item").eq(0); - if (next.length) { - this.activate(event, next); - } else { - this.activate(event, this.element.children(edge)); - } - }, - - // TODO merge with previousPage - nextPage: function(event) { - if (this.hasScroll()) { - // TODO merge with no-scroll-else - if (!this.active || this.last()) { - this.activate(event, this.element.children(".ui-menu-item:first")); - return; - } - var base = this.active.offset().top, - height = this.element.height(), - result = this.element.children(".ui-menu-item").filter(function() { - var close = $(this).offset().top - base - height + $(this).height(); - // TODO improve approximation - return close < 10 && close > -10; - }); - - // TODO try to catch this earlier when scrollTop indicates the last page anyway - if (!result.length) { - result = this.element.children(".ui-menu-item:last"); - } - this.activate(event, result); - } else { - this.activate(event, this.element.children(".ui-menu-item") - .filter(!this.active || this.last() ? ":first" : ":last")); - } - }, - - // TODO merge with nextPage - previousPage: function(event) { - if (this.hasScroll()) { - // TODO merge with no-scroll-else - if (!this.active || this.first()) { - this.activate(event, this.element.children(".ui-menu-item:last")); - return; - } - - var base = this.active.offset().top, - height = this.element.height(); - result = this.element.children(".ui-menu-item").filter(function() { - var close = $(this).offset().top - base + height - $(this).height(); - // TODO improve approximation - return close < 10 && close > -10; - }); - - // TODO try to catch this earlier when scrollTop indicates the last page anyway - if (!result.length) { - result = this.element.children(".ui-menu-item:first"); - } - this.activate(event, result); - } else { - this.activate(event, this.element.children(".ui-menu-item") - .filter(!this.active || this.first() ? ":last" : ":first")); - } - }, - - hasScroll: function() { - return this.element.height() < this.element[ $.fn.prop ? "prop" : "attr" ]("scrollHeight"); - }, - - select: function( event ) { - this._trigger("selected", event, { 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( $, undefined ) { - -var lastActive, startXPos, startYPos, clickDragged, - baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", - stateClasses = "ui-state-hover ui-state-active ", - typeClasses = "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", - formResetHandler = function() { - var buttons = $( this ).find( ":ui-button" ); - setTimeout(function() { - buttons.button( "refresh" ); - }, 1 ); - }, - radioGroup = function( radio ) { - var name = radio.name, - form = radio.form, - radios = $( [] ); - if ( name ) { - if ( form ) { - radios = $( form ).find( "[name='" + name + "']" ); - } else { - radios = $( "[name='" + name + "']", radio.ownerDocument ) - .filter(function() { - return !this.form; - }); - } - } - return radios; - }; - -$.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", formResetHandler ); - - if ( typeof this.options.disabled !== "boolean" ) { - this.options.disabled = this.element.propAttr( "disabled" ); - } - - this._determineButtonType(); - this.hasTitle = !!this.buttonElement.attr( "title" ); - - var self = this, - options = this.options, - toggleButton = this.type === "checkbox" || this.type === "radio", - hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ), - focusClass = "ui-state-focus"; - - if ( options.label === null ) { - options.label = this.buttonElement.html(); - } - - if ( this.element.is( ":disabled" ) ) { - options.disabled = true; - } - - this.buttonElement - .addClass( baseClasses ) - .attr( "role", "button" ) - .bind( "mouseenter.button", function() { - if ( options.disabled ) { - return; - } - $( this ).addClass( "ui-state-hover" ); - if ( this === lastActive ) { - $( this ).addClass( "ui-state-active" ); - } - }) - .bind( "mouseleave.button", function() { - if ( options.disabled ) { - return; - } - $( this ).removeClass( hoverClass ); - }) - .bind( "click.button", function( event ) { - if ( options.disabled ) { - event.preventDefault(); - event.stopImmediatePropagation(); - } - }); - - this.element - .bind( "focus.button", function() { - // no need to check disabled, focus won't be triggered anyway - self.buttonElement.addClass( focusClass ); - }) - .bind( "blur.button", function() { - self.buttonElement.removeClass( focusClass ); - }); - - if ( toggleButton ) { - this.element.bind( "change.button", function() { - if ( clickDragged ) { - return; - } - self.refresh(); - }); - // if mouse moves between mousedown and mouseup (drag) set clickDragged flag - // prevents issue where button state changes but checkbox/radio checked state - // does not in Firefox (see ticket #6970) - this.buttonElement - .bind( "mousedown.button", function( event ) { - if ( options.disabled ) { - return; - } - clickDragged = false; - startXPos = event.pageX; - startYPos = event.pageY; - }) - .bind( "mouseup.button", function( event ) { - if ( options.disabled ) { - return; - } - if ( startXPos !== event.pageX || startYPos !== event.pageY ) { - clickDragged = true; - } - }); - } - - if ( this.type === "checkbox" ) { - this.buttonElement.bind( "click.button", function() { - if ( options.disabled || clickDragged ) { - return false; - } - $( this ).toggleClass( "ui-state-active" ); - self.buttonElement.attr( "aria-pressed", self.element[0].checked ); - }); - } else if ( this.type === "radio" ) { - this.buttonElement.bind( "click.button", function() { - if ( options.disabled || clickDragged ) { - return false; - } - $( this ).addClass( "ui-state-active" ); - self.buttonElement.attr( "aria-pressed", "true" ); - - var radio = self.element[ 0 ]; - radioGroup( radio ) - .not( radio ) - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - }); - } else { - this.buttonElement - .bind( "mousedown.button", function() { - if ( options.disabled ) { - return false; - } - $( this ).addClass( "ui-state-active" ); - lastActive = this; - $( document ).one( "mouseup", function() { - lastActive = null; - }); - }) - .bind( "mouseup.button", function() { - if ( options.disabled ) { - return false; - } - $( this ).removeClass( "ui-state-active" ); - }) - .bind( "keydown.button", function(event) { - if ( options.disabled ) { - return false; - } - if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) { - $( this ).addClass( "ui-state-active" ); - } - }) - .bind( "keyup.button", function() { - $( this ).removeClass( "ui-state-active" ); - }); - - if ( this.buttonElement.is("a") ) { - this.buttonElement.keyup(function(event) { - if ( event.keyCode === $.ui.keyCode.SPACE ) { - // TODO pass through original event correctly (just as 2nd argument doesn't work) - $( this ).click(); - } - }); - } - } - - // TODO: pull out $.Widget's handling for the disabled option into - // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can - // be overridden by individual plugins - this._setOption( "disabled", options.disabled ); - this._resetButton(); - }, - - _determineButtonType: function() { - - if ( this.element.is(":checkbox") ) { - this.type = "checkbox"; - } else if ( this.element.is(":radio") ) { - this.type = "radio"; - } else if ( this.element.is("input") ) { - this.type = "input"; - } else { - this.type = "button"; - } - - if ( this.type === "checkbox" || this.type === "radio" ) { - // we don't search against the document in case the element - // is disconnected from the DOM - var ancestor = this.element.parents().filter(":last"), - labelSelector = "label[for='" + this.element.attr("id") + "']"; - this.buttonElement = ancestor.find( labelSelector ); - if ( !this.buttonElement.length ) { - ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings(); - this.buttonElement = ancestor.filter( labelSelector ); - if ( !this.buttonElement.length ) { - this.buttonElement = ancestor.find( labelSelector ); - } - } - this.element.addClass( "ui-helper-hidden-accessible" ); - - var checked = this.element.is( ":checked" ); - if ( checked ) { - this.buttonElement.addClass( "ui-state-active" ); - } - this.buttonElement.attr( "aria-pressed", checked ); - } else { - this.buttonElement = this.element; - } - }, - - widget: function() { - return this.buttonElement; - }, - - destroy: function() { - this.element - .removeClass( "ui-helper-hidden-accessible" ); - this.buttonElement - .removeClass( baseClasses + " " + stateClasses + " " + typeClasses ) - .removeAttr( "role" ) - .removeAttr( "aria-pressed" ) - .html( this.buttonElement.find(".ui-button-text").html() ); - - if ( !this.hasTitle ) { - this.buttonElement.removeAttr( "title" ); - } - - $.Widget.prototype.destroy.call( this ); - }, - - _setOption: function( key, value ) { - $.Widget.prototype._setOption.apply( this, arguments ); - if ( key === "disabled" ) { - if ( value ) { - this.element.propAttr( "disabled", true ); - } else { - this.element.propAttr( "disabled", false ); - } - return; - } - this._resetButton(); - }, - - refresh: function() { - var isDisabled = this.element.is( ":disabled" ); - if ( isDisabled !== this.options.disabled ) { - this._setOption( "disabled", isDisabled ); - } - if ( this.type === "radio" ) { - radioGroup( this.element[0] ).each(function() { - if ( $( this ).is( ":checked" ) ) { - $( this ).button( "widget" ) - .addClass( "ui-state-active" ) - .attr( "aria-pressed", "true" ); - } else { - $( this ).button( "widget" ) - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - } - }); - } else if ( this.type === "checkbox" ) { - if ( this.element.is( ":checked" ) ) { - this.buttonElement - .addClass( "ui-state-active" ) - .attr( "aria-pressed", "true" ); - } else { - this.buttonElement - .removeClass( "ui-state-active" ) - .attr( "aria-pressed", "false" ); - } - } - }, - - _resetButton: function() { - if ( this.type === "input" ) { - if ( this.options.label ) { - this.element.val( this.options.label ); - } - return; - } - var buttonElement = this.buttonElement.removeClass( typeClasses ), - buttonText = $( "" ) - .addClass( "ui-button-text" ) - .html( this.options.label ) - .appendTo( buttonElement.empty() ) - .text(), - icons = this.options.icons, - multipleIcons = icons.primary && icons.secondary, - buttonClasses = []; - - if ( icons.primary || icons.secondary ) { - if ( this.options.text ) { - buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) ); - } - - if ( icons.primary ) { - buttonElement.prepend( "" ); - } - - if ( icons.secondary ) { - buttonElement.append( "" ); - } - - if ( !this.options.text ) { - buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ); - - if ( !this.hasTitle ) { - buttonElement.attr( "title", buttonText ); - } - } - } else { - buttonClasses.push( "ui-button-text-only" ); - } - buttonElement.addClass( buttonClasses.join( " " ) ); - } -}); - -$.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( key, value ) { - if ( key === "disabled" ) { - this.buttons.button( "option", key, value ); - } - - $.Widget.prototype._setOption.apply( this, arguments ); - }, - - refresh: function() { - var ltr = 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 $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-corner-all ui-corner-left ui-corner-right" ) - .filter( ":first" ) - .addClass( ltr ? "ui-corner-left" : "ui-corner-right" ) - .end() - .filter( ":last" ) - .addClass( ltr ? "ui-corner-right" : "ui-corner-left" ) - .end() - .end(); - }, - - destroy: function() { - this.element.removeClass( "ui-buttonset" ); - this.buttons - .map(function() { - return $( this ).button( "widget" )[ 0 ]; - }) - .removeClass( "ui-corner-left ui-corner-right" ) - .end() - .button( "destroy" ); - - $.Widget.prototype.destroy.call( 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( $, undefined ) { - -$.extend($.ui, { datepicker: { version: "1.8.16" } }); - -var PROP_NAME = 'datepicker'; -var dpuuid = new Date().getTime(); -var instActive; - -/* Date picker manager. - Use the singleton instance of this class, $.datepicker, to interact with the date picker. - Settings for (groups of) date pickers are maintained in an instance object, - allowing multiple different settings on the same page. */ - -function Datepicker() { - this.debug = false; // Change this to true to start debugging - this._curInst = null; // The current instance in use - this._keyEvent = false; // If the last event was a key event - this._disabledInputs = []; // List of date picker inputs that have been disabled - this._datepickerShowing = false; // True if the popup picker is showing , false if not - this._inDialog = false; // True if showing within a "dialog", false if not - this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division - this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class - this._appendClass = 'ui-datepicker-append'; // The name of the append marker class - this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class - this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class - this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class - this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class - this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class - this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class - this.regional = []; // Available regional settings, indexed by language code - this.regional[''] = { // Default regional settings - closeText: 'Done', // Display text for close link - prevText: 'Prev', // Display text for previous month link - nextText: 'Next', // Display text for next month link - currentText: 'Today', // Display text for current month link - monthNames: ['January','February','March','April','May','June', - 'July','August','September','October','November','December'], // Names of months for drop-down and formatting - monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting - dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting - dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting - dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday - weekHeader: 'Wk', // Column header for week of the year - dateFormat: 'mm/dd/yy', // See format options on parseDate - firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ... - isRTL: false, // True if right-to-left language, false if left-to-right - showMonthAfterYear: false, // True if the year select precedes month, false for month then year - yearSuffix: '' // Additional text to append to the year in the month headers - }; - this._defaults = { // Global defaults for all the date picker instances - showOn: 'focus', // 'focus' for popup on focus, - // 'button' for trigger button, or 'both' for either - showAnim: 'fadeIn', // Name of jQuery animation for popup - showOptions: {}, // Options for enhanced animations - defaultDate: null, // Used when field is blank: actual date, - // +/-number for offset from today, null for today - appendText: '', // Display text following the input box, e.g. showing the format - buttonText: '...', // Text for trigger button - buttonImage: '', // URL for trigger button image - buttonImageOnly: false, // True if the image appears alone, false if it appears on a button - hideIfNoPrevNext: false, // True to hide next/previous month links - // if not applicable, false to just disable them - navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links - gotoCurrent: false, // True if today link goes back to current selection instead - changeMonth: false, // True if month can be selected directly, false if only prev/next - changeYear: false, // True if year can be selected directly, false if only prev/next - yearRange: 'c-10:c+10', // Range of years to display in drop-down, - // either relative to today's year (-nn:+nn), relative to currently displayed year - // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) - showOtherMonths: false, // True to show dates in other months, false to leave blank - selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable - showWeek: false, // True to show week of the year, false to not show it - calculateWeek: this.iso8601Week, // How to calculate the week of the year, - // takes a Date and returns the number of the week for it - shortYearCutoff: '+10', // Short year values < this are in the current century, - // > this are in the previous century, - // string value starting with '+' for current year + value - minDate: null, // The earliest selectable date, or null for no limit - maxDate: null, // The latest selectable date, or null for no limit - duration: 'fast', // Duration of display/closure - beforeShowDay: null, // Function that takes a date and returns an array with - // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '', - // [2] = cell title (optional), e.g. $.datepicker.noWeekends - beforeShow: null, // Function that takes an input field and - // returns a set of custom settings for the date picker - onSelect: null, // Define a callback function when a date is selected - onChangeMonthYear: null, // Define a callback function when the month or year is changed - onClose: null, // Define a callback function when the datepicker is closed - numberOfMonths: 1, // Number of months to show at a time - showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0) - stepMonths: 1, // Number of months to step back/forward - stepBigMonths: 12, // Number of months to step back/forward for the big links - altField: '', // Selector for an alternate field to store selected dates into - altFormat: '', // The date format to use for the alternate field - constrainInput: true, // The input is constrained by the current date format - showButtonPanel: false, // True to show button panel, false to not show it - autoSize: false, // True to size the input for the date format, false to leave as is - disabled: false // The initial disabled state - }; - $.extend(this._defaults, this.regional['']); - this.dpDiv = bindHover($('
        ')); -} - -$.extend(Datepicker.prototype, { - /* Class name added to elements to indicate already configured with a date picker. */ - markerClassName: 'hasDatepicker', - - //Keep track of the maximum number of rows displayed (see #7043) - maxRows: 4, - - /* Debug logging (if enabled). */ - log: function () { - if (this.debug) - console.log.apply('', arguments); - }, - - // TODO rename to "widget" when switching to widget factory - _widgetDatepicker: function() { - return this.dpDiv; - }, - - /* Override the default settings for all instances of the date picker. - @param settings object - the new settings to use as defaults (anonymous object) - @return the manager object */ - setDefaults: function(settings) { - extendRemove(this._defaults, settings || {}); - return this; - }, - - /* Attach the date picker to a jQuery selection. - @param target element - the target input field or division or span - @param settings object - the new settings to use for this date picker instance (anonymous) */ - _attachDatepicker: function(target, settings) { - // check for settings on the control itself - in namespace 'date:' - var inlineSettings = null; - for (var attrName in this._defaults) { - var attrValue = target.getAttribute('date:' + attrName); - if (attrValue) { - inlineSettings = inlineSettings || {}; - try { - inlineSettings[attrName] = eval(attrValue); - } catch (err) { - inlineSettings[attrName] = attrValue; - } - } - } - var nodeName = target.nodeName.toLowerCase(); - var inline = (nodeName == 'div' || nodeName == 'span'); - if (!target.id) { - this.uuid += 1; - target.id = 'dp' + this.uuid; - } - var inst = this._newInst($(target), inline); - inst.settings = $.extend({}, settings || {}, inlineSettings || {}); - if (nodeName == 'input') { - this._connectDatepicker(target, inst); - } else if (inline) { - this._inlineDatepicker(target, inst); - } - }, - - /* Create a new instance object. */ - _newInst: function(target, inline) { - var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars - return {id: id, input: target, // associated target - selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection - drawMonth: 0, drawYear: 0, // month being drawn - inline: inline, // is datepicker inline or not - dpDiv: (!inline ? this.dpDiv : // presentation div - bindHover($('
        ')))}; - }, - - /* Attach the date picker to an input field. */ - _connectDatepicker: function(target, inst) { - var input = $(target); - inst.append = $([]); - inst.trigger = $([]); - if (input.hasClass(this.markerClassName)) - return; - this._attachments(input, inst); - input.addClass(this.markerClassName).keydown(this._doKeyDown). - keypress(this._doKeyPress).keyup(this._doKeyUp). - bind("setData.datepicker", function(event, key, value) { - inst.settings[key] = value; - }).bind("getData.datepicker", function(event, key) { - return this._get(inst, key); - }); - this._autoSize(inst); - $.data(target, PROP_NAME, inst); - //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665) - if( inst.settings.disabled ) { - this._disableDatepicker( target ); - } - }, - - /* Make attachments based on settings. */ - _attachments: function(input, inst) { - var appendText = this._get(inst, 'appendText'); - var isRTL = this._get(inst, 'isRTL'); - if (inst.append) - inst.append.remove(); - if (appendText) { - inst.append = $('' + appendText + ''); - input[isRTL ? 'before' : 'after'](inst.append); - } - input.unbind('focus', this._showDatepicker); - if (inst.trigger) - inst.trigger.remove(); - var showOn = this._get(inst, 'showOn'); - if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field - input.focus(this._showDatepicker); - if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked - var buttonText = this._get(inst, 'buttonText'); - var buttonImage = this._get(inst, 'buttonImage'); - inst.trigger = $(this._get(inst, 'buttonImageOnly') ? - $('').addClass(this._triggerClass). - attr({ src: buttonImage, alt: buttonText, title: buttonText }) : - $('').addClass(this._triggerClass). - html(buttonImage == '' ? buttonText : $('').attr( - { src:buttonImage, alt:buttonText, title:buttonText }))); - input[isRTL ? 'before' : 'after'](inst.trigger); - inst.trigger.click(function() { - if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0]) - $.datepicker._hideDatepicker(); - else - $.datepicker._showDatepicker(input[0]); - return false; - }); - } - }, - - /* Apply the maximum length for the date format. */ - _autoSize: function(inst) { - if (this._get(inst, 'autoSize') && !inst.inline) { - var date = new Date(2009, 12 - 1, 20); // Ensure double digits - var dateFormat = this._get(inst, 'dateFormat'); - if (dateFormat.match(/[DM]/)) { - var findMax = function(names) { - var max = 0; - var maxI = 0; - for (var i = 0; i < names.length; i++) { - if (names[i].length > max) { - max = names[i].length; - maxI = i; - } - } - return maxI; - }; - date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? - 'monthNames' : 'monthNamesShort')))); - date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? - 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay()); - } - inst.input.attr('size', this._formatDate(inst, date).length); - } - }, - - /* Attach an inline date picker to a div. */ - _inlineDatepicker: function(target, inst) { - var divSpan = $(target); - if (divSpan.hasClass(this.markerClassName)) - return; - divSpan.addClass(this.markerClassName).append(inst.dpDiv). - bind("setData.datepicker", function(event, key, value){ - inst.settings[key] = value; - }).bind("getData.datepicker", function(event, key){ - return this._get(inst, key); - }); - $.data(target, PROP_NAME, inst); - this._setDate(inst, this._getDefaultDate(inst), true); - this._updateDatepicker(inst); - this._updateAlternate(inst); - //If disabled option is true, disable the datepicker before showing it (see ticket #5665) - if( inst.settings.disabled ) { - this._disableDatepicker( target ); - } - // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements - // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height - inst.dpDiv.css( "display", "block" ); - }, - - /* Pop-up the date picker in a "dialog" box. - @param input element - ignored - @param date string or Date - the initial date to display - @param onSelect function - the function to call when a date is selected - @param settings object - update the dialog date picker instance's settings (anonymous object) - @param pos int[2] - coordinates for the dialog's position within the screen or - event - with x/y coordinates or - leave empty for default (screen centre) - @return the manager object */ - _dialogDatepicker: function(input, date, onSelect, settings, pos) { - var inst = this._dialogInst; // internal instance - if (!inst) { - this.uuid += 1; - var id = 'dp' + this.uuid; - this._dialogInput = $(''); - this._dialogInput.keydown(this._doKeyDown); - $('body').append(this._dialogInput); - inst = this._dialogInst = this._newInst(this._dialogInput, false); - inst.settings = {}; - $.data(this._dialogInput[0], PROP_NAME, inst); - } - extendRemove(inst.settings, settings || {}); - date = (date && date.constructor == Date ? this._formatDate(inst, date) : date); - this._dialogInput.val(date); - - this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); - if (!this._pos) { - var browserWidth = document.documentElement.clientWidth; - var browserHeight = document.documentElement.clientHeight; - var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; - var scrollY = document.documentElement.scrollTop || document.body.scrollTop; - this._pos = // should use actual width/height below - [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; - } - - // move input on screen for focus, but hidden behind dialog - this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px'); - inst.settings.onSelect = onSelect; - this._inDialog = true; - this.dpDiv.addClass(this._dialogClass); - this._showDatepicker(this._dialogInput[0]); - if ($.blockUI) - $.blockUI(this.dpDiv); - $.data(this._dialogInput[0], PROP_NAME, inst); - return this; - }, - - /* Detach a datepicker from its control. - @param target element - the target input field or division or span */ - _destroyDatepicker: function(target) { - var $target = $(target); - var inst = $.data(target, PROP_NAME); - if (!$target.hasClass(this.markerClassName)) { - return; - } - var nodeName = target.nodeName.toLowerCase(); - $.removeData(target, PROP_NAME); - if (nodeName == 'input') { - inst.append.remove(); - inst.trigger.remove(); - $target.removeClass(this.markerClassName). - unbind('focus', this._showDatepicker). - unbind('keydown', this._doKeyDown). - unbind('keypress', this._doKeyPress). - unbind('keyup', this._doKeyUp); - } else if (nodeName == 'div' || nodeName == 'span') - $target.removeClass(this.markerClassName).empty(); - }, - - /* Enable the date picker to a jQuery selection. - @param target element - the target input field or division or span */ - _enableDatepicker: function(target) { - var $target = $(target); - var inst = $.data(target, PROP_NAME); - if (!$target.hasClass(this.markerClassName)) { - return; - } - var nodeName = target.nodeName.toLowerCase(); - if (nodeName == 'input') { - target.disabled = false; - inst.trigger.filter('button'). - each(function() { this.disabled = false; }).end(). - filter('img').css({opacity: '1.0', cursor: ''}); - } - else if (nodeName == 'div' || nodeName == 'span') { - var inline = $target.children('.' + this._inlineClass); - inline.children().removeClass('ui-state-disabled'); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - removeAttr("disabled"); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value == target ? null : value); }); // delete entry - }, - - /* Disable the date picker to a jQuery selection. - @param target element - the target input field or division or span */ - _disableDatepicker: function(target) { - var $target = $(target); - var inst = $.data(target, PROP_NAME); - if (!$target.hasClass(this.markerClassName)) { - return; - } - var nodeName = target.nodeName.toLowerCase(); - if (nodeName == 'input') { - target.disabled = true; - inst.trigger.filter('button'). - each(function() { this.disabled = true; }).end(). - filter('img').css({opacity: '0.5', cursor: 'default'}); - } - else if (nodeName == 'div' || nodeName == 'span') { - var inline = $target.children('.' + this._inlineClass); - inline.children().addClass('ui-state-disabled'); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - attr("disabled", "disabled"); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value == target ? null : value); }); // delete entry - this._disabledInputs[this._disabledInputs.length] = target; - }, - - /* Is the first field in a jQuery collection disabled as a datepicker? - @param target element - the target input field or division or span - @return boolean - true if disabled, false if enabled */ - _isDisabledDatepicker: function(target) { - if (!target) { - return false; - } - for (var i = 0; i < this._disabledInputs.length; i++) { - if (this._disabledInputs[i] == target) - return true; - } - return false; - }, - - /* Retrieve the instance data for the target control. - @param target element - the target input field or division or span - @return object - the associated instance data - @throws error if a jQuery problem getting data */ - _getInst: function(target) { - try { - return $.data(target, PROP_NAME); - } - catch (err) { - throw 'Missing instance data for this datepicker'; - } - }, - - /* Update or retrieve the settings for a date picker attached to an input field or division. - @param target element - the target input field or division or span - @param name object - the new settings to update or - string - the name of the setting to change or retrieve, - when retrieving also 'all' for all instance settings or - 'defaults' for all global defaults - @param value any - the new value for the setting - (omit if above is an object or to retrieve a value) */ - _optionDatepicker: function(target, name, value) { - var inst = this._getInst(target); - if (arguments.length == 2 && typeof name == 'string') { - return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) : - (inst ? (name == 'all' ? $.extend({}, inst.settings) : - this._get(inst, name)) : null)); - } - var settings = name || {}; - if (typeof name == 'string') { - settings = {}; - settings[name] = value; - } - if (inst) { - if (this._curInst == inst) { - this._hideDatepicker(); - } - var date = this._getDateDatepicker(target, true); - var minDate = this._getMinMaxDate(inst, 'min'); - var maxDate = this._getMinMaxDate(inst, 'max'); - extendRemove(inst.settings, settings); - // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided - if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined) - inst.settings.minDate = this._formatDate(inst, minDate); - if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined) - inst.settings.maxDate = this._formatDate(inst, maxDate); - this._attachments($(target), inst); - this._autoSize(inst); - this._setDate(inst, date); - this._updateAlternate(inst); - this._updateDatepicker(inst); - } - }, - - // change method deprecated - _changeDatepicker: function(target, name, value) { - this._optionDatepicker(target, name, value); - }, - - /* Redraw the date picker attached to an input field or division. - @param target element - the target input field or division or span */ - _refreshDatepicker: function(target) { - var inst = this._getInst(target); - if (inst) { - this._updateDatepicker(inst); - } - }, - - /* Set the dates for a jQuery selection. - @param target element - the target input field or division or span - @param date Date - the new date */ - _setDateDatepicker: function(target, date) { - var inst = this._getInst(target); - if (inst) { - this._setDate(inst, date); - this._updateDatepicker(inst); - this._updateAlternate(inst); - } - }, - - /* Get the date(s) for the first entry in a jQuery selection. - @param target element - the target input field or division or span - @param noDefault boolean - true if no default date is to be used - @return Date - the current date */ - _getDateDatepicker: function(target, noDefault) { - var inst = this._getInst(target); - if (inst && !inst.inline) - this._setDateFromField(inst, noDefault); - return (inst ? this._getDate(inst) : null); - }, - - /* Handle keystrokes. */ - _doKeyDown: function(event) { - var inst = $.datepicker._getInst(event.target); - var handled = true; - var isRTL = inst.dpDiv.is('.ui-datepicker-rtl'); - inst._keyEvent = true; - if ($.datepicker._datepickerShowing) - switch (event.keyCode) { - case 9: $.datepicker._hideDatepicker(); - handled = false; - break; // hide on tab out - case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + - $.datepicker._currentClass + ')', inst.dpDiv); - if (sel[0]) - $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); - var onSelect = $.datepicker._get(inst, 'onSelect'); - if (onSelect) { - var dateStr = $.datepicker._formatDate(inst); - - // trigger custom callback - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); - } - else - $.datepicker._hideDatepicker(); - return false; // don't submit the form - break; // select the value on enter - case 27: $.datepicker._hideDatepicker(); - break; // hide on escape - case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, 'stepBigMonths') : - -$.datepicker._get(inst, 'stepMonths')), 'M'); - break; // previous month/year on page up/+ ctrl - case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, 'stepBigMonths') : - +$.datepicker._get(inst, 'stepMonths')), 'M'); - break; // next month/year on page down/+ ctrl - case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target); - handled = event.ctrlKey || event.metaKey; - break; // clear on ctrl or command +end - case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target); - handled = event.ctrlKey || event.metaKey; - break; // current on ctrl or command +home - case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D'); - handled = event.ctrlKey || event.metaKey; - // -1 day on ctrl or command +left - if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, 'stepBigMonths') : - -$.datepicker._get(inst, 'stepMonths')), 'M'); - // next month/year on alt +left on Mac - break; - case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D'); - handled = event.ctrlKey || event.metaKey; - break; // -1 week on ctrl or command +up - case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D'); - handled = event.ctrlKey || event.metaKey; - // +1 day on ctrl or command +right - if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, 'stepBigMonths') : - +$.datepicker._get(inst, 'stepMonths')), 'M'); - // next month/year on alt +right - break; - case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D'); - handled = event.ctrlKey || event.metaKey; - break; // +1 week on ctrl or command +down - default: handled = false; - } - else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home - $.datepicker._showDatepicker(this); - else { - handled = false; - } - if (handled) { - event.preventDefault(); - event.stopPropagation(); - } - }, - - /* Filter entered characters - based on date format. */ - _doKeyPress: function(event) { - var inst = $.datepicker._getInst(event.target); - if ($.datepicker._get(inst, 'constrainInput')) { - var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')); - var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode); - return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1); - } - }, - - /* Synchronise manual entry and field/alternate field. */ - _doKeyUp: function(event) { - var inst = $.datepicker._getInst(event.target); - if (inst.input.val() != inst.lastVal) { - try { - var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), - (inst.input ? inst.input.val() : null), - $.datepicker._getFormatConfig(inst)); - if (date) { // only if valid - $.datepicker._setDateFromField(inst); - $.datepicker._updateAlternate(inst); - $.datepicker._updateDatepicker(inst); - } - } - catch (event) { - $.datepicker.log(event); - } - } - return true; - }, - - /* Pop-up the date picker for a given input field. - If false returned from beforeShow event handler do not show. - @param input element - the input field attached to the date picker or - event - if triggered by focus */ - _showDatepicker: function(input) { - input = input.target || input; - if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger - input = $('input', input.parentNode)[0]; - if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here - return; - var inst = $.datepicker._getInst(input); - if ($.datepicker._curInst && $.datepicker._curInst != inst) { - if ( $.datepicker._datepickerShowing ) { - $.datepicker._triggerOnClose($.datepicker._curInst); - } - $.datepicker._curInst.dpDiv.stop(true, true); - } - var beforeShow = $.datepicker._get(inst, 'beforeShow'); - var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; - if(beforeShowSettings === false){ - //false - return; - } - extendRemove(inst.settings, beforeShowSettings); - inst.lastVal = null; - $.datepicker._lastInput = input; - $.datepicker._setDateFromField(inst); - if ($.datepicker._inDialog) // hide cursor - input.value = ''; - if (!$.datepicker._pos) { // position below input - $.datepicker._pos = $.datepicker._findPos(input); - $.datepicker._pos[1] += input.offsetHeight; // add the height - } - var isFixed = false; - $(input).parents().each(function() { - isFixed |= $(this).css('position') == 'fixed'; - return !isFixed; - }); - if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled - $.datepicker._pos[0] -= document.documentElement.scrollLeft; - $.datepicker._pos[1] -= document.documentElement.scrollTop; - } - var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; - $.datepicker._pos = null; - //to avoid flashes on Firefox - inst.dpDiv.empty(); - // determine sizing offscreen - inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'}); - $.datepicker._updateDatepicker(inst); - // fix width for dynamic number of date pickers - // and adjust position before showing - offset = $.datepicker._checkOffset(inst, offset, isFixed); - inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? - 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none', - left: offset.left + 'px', top: offset.top + 'px'}); - if (!inst.inline) { - var showAnim = $.datepicker._get(inst, 'showAnim'); - var duration = $.datepicker._get(inst, 'duration'); - var postProcess = function() { - var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only - if( !! cover.length ){ - var borders = $.datepicker._getBorders(inst.dpDiv); - cover.css({left: -borders[0], top: -borders[1], - width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}); - } - }; - inst.dpDiv.zIndex($(input).zIndex()+1); - $.datepicker._datepickerShowing = true; - if ($.effects && $.effects[showAnim]) - inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); - else - inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess); - if (!showAnim || !duration) - postProcess(); - if (inst.input.is(':visible') && !inst.input.is(':disabled')) - inst.input.focus(); - $.datepicker._curInst = inst; - } - }, - - /* Generate the date picker content. */ - _updateDatepicker: function(inst) { - var self = this; - self.maxRows = 4; //Reset the max number of rows being displayed (see #7043) - var borders = $.datepicker._getBorders(inst.dpDiv); - instActive = inst; // for delegate hover events - inst.dpDiv.empty().append(this._generateHTML(inst)); - var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only - if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6 - cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}) - } - inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover(); - var numMonths = this._getNumberOfMonths(inst); - var cols = numMonths[1]; - var width = 17; - inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width(''); - if (cols > 1) - inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em'); - inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') + - 'Class']('ui-datepicker-multi'); - inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') + - 'Class']('ui-datepicker-rtl'); - if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input && - // #6694 - don't focus the input if it's already focused - // this breaks the change event in IE - inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement) - inst.input.focus(); - // deffered render of the years select (to avoid flashes on Firefox) - if( inst.yearshtml ){ - var origyearshtml = inst.yearshtml; - setTimeout(function(){ - //assure that inst.yearshtml didn't change. - if( origyearshtml === inst.yearshtml && inst.yearshtml ){ - inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml); - } - origyearshtml = inst.yearshtml = null; - }, 0); - } - }, - - /* Retrieve the size of left and top borders for an element. - @param elem (jQuery object) the element of interest - @return (number[2]) the left and top borders */ - _getBorders: function(elem) { - var convert = function(value) { - return {thin: 1, medium: 2, thick: 3}[value] || value; - }; - return [parseFloat(convert(elem.css('border-left-width'))), - parseFloat(convert(elem.css('border-top-width')))]; - }, - - /* Check positioning to remain on screen. */ - _checkOffset: function(inst, offset, isFixed) { - var dpWidth = inst.dpDiv.outerWidth(); - var dpHeight = inst.dpDiv.outerHeight(); - var inputWidth = inst.input ? inst.input.outerWidth() : 0; - var inputHeight = inst.input ? inst.input.outerHeight() : 0; - var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft(); - var viewHeight = document.documentElement.clientHeight + $(document).scrollTop(); - - offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0); - offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0; - offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; - - // now check if datepicker is showing outside window viewport - move to a better place if so. - offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? - Math.abs(offset.left + dpWidth - viewWidth) : 0); - offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? - Math.abs(dpHeight + inputHeight) : 0); - - return offset; - }, - - /* Find an object's position on the screen. */ - _findPos: function(obj) { - var inst = this._getInst(obj); - var isRTL = this._get(inst, 'isRTL'); - while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) { - obj = obj[isRTL ? 'previousSibling' : 'nextSibling']; - } - var position = $(obj).offset(); - return [position.left, position.top]; - }, - - /* Trigger custom callback of onClose. */ - _triggerOnClose: function(inst) { - var onClose = this._get(inst, 'onClose'); - if (onClose) - onClose.apply((inst.input ? inst.input[0] : null), - [(inst.input ? inst.input.val() : ''), inst]); - }, - - /* Hide the date picker from view. - @param input element - the input field attached to the date picker */ - _hideDatepicker: function(input) { - var inst = this._curInst; - if (!inst || (input && inst != $.data(input, PROP_NAME))) - return; - if (this._datepickerShowing) { - var showAnim = this._get(inst, 'showAnim'); - var duration = this._get(inst, 'duration'); - var postProcess = function() { - $.datepicker._tidyDialog(inst); - this._curInst = null; - }; - if ($.effects && $.effects[showAnim]) - inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); - else - inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' : - (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess); - if (!showAnim) - postProcess(); - $.datepicker._triggerOnClose(inst); - this._datepickerShowing = false; - this._lastInput = null; - if (this._inDialog) { - this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' }); - if ($.blockUI) { - $.unblockUI(); - $('body').append(this.dpDiv); - } - } - this._inDialog = false; - } - }, - - /* Tidy up after a dialog display. */ - _tidyDialog: function(inst) { - inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar'); - }, - - /* Close date picker if clicked elsewhere. */ - _checkExternalClick: function(event) { - if (!$.datepicker._curInst) - return; - var $target = $(event.target); - if ($target[0].id != $.datepicker._mainDivId && - $target.parents('#' + $.datepicker._mainDivId).length == 0 && - !$target.hasClass($.datepicker.markerClassName) && - !$target.hasClass($.datepicker._triggerClass) && - $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI)) - $.datepicker._hideDatepicker(); - }, - - /* Adjust one of the date sub-fields. */ - _adjustDate: function(id, offset, period) { - var target = $(id); - var inst = this._getInst(target[0]); - if (this._isDisabledDatepicker(target[0])) { - return; - } - this._adjustInstDate(inst, offset + - (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning - period); - this._updateDatepicker(inst); - }, - - /* Action for current link. */ - _gotoToday: function(id) { - var target = $(id); - var inst = this._getInst(target[0]); - if (this._get(inst, 'gotoCurrent') && inst.currentDay) { - inst.selectedDay = inst.currentDay; - inst.drawMonth = inst.selectedMonth = inst.currentMonth; - inst.drawYear = inst.selectedYear = inst.currentYear; - } - else { - var date = new Date(); - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - } - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a new month/year. */ - _selectMonthYear: function(id, select, period) { - var target = $(id); - var inst = this._getInst(target[0]); - inst['selected' + (period == 'M' ? 'Month' : 'Year')] = - inst['draw' + (period == 'M' ? 'Month' : 'Year')] = - parseInt(select.options[select.selectedIndex].value,10); - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a day. */ - _selectDay: function(id, month, year, td) { - var target = $(id); - if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { - return; - } - var inst = this._getInst(target[0]); - inst.selectedDay = inst.currentDay = $('a', td).html(); - inst.selectedMonth = inst.currentMonth = month; - inst.selectedYear = inst.currentYear = year; - this._selectDate(id, this._formatDate(inst, - inst.currentDay, inst.currentMonth, inst.currentYear)); - }, - - /* Erase the input field and hide the date picker. */ - _clearDate: function(id) { - var target = $(id); - var inst = this._getInst(target[0]); - this._selectDate(target, ''); - }, - - /* Update the input field with the selected date. */ - _selectDate: function(id, dateStr) { - var target = $(id); - var inst = this._getInst(target[0]); - dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); - if (inst.input) - inst.input.val(dateStr); - this._updateAlternate(inst); - var onSelect = this._get(inst, 'onSelect'); - if (onSelect) - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback - else if (inst.input) - inst.input.trigger('change'); // fire the change event - if (inst.inline) - this._updateDatepicker(inst); - else { - this._hideDatepicker(); - this._lastInput = inst.input[0]; - if (typeof(inst.input[0]) != 'object') - inst.input.focus(); // restore focus - this._lastInput = null; - } - }, - - /* Update any alternate field to synchronise with the main field. */ - _updateAlternate: function(inst) { - var altField = this._get(inst, 'altField'); - if (altField) { // update alternate field too - var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat'); - var date = this._getDate(inst); - var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); - $(altField).each(function() { $(this).val(dateStr); }); - } - }, - - /* Set as beforeShowDay function to prevent selection of weekends. - @param date Date - the date to customise - @return [boolean, string] - is this date selectable?, what is its CSS class? */ - noWeekends: function(date) { - var day = date.getDay(); - return [(day > 0 && day < 6), '']; - }, - - /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. - @param date Date - the date to get the week for - @return number - the number of the week within the year that contains this date */ - iso8601Week: function(date) { - var checkDate = new Date(date.getTime()); - // Find Thursday of this week starting on Monday - checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); - var time = checkDate.getTime(); - checkDate.setMonth(0); // Compare with Jan 1 - checkDate.setDate(1); - return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; - }, - - /* Parse a string value into a date object. - See formatDate below for the possible formats. - - @param format string - the expected format of the date - @param value string - the date in the above format - @param settings Object - attributes include: - shortYearCutoff number - the cutoff year for determining the century (optional) - dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - dayNames string[7] - names of the days from Sunday (optional) - monthNamesShort string[12] - abbreviated names of the months (optional) - monthNames string[12] - names of the months (optional) - @return Date - the extracted date value or null if value is blank */ - parseDate: function (format, value, settings) { - if (format == null || value == null) - throw 'Invalid arguments'; - value = (typeof value == 'object' ? value.toString() : value + ''); - if (value == '') - return null; - var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff; - shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : - new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); - var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; - var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; - var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; - var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; - var year = -1; - var month = -1; - var day = -1; - var doy = -1; - var literal = false; - // Check whether a format character is doubled - var lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); - if (matches) - iFormat++; - return matches; - }; - // Extract a number from the string value - var getNumber = function(match) { - var isDoubled = lookAhead(match); - var size = (match == '@' ? 14 : (match == '!' ? 20 : - (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2)))); - var digits = new RegExp('^\\d{1,' + size + '}'); - var num = value.substring(iValue).match(digits); - if (!num) - throw 'Missing number at position ' + iValue; - iValue += num[0].length; - return parseInt(num[0], 10); - }; - // Extract a name from the string value and convert to an index - var getName = function(match, shortNames, longNames) { - var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { - return [ [k, v] ]; - }).sort(function (a, b) { - return -(a[1].length - b[1].length); - }); - var index = -1; - $.each(names, function (i, pair) { - var name = pair[1]; - if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) { - index = pair[0]; - iValue += name.length; - return false; - } - }); - if (index != -1) - return index + 1; - else - throw 'Unknown name at position ' + iValue; - }; - // Confirm that a literal character matches the string value - var checkLiteral = function() { - if (value.charAt(iValue) != format.charAt(iFormat)) - throw 'Unexpected literal at position ' + iValue; - iValue++; - }; - var iValue = 0; - for (var iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) - if (format.charAt(iFormat) == "'" && !lookAhead("'")) - literal = false; - else - checkLiteral(); - else - switch (format.charAt(iFormat)) { - case 'd': - day = getNumber('d'); - break; - case 'D': - getName('D', dayNamesShort, dayNames); - break; - case 'o': - doy = getNumber('o'); - break; - case 'm': - month = getNumber('m'); - break; - case 'M': - month = getName('M', monthNamesShort, monthNames); - break; - case 'y': - year = getNumber('y'); - break; - case '@': - var date = new Date(getNumber('@')); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case '!': - var date = new Date((getNumber('!') - this._ticksTo1970) / 10000); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case "'": - if (lookAhead("'")) - checkLiteral(); - else - literal = true; - break; - default: - checkLiteral(); - } - } - if (iValue < value.length){ - throw "Extra/unparsed characters found in date: " + value.substring(iValue); - } - if (year == -1) - year = new Date().getFullYear(); - else if (year < 100) - year += new Date().getFullYear() - new Date().getFullYear() % 100 + - (year <= shortYearCutoff ? 0 : -100); - if (doy > -1) { - month = 1; - day = doy; - do { - var dim = this._getDaysInMonth(year, month - 1); - if (day <= dim) - break; - month++; - day -= dim; - } while (true); - } - var date = this._daylightSavingAdjust(new Date(year, month - 1, day)); - if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day) - throw 'Invalid date'; // E.g. 31/02/00 - return date; - }, - - /* Standard date formats. */ - ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601) - 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', // RFC 822 - TICKS: '!', - TIMESTAMP: '@', - W3C: 'yy-mm-dd', // ISO 8601 - - _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + - Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), - - /* Format a date object into a string value. - The format can be combinations of the following: - d - day of month (no leading zero) - dd - day of month (two digit) - o - day of year (no leading zeros) - oo - day of year (three digit) - D - day name short - DD - day name long - m - month of year (no leading zero) - mm - month of year (two digit) - M - month name short - MM - month name long - y - year (two digit) - yy - year (four digit) - @ - Unix timestamp (ms since 01/01/1970) - ! - Windows ticks (100ns since 01/01/0001) - '...' - literal text - '' - single quote - - @param format string - the desired format of the date - @param date Date - the date value to format - @param settings Object - attributes include: - dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - dayNames string[7] - names of the days from Sunday (optional) - monthNamesShort string[12] - abbreviated names of the months (optional) - monthNames string[12] - names of the months (optional) - @return string - the date in the above format */ - formatDate: function (format, date, settings) { - if (!date) - return ''; - var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; - var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; - var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; - var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; - // Check whether a format character is doubled - var lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); - if (matches) - iFormat++; - return matches; - }; - // Format a number, with leading zero if necessary - var formatNumber = function(match, value, len) { - var num = '' + value; - if (lookAhead(match)) - while (num.length < len) - num = '0' + num; - return num; - }; - // Format a name, short or long as requested - var formatName = function(match, value, shortNames, longNames) { - return (lookAhead(match) ? longNames[value] : shortNames[value]); - }; - var output = ''; - var literal = false; - if (date) - for (var iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) - if (format.charAt(iFormat) == "'" && !lookAhead("'")) - literal = false; - else - output += format.charAt(iFormat); - else - switch (format.charAt(iFormat)) { - case 'd': - output += formatNumber('d', date.getDate(), 2); - break; - case 'D': - output += formatName('D', date.getDay(), dayNamesShort, dayNames); - break; - case 'o': - output += formatNumber('o', - Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); - break; - case 'm': - output += formatNumber('m', date.getMonth() + 1, 2); - break; - case 'M': - output += formatName('M', date.getMonth(), monthNamesShort, monthNames); - break; - case 'y': - output += (lookAhead('y') ? date.getFullYear() : - (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100); - break; - case '@': - output += date.getTime(); - break; - case '!': - output += date.getTime() * 10000 + this._ticksTo1970; - break; - case "'": - if (lookAhead("'")) - output += "'"; - else - literal = true; - break; - default: - output += format.charAt(iFormat); - } - } - return output; - }, - - /* Extract all possible characters from the date format. */ - _possibleChars: function (format) { - var chars = ''; - var literal = false; - // Check whether a format character is doubled - var lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); - if (matches) - iFormat++; - return matches; - }; - for (var iFormat = 0; iFormat < format.length; iFormat++) - if (literal) - if (format.charAt(iFormat) == "'" && !lookAhead("'")) - literal = false; - else - chars += format.charAt(iFormat); - else - switch (format.charAt(iFormat)) { - case 'd': case 'm': case 'y': case '@': - chars += '0123456789'; - break; - case 'D': case 'M': - return null; // Accept anything - case "'": - if (lookAhead("'")) - chars += "'"; - else - literal = true; - break; - default: - chars += format.charAt(iFormat); - } - return chars; - }, - - /* Get a setting value, defaulting if necessary. */ - _get: function(inst, name) { - return inst.settings[name] !== undefined ? - inst.settings[name] : this._defaults[name]; - }, - - /* Parse existing date and initialise date picker. */ - _setDateFromField: function(inst, noDefault) { - if (inst.input.val() == inst.lastVal) { - return; - } - var dateFormat = this._get(inst, 'dateFormat'); - var dates = inst.lastVal = inst.input ? inst.input.val() : null; - var date, defaultDate; - date = defaultDate = this._getDefaultDate(inst); - var settings = this._getFormatConfig(inst); - try { - date = this.parseDate(dateFormat, dates, settings) || defaultDate; - } catch (event) { - this.log(event); - dates = (noDefault ? '' : dates); - } - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - inst.currentDay = (dates ? date.getDate() : 0); - inst.currentMonth = (dates ? date.getMonth() : 0); - inst.currentYear = (dates ? date.getFullYear() : 0); - this._adjustInstDate(inst); - }, - - /* Retrieve the default date shown on opening. */ - _getDefaultDate: function(inst) { - return this._restrictMinMax(inst, - this._determineDate(inst, this._get(inst, 'defaultDate'), new Date())); - }, - - /* A date may be specified as an exact value or a relative one. */ - _determineDate: function(inst, date, defaultDate) { - var offsetNumeric = function(offset) { - var date = new Date(); - date.setDate(date.getDate() + offset); - return date; - }; - var offsetString = function(offset) { - try { - return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), - offset, $.datepicker._getFormatConfig(inst)); - } - catch (e) { - // Ignore - } - var date = (offset.toLowerCase().match(/^c/) ? - $.datepicker._getDate(inst) : null) || new Date(); - var year = date.getFullYear(); - var month = date.getMonth(); - var day = date.getDate(); - var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g; - var matches = pattern.exec(offset); - while (matches) { - switch (matches[2] || 'd') { - case 'd' : case 'D' : - day += parseInt(matches[1],10); break; - case 'w' : case 'W' : - day += parseInt(matches[1],10) * 7; break; - case 'm' : case 'M' : - month += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - case 'y': case 'Y' : - year += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - } - matches = pattern.exec(offset); - } - return new Date(year, month, day); - }; - var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) : - (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); - newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate); - if (newDate) { - newDate.setHours(0); - newDate.setMinutes(0); - newDate.setSeconds(0); - newDate.setMilliseconds(0); - } - return this._daylightSavingAdjust(newDate); - }, - - /* Handle switch to/from daylight saving. - Hours may be non-zero on daylight saving cut-over: - > 12 when midnight changeover, but then cannot generate - midnight datetime, so jump to 1AM, otherwise reset. - @param date (Date) the date to check - @return (Date) the corrected date */ - _daylightSavingAdjust: function(date) { - if (!date) return null; - date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); - return date; - }, - - /* Set the date(s) directly. */ - _setDate: function(inst, date, noChange) { - var clear = !date; - var origMonth = inst.selectedMonth; - var origYear = inst.selectedYear; - var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); - inst.selectedDay = inst.currentDay = newDate.getDate(); - inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); - inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); - if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange) - this._notifyChange(inst); - this._adjustInstDate(inst); - if (inst.input) { - inst.input.val(clear ? '' : this._formatDate(inst)); - } - }, - - /* Retrieve the date(s) directly. */ - _getDate: function(inst) { - var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null : - this._daylightSavingAdjust(new Date( - inst.currentYear, inst.currentMonth, inst.currentDay))); - return startDate; - }, - - /* Generate the HTML for the current state of the date picker. */ - _generateHTML: function(inst) { - var today = new Date(); - today = this._daylightSavingAdjust( - new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time - var isRTL = this._get(inst, 'isRTL'); - var showButtonPanel = this._get(inst, 'showButtonPanel'); - var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext'); - var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat'); - var numMonths = this._getNumberOfMonths(inst); - var showCurrentAtPos = this._get(inst, 'showCurrentAtPos'); - var stepMonths = this._get(inst, 'stepMonths'); - var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1); - var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : - new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); - var minDate = this._getMinMaxDate(inst, 'min'); - var maxDate = this._getMinMaxDate(inst, 'max'); - var drawMonth = inst.drawMonth - showCurrentAtPos; - var drawYear = inst.drawYear; - if (drawMonth < 0) { - drawMonth += 12; - drawYear--; - } - if (maxDate) { - var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), - maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); - maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); - while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { - drawMonth--; - if (drawMonth < 0) { - drawMonth = 11; - drawYear--; - } - } - } - inst.drawMonth = drawMonth; - inst.drawYear = drawYear; - var prevText = this._get(inst, 'prevText'); - prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), - this._getFormatConfig(inst))); - var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? - '' + prevText + '' : - (hideIfNoPrevNext ? '' : '' + prevText + '')); - var nextText = this._get(inst, 'nextText'); - nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), - this._getFormatConfig(inst))); - var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? - '' + nextText + '' : - (hideIfNoPrevNext ? '' : '' + nextText + '')); - var currentText = this._get(inst, 'currentText'); - var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today); - currentText = (!navigationAsDateFormat ? currentText : - this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); - var controls = (!inst.inline ? '' : ''); - var buttonPanel = (showButtonPanel) ? '
        ' + (isRTL ? controls : '') + - (this._isInRange(inst, gotoDate) ? '' : '') + (isRTL ? '' : controls) + '
        ' : ''; - var firstDay = parseInt(this._get(inst, 'firstDay'),10); - firstDay = (isNaN(firstDay) ? 0 : firstDay); - var showWeek = this._get(inst, 'showWeek'); - var dayNames = this._get(inst, 'dayNames'); - var dayNamesShort = this._get(inst, 'dayNamesShort'); - var dayNamesMin = this._get(inst, 'dayNamesMin'); - var monthNames = this._get(inst, 'monthNames'); - var monthNamesShort = this._get(inst, 'monthNamesShort'); - var beforeShowDay = this._get(inst, 'beforeShowDay'); - var showOtherMonths = this._get(inst, 'showOtherMonths'); - var selectOtherMonths = this._get(inst, 'selectOtherMonths'); - var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week; - var defaultDate = this._getDefaultDate(inst); - var html = ''; - for (var row = 0; row < numMonths[0]; row++) { - var group = ''; - this.maxRows = 4; - for (var col = 0; col < numMonths[1]; col++) { - var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); - var cornerClass = ' ui-corner-all'; - var calender = ''; - if (isMultiMonth) { - calender += '
        '; - } - calender += '
        ' + - (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') + - (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') + - this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, - row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers - '
        ' + - ''; - var thead = (showWeek ? '' : ''); - for (var dow = 0; dow < 7; dow++) { // days of the week - var day = (dow + firstDay) % 7; - thead += '= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' + - '' + dayNamesMin[day] + ''; - } - calender += thead + ''; - var daysInMonth = this._getDaysInMonth(drawYear, drawMonth); - if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth) - inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); - var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; - var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate - var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) - this.maxRows = numRows; - var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); - for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows - calender += ''; - var tbody = (!showWeek ? '' : ''); - for (var dow = 0; dow < 7; dow++) { // create date picker days - var daySettings = (beforeShowDay ? - beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']); - var otherMonth = (printDate.getMonth() != drawMonth); - var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || - (minDate && printDate < minDate) || (maxDate && printDate > maxDate); - tbody += ''; // display selectable date - printDate.setDate(printDate.getDate() + 1); - printDate = this._daylightSavingAdjust(printDate); - } - calender += tbody + ''; - } - drawMonth++; - if (drawMonth > 11) { - drawMonth = 0; - drawYear++; - } - calender += '
        ' + this._get(inst, 'weekHeader') + '
        ' + - this._get(inst, 'calculateWeek')(printDate) + '' + // actions - (otherMonth && !showOtherMonths ? ' ' : // display for other months - (unselectable ? '' + printDate.getDate() + '' : '' + printDate.getDate() + '')) + '
        ' + (isMultiMonth ? '
        ' + - ((numMonths[0] > 0 && col == numMonths[1]-1) ? '
        ' : '') : ''); - group += calender; - } - html += group; - } - html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ? - '' : ''); - inst._keyEvent = false; - return html; - }, - - /* Generate the month and year header. */ - _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, - secondary, monthNames, monthNamesShort) { - var changeMonth = this._get(inst, 'changeMonth'); - var changeYear = this._get(inst, 'changeYear'); - var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); - var html = '
        '; - var monthHtml = ''; - // month selection - if (secondary || !changeMonth) - monthHtml += '' + monthNames[drawMonth] + ''; - else { - var inMinYear = (minDate && minDate.getFullYear() == drawYear); - var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); - monthHtml += ''; - } - if (!showMonthAfterYear) - html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : ''); - // year selection - if ( !inst.yearshtml ) { - inst.yearshtml = ''; - if (secondary || !changeYear) - html += '' + drawYear + ''; - else { - // determine range of years to display - var years = this._get(inst, 'yearRange').split(':'); - var thisYear = new Date().getFullYear(); - var determineYear = function(value) { - var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : - (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : - parseInt(value, 10))); - return (isNaN(year) ? thisYear : year); - }; - var year = determineYear(years[0]); - var endYear = Math.max(year, determineYear(years[1] || '')); - year = (minDate ? Math.max(year, minDate.getFullYear()) : year); - endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); - inst.yearshtml += ''; - - html += inst.yearshtml; - inst.yearshtml = null; - } - } - html += this._get(inst, 'yearSuffix'); - if (showMonthAfterYear) - html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml; - html += '
        '; // Close datepicker_header - return html; - }, - - /* Adjust one of the date sub-fields. */ - _adjustInstDate: function(inst, offset, period) { - var year = inst.drawYear + (period == 'Y' ? offset : 0); - var month = inst.drawMonth + (period == 'M' ? offset : 0); - var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + - (period == 'D' ? offset : 0); - var date = this._restrictMinMax(inst, - this._daylightSavingAdjust(new Date(year, month, day))); - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - if (period == 'M' || period == 'Y') - this._notifyChange(inst); - }, - - /* Ensure a date is within any min/max bounds. */ - _restrictMinMax: function(inst, date) { - var minDate = this._getMinMaxDate(inst, 'min'); - var maxDate = this._getMinMaxDate(inst, 'max'); - var newDate = (minDate && date < minDate ? minDate : date); - newDate = (maxDate && newDate > maxDate ? maxDate : newDate); - return newDate; - }, - - /* Notify change of month/year. */ - _notifyChange: function(inst) { - var onChange = this._get(inst, 'onChangeMonthYear'); - if (onChange) - onChange.apply((inst.input ? inst.input[0] : null), - [inst.selectedYear, inst.selectedMonth + 1, inst]); - }, - - /* Determine the number of months to show. */ - _getNumberOfMonths: function(inst) { - var numMonths = this._get(inst, 'numberOfMonths'); - return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)); - }, - - /* Determine the current maximum date - ensure no time components are set. */ - _getMinMaxDate: function(inst, minMax) { - return this._determineDate(inst, this._get(inst, minMax + 'Date'), null); - }, - - /* Find the number of days in a given month. */ - _getDaysInMonth: function(year, month) { - return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); - }, - - /* Find the day of the week of the first of a month. */ - _getFirstDayOfMonth: function(year, month) { - return new Date(year, month, 1).getDay(); - }, - - /* Determines if we should allow a "next/prev" month display change. */ - _canAdjustMonth: function(inst, offset, curYear, curMonth) { - var numMonths = this._getNumberOfMonths(inst); - var date = this._daylightSavingAdjust(new Date(curYear, - curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); - if (offset < 0) - date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); - return this._isInRange(inst, date); - }, - - /* Is the given date in the accepted range? */ - _isInRange: function(inst, date) { - var minDate = this._getMinMaxDate(inst, 'min'); - var maxDate = this._getMinMaxDate(inst, 'max'); - return ((!minDate || date.getTime() >= minDate.getTime()) && - (!maxDate || date.getTime() <= maxDate.getTime())); - }, - - /* Provide the configuration settings for formatting/parsing. */ - _getFormatConfig: function(inst) { - var shortYearCutoff = this._get(inst, 'shortYearCutoff'); - shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : - new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); - return {shortYearCutoff: shortYearCutoff, - dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'), - monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')}; - }, - - /* Format the given date for display. */ - _formatDate: function(inst, day, month, year) { - if (!day) { - inst.currentDay = inst.selectedDay; - inst.currentMonth = inst.selectedMonth; - inst.currentYear = inst.selectedYear; - } - var date = (day ? (typeof day == 'object' ? day : - this._daylightSavingAdjust(new Date(year, month, day))) : - this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); - return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst)); - } -}); - -/* - * Bind hover events for datepicker elements. - * Done via delegate so the binding only occurs once in the lifetime of the parent div. - * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. - */ -function bindHover(dpDiv) { - var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a'; - return dpDiv.bind('mouseout', function(event) { - var elem = $( event.target ).closest( selector ); - if ( !elem.length ) { - return; - } - elem.removeClass( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" ); - }) - .bind('mouseover', function(event) { - var elem = $( event.target ).closest( selector ); - if ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) || - !elem.length ) { - return; - } - elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'); - elem.addClass('ui-state-hover'); - if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover'); - if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover'); - }); -} - -/* jQuery extend now ignores nulls! */ -function extendRemove(target, props) { - $.extend(target, props); - for (var name in props) - if (props[name] == null || props[name] == undefined) - target[name] = props[name]; - return target; -}; - -/* Determine whether an object is an array. */ -function isArray(a) { - return (a && (($.browser.safari && typeof a == 'object' && a.length) || - (a.constructor && a.constructor.toString().match(/\Array\(\)/)))); -}; - -/* Invoke the datepicker functionality. - @param options string - a command, optionally followed by additional parameters or - Object - settings for attaching new datepicker functionality - @return jQuery object */ -$.fn.datepicker = function(options){ - - /* Verify an empty collection wasn't passed - Fixes #6976 */ - if ( !this.length ) { - return this; - } - - /* Initialise the date picker. */ - if (!$.datepicker.initialized) { - $(document).mousedown($.datepicker._checkExternalClick). - find('body').append($.datepicker.dpDiv); - $.datepicker.initialized = true; - } - - var otherArgs = Array.prototype.slice.call(arguments, 1); - if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget')) - return $.datepicker['_' + options + 'Datepicker']. - apply($.datepicker, [this[0]].concat(otherArgs)); - if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') - return $.datepicker['_' + options + 'Datepicker']. - apply($.datepicker, [this[0]].concat(otherArgs)); - return this.each(function() { - typeof options == 'string' ? - $.datepicker['_' + options + 'Datepicker']. - apply($.datepicker, [this].concat(otherArgs)) : - $.datepicker._attachDatepicker(this, options); - }); -}; - -$.datepicker = new Datepicker(); // singleton instance -$.datepicker.initialized = false; -$.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.8.16"; - -// Workaround for #4055 -// Add another global to avoid noConflict issues with inline event handlers -window['DP_jQuery_' + dpuuid] = $; - -})(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( $, undefined ) { - -var uiDialogClasses = - 'ui-dialog ' + - 'ui-widget ' + - 'ui-widget-content ' + - 'ui-corner-all ', - sizeRelatedOptions = { - buttons: true, - height: true, - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - width: true - }, - resizableRelatedOptions = { - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true - }, - // support for jQuery 1.3.2 - handle common attrFn methods for dialog - attrFn = $.attrFn || { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true, - click: true - }; - -$.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', - // ensure that the titlebar is never outside the document - using: function(pos) { - var topOffset = $(this).css(pos).offset().top; - if (topOffset < 0) { - $(this).css('top', pos.top - topOffset); - } - } - }, - resizable: true, - show: null, - stack: true, - title: '', - width: 300, - zIndex: 1000 - }, - - _create: function() { - this.originalTitle = this.element.attr('title'); - // #5742 - .attr() might return a DOMElement - if ( typeof this.originalTitle !== "string" ) { - this.originalTitle = ""; - } - - this.options.title = this.options.title || this.originalTitle; - var self = this, - options = self.options, - - title = options.title || ' ', - titleId = $.ui.dialog.getTitleId(self.element), - - uiDialog = (self.uiDialog = $('
        ')) - .appendTo(document.body) - .hide() - .addClass(uiDialogClasses + options.dialogClass) - .css({ - zIndex: options.zIndex - }) - // setting tabIndex makes the div focusable - // setting outline to 0 prevents a border on focus in Mozilla - .attr('tabIndex', -1).css('outline', 0).keydown(function(event) { - if (options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE) { - - self.close(event); - event.preventDefault(); - } - }) - .attr({ - role: 'dialog', - 'aria-labelledby': titleId - }) - .mousedown(function(event) { - self.moveToTop(false, event); - }), - - uiDialogContent = self.element - .show() - .removeAttr('title') - .addClass( - 'ui-dialog-content ' + - 'ui-widget-content') - .appendTo(uiDialog), - - uiDialogTitlebar = (self.uiDialogTitlebar = $('
        ')) - .addClass( - 'ui-dialog-titlebar ' + - 'ui-widget-header ' + - 'ui-corner-all ' + - 'ui-helper-clearfix' - ) - .prependTo(uiDialog), - - uiDialogTitlebarClose = $('') - .addClass( - 'ui-dialog-titlebar-close ' + - 'ui-corner-all' - ) - .attr('role', 'button') - .hover( - function() { - uiDialogTitlebarClose.addClass('ui-state-hover'); - }, - function() { - uiDialogTitlebarClose.removeClass('ui-state-hover'); - } - ) - .focus(function() { - uiDialogTitlebarClose.addClass('ui-state-focus'); - }) - .blur(function() { - uiDialogTitlebarClose.removeClass('ui-state-focus'); - }) - .click(function(event) { - self.close(event); - return false; - }) - .appendTo(uiDialogTitlebar), - - uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('')) - .addClass( - 'ui-icon ' + - 'ui-icon-closethick' - ) - .text(options.closeText) - .appendTo(uiDialogTitlebarClose), - - uiDialogTitle = $('') - .addClass('ui-dialog-title') - .attr('id', titleId) - .html(title) - .prependTo(uiDialogTitlebar); - - //handling of deprecated beforeclose (vs beforeClose) option - //Ticket #4669 http://dev.jqueryui.com/ticket/4669 - //TODO: remove in 1.9pre - if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) { - options.beforeClose = options.beforeclose; - } - - uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection(); - - if (options.draggable && $.fn.draggable) { - self._makeDraggable(); - } - if (options.resizable && $.fn.resizable) { - self._makeResizable(); - } - - self._createButtons(options.buttons); - self._isOpen = false; - - if ($.fn.bgiframe) { - uiDialog.bgiframe(); - } - }, - - _init: function() { - if ( this.options.autoOpen ) { - this.open(); - } - }, - - destroy: function() { - var self = this; - - if (self.overlay) { - self.overlay.destroy(); - } - self.uiDialog.hide(); - self.element - .unbind('.dialog') - .removeData('dialog') - .removeClass('ui-dialog-content ui-widget-content') - .hide().appendTo('body'); - self.uiDialog.remove(); - - if (self.originalTitle) { - self.element.attr('title', self.originalTitle); - } - - return self; - }, - - widget: function() { - return this.uiDialog; - }, - - close: function(event) { - var self = this, - maxZ, thisZ; - - if (false === self._trigger('beforeClose', event)) { - return; - } - - if (self.overlay) { - self.overlay.destroy(); - } - self.uiDialog.unbind('keypress.ui-dialog'); - - self._isOpen = false; - - if (self.options.hide) { - self.uiDialog.hide(self.options.hide, function() { - self._trigger('close', event); - }); - } else { - self.uiDialog.hide(); - self._trigger('close', event); - } - - $.ui.dialog.overlay.resize(); - - // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) - if (self.options.modal) { - maxZ = 0; - $('.ui-dialog').each(function() { - if (this !== self.uiDialog[0]) { - thisZ = $(this).css('z-index'); - if(!isNaN(thisZ)) { - maxZ = Math.max(maxZ, thisZ); - } - } - }); - $.ui.dialog.maxZ = maxZ; - } - - return self; - }, - - isOpen: function() { - return this._isOpen; - }, - - // the force parameter allows us to move modal dialogs to their correct - // position on open - moveToTop: function(force, event) { - var self = this, - options = self.options, - saveScroll; - - if ((options.modal && !force) || - (!options.stack && !options.modal)) { - return self._trigger('focus', event); - } - - if (options.zIndex > $.ui.dialog.maxZ) { - $.ui.dialog.maxZ = options.zIndex; - } - if (self.overlay) { - $.ui.dialog.maxZ += 1; - self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ); - } - - //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed. - // http://ui.jquery.com/bugs/ticket/3193 - saveScroll = { scrollTop: self.element.scrollTop(), scrollLeft: self.element.scrollLeft() }; - $.ui.dialog.maxZ += 1; - self.uiDialog.css('z-index', $.ui.dialog.maxZ); - self.element.attr(saveScroll); - self._trigger('focus', event); - - return self; - }, - - open: function() { - if (this._isOpen) { return; } - - var self = this, - options = self.options, - uiDialog = self.uiDialog; - - self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null; - self._size(); - self._position(options.position); - uiDialog.show(options.show); - self.moveToTop(true); - - // prevent tabbing out of modal dialogs - if (options.modal) { - uiDialog.bind('keypress.ui-dialog', function(event) { - if (event.keyCode !== $.ui.keyCode.TAB) { - return; - } - - var tabbables = $(':tabbable', this), - first = tabbables.filter(':first'), - last = tabbables.filter(':last'); - - if (event.target === last[0] && !event.shiftKey) { - first.focus(1); - return false; - } else if (event.target === first[0] && event.shiftKey) { - last.focus(1); - return false; - } - }); - } - - // set focus to the first tabbable element in the content area or the first button - // if there are no tabbable elements, set focus on the dialog itself - $(self.element.find(':tabbable').get().concat( - uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat( - uiDialog.get()))).eq(0).focus(); - - self._isOpen = true; - self._trigger('open'); - - return self; - }, - - _createButtons: function(buttons) { - var self = this, - hasButtons = false, - uiDialogButtonPane = $('
        ') - .addClass( - 'ui-dialog-buttonpane ' + - 'ui-widget-content ' + - 'ui-helper-clearfix' - ), - uiButtonSet = $( "
        " ) - .addClass( "ui-dialog-buttonset" ) - .appendTo( uiDialogButtonPane ); - - // if we already have a button pane, remove it - self.uiDialog.find('.ui-dialog-buttonpane').remove(); - - if (typeof buttons === 'object' && buttons !== null) { - $.each(buttons, function() { - return !(hasButtons = true); - }); - } - if (hasButtons) { - $.each(buttons, function(name, props) { - props = $.isFunction( props ) ? - { click: props, text: name } : - props; - var button = $('') - .click(function() { - props.click.apply(self.element[0], arguments); - }) - .appendTo(uiButtonSet); - // can't use .attr( props, true ) with jQuery 1.3.2. - $.each( props, function( key, value ) { - if ( key === "click" ) { - return; - } - if ( key in attrFn ) { - button[ key ]( value ); - } else { - button.attr( key, value ); - } - }); - if ($.fn.button) { - button.button(); - } - }); - uiDialogButtonPane.appendTo(self.uiDialog); - } - }, - - _makeDraggable: function() { - var self = this, - options = self.options, - doc = $(document), - heightBeforeDrag; - - function filteredUi(ui) { - return { - position: ui.position, - offset: ui.offset - }; - } - - self.uiDialog.draggable({ - cancel: '.ui-dialog-content, .ui-dialog-titlebar-close', - handle: '.ui-dialog-titlebar', - containment: 'document', - start: function(event, ui) { - heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height(); - $(this).height($(this).height()).addClass("ui-dialog-dragging"); - self._trigger('dragStart', event, filteredUi(ui)); - }, - drag: function(event, ui) { - self._trigger('drag', event, filteredUi(ui)); - }, - stop: function(event, ui) { - options.position = [ui.position.left - doc.scrollLeft(), - ui.position.top - doc.scrollTop()]; - $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag); - self._trigger('dragStop', event, filteredUi(ui)); - $.ui.dialog.overlay.resize(); - } - }); - }, - - _makeResizable: function(handles) { - handles = (handles === undefined ? this.options.resizable : handles); - var self = this, - options = self.options, - // .ui-resizable has position: relative defined in the stylesheet - // but dialogs have to use absolute or fixed positioning - position = self.uiDialog.css('position'), - resizeHandles = (typeof handles === 'string' ? - handles : - 'n,e,s,w,se,sw,ne,nw' - ); - - function filteredUi(ui) { - return { - originalPosition: ui.originalPosition, - originalSize: ui.originalSize, - position: ui.position, - size: ui.size - }; - } - - self.uiDialog.resizable({ - cancel: '.ui-dialog-content', - containment: 'document', - alsoResize: self.element, - maxWidth: options.maxWidth, - maxHeight: options.maxHeight, - minWidth: options.minWidth, - minHeight: self._minHeight(), - handles: resizeHandles, - start: function(event, ui) { - $(this).addClass("ui-dialog-resizing"); - self._trigger('resizeStart', event, filteredUi(ui)); - }, - resize: function(event, ui) { - self._trigger('resize', event, filteredUi(ui)); - }, - stop: function(event, ui) { - $(this).removeClass("ui-dialog-resizing"); - options.height = $(this).height(); - options.width = $(this).width(); - self._trigger('resizeStop', event, filteredUi(ui)); - $.ui.dialog.overlay.resize(); - } - }) - .css('position', position) - .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se'); - }, - - _minHeight: function() { - var options = this.options; - - if (options.height === 'auto') { - return options.minHeight; - } else { - return Math.min(options.minHeight, options.height); - } - }, - - _position: function(position) { - var myAt = [], - offset = [0, 0], - isVisible; - - if (position) { - // deep extending converts arrays to objects in jQuery <= 1.3.2 :-( - // if (typeof position == 'string' || $.isArray(position)) { - // myAt = $.isArray(position) ? position : position.split(' '); - - if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) { - myAt = position.split ? position.split(' ') : [position[0], position[1]]; - if (myAt.length === 1) { - myAt[1] = myAt[0]; - } - - $.each(['left', 'top'], function(i, offsetPosition) { - if (+myAt[i] === myAt[i]) { - offset[i] = myAt[i]; - myAt[i] = offsetPosition; - } - }); - - position = { - my: myAt.join(" "), - at: myAt.join(" "), - offset: offset.join(" ") - }; - } - - position = $.extend({}, $.ui.dialog.prototype.options.position, position); - } else { - position = $.ui.dialog.prototype.options.position; - } - - // need to show the dialog to get the actual offset in the position plugin - isVisible = this.uiDialog.is(':visible'); - if (!isVisible) { - this.uiDialog.show(); - } - this.uiDialog - // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 - .css({ top: 0, left: 0 }) - .position($.extend({ of: window }, position)); - if (!isVisible) { - this.uiDialog.hide(); - } - }, - - _setOptions: function( options ) { - var self = this, - resizableOptions = {}, - resize = false; - - $.each( options, function( key, value ) { - self._setOption( key, value ); - - if ( key in sizeRelatedOptions ) { - resize = true; - } - if ( key in resizableRelatedOptions ) { - resizableOptions[ key ] = value; - } - }); - - if ( resize ) { - this._size(); - } - if ( this.uiDialog.is( ":data(resizable)" ) ) { - this.uiDialog.resizable( "option", resizableOptions ); - } - }, - - _setOption: function(key, value){ - var self = this, - uiDialog = self.uiDialog; - - switch (key) { - //handling of deprecated beforeclose (vs beforeClose) option - //Ticket #4669 http://dev.jqueryui.com/ticket/4669 - //TODO: remove in 1.9pre - case "beforeclose": - key = "beforeClose"; - break; - case "buttons": - self._createButtons(value); - break; - case "closeText": - // ensure that we always pass a string - self.uiDialogTitlebarCloseText.text("" + value); - break; - case "dialogClass": - uiDialog - .removeClass(self.options.dialogClass) - .addClass(uiDialogClasses + value); - break; - case "disabled": - if (value) { - uiDialog.addClass('ui-dialog-disabled'); - } else { - uiDialog.removeClass('ui-dialog-disabled'); - } - break; - case "draggable": - var isDraggable = uiDialog.is( ":data(draggable)" ); - if ( isDraggable && !value ) { - uiDialog.draggable( "destroy" ); - } - - if ( !isDraggable && value ) { - self._makeDraggable(); - } - break; - case "position": - self._position(value); - break; - case "resizable": - // currently resizable, becoming non-resizable - var isResizable = uiDialog.is( ":data(resizable)" ); - if (isResizable && !value) { - uiDialog.resizable('destroy'); - } - - // currently resizable, changing handles - if (isResizable && typeof value === 'string') { - uiDialog.resizable('option', 'handles', value); - } - - // currently non-resizable, becoming resizable - if (!isResizable && value !== false) { - self._makeResizable(value); - } - break; - case "title": - // convert whatever was passed in o a string, for html() to not throw up - $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' ')); - break; - } - - $.Widget.prototype._setOption.apply(self, arguments); - }, - - _size: function() { - /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content - * divs will both have width and height set, so we need to reset them - */ - var options = this.options, - nonContentHeight, - minContentHeight, - isVisible = this.uiDialog.is( ":visible" ); - - // reset content sizing - this.element.show().css({ - width: 'auto', - minHeight: 0, - height: 0 - }); - - if (options.minWidth > options.width) { - options.width = options.minWidth; - } - - // reset wrapper sizing - // determine the height of all the non-content elements - nonContentHeight = this.uiDialog.css({ - height: 'auto', - width: options.width - }) - .height(); - minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); - - if ( options.height === "auto" ) { - // only needed for IE6 support - if ( $.support.minHeight ) { - this.element.css({ - minHeight: minContentHeight, - height: "auto" - }); - } else { - this.uiDialog.show(); - var autoHeight = this.element.css( "height", "auto" ).height(); - if ( !isVisible ) { - this.uiDialog.hide(); - } - this.element.height( Math.max( autoHeight, minContentHeight ) ); - } - } else { - this.element.height( Math.max( options.height - nonContentHeight, 0 ) ); - } - - if (this.uiDialog.is(':data(resizable)')) { - this.uiDialog.resizable('option', 'minHeight', this._minHeight()); - } - } -}); - -$.extend($.ui.dialog, { - version: "1.8.16", - - uuid: 0, - maxZ: 0, - - getTitleId: function($el) { - var id = $el.attr('id'); - if (!id) { - this.uuid += 1; - id = this.uuid; - } - return 'ui-dialog-title-' + id; - }, - - overlay: function(dialog) { - this.$el = $.ui.dialog.overlay.create(dialog); - } -}); - -$.extend($.ui.dialog.overlay, { - instances: [], - // reuse old instances due to IE memory leak with alpha transparency (see #5185) - oldInstances: [], - maxZ: 0, - events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','), - function(event) { return event + '.dialog-overlay'; }).join(' '), - create: function(dialog) { - if (this.instances.length === 0) { - // prevent use of anchors and inputs - // we use a setTimeout in case the overlay is created from an - // event that we're going to be cancelling (see #2804) - setTimeout(function() { - // handle $(el).dialog().dialog('close') (see #4065) - if ($.ui.dialog.overlay.instances.length) { - $(document).bind($.ui.dialog.overlay.events, function(event) { - // stop events if the z-index of the target is < the z-index of the overlay - // we cannot return true when we don't want to cancel the event (#3523) - if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) { - return false; - } - }); - } - }, 1); - - // allow closing by pressing the escape key - $(document).bind('keydown.dialog-overlay', function(event) { - if (dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE) { - - dialog.close(event); - event.preventDefault(); - } - }); - - // handle window resize - $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize); - } - - var $el = (this.oldInstances.pop() || $('
        ').addClass('ui-widget-overlay')) - .appendTo(document.body) - .css({ - width: this.width(), - height: this.height() - }); - - if ($.fn.bgiframe) { - $el.bgiframe(); - } - - this.instances.push($el); - return $el; - }, - - destroy: function($el) { - var indexOf = $.inArray($el, this.instances); - if (indexOf != -1){ - this.oldInstances.push(this.instances.splice(indexOf, 1)[0]); - } - - if (this.instances.length === 0) { - $([document, window]).unbind('.dialog-overlay'); - } - - $el.remove(); - - // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) - var maxZ = 0; - $.each(this.instances, function() { - maxZ = Math.max(maxZ, this.css('z-index')); - }); - this.maxZ = maxZ; - }, - - height: function() { - var scrollHeight, - offsetHeight; - // handle IE 6 - if ($.browser.msie && $.browser.version < 7) { - scrollHeight = Math.max( - document.documentElement.scrollHeight, - document.body.scrollHeight - ); - offsetHeight = Math.max( - document.documentElement.offsetHeight, - document.body.offsetHeight - ); - - if (scrollHeight < offsetHeight) { - return $(window).height() + 'px'; - } else { - return scrollHeight + 'px'; - } - // handle "good" browsers - } else { - return $(document).height() + 'px'; - } - }, - - width: function() { - var scrollWidth, - offsetWidth; - // handle IE - if ( $.browser.msie ) { - scrollWidth = Math.max( - document.documentElement.scrollWidth, - document.body.scrollWidth - ); - offsetWidth = Math.max( - document.documentElement.offsetWidth, - document.body.offsetWidth - ); - - if (scrollWidth < offsetWidth) { - return $(window).width() + 'px'; - } else { - return scrollWidth + 'px'; - } - // handle "good" browsers - } else { - return $(document).width() + 'px'; - } - }, - - resize: function() { - /* If the dialog is draggable and the user drags it past the - * right edge of the window, the document becomes wider so we - * need to stretch the overlay. If the user then drags the - * dialog back to the left, the document will become narrower, - * so we need to shrink the overlay to the appropriate size. - * This is handled by shrinking the overlay before setting it - * to the full document size. - */ - var $overlays = $([]); - $.each($.ui.dialog.overlay.instances, function() { - $overlays = $overlays.add(this); - }); - - $overlays.css({ - width: 0, - height: 0 - }).css({ - width: $.ui.dialog.overlay.width(), - height: $.ui.dialog.overlay.height() - }); - } -}); - -$.extend($.ui.dialog.overlay.prototype, { - destroy: function() { - $.ui.dialog.overlay.destroy(this.$el); - } -}); - -}(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( $, undefined ) { - -$.ui = $.ui || {}; - -var horizontalPositions = /left|center|right/, - verticalPositions = /top|center|bottom/, - center = "center", - _position = $.fn.position, - _offset = $.fn.offset; - -$.fn.position = function( options ) { - if ( !options || !options.of ) { - return _position.apply( this, arguments ); - } - - // make a copy, we don't want to modify arguments - options = $.extend( {}, options ); - - var target = $( options.of ), - targetElem = target[0], - collision = ( options.collision || "flip" ).split( " " ), - offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ], - targetWidth, - targetHeight, - basePosition; - - if ( targetElem.nodeType === 9 ) { - targetWidth = target.width(); - targetHeight = target.height(); - basePosition = { top: 0, left: 0 }; - // TODO: use $.isWindow() in 1.9 - } else if ( targetElem.setTimeout ) { - targetWidth = target.width(); - targetHeight = target.height(); - basePosition = { top: target.scrollTop(), left: target.scrollLeft() }; - } else if ( targetElem.preventDefault ) { - // force left top to allow flipping - options.at = "left top"; - targetWidth = targetHeight = 0; - basePosition = { top: options.of.pageY, left: options.of.pageX }; - } else { - targetWidth = target.outerWidth(); - targetHeight = target.outerHeight(); - basePosition = target.offset(); - } - - // force my and at to have valid horizontal and veritcal positions - // if a value is missing or invalid, it will be converted to center - $.each( [ "my", "at" ], function() { - var pos = ( options[this] || "" ).split( " " ); - if ( pos.length === 1) { - pos = horizontalPositions.test( pos[0] ) ? - pos.concat( [center] ) : - verticalPositions.test( pos[0] ) ? - [ center ].concat( pos ) : - [ center, center ]; - } - pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center; - pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center; - options[ this ] = pos; - }); - - // normalize collision option - if ( collision.length === 1 ) { - collision[ 1 ] = collision[ 0 ]; - } - - // normalize offset option - offset[ 0 ] = parseInt( offset[0], 10 ) || 0; - if ( offset.length === 1 ) { - offset[ 1 ] = offset[ 0 ]; - } - offset[ 1 ] = parseInt( offset[1], 10 ) || 0; - - if ( options.at[0] === "right" ) { - basePosition.left += targetWidth; - } else if ( options.at[0] === center ) { - basePosition.left += targetWidth / 2; - } - - if ( options.at[1] === "bottom" ) { - basePosition.top += targetHeight; - } else if ( options.at[1] === center ) { - basePosition.top += targetHeight / 2; - } - - basePosition.left += offset[ 0 ]; - basePosition.top += offset[ 1 ]; - - return this.each(function() { - var elem = $( this ), - elemWidth = elem.outerWidth(), - elemHeight = elem.outerHeight(), - marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0, - marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0, - collisionWidth = elemWidth + marginLeft + - ( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ), - collisionHeight = elemHeight + marginTop + - ( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ), - position = $.extend( {}, basePosition ), - collisionPosition; - - if ( options.my[0] === "right" ) { - position.left -= elemWidth; - } else if ( options.my[0] === center ) { - position.left -= elemWidth / 2; - } - - if ( options.my[1] === "bottom" ) { - position.top -= elemHeight; - } else if ( options.my[1] === center ) { - position.top -= elemHeight / 2; - } - - // prevent fractions (see #5280) - position.left = Math.round( position.left ); - position.top = Math.round( position.top ); - - collisionPosition = { - left: position.left - marginLeft, - top: position.top - marginTop - }; - - $.each( [ "left", "top" ], function( i, dir ) { - if ( $.ui.position[ collision[i] ] ) { - $.ui.position[ collision[i] ][ dir ]( position, { - targetWidth: targetWidth, - targetHeight: targetHeight, - elemWidth: elemWidth, - elemHeight: elemHeight, - collisionPosition: collisionPosition, - collisionWidth: collisionWidth, - collisionHeight: collisionHeight, - offset: offset, - my: options.my, - at: options.at - }); - } - }); - - if ( $.fn.bgiframe ) { - elem.bgiframe(); - } - elem.offset( $.extend( position, { using: options.using } ) ); - }); -}; - -$.ui.position = { - fit: { - left: function( position, data ) { - var win = $( window ), - over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(); - position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left ); - }, - top: function( position, data ) { - var win = $( window ), - over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(); - position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top ); - } - }, - - flip: { - left: function( position, data ) { - if ( data.at[0] === center ) { - return; - } - var win = $( window ), - over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(), - myOffset = data.my[ 0 ] === "left" ? - -data.elemWidth : - data.my[ 0 ] === "right" ? - data.elemWidth : - 0, - atOffset = data.at[ 0 ] === "left" ? - data.targetWidth : - -data.targetWidth, - offset = -2 * data.offset[ 0 ]; - position.left += data.collisionPosition.left < 0 ? - myOffset + atOffset + offset : - over > 0 ? - myOffset + atOffset + offset : - 0; - }, - top: function( position, data ) { - if ( data.at[1] === center ) { - return; - } - var win = $( window ), - over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(), - myOffset = data.my[ 1 ] === "top" ? - -data.elemHeight : - data.my[ 1 ] === "bottom" ? - data.elemHeight : - 0, - atOffset = data.at[ 1 ] === "top" ? - data.targetHeight : - -data.targetHeight, - offset = -2 * data.offset[ 1 ]; - position.top += data.collisionPosition.top < 0 ? - myOffset + atOffset + offset : - over > 0 ? - myOffset + atOffset + offset : - 0; - } - } -}; - -// offset setter from jQuery 1.4 -if ( !$.offset.setOffset ) { - $.offset.setOffset = function( elem, options ) { - // set position first, in-case top/left are set even on static elem - if ( /static/.test( $.curCSS( elem, "position" ) ) ) { - elem.style.position = "relative"; - } - var curElem = $( elem ), - curOffset = curElem.offset(), - curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0, - curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0, - props = { - top: (options.top - curOffset.top) + curTop, - left: (options.left - curOffset.left) + curLeft - }; - - if ( 'using' in options ) { - options.using.call( elem, props ); - } else { - curElem.css( props ); - } - }; - - $.fn.offset = function( options ) { - var elem = this[ 0 ]; - if ( !elem || !elem.ownerDocument ) { return null; } - if ( options ) { - return this.each(function() { - $.offset.setOffset( this, options ); - }); - } - return _offset.call( this ); - }; -} - -}( 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( $, undefined ) { - -$.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 = $( "
        " ) - .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(); - - $.Widget.prototype.destroy.apply( this, arguments ); - }, - - value: function( newValue ) { - if ( newValue === undefined ) { - return this._value(); - } - - this._setOption( "value", newValue ); - return this; - }, - - _setOption: function( key, value ) { - if ( key === "value" ) { - this.options.value = value; - this._refreshValue(); - if ( this._value() === this.options.max ) { - this._trigger( "complete" ); - } - } - - $.Widget.prototype._setOption.apply( this, arguments ); - }, - - _value: function() { - var val = this.options.value; - // normalize invalid value - if ( typeof val !== "number" ) { - val = 0; - } - return Math.min( this.options.max, Math.max( this.min, val ) ); - }, - - _percentage: function() { - return 100 * this._value() / this.options.max; - }, - - _refreshValue: function() { - var value = this.value(); - var percentage = this._percentage(); - - if ( this.oldValue !== value ) { - this.oldValue = value; - this._trigger( "change" ); - } - - this.valueDiv - .toggle( value > this.min ) - .toggleClass( "ui-corner-right", value === this.options.max ) - .width( percentage.toFixed(0) + "%" ); - this.element.attr( "aria-valuenow", value ); - } -}); - -$.extend( $.ui.progressbar, { - version: "1.8.16" -}); - -})( 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( $, undefined ) { - -// number of pages in a slider -// (how many times can you page up/down to go through the whole range) -var numPages = 5; - -$.widget( "ui.slider", $.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 self = this, - o = this.options, - existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), - handle = "", - handleCount = ( o.values && o.values.length ) || 1, - handles = []; - - this._keySliding = false; - this._mouseSliding = 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" + - ( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) ); - - this.range = $([]); - - if ( o.range ) { - if ( o.range === true ) { - if ( !o.values ) { - o.values = [ this._valueMin(), this._valueMin() ]; - } - if ( o.values.length && o.values.length !== 2 ) { - o.values = [ o.values[0], o.values[0] ]; - } - } - - this.range = $( "
        " ) - .appendTo( this.element ) - .addClass( "ui-slider-range" + - // note: this isn't the most fittingly semantic framework class for this element, - // but worked best visually with a variety of themes - " ui-widget-header" + - ( ( o.range === "min" || o.range === "max" ) ? " ui-slider-range-" + o.range : "" ) ); - } - - for ( var i = existingHandles.length; i < handleCount; i += 1 ) { - handles.push( handle ); - } - - this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( self.element ) ); - - this.handle = this.handles.eq( 0 ); - - this.handles.add( this.range ).filter( "a" ) - .click(function( event ) { - event.preventDefault(); - }) - .hover(function() { - if ( !o.disabled ) { - $( this ).addClass( "ui-state-hover" ); - } - }, function() { - $( this ).removeClass( "ui-state-hover" ); - }) - .focus(function() { - if ( !o.disabled ) { - $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ); - $( this ).addClass( "ui-state-focus" ); - } else { - $( this ).blur(); - } - }) - .blur(function() { - $( this ).removeClass( "ui-state-focus" ); - }); - - this.handles.each(function( i ) { - $( this ).data( "index.ui-slider-handle", i ); - }); - - this.handles - .keydown(function( event ) { - var ret = true, - index = $( this ).data( "index.ui-slider-handle" ), - allowed, - curVal, - newVal, - step; - - if ( self.options.disabled ) { - return; - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - case $.ui.keyCode.END: - case $.ui.keyCode.PAGE_UP: - case $.ui.keyCode.PAGE_DOWN: - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - ret = false; - if ( !self._keySliding ) { - self._keySliding = true; - $( this ).addClass( "ui-state-active" ); - allowed = self._start( event, index ); - if ( allowed === false ) { - return; - } - } - break; - } - - step = self.options.step; - if ( self.options.values && self.options.values.length ) { - curVal = newVal = self.values( index ); - } else { - curVal = newVal = self.value(); - } - - switch ( event.keyCode ) { - case $.ui.keyCode.HOME: - newVal = self._valueMin(); - break; - case $.ui.keyCode.END: - newVal = self._valueMax(); - break; - case $.ui.keyCode.PAGE_UP: - newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.PAGE_DOWN: - newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) ); - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.RIGHT: - if ( curVal === self._valueMax() ) { - return; - } - newVal = self._trimAlignValue( curVal + step ); - break; - case $.ui.keyCode.DOWN: - case $.ui.keyCode.LEFT: - if ( curVal === self._valueMin() ) { - return; - } - newVal = self._trimAlignValue( curVal - step ); - break; - } - - self._slide( event, index, newVal ); - - return ret; - - }) - .keyup(function( event ) { - var index = $( this ).data( "index.ui-slider-handle" ); - - if ( self._keySliding ) { - self._keySliding = false; - self._stop( event, index ); - self._change( event, index ); - $( 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( event ) { - var o = this.options, - position, - normValue, - distance, - closestHandle, - self, - index, - allowed, - offset, - mouseOverHandle; - - if ( o.disabled ) { - return false; - } - - this.elementSize = { - width: this.element.outerWidth(), - height: this.element.outerHeight() - }; - this.elementOffset = this.element.offset(); - - position = { x: event.pageX, y: event.pageY }; - normValue = this._normValueFromMouse( position ); - distance = this._valueMax() - this._valueMin() + 1; - self = this; - this.handles.each(function( i ) { - var thisDistance = Math.abs( normValue - self.values(i) ); - if ( distance > thisDistance ) { - distance = thisDistance; - closestHandle = $( this ); - index = i; - } - }); - - // workaround for bug #3736 (if both handles of a range are at 0, - // the first is always used as the one with least distance, - // and moving it is obviously prevented by preventing negative ranges) - if( o.range === true && this.values(1) === o.min ) { - index += 1; - closestHandle = $( this.handles[index] ); - } - - allowed = this._start( event, index ); - if ( allowed === false ) { - return false; - } - this._mouseSliding = true; - - self._handleIndex = index; - - closestHandle - .addClass( "ui-state-active" ) - .focus(); - - offset = closestHandle.offset(); - mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); - this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { - left: event.pageX - offset.left - ( closestHandle.width() / 2 ), - top: event.pageY - offset.top - - ( closestHandle.height() / 2 ) - - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + - ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) - }; - - if ( !this.handles.hasClass( "ui-state-hover" ) ) { - this._slide( event, index, normValue ); - } - this._animateOff = true; - return true; - }, - - _mouseStart: function( event ) { - return true; - }, - - _mouseDrag: function( event ) { - var position = { x: event.pageX, y: event.pageY }, - normValue = this._normValueFromMouse( position ); - - this._slide( event, this._handleIndex, normValue ); - - return false; - }, - - _mouseStop: function( event ) { - this.handles.removeClass( "ui-state-active" ); - this._mouseSliding = false; - - this._stop( event, this._handleIndex ); - this._change( event, this._handleIndex ); - - this._handleIndex = null; - this._clickOffset = null; - this._animateOff = false; - - return false; - }, - - _detectOrientation: function() { - this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; - }, - - _normValueFromMouse: function( position ) { - var pixelTotal, - pixelMouse, - percentMouse, - valueTotal, - valueMouse; - - if ( this.orientation === "horizontal" ) { - pixelTotal = this.elementSize.width; - pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); - } else { - pixelTotal = this.elementSize.height; - pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); - } - - percentMouse = ( pixelMouse / pixelTotal ); - if ( percentMouse > 1 ) { - percentMouse = 1; - } - if ( percentMouse < 0 ) { - percentMouse = 0; - } - if ( this.orientation === "vertical" ) { - percentMouse = 1 - percentMouse; - } - - valueTotal = this._valueMax() - this._valueMin(); - valueMouse = this._valueMin() + percentMouse * valueTotal; - - return this._trimAlignValue( valueMouse ); - }, - - _start: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - return this._trigger( "start", event, uiHash ); - }, - - _slide: function( event, index, newVal ) { - var otherVal, - newValues, - allowed; - - if ( this.options.values && this.options.values.length ) { - otherVal = this.values( index ? 0 : 1 ); - - if ( ( this.options.values.length === 2 && this.options.range === true ) && - ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) - ) { - newVal = otherVal; - } - - if ( newVal !== this.values( index ) ) { - newValues = this.values(); - newValues[ index ] = newVal; - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal, - values: newValues - } ); - otherVal = this.values( index ? 0 : 1 ); - if ( allowed !== false ) { - this.values( index, newVal, true ); - } - } - } else { - if ( newVal !== this.value() ) { - // A slide can be canceled by returning false from the slide callback - allowed = this._trigger( "slide", event, { - handle: this.handles[ index ], - value: newVal - } ); - if ( allowed !== false ) { - this.value( newVal ); - } - } - } - }, - - _stop: function( event, index ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "stop", event, uiHash ); - }, - - _change: function( event, index ) { - if ( !this._keySliding && !this._mouseSliding ) { - var uiHash = { - handle: this.handles[ index ], - value: this.value() - }; - if ( this.options.values && this.options.values.length ) { - uiHash.value = this.values( index ); - uiHash.values = this.values(); - } - - this._trigger( "change", event, uiHash ); - } - }, - - value: function( newValue ) { - if ( arguments.length ) { - this.options.value = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, 0 ); - return; - } - - return this._value(); - }, - - values: function( index, newValue ) { - var vals, - newValues, - i; - - if ( arguments.length > 1 ) { - this.options.values[ index ] = this._trimAlignValue( newValue ); - this._refreshValue(); - this._change( null, index ); - return; - } - - if ( arguments.length ) { - if ( $.isArray( arguments[ 0 ] ) ) { - vals = this.options.values; - newValues = arguments[ 0 ]; - for ( i = 0; i < vals.length; i += 1 ) { - vals[ i ] = this._trimAlignValue( newValues[ i ] ); - this._change( null, i ); - } - this._refreshValue(); - } else { - if ( this.options.values && this.options.values.length ) { - return this._values( index ); - } else { - return this.value(); - } - } - } else { - return this._values(); - } - }, - - _setOption: function( key, value ) { - var i, - valsLength = 0; - - if ( $.isArray( this.options.values ) ) { - valsLength = this.options.values.length; - } - - $.Widget.prototype._setOption.apply( this, arguments ); - - switch ( key ) { - case "disabled": - if ( value ) { - 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 ( i = 0; i < valsLength; i += 1 ) { - this._change( null, i ); - } - this._animateOff = false; - break; - } - }, - - //internal value getter - // _value() returns value trimmed by min and max, aligned by step - _value: function() { - var val = this.options.value; - val = this._trimAlignValue( val ); - - return val; - }, - - //internal values getter - // _values() returns array of values trimmed by min and max, aligned by step - // _values( index ) returns single value trimmed by min and max, aligned by step - _values: function( index ) { - var val, - vals, - i; - - if ( arguments.length ) { - val = this.options.values[ index ]; - val = this._trimAlignValue( val ); - - return val; - } else { - // .slice() creates a copy of the array - // this copy gets trimmed by min and max and then returned - vals = this.options.values.slice(); - for ( i = 0; i < vals.length; i+= 1) { - vals[ i ] = this._trimAlignValue( vals[ i ] ); - } - - return vals; - } - }, - - // returns the step-aligned value that val is closest to, between (inclusive) min and max - _trimAlignValue: function( val ) { - if ( val <= this._valueMin() ) { - return this._valueMin(); - } - if ( val >= this._valueMax() ) { - return this._valueMax(); - } - var step = ( this.options.step > 0 ) ? this.options.step : 1, - valModStep = (val - this._valueMin()) % step, - alignValue = val - valModStep; - - if ( Math.abs(valModStep) * 2 >= step ) { - alignValue += ( valModStep > 0 ) ? step : ( -step ); - } - - // Since JavaScript has problems with large floats, round - // the final value to 5 digits after the decimal point (see #4124) - return parseFloat( alignValue.toFixed(5) ); - }, - - _valueMin: function() { - return this.options.min; - }, - - _valueMax: function() { - return this.options.max; - }, - - _refreshValue: function() { - var oRange = this.options.range, - o = this.options, - self = this, - animate = ( !this._animateOff ) ? o.animate : false, - valPercent, - _set = {}, - lastValPercent, - value, - valueMin, - valueMax; - - if ( this.options.values && this.options.values.length ) { - this.handles.each(function( i, j ) { - valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - if ( self.options.range === true ) { - if ( self.orientation === "horizontal" ) { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } else { - if ( i === 0 ) { - self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); - } - if ( i === 1 ) { - self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - lastValPercent = valPercent; - }); - } else { - value = this.value(); - valueMin = this._valueMin(); - valueMax = this._valueMax(); - valPercent = ( valueMax !== valueMin ) ? - ( value - valueMin ) / ( valueMax - valueMin ) * 100 : - 0; - _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; - this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); - - if ( oRange === "min" && this.orientation === "horizontal" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "horizontal" ) { - this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - if ( oRange === "min" && this.orientation === "vertical" ) { - this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); - } - if ( oRange === "max" && this.orientation === "vertical" ) { - this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); - } - } - } - -}); - -$.extend( $.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( $, undefined ) { - -var tabId = 0, - listId = 0; - -function getNextTabId() { - return ++tabId; -} - -function getNextListId() { - return ++listId; -} - -$.widget( "ui.tabs", { - options: { - add: null, - ajaxOptions: null, - cache: false, - cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } - collapsible: false, - disable: null, - disabled: [], - enable: null, - event: "click", - fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 } - idPrefix: "ui-tabs-", - load: null, - panelTemplate: "
        ", - remove: null, - select: null, - show: null, - spinner: "Loading…", - tabTemplate: "
      • #{label}
      • " - }, - - _create: function() { - this._tabify( true ); - }, - - _setOption: function( key, value ) { - if ( key == "selected" ) { - if (this.options.collapsible && value == this.options.selected ) { - return; - } - this.select( value ); - } else { - this.options[ key ] = value; - this._tabify(); - } - }, - - _tabId: function( a ) { - return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) || - this.options.idPrefix + getNextTabId(); - }, - - _sanitizeSelector: function( hash ) { - // we need this because an id may contain a ":" - return hash.replace( /:/g, "\\:" ); - }, - - _cookie: function() { - var cookie = this.cookie || - ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); - return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); - }, - - _ui: function( tab, panel ) { - return { - tab: tab, - panel: panel, - index: this.anchors.index( tab ) - }; - }, - - _cleanup: function() { - // restore all former loading tabs labels - this.lis.filter( ".ui-state-processing" ) - .removeClass( "ui-state-processing" ) - .find( "span:data(label.tabs)" ) - .each(function() { - var el = $( this ); - el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" ); - }); - }, - - _tabify: function( init ) { - var self = this, - o = this.options, - fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash - - this.list = this.element.find( "ol,ul" ).eq( 0 ); - this.lis = $( " > li:has(a[href])", this.list ); - this.anchors = this.lis.map(function() { - return $( "a", this )[ 0 ]; - }); - this.panels = $( [] ); - - this.anchors.each(function( i, a ) { - var href = $( a ).attr( "href" ); - // For dynamically created HTML that contains a hash as href IE < 8 expands - // such href to the full page url with hash and then misinterprets tab as ajax. - // Same consideration applies for an added tab with a fragment identifier - // since a[href=#fragment-identifier] does unexpectedly not match. - // Thus normalize href attribute... - var hrefBase = href.split( "#" )[ 0 ], - baseEl; - if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] || - ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) { - href = a.hash; - a.href = href; - } - - // inline tab - if ( fragmentId.test( href ) ) { - self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) ); - // remote tab - // prevent loading the page itself if href is just "#" - } else if ( href && href !== "#" ) { - // required for restore on destroy - $.data( a, "href.tabs", href ); - - // TODO until #3808 is fixed strip fragment identifier from url - // (IE fails to load from such url) - $.data( a, "load.tabs", href.replace( /#.*$/, "" ) ); - - var id = self._tabId( a ); - a.href = "#" + id; - var $panel = self.element.find( "#" + id ); - if ( !$panel.length ) { - $panel = $( o.panelTemplate ) - .attr( "id", id ) - .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) - .insertAfter( self.panels[ i - 1 ] || self.list ); - $panel.data( "destroy.tabs", true ); - } - self.panels = self.panels.add( $panel ); - // invalid tab href - } else { - o.disabled.push( i ); - } - }); - - // initialization from scratch - if ( init ) { - // attach necessary classes for styling - 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" ); - - // Selected tab - // use "selected" option or try to retrieve: - // 1. from fragment identifier in url - // 2. from cookie - // 3. from selected class attribute on
      • - if ( o.selected === undefined ) { - if ( location.hash ) { - this.anchors.each(function( i, a ) { - if ( a.hash == location.hash ) { - o.selected = i; - return false; - } - }); - } - if ( typeof o.selected !== "number" && o.cookie ) { - o.selected = parseInt( self._cookie(), 10 ); - } - if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) { - o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); - } - o.selected = o.selected || ( this.lis.length ? 0 : -1 ); - } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release - o.selected = -1; - } - - // sanity check - default to first tab... - o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 ) - ? o.selected - : 0; - - // Take disabling tabs via class attribute from HTML - // into account and update option properly. - // A selected tab cannot become disabled. - o.disabled = $.unique( o.disabled.concat( - $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) { - return self.lis.index( n ); - }) - ) ).sort(); - - if ( $.inArray( o.selected, o.disabled ) != -1 ) { - o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 ); - } - - // highlight selected tab - this.panels.addClass( "ui-tabs-hide" ); - this.lis.removeClass( "ui-tabs-selected ui-state-active" ); - // check for length avoids error when initializing empty list - if ( o.selected >= 0 && this.anchors.length ) { - self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" ); - this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" ); - - // seems to be expected behavior that the show callback is fired - self.element.queue( "tabs", function() { - self._trigger( "show", null, - self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) ); - }); - - this.load( o.selected ); - } - - // clean up to avoid memory leaks in certain versions of IE 6 - // TODO: namespace this event - $( window ).bind( "unload", function() { - self.lis.add( self.anchors ).unbind( ".tabs" ); - self.lis = self.anchors = self.panels = null; - }); - // update selected after add/remove - } else { - o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); - } - - // update collapsible - // TODO: use .toggleClass() - this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" ); - - // set or update cookie after init and add/remove respectively - if ( o.cookie ) { - this._cookie( o.selected, o.cookie ); - } - - // disable tabs - for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) { - $( li )[ $.inArray( i, o.disabled ) != -1 && - // TODO: use .toggleClass() - !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" ); - } - - // reset cache if switching from cached to not cached - if ( o.cache === false ) { - this.anchors.removeData( "cache.tabs" ); - } - - // remove all handlers before, tabify may run on existing tabs after add or option change - this.lis.add( this.anchors ).unbind( ".tabs" ); - - if ( o.event !== "mouseover" ) { - var addState = function( state, el ) { - if ( el.is( ":not(.ui-state-disabled)" ) ) { - el.addClass( "ui-state-" + state ); - } - }; - var removeState = function( state, el ) { - el.removeClass( "ui-state-" + state ); - }; - this.lis.bind( "mouseover.tabs" , function() { - addState( "hover", $( this ) ); - }); - this.lis.bind( "mouseout.tabs", function() { - removeState( "hover", $( this ) ); - }); - this.anchors.bind( "focus.tabs", function() { - addState( "focus", $( this ).closest( "li" ) ); - }); - this.anchors.bind( "blur.tabs", function() { - removeState( "focus", $( this ).closest( "li" ) ); - }); - } - - // set up animations - var hideFx, showFx; - if ( o.fx ) { - if ( $.isArray( o.fx ) ) { - hideFx = o.fx[ 0 ]; - showFx = o.fx[ 1 ]; - } else { - hideFx = showFx = o.fx; - } - } - - // Reset certain styles left over from animation - // and prevent IE's ClearType bug... - function resetStyle( $el, fx ) { - $el.css( "display", "" ); - if ( !$.support.opacity && fx.opacity ) { - $el[ 0 ].style.removeAttribute( "filter" ); - } - } - - // Show a tab... - var showTab = showFx - ? function( clicked, $show ) { - $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); - $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way - .animate( showFx, showFx.duration || "normal", function() { - resetStyle( $show, showFx ); - self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); - }); - } - : function( clicked, $show ) { - $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); - $show.removeClass( "ui-tabs-hide" ); - self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); - }; - - // Hide a tab, $show is optional... - var hideTab = hideFx - ? function( clicked, $hide ) { - $hide.animate( hideFx, hideFx.duration || "normal", function() { - self.lis.removeClass( "ui-tabs-selected ui-state-active" ); - $hide.addClass( "ui-tabs-hide" ); - resetStyle( $hide, hideFx ); - self.element.dequeue( "tabs" ); - }); - } - : function( clicked, $hide, $show ) { - self.lis.removeClass( "ui-tabs-selected ui-state-active" ); - $hide.addClass( "ui-tabs-hide" ); - self.element.dequeue( "tabs" ); - }; - - // attach tab event handler, unbind to avoid duplicates from former tabifying... - this.anchors.bind( o.event + ".tabs", function() { - var el = this, - $li = $(el).closest( "li" ), - $hide = self.panels.filter( ":not(.ui-tabs-hide)" ), - $show = self.element.find( self._sanitizeSelector( el.hash ) ); - - // If tab is already selected and not collapsible or tab disabled or - // or is already loading or click callback returns false stop here. - // Check if click handler returns false last so that it is not executed - // for a disabled or loading tab! - if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) || - $li.hasClass( "ui-state-disabled" ) || - $li.hasClass( "ui-state-processing" ) || - self.panels.filter( ":animated" ).length || - self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) { - this.blur(); - return false; - } - - o.selected = self.anchors.index( this ); - - self.abort(); - - // if tab may be closed - if ( o.collapsible ) { - if ( $li.hasClass( "ui-tabs-selected" ) ) { - o.selected = -1; - - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - self.element.queue( "tabs", function() { - hideTab( el, $hide ); - }).dequeue( "tabs" ); - - this.blur(); - return false; - } else if ( !$hide.length ) { - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - self.element.queue( "tabs", function() { - showTab( el, $show ); - }); - - // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171 - self.load( self.anchors.index( this ) ); - - this.blur(); - return false; - } - } - - if ( o.cookie ) { - self._cookie( o.selected, o.cookie ); - } - - // show new tab - if ( $show.length ) { - if ( $hide.length ) { - self.element.queue( "tabs", function() { - hideTab( el, $hide ); - }); - } - self.element.queue( "tabs", function() { - showTab( el, $show ); - }); - - self.load( self.anchors.index( this ) ); - } else { - throw "jQuery UI Tabs: Mismatching fragment identifier."; - } - - // Prevent IE from keeping other link focussed when using the back button - // and remove dotted border from clicked link. This is controlled via CSS - // in modern browsers; blur() removes focus from address bar in Firefox - // which can become a usability and annoying problem with tabs('rotate'). - if ( $.browser.msie ) { - this.blur(); - } - }); - - // disable click in any case - this.anchors.bind( "click.tabs", function(){ - return false; - }); - }, - - _getIndex: function( index ) { - // meta-function to give users option to provide a href string instead of a numerical index. - // also sanitizes numerical indexes to valid values. - if ( typeof index == "string" ) { - index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) ); - } - - return index; - }, - - destroy: function() { - var o = 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 href = $.data( this, "href.tabs" ); - if ( href ) { - this.href = href; - } - var $this = $( this ).unbind( ".tabs" ); - $.each( [ "href", "load", "cache" ], function( i, prefix ) { - $this.removeData( prefix + ".tabs" ); - }); - }); - - this.lis.unbind( ".tabs" ).add( this.panels ).each(function() { - if ( $.data( this, "destroy.tabs" ) ) { - $( this ).remove(); - } else { - $( 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" - ].join( " " ) ); - } - }); - - if ( o.cookie ) { - this._cookie( null, o.cookie ); - } - - return this; - }, - - add: function( url, label, index ) { - if ( index === undefined ) { - index = this.anchors.length; - } - - var self = this, - o = this.options, - $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ), - id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] ); - - $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true ); - - // try to find an existing element before creating a new one - var $panel = self.element.find( "#" + id ); - if ( !$panel.length ) { - $panel = $( o.panelTemplate ) - .attr( "id", id ) - .data( "destroy.tabs", true ); - } - $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" ); - - if ( index >= this.lis.length ) { - $li.appendTo( this.list ); - $panel.appendTo( this.list[ 0 ].parentNode ); - } else { - $li.insertBefore( this.lis[ index ] ); - $panel.insertBefore( this.panels[ index ] ); - } - - o.disabled = $.map( o.disabled, function( n, i ) { - return n >= index ? ++n : n; - }); - - this._tabify(); - - if ( this.anchors.length == 1 ) { - o.selected = 0; - $li.addClass( "ui-tabs-selected ui-state-active" ); - $panel.removeClass( "ui-tabs-hide" ); - this.element.queue( "tabs", function() { - self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) ); - }); - - this.load( 0 ); - } - - this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - return this; - }, - - remove: function( index ) { - index = this._getIndex( index ); - var o = this.options, - $li = this.lis.eq( index ).remove(), - $panel = this.panels.eq( index ).remove(); - - // If selected tab was removed focus tab to the right or - // in case the last tab was removed the tab to the left. - if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) { - this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) ); - } - - o.disabled = $.map( - $.grep( o.disabled, function(n, i) { - return n != index; - }), - function( n, i ) { - return n >= index ? --n : n; - }); - - this._tabify(); - - this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) ); - return this; - }, - - enable: function( index ) { - index = this._getIndex( index ); - var o = this.options; - if ( $.inArray( index, o.disabled ) == -1 ) { - return; - } - - this.lis.eq( index ).removeClass( "ui-state-disabled" ); - o.disabled = $.grep( o.disabled, function( n, i ) { - return n != index; - }); - - this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - return this; - }, - - disable: function( index ) { - index = this._getIndex( index ); - var self = this, o = this.options; - // cannot disable already selected tab - if ( index != o.selected ) { - this.lis.eq( index ).addClass( "ui-state-disabled" ); - - o.disabled.push( index ); - o.disabled.sort(); - - this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); - } - - return this; - }, - - select: function( index ) { - index = this._getIndex( index ); - if ( index == -1 ) { - if ( this.options.collapsible && this.options.selected != -1 ) { - index = this.options.selected; - } else { - return this; - } - } - this.anchors.eq( index ).trigger( this.options.event + ".tabs" ); - return this; - }, - - load: function( index ) { - index = this._getIndex( index ); - var self = this, - o = this.options, - a = this.anchors.eq( index )[ 0 ], - url = $.data( a, "load.tabs" ); - - this.abort(); - - // not remote or from cache - if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) { - this.element.dequeue( "tabs" ); - return; - } - - // load remote from here on - this.lis.eq( index ).addClass( "ui-state-processing" ); - - if ( o.spinner ) { - var span = $( "span", a ); - span.data( "label.tabs", span.html() ).html( o.spinner ); - } - - this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, { - url: url, - success: function( r, s ) { - self.element.find( self._sanitizeSelector( a.hash ) ).html( r ); - - // take care of tab labels - self._cleanup(); - - if ( o.cache ) { - $.data( a, "cache.tabs", true ); - } - - self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); - try { - o.ajaxOptions.success( r, s ); - } - catch ( e ) {} - }, - error: function( xhr, s, e ) { - // take care of tab labels - self._cleanup(); - - self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); - try { - // Passing index avoid a race condition when this method is - // called after the user has selected another tab. - // Pass the anchor that initiated this request allows - // loadError to manipulate the tab content panel via $(a.hash) - o.ajaxOptions.error( xhr, s, index, a ); - } - catch ( e ) {} - } - } ) ); - - // last, so that load event is fired before show... - self.element.dequeue( "tabs" ); - - return this; - }, - - abort: function() { - // stop possibly running animations - this.element.queue( [] ); - this.panels.stop( false, true ); - - // "tabs" queue must not contain more than two elements, - // which are the callbacks for the latest clicked tab... - this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) ); - - // terminate pending requests from other tabs - if ( this.xhr ) { - this.xhr.abort(); - delete this.xhr; - } - - // take care of tab labels - this._cleanup(); - return this; - }, - - url: function( index, url ) { - this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url ); - return this; - }, - - length: function() { - return this.anchors.length; - } -}); - -$.extend( $.ui.tabs, { - version: "1.8.16" -}); - -/* - * Tabs Extensions - */ - -/* - * Rotate - */ -$.extend( $.ui.tabs.prototype, { - rotation: null, - rotate: function( ms, continuing ) { - var self = this, - o = this.options; - - var rotate = self._rotate || ( self._rotate = function( e ) { - clearTimeout( self.rotation ); - self.rotation = setTimeout(function() { - var t = o.selected; - self.select( ++t < self.anchors.length ? t : 0 ); - }, ms ); - - if ( e ) { - e.stopPropagation(); - } - }); - - var stop = self._unrotate || ( self._unrotate = !continuing - ? function(e) { - if (e.clientX) { // in case of a true click - self.rotate(null); - } - } - : function( e ) { - t = o.selected; - rotate(); - }); - - // start rotation - if ( ms ) { - this.element.bind( "tabsshow", rotate ); - this.anchors.bind( o.event + ".tabs", stop ); - rotate(); - // stop rotation - } else { - clearTimeout( self.rotation ); - this.element.unbind( "tabsshow", rotate ); - this.anchors.unbind( o.event + ".tabs", stop ); - delete this._rotate; - delete this._unrotate; - } - - return this; - } -}); - -})( jQuery ); diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui.min.js b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui.min.js deleted file mode 100644 index 14c9064f7..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery-ui.min.js +++ /dev/null @@ -1,791 +0,0 @@ -/*! - * 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;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=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('
        ').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.leftg[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.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left=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=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);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
      • ').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
        ');/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(cb.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
        ');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("
        ")},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.righti||a.bottomb&&a.rightg&&a.bottom *",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=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+jg&&b+la[this.floating?"width":"height"]?j:g0?"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=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=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)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.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=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 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("").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("
          ").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").data("item.autocomplete",b).append(d("").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()").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("");e.secondary&&a.append("");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("
          ")).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("
          ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').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("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").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("
          ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
          ").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('').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()
          ").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").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"); -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&&c1){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=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:"
          ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
        • #{label}
        • "},_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=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'))}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('
          '))}},_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(''+c+"");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("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").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;gh){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('');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-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-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 -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&&nn;){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)?''+n+"":f?"":''+n+"";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)?''+s+"":f?"":''+s+"";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?'":"";e=e?'
          '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
          ":"";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;x1)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+='
          '+(/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)+'
          ';var z=j?'":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";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";var R=!j?"":'";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&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
          '+this._get(a,"weekHeader")+"
          '+this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+ -r.getDate()+"":''+r.getDate()+"")+"
          "+(l?""+(i[0]>0&&G==i[1]-1?'
          ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'': -"");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='
          ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";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+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
          ";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&&ba?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("
          ").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").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").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').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); -; \ No newline at end of file diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.blind.js b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.blind.js deleted file mode 100644 index d75b4f3cd..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.blind.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * jQuery UI Effects Blind 1.9pre - * - * 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( $, undefined ) { - -var rvertical = /up|down|vertical/, - rpositivemotion = /up|left|vertical|horizontal/; - -$.effects.effect.blind = function( o, done ) { - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - direction = o.direction || "up", - vertical = rvertical.test( direction ), - ref = vertical ? "height" : "width", - ref2 = vertical ? "top" : "left", - motion = rpositivemotion.test( direction ), - animation = {}, - show = mode === "show", - wrapper, distance, top; - - // if already wrapped, the wrapper's properties are my property. #6245 - if ( el.parent().is( ".ui-effects-wrapper" ) ) { - $.effects.save( el.parent(), props ); - } else { - $.effects.save( el, props ); - } - el.show(); - top = parseInt(el.css('top'), 10); - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - distance = vertical ? wrapper[ ref ]() + top : wrapper[ ref ](); - - animation[ ref ] = show ? distance : 0; - if ( !motion ) { - el - .css( vertical ? "bottom" : "right", 0 ) - .css( vertical ? "top" : "left", "" ) - .css({ position: "absolute" }); - animation[ ref2 ] = show ? 0 : distance; - } - - // start at 0 if we are showing - if ( show ) { - wrapper.css( ref, 0 ); - if ( ! motion ) { - wrapper.css( ref2, distance ); - } - } - - // Animate - wrapper.animate( animation, { - duration: o.duration, - easing: o.easing, - queue: false, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - -})(jQuery); diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js deleted file mode 100644 index 101c15d4e..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.blind.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * jQuery UI Effects Blind 1.9pre - * - * 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){var n=/up|down|vertical/,o=/up|left|vertical|horizontal/;b.effects.effect.blind=function(g,p){var a=b(this),i=["position","top","bottom","left","right","height","width"],l=b.effects.setMode(a,g.mode||"hide"),e=g.direction||"up",f=n.test(e),h=f?"height":"width",m=f?"top":"left";e=o.test(e);var j={},k=l==="show",c,d;a.parent().is(".ui-effects-wrapper")?b.effects.save(a.parent(),i):b.effects.save(a,i);a.show();d=parseInt(a.css("top"),10);c=b.effects.createWrapper(a).css({overflow:"hidden"}); -d=f?c[h]()+d:c[h]();j[h]=k?d:0;if(!e){a.css(f?"bottom":"right",0).css(f?"top":"left","").css({position:"absolute"});j[m]=k?0:d}if(k){c.css(h,0);e||c.css(m,d)}c.animate(j,{duration:g.duration,easing:g.easing,queue:false,complete:function(){l==="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);p()}})}})(jQuery); diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.core.js b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.core.js deleted file mode 100644 index ab9349a8d..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.core.js +++ /dev/null @@ -1,890 +0,0 @@ -/* - * jQuery UI Effects 1.9pre - * - * 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($, undefined) { - -var backCompat = $.uiBackCompat !== false; - -$.effects = { - effect: {} -}; - -/******************************************************************************/ -/****************************** COLOR ANIMATIONS ******************************/ -/******************************************************************************/ - -// override the animation for color styles -$.each(["backgroundColor", "borderBottomColor", "borderLeftColor", - "borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"], -function(i, attr) { - $.fx.step[attr] = function(fx) { - if (!fx.colorInit) { - fx.start = getColor(fx.elem, attr); - fx.end = getRGB(fx.end); - fx.colorInit = true; - } - - fx.elem.style[attr] = "rgb(" + - Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + "," + - Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + "," + - Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ")"; - }; -}); - -// Color Conversion functions from highlightFade -// By Blair Mitchelmore -// http://jquery.offput.ca/highlightFade/ - -// Parse strings looking for color tuples [255,255,255] -function getRGB(color) { - var result; - - // Check if we're already dealing with an array of colors - if ( color && color.constructor === Array && color.length === 3 ) - return color; - - // Look for rgb(num,num,num) - if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) - return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; - - // Look for rgb(num%,num%,num%) - if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) - return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; - - // Look for #a0b1c2 - if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) - return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; - - // Look for #fff - if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) - return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; - - // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 - if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) - return colors["transparent"]; - - // Otherwise, we're most likely dealing with a named color - return colors[$.trim(color).toLowerCase()]; -} - -function getColor(elem, attr) { - var color; - - do { - color = $.curCSS(elem, attr); - - // Keep going until we find an element that has color, or we hit the body - if ( color != "" && color !== "transparent" || $.nodeName(elem, "body") ) - break; - - attr = "backgroundColor"; - } while ( elem = elem.parentNode ); - - return getRGB(color); -}; - -// Some named colors to work with -// From Interface by Stefan Petre -// http://interface.eyecon.ro/ - -var colors = { - 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] -}; - - - -/******************************************************************************/ -/****************************** CLASS ANIMATIONS ******************************/ -/******************************************************************************/ - -var classAnimationActions = [ "add", "remove", "toggle" ], - shorthandStyles = { - border: 1, - borderBottom: 1, - borderColor: 1, - borderLeft: 1, - borderRight: 1, - borderTop: 1, - borderWidth: 1, - margin: 1, - padding: 1 - }, - // prefix used for storing data on .data() - dataSpace = "ec.storage."; - -$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { - $.fx.step[ prop ] = function( fx ) { - if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { - jQuery.style( fx.elem, prop, fx.end ); - fx.setAttr = true; - } - }; -}); - -function getElementStyles() { - var style = this.ownerDocument.defaultView - ? this.ownerDocument.defaultView.getComputedStyle( this, null ) - : this.currentStyle, - newStyle = {}, - key, - camelCase, - len; - - // webkit enumerates style porperties - if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { - len = style.length; - while ( len-- ) { - key = style[ len ]; - if ( typeof style[ key ] === "string" ) { - newStyle[ $.camelCase( key ) ] = style[ key ]; - } - } - } else { - for ( key in style ) { - if ( typeof style[ key ] === "string" ) { - newStyle[ key ] = style[ key ]; - } - } - } - - return newStyle; -} - - -function styleDifference( oldStyle, newStyle ) { - var diff = {}, - name, value; - - for ( name in newStyle ) { - value = newStyle[ name ]; - if ( oldStyle[ name ] != value ) { - if ( !shorthandStyles[ name ] ) { - if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { - diff[ name ] = value; - } - } - } - } - - return diff; -} - -$.effects.animateClass = function( value, duration, easing, callback ) { - var o = $.speed( duration, easing, callback ); - - return this.queue( function() { - var animated = $( this ), - baseClass = animated.attr( "class" ) || "", - finalClass, - allAnimations = o.children ? animated.find( "*" ).andSelf() : animated; - - // map the animated objects to store the original styles. - allAnimations = allAnimations.map(function() { - var el = $( this ); - return { - el: el, - originalStyleAttr: el.attr( "style" ) || " ", - start: getElementStyles.call( this ) - }; - }); - - // apply class change - $.each( classAnimationActions, function(i, action) { - if ( value[ action ] ) { - animated[ action + "Class" ]( value[ action ] ); - } - }); - finalClass = animated.attr( "class" ); - - // map all animated objects again - calculate new styles and diff - allAnimations = allAnimations.map(function() { - this.end = getElementStyles.call( this.el[ 0 ] ); - this.diff = styleDifference( this.start, this.end ); - return this; - }); - - // apply original class - animated.attr( "class", baseClass ); - - // map all animated objects again - this time collecting a promise - allAnimations = allAnimations.map(function() { - var styleInfo = this, - dfd = $.Deferred(); - - this.el.animate( this.diff, { - duration: o.duration, - easing: o.easing, - queue: false, - complete: function() { - dfd.resolve( styleInfo ); - } - }); - return dfd.promise(); - }); - - // once all animations have completed: - $.when.apply( $, allAnimations.get() ).done(function() { - - // set the final class - animated.attr( "class", finalClass ); - - // for each animated element - $.each( arguments, function() { - if ( typeof this.el.attr( "style" ) === "object" ) { - this.el.attr( "style" ).cssText = ""; - this.el.attr( "style" ).cssText = this.originalStyleAttr; - } else { - this.el.attr( "style", this.originalStyleAttr ); - } - }); - - // this is guarnteed to be there if you use jQuery.speed() - // it also handles dequeuing the next anim... - o.complete.call( animated[ 0 ] ); - }); - }); -}; - -$.fn.extend({ - _addClass: $.fn.addClass, - addClass: function( classNames, speed, easing, callback ) { - return speed ? - $.effects.animateClass.apply( this, [{ add: classNames }, speed, easing, callback ]) : - this._addClass(classNames); - }, - - _removeClass: $.fn.removeClass, - removeClass: function( classNames, speed, easing, callback ) { - return speed ? - $.effects.animateClass.apply( this, [{ remove: classNames }, speed, easing, callback ]) : - this._removeClass(classNames); - }, - - _toggleClass: $.fn.toggleClass, - toggleClass: function( classNames, force, speed, easing, callback ) { - if ( typeof force === "boolean" || force === undefined ) { - if ( !speed ) { - // without speed parameter; - return this._toggleClass( classNames, force ); - } else { - return $.effects.animateClass.apply( this, [( force ? { add:classNames } : { remove:classNames }), speed, easing, callback ]); - } - } else { - // without force parameter; - return $.effects.animateClass.apply( this, [{ toggle: classNames }, force, speed, easing ]); - } - }, - - switchClass: function( remove, add, speed, easing, callback) { - return $.effects.animateClass.apply( this, [{ - add: add, - remove: remove - }, speed, easing, callback ]); - } -}); - - - -/******************************************************************************/ -/*********************************** EFFECTS **********************************/ -/******************************************************************************/ - -$.extend( $.effects, { - version: "1.9pre", - - // Saves a set of properties in a data storage - save: function( element, set ) { - for( var i=0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); - } - } - }, - - // Restores a set of previously saved properties from a data storage - restore: function( element, set ) { - for( var i=0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - element.css( set[ i ], element.data( dataSpace + set[ i ] ) ); - } - } - }, - - setMode: function( el, mode ) { - if (mode === "toggle") { - mode = el.is( ":hidden" ) ? "show" : "hide"; - } - return mode; - }, - - // Translates a [top,left] array into a baseline value - // this should be a little more flexible in the future to handle a string & hash - getBaseline: function( origin, original ) { - var y, x; - switch ( origin[ 0 ] ) { - case "top": y = 0; break; - case "middle": y = 0.5; break; - case "bottom": y = 1; break; - default: y = origin[ 0 ] / original.height; - }; - switch ( origin[ 1 ] ) { - case "left": x = 0; break; - case "center": x = 0.5; break; - case "right": x = 1; break; - default: x = origin[ 1 ] / original.width; - }; - return { - x: x, - y: y - }; - }, - - // Wraps the element around a wrapper that copies position properties - createWrapper: function( element ) { - - // if the element is already wrapped, return it - if ( element.parent().is( ".ui-effects-wrapper" )) { - return element.parent(); - } - - // wrap the element - var props = { - width: element.outerWidth(true), - height: element.outerHeight(true), - "float": element.css( "float" ) - }, - wrapper = $( "
          " ) - .addClass( "ui-effects-wrapper" ) - .css({ - fontSize: "100%", - background: "transparent", - border: "none", - margin: 0, - padding: 0 - }), - // Store the size in case width/height are defined in % - Fixes #5245 - size = { - width: element.width(), - height: element.height() - }, - active = document.activeElement; - - element.wrap( wrapper ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - - wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element - - // transfer positioning properties to the wrapper - if ( element.css( "position" ) === "static" ) { - wrapper.css({ position: "relative" }); - element.css({ position: "relative" }); - } else { - $.extend( props, { - position: element.css( "position" ), - zIndex: element.css( "z-index" ) - }); - $.each([ "top", "left", "bottom", "right" ], function(i, pos) { - props[ pos ] = element.css( pos ); - if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { - props[ pos ] = "auto"; - } - }); - element.css({ - position: "relative", - top: 0, - left: 0, - right: "auto", - bottom: "auto" - }); - } - element.css(size); - - return wrapper.css( props ).show(); - }, - - removeWrapper: function( element ) { - var active = document.activeElement; - - if ( element.parent().is( ".ui-effects-wrapper" ) ) { - element.parent().replaceWith( element ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } - } - - - return element; - }, - - setTransition: function( element, list, factor, value ) { - value = value || {}; - $.each( list, function(i, x){ - var unit = element.cssUnit( x ); - if ( unit[ 0 ] > 0 ) value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; - }); - return value; - } -}); - -// return an effect options object for the given parameters: -function _normalizeArguments( effect, options, speed, callback ) { - - // short path for passing an effect options object: - if ( $.isPlainObject( effect ) ) { - return effect; - } - - // convert to an object - effect = { effect: effect }; - - // catch (effect) - if ( options === undefined ) { - options = {}; - } - - // catch (effect, callback) - if ( $.isFunction( options ) ) { - callback = options; - speed = null; - options = {}; - } - - // catch (effect, speed, ?) - if ( $.type( options ) === "number" || $.fx.speeds[ options ]) { - callback = speed; - speed = options; - options = {}; - } - - // catch (effect, options, callback) - if ( $.isFunction( speed ) ) { - callback = speed; - speed = null; - } - - // add options to effect - if ( options ) { - $.extend( effect, options ); - } - - speed = speed || options.duration; - effect.duration = $.fx.off ? 0 : typeof speed === "number" - ? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default; - - effect.complete = callback || options.complete; - - return effect; -} - -function standardSpeed( speed ) { - // valid standard speeds - if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { - return true; - } - - // invalid strings - treat as "normal" speed - if ( typeof speed === "string" && !$.effects.effect[ speed ] ) { - // TODO: remove in 2.0 (#7115) - if ( backCompat && $.effects[ speed ] ) { - return false; - } - return true; - } - - return false; -} - -$.fn.extend({ - effect: function( effect, options, speed, callback ) { - var args = _normalizeArguments.apply( this, arguments ), - mode = args.mode, - queue = args.queue, - effectMethod = $.effects.effect[ args.effect ], - - // DEPRECATED: remove in 2.0 (#7115) - oldEffectMethod = !effectMethod && backCompat && $.effects[ args.effect ]; - - if ( $.fx.off || !( effectMethod || oldEffectMethod ) ) { - // delegate to the original method (e.g., .show()) if possible - if ( mode ) { - return this[ mode ]( args.duration, args.complete ); - } else { - return this.each( function() { - if ( args.complete ) { - args.complete.call( this ); - } - }); - } - } - - function run( next ) { - var elem = $( this ), - complete = args.complete, - mode = args.mode; - - function done() { - if ( $.isFunction( complete ) ) { - complete.call( elem[0] ); - } - if ( $.isFunction( next ) ) { - next(); - } - } - - // if the element is hiddden and mode is hide, - // or element is visible and mode is show - if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { - done(); - } else { - effectMethod.call( elem[0], args, done ); - } - } - - // TODO: remove this check in 2.0, effectMethod will always be true - if ( effectMethod ) { - return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); - } else { - // DEPRECATED: remove in 2.0 (#7115) - return oldEffectMethod.call(this, { - options: args, - duration: args.duration, - callback: args.complete, - mode: args.mode - }); - } - }, - - _show: $.fn.show, - show: function( speed ) { - if ( standardSpeed( speed ) ) { - return this._show.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "show"; - return this.effect.call( this, args ); - } - }, - - _hide: $.fn.hide, - hide: function( speed ) { - if ( standardSpeed( speed ) ) { - return this._hide.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "hide"; - return this.effect.call( this, args ); - } - }, - - // jQuery core overloads toggle and creates _toggle - __toggle: $.fn.toggle, - toggle: function( speed ) { - if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { - return this.__toggle.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "toggle"; - return this.effect.call( this, args ); - } - }, - - // helper functions - cssUnit: function(key) { - var style = this.css( key ), - val = []; - - $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { - if ( style.indexOf( unit ) > 0 ) - val = [ parseFloat( style ), unit ]; - }); - return val; - } -}); - - - -/******************************************************************************/ -/*********************************** EASING ***********************************/ -/******************************************************************************/ - -/* - * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - * - * Uses the built in easing capabilities added In jQuery 1.1 - * to offer multiple easing options - * - * TERMS OF USE - jQuery Easing - * - * Open source under the BSD License. - * - * Copyright 2008 George McGinley Smith - * 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. - * -*/ - -// t: current time, b: begInnIng value, c: change In value, d: duration -$.easing.jswing = $.easing.swing; - -$.extend( $.easing, { - def: "easeOutQuad", - swing: function ( x, t, b, c, d ) { - return $.easing[ $.easing.def ]( x, t, b, c, d ); - }, - easeInQuad: function ( x, t, b, c, d ) { - return c * ( t /= d ) * t + b; - }, - easeOutQuad: function ( x, t, b, c, d ) { - return -c * ( t /= d ) * ( t - 2 ) + b; - }, - easeInOutQuad: function ( x, t, b, c, d ) { - if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t + b; - return -c / 2 * ( ( --t ) * ( t-2 ) - 1) + b; - }, - easeInCubic: function ( x, t, b, c, d ) { - return c * ( t /= d ) * t * t + b; - }, - easeOutCubic: function ( x, t, b, c, d ) { - return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b; - }, - easeInOutCubic: function ( x, t, b, c, d ) { - if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t + b; - return c / 2 * ( ( t -= 2 ) * t * t + 2) + b; - }, - easeInQuart: function ( x, t, b, c, d ) { - return c * ( t /= d ) * t * t * t + b; - }, - easeOutQuart: function ( x, t, b, c, d ) { - return -c * ( ( t = t / d - 1 ) * t * t * t - 1) + b; - }, - easeInOutQuart: function ( x, t, b, c, d ) { - if ( (t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t + b; - return -c / 2 * ( ( t -= 2 ) * t * t * t - 2) + b; - }, - easeInQuint: function ( x, t, b, c, d ) { - return c * ( t /= d ) * t * t * t * t + b; - }, - easeOutQuint: function ( x, t, b, c, d ) { - return c * ( ( t = t / d - 1 ) * t * t * t * t + 1) + b; - }, - easeInOutQuint: function ( x, t, b, c, d ) { - if ( ( t /= d / 2 ) < 1 ) return c / 2 * t * t * t * t * t + b; - return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2) + b; - }, - easeInSine: function ( x, t, b, c, d ) { - return -c * Math.cos( t / d * ( Math.PI / 2 ) ) + c + b; - }, - easeOutSine: function ( x, t, b, c, d ) { - return c * Math.sin( t / d * ( Math.PI /2 ) ) + b; - }, - easeInOutSine: function ( x, t, b, c, d ) { - return -c / 2 * ( Math.cos( Math.PI * t / d ) - 1 ) + b; - }, - easeInExpo: function ( x, t, b, c, d ) { - return ( t==0 ) ? b : c * Math.pow( 2, 10 * ( t / d - 1) ) + b; - }, - easeOutExpo: function ( x, t, b, c, d ) { - return ( t==d ) ? b + c : c * ( -Math.pow( 2, -10 * t / d) + 1) + b; - }, - easeInOutExpo: function ( x, t, b, c, d ) { - if ( t==0 ) return b; - if ( t==d ) return b + c; - if ( ( t /= d / 2) < 1) return c / 2 * Math.pow( 2, 10 * (t - 1) ) + b; - return c / 2 * ( -Math.pow( 2, -10 * --t ) + 2 ) + b; - }, - easeInCirc: function ( x, t, b, c, d ) { - return -c * ( Math.sqrt( 1 - ( t /= d ) * t ) - 1 ) + b; - }, - easeOutCirc: function ( x, t, b, c, d ) { - return c * Math.sqrt( 1 - ( t = t / d - 1 ) * t ) + b; - }, - easeInOutCirc: function ( x, t, b, c, d ) { - if ( ( t /= d / 2) < 1 ) return -c / 2 * ( Math.sqrt( 1 - t * t ) - 1 ) + b; - return c / 2 * ( Math.sqrt( 1 - ( t -= 2 ) * t ) + 1 ) + b; - }, - easeInElastic: function ( x, t, b, c, d ) { - var s = 1.70158, - p = d * 0.3, - a = c; - if ( t == 0 ) return b; - if ( ( t /= d ) == 1 ) return b+c; - if ( a < Math.abs( c ) ) { - a = c; - s = p / 4; - } else { - s = p / ( 2 * Math.PI ) * Math.asin( c / a ); - } - return - ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s) * ( 2 * Math.PI ) / p ) ) + b; - }, - easeOutElastic: function ( x, t, b, c, d ) { - var s = 1.70158, - p = d * 0.3, - a = c; - if ( t == 0 ) return b; - if ( ( t /= d ) == 1 ) return b+c; - if ( a < Math.abs( c ) ) { - a = c; - s = p / 4; - } else { - s = p / ( 2 * Math.PI ) * Math.asin( c / a ); - } - return a * Math.pow( 2, -10 * t ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) + c + b; - }, - easeInOutElastic: function ( x, t, b, c, d ) { - var s = 1.70158, - p = d * ( 0.3 * 1.5 ), - a = c; - if ( t == 0 ) return b; - if ( ( t /= d / 2 ) == 2 ) return b+c; - if ( a < Math.abs( c ) ) { - a = c; - s = p / 4; - } else { - s = p / ( 2 * Math.PI ) * Math.asin( c / a ); - } - if ( t < 1 ) return -.5 * ( a * Math.pow( 2, 10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) ) + b; - return a * Math.pow( 2, -10 * ( t -= 1 ) ) * Math.sin( ( t * d - s ) * ( 2 * Math.PI ) / p ) *.5 + c + b; - }, - easeInBack: function ( x, t, b, c, d, s ) { - if ( s == undefined ) s = 1.70158; - return c * ( t /= d ) * t * ( ( s+1 ) * t - s ) + b; - }, - easeOutBack: function ( x, t, b, c, d, s ) { - if ( s == undefined ) s = 1.70158; - return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s) + 1) + b; - }, - easeInOutBack: function ( x, t, b, c, d, s ) { - if ( s == undefined ) s = 1.70158; - if ( ( t /= d / 2 ) < 1 ) return c / 2 * ( t * t * ( ( ( s *= 1.525 ) + 1 ) * t - s ) ) + b; - return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= 1.525 ) + 1 ) * t + s) + 2) + b; - }, - easeInBounce: function ( x, t, b, c, d ) { - return c - $.easing.easeOutBounce( x, d - t, 0, c, d ) + b; - }, - easeOutBounce: function ( x, t, b, c, d ) { - if ( ( t /= d ) < ( 1 / 2.75 ) ) { - return c * ( 7.5625 * t * t ) + b; - } else if ( t < ( 2 / 2.75 ) ) { - return c * ( 7.5625 * ( t -= ( 1.5 / 2.75 ) ) * t + .75 ) + b; - } else if ( t < ( 2.5 / 2.75 ) ) { - return c * ( 7.5625 * ( t -= ( 2.25/ 2.75 ) ) * t + .9375 ) + b; - } else { - return c * ( 7.5625 * ( t -= ( 2.625 / 2.75 ) ) * t + .984375 ) + b; - } - }, - easeInOutBounce: function ( x, t, b, c, d ) { - if ( t < d / 2 ) return $.easing.easeInBounce( x, t * 2, 0, c, d ) * .5 + b; - return $.easing.easeOutBounce( x, t * 2 - d, 0, c, d ) * .5 + c * .5 + b; - } -}); - -/* - * - * 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. - * - */ - -})(jQuery); diff --git a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.core.min.js b/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.core.min.js deleted file mode 100644 index 9e92123a7..000000000 --- a/assets/javascripts/jquery/jquery.jqplot/examples/jquery-ui/js/jquery.effects.core.min.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * jQuery UI Effects 1.9pre - * - * 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,m){function r(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 s.transparent;return s[f.trim(c).toLowerCase()]}function t(){var c=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(d=c.length;d--;){b=c[d];if(typeof c[b]==="string")a[f.camelCase(b)]=c[b]}else for(b in c)if(typeof c[b]=== -"string")a[b]=c[b];return a}function o(c,a,b,d){if(f.isPlainObject(c))return c;c={effect:c};if(a===m)a={};if(f.isFunction(a)){d=a;b=null;a={}}if(f.type(a)==="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a&&f.extend(c,a);b=b||a.duration;c.duration=f.fx.off?0:typeof b==="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;c.complete=d||a.complete;return c}function q(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects.effect[c]){if(u&& -f.effects[c])return false;return true}return false}var u=f.uiBackCompat!==false;f.effects={effect:{}};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){var d;d=b.elem;var e=a,g;do{g=f.curCSS(d,e);if(g!=""&&g!=="transparent"||f.nodeName(d,"body"))break;e="backgroundColor"}while(d=d.parentNode);d=r(g);b.start=d;b.end=r(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 s={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]},w=["add","remove","toggle"],x={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(c,a){f.fx.step[a]=function(b){if(b.end!=="none"&&!b.setAttr||b.pos===1&&!b.setAttr){jQuery.style(b.elem,a,b.end);b.setAttr= -true}}});f.effects.animateClass=function(c,a,b,d){var e=f.speed(a,b,d);return this.queue(function(){var g=f(this),h=g.attr("class")||"",n,j=e.children?g.find("*").andSelf():g;j=j.map(function(){var k=f(this);return{el:k,originalStyleAttr:k.attr("style")||" ",start:t.call(this)}});f.each(w,function(k,i){if(c[i])g[i+"Class"](c[i])});n=g.attr("class");j=j.map(function(){this.end=t.call(this.el[0]);var k=this.start,i=this.end,v={},l,p;for(l in i){p=i[l];if(k[l]!=p)if(!x[l])if(f.fx.step[l]||!isNaN(parseFloat(p)))v[l]= -p}this.diff=v;return this});g.attr("class",h);j=j.map(function(){var k=this,i=f.Deferred();this.el.animate(this.diff,{duration:e.duration,easing:e.easing,queue:false,complete:function(){i.resolve(k)}});return i.promise()});f.when.apply(f,j.get()).done(function(){g.attr("class",n);f.each(arguments,function(){if(typeof this.el.attr("style")==="object"){this.el.attr("style").cssText="";this.el.attr("style").cssText=this.originalStyleAttr}else this.el.attr("style",this.originalStyleAttr)});e.complete.call(g[0])})})}; -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===m?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.9pre",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), -d={width:c.width(),height:c.height()},e=document.activeElement;c.wrap(b);if(c[0]===e||f.contains(c[0],e))f(e).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(g,h){a[h]=c.css(h);if(isNaN(parseInt(a[h],10)))a[h]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}c.css(d);return b.css(a).show()}, -removeWrapper:function(c){var a=document.activeElement;if(c.parent().is(".ui-effects-wrapper")){c.parent().replaceWith(c);if(c[0]===a||f.contains(c[0],a))f(a).focus()}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){var h=c.cssUnit(g);if(h[0]>0)d[g]=h[0]*b+h[1]});return d}});f.fn.extend({effect:function(){function c(h){function n(){f.isFunction(k)&&k.call(j[0]);f.isFunction(h)&&h()}var j=f(this),k=a.complete,i=a.mode;(j.is(":hidden")?i==="hide":i==="show")?n():e.call(j[0], -a,n)}var a=o.apply(this,arguments),b=a.mode,d=a.queue,e=f.effects.effect[a.effect],g=!e&&u&&f.effects[a.effect];if(f.fx.off||!(e||g))return b?this[b](a.duration,a.complete):this.each(function(){a.complete&&a.complete.call(this)});return e?d===false?this.each(c):this.queue(d||"fx",c):g.call(this,{options:a,duration:a.duration,callback:a.complete,mode:a.mode})},_show:f.fn.show,show:function(c){if(q(c))return this._show.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="show";return this.effect.call(this, -a)}},_hide:f.fn.hide,hide:function(c){if(q(c))return this._hide.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="hide";return this.effect.call(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(q(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=o.apply(this,arguments);a.mode="toggle";return this.effect.call(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=e*0.3,h=d;if(a==0)return b;if((a/=e)==1)return b+d;if(h - - -// Create a jquery plugin that prints the given element. -jQuery.fn.print = function(){ - // NOTE: We are trimming the jQuery collection down to the - // first element in the collection. - if (this.size() > 1){ - this.eq( 0 ).print(); - return; - } else if (!this.size()){ - return; - } - - var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target'); - var imgelem = chart.jqplotToImageElem(); - console.log(imgelem); - - // ASSERT: At this point, we know that the current jQuery - // collection (as defined by THIS), contains only one - // printable element. - - // Create a random name for the print frame. - var strFrameName = ("printer-" + (new Date()).getTime()); - - // Create an iFrame with the new name. - var jFrame = $( "