diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..ebe01992 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +_assets/css/vendor/* linguist-vendored +_assets/js/plugins/* linguist-vendored +_assets/js/vendor/* linguist-vendored +assets/fonts/* linguist-vendored +assets/js/vendor/* linguist-vendored \ No newline at end of file diff --git a/.gitignore b/.gitignore index b52456d7..21206165 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,10 @@ -_site/* -_theme_packages/* - -Thumbs.db +*.sublime-project +*.sublime-workspace .DS_Store - -!.gitkeep - -.rbenv-version -.rvmrc - -*~ +.jekyll-metadata +.sass-cache +_asset_bundler_cache +_site +codekit-config.json +node_modules +npm-debug.log* \ No newline at end of file diff --git a/404.html b/404.html deleted file mode 100644 index c1a0ad43..00000000 --- a/404.html +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: master -title: 404公益--帮助别人、帮助自己 ---- -
-

404公益页面,兔子请你伸出援助之手!

-
- -
\ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..7bd98594 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,571 @@ +## [3.4.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.8) + +### Enhancements + +- Improve type readability for larger viewports by bumping up base `font-size`. [#533](https://github.com/mmistakes/minimal-mistakes/issues/533) +- Update Portuguese localized UI text. [#541](https://github.com/mmistakes/minimal-mistakes/pull/541) +- Add `page.title` and via parameter to Twitter share link. [#538](https://github.com/mmistakes/minimal-mistakes/pull/538) + +### Bug Fixes + +- Fix Last.fm author profile URL. [#540](https://github.com/mmistakes/minimal-mistakes/pull/540) + +### Maintenance + +- Move Brazilian Portuguese localized text under `pt-BR` key. + +## [3.4.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.7) + +### Enhancements + +- Add `layout` based and user-defined class names to `` element for added CSS hooks. [#526](https://github.com/mmistakes/minimal-mistakes/pull/526) +- Add simplified Chinese localized UI text. [#532](https://github.com/mmistakes/minimal-mistakes/pull/532) + +### Bug Fixes + +- Remove duplicate include of `base_path` in category-list.html [#522](https://github.com/mmistakes/minimal-mistakes/pull/522) + +## [3.4.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.6) + +### Enhancements + +- Add Italian "comments" related localized UI text. [#514](https://github.com/mmistakes/minimal-mistakes/pull/514) + +### Bug Fixes + +- Disable `compress` HTML layout by default. To enable add `layout: compress` to `_layouts/default.html`. + +## [3.4.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.5) + +### Enhancements + +- Improve line numbered code block styling when using `{% highlight linenos %}` tag. [#513](https://github.com/mmistakes/minimal-mistakes/issues/513) +- Add English fallback to "Follow" button label. [#496](https://github.com/mmistakes/minimal-mistakes/pull/496) + +### Bug Fixes + +- Fix Firefox alignment issues with code blocks generated with the `{% highlight %}` tag. [#512](https://github.com/mmistakes/minimal-mistakes/issues/512) + +### Maintenance + +- Clarified comment for `author.stackoverflow` value used in author sidebar links. [#487](https://github.com/mmistakes/minimal-mistakes/pull/487) +- Add list of localized text strings. [#488](https://github.com/mmistakes/minimal-mistakes/pull/488) +- Add `{% highlight %}` code block examples to demo site. +- Add documentation for using custom sidebar navigation menus. [#476](https://github.com/mmistakes/minimal-mistakes/issues/476) + +## [3.4.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.4) + +### Enhancements + +- Add French "comments" related localized UI text. [#472](https://github.com/mmistakes/minimal-mistakes/pull/472) + +### Bug Fixes + +- Exclude `vendor` in Jekyll config file. +- Fix Liquid syntax error for offending parenthesis. [#479](https://github.com/mmistakes/minimal-mistakes/issues/479) + +### Maintenance + +- Update gems: `colorator` (1.1.0), `forwardable-extended` (2.6.0), `github-pages` (93), `jekyll` (= 3.2.1), `minima` (= 1.0.1). + +## [3.4.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.3) + +### Enhancements + +- Make ["honeypot" `input`](https://github.com/mmistakes/minimal-mistakes/commit/06a8249a69a37dddda7e2a5bfbe32056c1a9a607) in Staticman comment form less obvious to spam bots +- Add padding to `.highlight` code blocks to better [align `overflow` scrollbar](https://github.com/mmistakes/minimal-mistakes/commit/e4abec0a6f7f8cff72505ca0754615df294fd5b3) to the bottom. +- Add additional image options for Twitter card social sharing meta tags. [#466](https://github.com/mmistakes/minimal-mistakes/pull/466) +- Add structured data markup for Staticman comments. [#458](https://github.com/mmistakes/minimal-mistakes/issues/458) + +### Bug Fixes + +- Format `og:locale` tag with `_` instead of `-`. [#462](https://github.com/mmistakes/minimal-mistakes/issues/462) + +### Maintenance + +- Add note to docs about using `url: http://localhost:4000` when working locally. + +## [3.4.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.2) + +### Enhancements + +- Improve UX of static comment forms. [#448](https://github.com/mmistakes/minimal-mistakes/issues/448) + +## [3.4.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.1) + +### Enhancements + +- Add `staticman.filename` configuration with UNIX timestamp for sorting data files. example ~> `comment-1470943149`. + +### Bug Fixes + +- Don't add `` to author name if URL is blank. + +## [3.4.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.4.0) + +### Enhancements + +- Support static-based commenting via [Staticman](https://staticman.net/) for sites hosted with GitHub Pages. [#424](https://github.com/mmistakes/minimal-mistakes/issues/424) + +## [3.3.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.7) + +### Bug Fixes + +- Re-enabled Jekyll plugins in `_config.yml` in case they aren't autoloaded in `Gemfile`. [#417](https://github.com/mmistakes/minimal-mistakes/issues/417) + +### Enhancements + +- Fallback to `site.github.url` for use in `{{ base_path }}` when `site.url` is `nil`. +- Replace Sass and Autoprefixer `npm` build scripts with [Jekyll's built-in asset support](https://jekyllrb.com/docs/assets/). [#333](https://github.com/mmistakes/minimal-mistakes/issues/333) + +### Maintenance + +- Document `site.repository` and its role with [`github-metadata`](https://github.com/jekyll/github-metadata) gem. +- Add sample [archive page with content](https://mmistakes.github.io/minimal-mistakes/archive-layout-with-content/) for testing styles on demo site. + +## [3.3.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.6) + +### Bug Fixes + +- Fix blank `site.teaser` bug. [#412](https://github.com/mmistakes/minimal-mistakes/issues/412) + +## [3.3.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.5) + +### Enhancements + +- Add English default text `site.locale` strings. [#407](https://github.com/mmistakes/minimal-mistakes/issues/407) +- Add Portuguese localized UI text. [#411](https://github.com/mmistakes/minimal-mistakes/pull/411) +- Add Italian localized UI text. [#409](https://github.com/mmistakes/minimal-mistakes/pull/409) + +### Maintenance + +- Remove unused Google AdSense variables in `_config.yml`. [#404](https://github.com/mmistakes/minimal-mistakes/issues/404) +- Update `Gemfile` instructions for using `github-pages` vs. native `jekyll` gems. +- Disable `gems:` in `_config.yml` and enable plugins with Bundler instead. +- Add `repository` to `_config.yml` to suppress GitHub Pages error `Liquid Exception: No repo name found.` + +## [3.3.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.4) + +### Enhancements + +- Add support for configurable feed URL to use a service like FeedBurner instead of linking directly to `feed.xml` in `` and the site footer. [#378](https://github.com/mmistakes/minimal-mistakes/issues/378), [#379](https://github.com/mmistakes/minimal-mistakes/pull/379), [#406](https://github.com/mmistakes/minimal-mistakes/pull/406) +- Add Turkish localized UI text. [#403](https://github.com/mmistakes/minimal-mistakes/pull/403) + +### Maintenance + +- Update gems: `activesupport` (4.2.7), `ffi` (1.9.14), `github-pages` (88), `jekyll-redirect-from` (0.11.0), `jekyll-watch` (1.5.0). + +## [3.3.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.3) + +### Enhancements + +- Make footer stick to the bottom of the page. + +### Bug Fixes + +- Fix `gallery` size bug [#402](https://github.com/mmistakes/minimal-mistakes/issues/402) + +### Maintenance + +- Set default `lang` to `en`. + +## [3.3.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.2) + +### Bug Fixes + +- Fix JavaScript that triggers "sticky" sidebar to avoid layout issues on screen sizes < `1024px`. [#396](https://github.com/mmistakes/minimal-mistakes/issues/396) + +## [3.3.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.3.1) + +### Enhancements + +- Enable image popup on < 500px wide screens. [#385](https://github.com/mmistakes/minimal-mistakes/issues/385) +- Indicate the relationship between component URLs in a paginated series by applying `rel="prev"` and `rel="next"` to pages that use `site.paginator`. [#253](https://github.com/mmistakes/minimal-mistakes/issues/253) +- Improve link posts in archive listings. [#276](https://github.com/mmistakes/minimal-mistakes/issues/276) + +### Maintenance + +- Update gems: `github-pages` (86), `ffi` 1.9.13, `jekyll-mentions` 1.1.3, and `rouge` 1.11.1 +- Fix note about custom sidebar content appearing below author profile. [#388](https://github.com/mmistakes/minimal-mistakes/issues/388) + +## [3.2.13](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.13) + +### Enhancements + +- Add English default UI text for Canada, Great Britain, and Australia. [#377](https://github.com/mmistakes/minimal-mistakes/issues/377) +- Switch default locale from `en-US` to `en`. + +## [3.2.12](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.12) + +### Enhancements + +- Remove window width "magic number" from sticky sidebar check in `main.js` for improved flexibility. [#375](https://github.com/mmistakes/minimal-mistakes/pull/375) + +### Bug Fixes + +- Fix author override conditional where a missing `authors.yml` would show broken sidebar content. Defaults to `site.author`. [#376](https://github.com/mmistakes/minimal-mistakes/pull/376) + +## [3.2.11](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.11) + +### Bug Fixes + +- Fix disappearing author sidebar links [#372](https://github.com/mmistakes/minimal-mistakes/issues/372) + +### Maintenance + +- Update gems: `github-pages` (84), `jekyll-github-metadata` 2.0.2, and `kramdown` 1.11.1 +- Update vendor JavaScript: jQuery 1.12.4, Stickyfill.js 1.1.4 +- Update Font Awesome 4.6.3 + +## [3.2.10](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.10) + +### Maintenance + +- Add `CONTRIBUTING.md` + +## [3.2.9](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.9) + +### Enhancements + +- Add support for [header overlay images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#header-overlay) for Open Graph images. [#358](https://github.com/mmistakes/minimal-mistakes/pull/358) + +### Bug Fixes + +- Fix `Person` typo Schema.org type [#358](https://github.com/mmistakes/minimal-mistakes/pull/358) + +### Maintenance + +- Update `github-pages` gem and dependencies. +- Remove `minutes_read` to avoid awkward reading time wording [#356](https://github.com/mmistakes/minimal-mistakes/issues/356) + +## [3.2.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.8) + +### Bug Fixes + +- Remove `cursor: pointer` that appears on white-space surrounding author side list items and links. [#354](https://github.com/mmistakes/minimal-mistakes/pull/354) + +### Maintenance + +- Add contributing information to `README.md`. [#357](https://github.com/mmistakes/minimal-mistakes/issues/357) + +## [3.2.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.7) + +### Enhancements + +- Add French localized UI text. [#346](https://github.com/mmistakes/minimal-mistakes/pull/346) + +### Bug Fixes + +- Fix branch logic for Yandex and Alexa in `seo.html`. [#348](https://github.com/mmistakes/minimal-mistakes/pull/348) + +## [3.2.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.6) + +### Bug Fixes + +- Fix error `Liquid Exception: divided by 0 in _includes/archive-single.html, included in _layouts/single.html` caused by null `words_per_minute` in `_config.yml`. [#345](https://github.com/mmistakes/minimal-mistakes/pull/345) + +## [3.2.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.5) + +### Bug Fixes + +- Fix link color in hero overlay to be white. +- Remove underlines from archive item titles. + +## [3.2.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.4) + +### Enhancements + +- Improve text alignment of masthead, hero overlay, page footer to be flush left and remove awkward white-space gaps. [#342](https://github.com/mmistakes/minimal-mistakes/issues/342) +- Add Spanish localized UI text. [#338](https://github.com/mmistakes/minimal-mistakes/pull/338) + +### Bug Fixes + +- Fix alignment of icons in author sidebar [#341](https://github.com/mmistakes/minimal-mistakes/issues/341) + +### Maintenance + +- Add background color to page footer to set it apart from main content. [#342](https://github.com/mmistakes/minimal-mistakes/issues/342) +- Add terms and privacy policy to theme's demo site. [#343](https://github.com/mmistakes/minimal-mistakes/issues/343) +- Update screenshots found in theme documentation. + +## [3.2.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.3) + +### Enhancements + +- Add [Discourse](https://www.discourse.org/) as a commenting provider. [#335](https://github.com/mmistakes/minimal-mistakes/pull/335) + +## [3.2.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.2) + +### Enhancements + +- Add support for image captions in Magnific Popup overlays via the [`gallery`](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery) helper. [#334](https://github.com/mmistakes/minimal-mistakes/issues/334) + +## [3.2.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.1) + +### Bug Fixes + +- Remove need for "double tapping" masthead menu links on iOS devices. [#315](https://github.com/mmistakes/minimal-mistakes/issues/315) + +### Maintenance + +- Add `ISSUE_TEMPLATE.md` for improve issue submission process. + +## [3.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.2.0) + +### Bug Fixes + +- Fix missing category/tag links in post footer due to possible conflict with `site.tags` and `site.categories`. [#329](https://github.com/mmistakes/minimal-mistakes/issues/329#issuecomment-222375568) + +## [3.1.8](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.8) + +### Bug Fixes + +- Fix `Liquid Exception: undefined method 'gsub' for nil:NilClass in _layouts/single.html` error when `page.title` is null. `

` element is now conditional if `title: ` is not set for a `page` or collection item. [#312](https://github.com/mmistakes/minimal-mistakes/issues/312) + +### Maintenance + +- Remove duplicate `fa-twitter` and `fa-twitter-square` classes from `_utilities.scss`. [#302](https://github.com/mmistakes/minimal-mistakes/issues/302) + +- Document installing additional Jekyll gem dependencies when using `gem "jekyll"` instead of `gem "github-pages"` to avoid any errors on run. [#305](https://github.com/mmistakes/minimal-mistakes/issues/305) + +## [3.1.7](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.7) + +### Enhancements + +- Add translation key for "Recent Posts" used in home page `index.html`. [#316](https://github.com/mmistakes/minimal-mistakes/pull/316) + +### Maintenance + +- Small fix to avoid underlying the whitespace between icons and related text when hovering. [#303](https://github.com/mmistakes/minimal-mistakes/pull/303) + +## [3.1.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.6) + +### Maintenance + +- Update gem dependencies. Run `bundle` to update `Gemfile.lock`. + +## [3.1.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.5) + +### Maintenance + +- Fix `www` and `https` links in author profile include [#293](https://github.com/mmistakes/minimal-mistakes/pull/293) + +## [3.1.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.4) + +### Enhancements + +- Add overlay_filter param to hero headers [#298](https://github.com/mmistakes/minimal-mistakes/pull/298) + +## [3.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.3) + +### Enhancements + +- Improve `site.locale` documentation [#284](https://github.com/mmistakes/minimal-mistakes/issues/284) +- Remove ProTip note about protocol-less `site.url` as it is an anti-pattern [#288](https://github.com/mmistakes/minimal-mistakes/issues/288) + +### Bug Fixes + +- Fix `og_image` URL in seo.html [#277](https://github.com/mmistakes/minimal-mistakes/issues/277) +- Fix `author_profile` toggle when assigned in a `_layout` [#285](https://github.com/mmistakes/minimal-mistakes/issues/285) +- Fix typo in `build:all` npm script [#283](https://github.com/mmistakes/minimal-mistakes/pull/283) +- Fix URL typo documentation [#287](https://github.com/mmistakes/minimal-mistakes/issues/287) +- SEO author bug. If `twitter.username` is set and `author.twitter` is `nil` bad things happen. [#289](https://github.com/mmistakes/minimal-mistakes/issues/289) + +## [3.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.2) + +### Enhancements + +- Explain how to use `nav_list` helper in [documentation](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list). +- Reduce left/right padding on smaller screens to increase width of main content column. + +### Bug Fixes + +- Fix alignment issues with related posts [#273](https://github.com/mmistakes/minimal-mistakes/issues/273) and "Follow" button in author profile [#274](https://github.com/mmistakes/minimal-mistakes/issues/274). + +## [3.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.1) + +### Bug Fix + +- Fixed reading time bug when `words_per_minute` wasn't set in `_config.yml` [#271](https://github.com/mmistakes/minimal-mistakes/issues/271) + +## [3.1.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.1.0) + +### Enhancements + +- Updated [Font Awesome](https://fortawesome.github.io/Font-Awesome/whats-new/) to version 4.6.1 +- Added optional GitHub and Bitbucket links to footer if set on `site.author` in `_config.yml`. + +### Bug Fixes +- Fixed Bitbucket URL typo in author sidebar. + +## [3.0.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/3.0.3) + +### Enhancements + +- Rebuilt the entire theme: layouts, includes, stylesheets, scripts, you name it. +- Refreshed the look and feel while staying true to the original design of the theme (author sidebar/main content). +- Replaced grid system with [Susy](http://susy.oddbird.net/). +- Replaced Grunt tasks with `npm` scripts. +- Removed Google Fonts and replaced with system fonts to improve performance (they can be [added back](https://mmistakes.github.io/minimal-mistakes/docs/stylesheets/) if desired) +- Greatly improved [theme documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/). +- Increased the amount of sample posts, sample pages, and sample collections to throughly test the theme and edge-cases. +- Moved all sample content and assets out of `master` to keep it as clean as possible for forking. +- Added new layouts for `splash` pages, archives for [`jekyll-archives`](https://github.com/jekyll/jekyll-archives) if enabled, and [`compress.html`](https://github.com/penibelst/jekyll-compress-html) to improve performance. +- Added taxonomy links to posts (tags and categories). +- Added optional "reading time" meta data. +- Improved Liquid used for Twitter Cards and Open Graph data in ``. +- Improved `gallery` include helper and added `feature_row` for use with splash page layout. +- Added Keybase.io, author web URI, and Bitbucket optional links to sidebar. +- Add `feed.xml` link to footer. +- Added a [UI text data file](https://mmistakes.github.io/minimal-mistakes/docs/ui-text/) to easily change all text found in the theme. +- Added LinkedIn to optional social share buttons. +- Added Facebook, Google+, and custom commenting options in addition to Disqus. +- Added optional breadcrumb links. + +## [2.2.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.2.1) + +## [2.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.2.0) + +### Enhancements + +- Add support for Jekyll 3.0 +- Minor updates to syntax highlighting CSS and theme documentation + +## [2.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.3) + +### Enhancements + +- Cleaner print styles that remove the top navigation, social sharing buttons, and other elements not needed when printed. + +## [2.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.2) + +### Enhancements + +- Add optional CodePen icon/url to author side bar [#156](https://github.com/mmistakes/minimal-mistakes/pull/156) +- Documented Stackoverflow username explanation in `_config.yml` [#157](https://github.com/mmistakes/minimal-mistakes/pull/157) +- Simplified Liquid in `post-index.html` to better handle year listings [#166](https://github.com/mmistakes/minimal-mistakes/pull/166) + +### Bug Fixes + +- Cleanup Facebook related Open Graph meta tags [#149](https://github.com/mmistakes/minimal-mistakes/issues/149) +- Corrected minor typos [#158](https://github.com/mmistakes/minimal-mistakes/pull/158) [#175](https://github.com/mmistakes/minimal-mistakes/issues/175) + +## [2.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.1) + +### Enhancements + +- Add optional XING profile link to author sidebar +- Include open graph meta tags for feature image (if assigned) [#149](https://github.com/mmistakes/minimal-mistakes/issues/149) +- Create an include for feed footer + +### Bug Fixes + +- Remove http protocol from Google search form on sample 404 page +- Only show related posts if there are one or more available +- Fix alignment of email address link in author sidebar + +## [2.1.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/2.1.0) + +### Enhancements + +- Add optional social sharing buttons ([#42](https://github.com/mmistakes/minimal-mistakes/issues/42)) + +![social sharing buttons](https://cloud.githubusercontent.com/assets/1376749/5860522/d9f28a96-a22f-11e4-9b83-940a3a9a766a.png) + +- Add Soundcloud, YouTube ([#95](https://github.com/mmistakes/minimal-mistakes/pull/95)), Flickr ([#119](https://github.com/mmistakes/minimal-mistakes/pull/119)), and Weibo ([#116](https://github.com/mmistakes/minimal-mistakes/pull/116)) icons for use in author sidebar. +- Fix typos in posts and documentation and remove references to Less +- Include note about Octopress gem being optional +- Post author override support extended to the Atom feed ([#71](https://github.com/mmistakes/minimal-mistakes/pull/71)) +- Only include email address in feed if specified in `_config.yml` or author `_data` +- Wrap all page content in `#main` to harmonize article and post index styles ([#86](https://github.com/mmistakes/minimal-mistakes/issues/86)) +- Include new sample feature images for posts and pages +- Table of contents improvements: fix collapse toggle, indent nested elements, show on small screens, and create an `_include` for reusing in posts and pages. +- Include note about running Jekyll with `bundle exec` when using Bundler +- Fix home page path in top navigation +- Remove Google Authorship ([#120](https://github.com/mmistakes/minimal-mistakes/issues/120)) +- Remove duplicate author content that displayed in `div.article-author-bottom` +- Removed unused `_sass/print.scss` styles +- Improve comments in `.scss` files + +## [2.0.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/v2.0) + +## [1.3.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.3.3) + +### Enhancements + +- Added new icons and profile links for Stackoverflow, Dribbble, Pinterest, Foursquare, and Steam to the author bio sidebar. +- Cleaned up the Kramdown auto table of contents styling to be more readable +- Removed page width specific .less stylesheets and created mixins for easier updating +- Removed Modernizr since it wasn't being used +- Added pages to sitemap.xml +- Added category: to rake new_post task +- Minor typographic changes + +### Bug Fixes + +- Corrected various broken links in README and Theme Setup. + +## [1.3.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.3.1) + +### Enhancements + +- Cleaned up table of contents styling +- Reworked top navigation to be a better experience on small screens. Nav items now display vertically when the menu button is tapped, revealing links with larger touch targets. + +![menu animation](https://camo.githubusercontent.com/3fbd8c1326485f4b1ab32c0005c0fca7660b5d31/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313337363734392f323136343037352f31653366303663322d393465372d313165332d383961612d6436623636376562306564662e676966) + +## [1.2.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.2.0) + +### Bug Fixes + +- Table weren't filling the entire width of the content container. They now scale at 100%. Thanks [@dhruvbhatia](https://github.com/dhruvbhatia) + +### Enhancements + +- Decreased spacing between Markdown footnotes +- Removed dark background on footer +- Removed UPPERCASE styling on post titles in the index listing + +## [1.1.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.4) + +### Bug Fixes + +- Fix top navigation bug issue ([#10](https://github.com/mmistakes/minimal-mistakes/issues/10)) for real this time. Remember to clear your floats kids. + +## [1.1.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.3) + +### Bug Fixes + +- Fix top navigation links that weren't click able on small viewports (Issue [#10](https://github.com/mmistakes/minimal-mistakes/issues/10)). +- Remove line wrap from top navigation links that may span multiple lines. + +## [1.1.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.2) + +### Enhancements + +- Added Grunt build script for compiling Less/JavaScript and optimizing image assets. +- Added support for large image summary Twitter card. +- Stylesheet adjustments + +## [1.1.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/1.1.1) + +### Bug Fixes + +- Removed [Typeplate](http://typeplate.com/) styles. Was [causing issues with newer versions of Less](https://github.com/typeplate/typeplate.github.io/issues/108) and is no longer maintained. + +### Enhancements + +- Added [image attribution](http://mmistakes.github.io/minimal-mistakes/theme-setup/#feature-images) for post and page feature images. +- Added [404 page](http://mmistakes.github.io/minimal-mistakes/404.html). +- Cleaned up various Less variables to better align with naming conventions used in other MM Jekyll themes. +- Removed Chrome Frame references. +- Added global CSS3 transitions to text and block elements. +- Improved typography in a few places. + +## [1.0.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/v1.0.2) + +### Enhancements + +- Google Analytics, Google Authorship, webmaster verifies, and Twitter card meta are now optional. + +## [1.0.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/v1.0.1) \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..28040505 --- /dev/null +++ b/Gemfile @@ -0,0 +1,25 @@ +source "https://rubygems.org" + +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! + +gem "github-pages", group: :jekyll_plugins + +# If you want to use Jekyll native, uncomment the line below. +# To upgrade, run `bundle update`. + +# gem "jekyll" + +gem "wdm", "~> 0.1.0" if Gem.win_platform? + +# If you have any plugins, put them here! +group :jekyll_plugins do + # gem "jekyll-archives" + gem "jekyll-feed" +end diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..b3c5ae57 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,147 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.7) + i18n (~> 0.7) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.4.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.10.0) + colorator (1.1.0) + ethon (0.9.0) + ffi (>= 1.3.0) + execjs (2.7.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) + ffi (1.9.14) + ffi (1.9.14-x64-mingw32) + forwardable-extended (2.6.0) + gemoji (2.1.0) + github-pages (96) + activesupport (= 4.2.7) + github-pages-health-check (= 1.2.0) + jekyll (= 3.2.1) + jekyll-coffeescript (= 1.0.1) + jekyll-feed (= 0.5.1) + jekyll-gist (= 1.4.0) + jekyll-github-metadata (= 2.0.2) + jekyll-mentions (= 1.2.0) + jekyll-paginate (= 1.1.0) + jekyll-redirect-from (= 0.11.0) + jekyll-sass-converter (= 1.3.0) + jekyll-seo-tag (= 2.0.0) + jekyll-sitemap (= 0.10.0) + jemoji (= 0.7.0) + kramdown (= 1.11.1) + liquid (= 3.0.6) + listen (= 3.0.6) + mercenary (~> 0.3) + minima (= 1.2.0) + rouge (= 1.11.1) + terminal-table (~> 1.4) + github-pages-health-check (1.2.0) + addressable (~> 2.3) + net-dns (~> 0.8) + octokit (~> 4.0) + public_suffix (~> 1.4) + typhoeus (~> 0.7) + html-pipeline (2.4.2) + activesupport (>= 2) + nokogiri (>= 1.4) + i18n (0.7.0) + jekyll (3.2.1) + colorator (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.1) + kramdown (~> 1.3) + liquid (~> 3.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (~> 1.7) + safe_yaml (~> 1.0) + jekyll-coffeescript (1.0.1) + coffee-script (~> 2.2) + jekyll-feed (0.5.1) + jekyll-gist (1.4.0) + octokit (~> 4.2) + jekyll-github-metadata (2.0.2) + jekyll (~> 3.1) + octokit (~> 4.0) + jekyll-mentions (1.2.0) + activesupport (~> 4.0) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-redirect-from (0.11.0) + jekyll (>= 2.0) + jekyll-sass-converter (1.3.0) + sass (~> 3.2) + jekyll-seo-tag (2.0.0) + jekyll (~> 3.1) + jekyll-sitemap (0.10.0) + jekyll-watch (1.5.0) + listen (~> 3.0, < 3.1) + jemoji (0.7.0) + activesupport (~> 4.0) + gemoji (~> 2.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0) + json (1.8.3) + kramdown (1.11.1) + liquid (3.0.6) + listen (3.0.6) + rb-fsevent (>= 0.9.3) + rb-inotify (>= 0.9.7) + mercenary (0.3.6) + mini_portile2 (2.1.0) + minima (1.2.0) + minitest (5.9.0) + multipart-post (2.0.0) + net-dns (0.8.0) + nokogiri (1.6.8) + mini_portile2 (~> 2.1.0) + pkg-config (~> 1.1.7) + nokogiri (1.6.8-x64-mingw32) + mini_portile2 (~> 2.1.0) + pkg-config (~> 1.1.7) + octokit (4.3.0) + sawyer (~> 0.7.0, >= 0.5.3) + pathutil (0.14.0) + forwardable-extended (~> 2.6) + pkg-config (1.1.7) + public_suffix (1.5.3) + rb-fsevent (0.9.7) + rb-inotify (0.9.7) + ffi (>= 0.5.0) + rouge (1.11.1) + safe_yaml (1.0.4) + sass (3.4.22) + sawyer (0.7.0) + addressable (>= 2.3.5, < 2.5) + faraday (~> 0.8, < 0.10) + terminal-table (1.7.2) + unicode-display_width (~> 1.1.1) + thread_safe (0.3.5) + typhoeus (0.8.0) + ethon (>= 0.8.0) + tzinfo (1.2.2) + thread_safe (~> 0.1) + unicode-display_width (1.1.1) + wdm (0.1.1) + +PLATFORMS + ruby + x64-mingw32 + +DEPENDENCIES + github-pages + jekyll-feed + wdm (~> 0.1.0) + +BUNDLED WITH + 1.12.5 diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..23a6cd1d --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Michael Rose + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index b1349795..4bcf7096 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,3 @@ -咖啡兔 -======= +# 咖啡兔的博客 -博客源码:[http://www.kafeitu.me](http://www.kafeitu.me) - -使用Github + Jekyll + Markdown。 - -博客主题: -==== - -最初版本来源于:[https://github.com/mbleigh/mbleigh.github.com](https://github.com/mbleigh/mbleigh.github.com) - -后经蒋鑫修改:[https://github.com/gotgit/gotgit.github.com](https://github.com/gotgit/gotgit.github.com) - - -插件配置: -=== - -Jekyll生成的静态网页所以不能使用类似于Wordpress的插件提供功能,所以使用Javascript方式实现。 - -* **评论**:[多说](http://duoshuo.com) 符合国内使用特性,支持主流社区帐号;后续版本会支持Google、Twitter等。 - -* **分享**:[Jiathis](http://www.jiathis.com/) 国内比较成熟的分享工具。 - -基于本主题搭建博客: -=== - -Fork本项目,然后删除_posts目录的文件,修改项目中的配置信息为自己的并push到github即可。 +Theme: https://mmistakes.github.io/minimal-mistakes \ No newline at end of file diff --git a/Rakefile b/Rakefile deleted file mode 100644 index e4293efe..00000000 --- a/Rakefile +++ /dev/null @@ -1,49 +0,0 @@ -require 'rubygems' -require 'rake' -require 'open-uri' -require 'multi_json' -require 'awesome_print' -require 'hashie' -require 'date' - -class Post < Hashie::Mash - def date - d=Date._strptime(self['date'],"%m月 %d, %Y %H:%M") - Time.utc(d[:year], d[:mon], d[:mday], d[:hour], d[:min], - d[:sec], d[:sec_fraction], d[:zone]) - end - - def filename - "_posts/#{date.strftime('%Y-%m-%d')}-#{slug}.html" - end - - def slug - self["permalink"].split('/').last - end - - def body - self.content - end -end - -task :pull do - posts = MultiJson.decode(open("http://blog.ossxp.com/feed/?feed=json").read).map{|p| Post.new(p) } - - posts.each do |p| - if File.exists?(p.filename) - puts "- Blog post at #{p.filename} exists, ignoring" - else - puts "- Creating blog post at #{p.filename}" - File.open(p.filename,'w') do |f| - f.write <<-YAML ---- -layout: post -title: "#{p.title}" ---- - -#{p.body} -YAML - end - end - end -end diff --git a/_config.dev.yml b/_config.dev.yml new file mode 100644 index 00000000..45df3dfe --- /dev/null +++ b/_config.dev.yml @@ -0,0 +1,13 @@ +# Develop override settings + +url: http://localhost:4000 + +analytics: + provider: false + +comments: + disqus: + shortname : "mmistakes-dev" + +sass: + style: expanded \ No newline at end of file diff --git a/_config.yml b/_config.yml index 3f9d6787..630df048 100644 --- a/_config.yml +++ b/_config.yml @@ -1,2 +1,306 @@ -markdown: rdiscount -highlighter: true +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your entire site, values +# which you are expected to set up once and rarely need to edit after that. +# For technical reasons, this file is *NOT* reloaded automatically when you use +# `jekyll serve`. If you change this file, please restart the server process. + +# Site Settings +locale : "zh-CN" +title : "咖啡兔的博客" +title_separator : "-" +name : &name "咖啡兔" +description : &description "A flexible Jekyll theme for your blog or site with a minimalist aesthetic." +url : "http://127.0.0.1:4000" # the base hostname & protocol for your site e.g. "https://mmistakes.github.io" +baseurl : "" # the subpath of your site, e.g. "/blog" +repository : "henryyan/kft-activiti-demo" +teaser : # filename of teaser fallback teaser image placed in /images/, .e.g. "500x300.png" +# breadcrumbs : false # true, false (default) +words_per_minute : 200 +comments: + provider : "staticman" # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom" + disqus: + shortname : + discourse: + server : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org + facebook: + # https://developers.facebook.com/docs/plugins/comments + appid : + num_posts : # 5 (default) + colorscheme : # "light" (default), "dark" +staticman: + allowedFields : ['name', 'email', 'url', 'message'] + branch : "gh-pages" # "master", "gh-pages" + commitMessage : "New comment." + filename : comment-{@timestamp} + format : "yml" + moderation : true + path : "_data/comments/{options.slug}" + requiredFields : ['name', 'email', 'message'] + transforms: + email : "md5" + generatedFields: + date: + type : "date" + options: + format : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds" +atom_feed: + path : # blank (default) uses feed.xml + +# SEO Related +google_site_verification : "UQj93ERU9zgECodaaXgVpkjrFn9UrDMEzVamacSoQ8Y" +bing_site_verification : +alexa_site_verification : +yandex_site_verification : + +# Social Sharing +twitter: + username : &twitter "kafeituzi" +facebook: + username : &facebook "michaelrose" + app_id : + publisher : +og_image : "site-logo.png" # Open Graph/Twitter default site image +# For specifying social profiles +# - https://developers.google.com/structured-data/customize/social-profiles +social: + type : # Person or Organization (defaults to Person) + name : # If the user or organization name differs from the site's name + links: # An array of links to social media profiles + - "https://twitter.com/kafeituzi" + +# Analytics +analytics: + provider : "google-universal" # false (default), "google", "google-universal", "custom" + google: + tracking_id : "UA-2011187-3" + + +# Site Author +author: + name : *name + avatar : "michael-rose.jpg" + bio : "技术沉淀" + location : "HangZhou Alibaba" + email : + uri : "https://www.kafeitu.me" + bitbucket : + codepen : + dribbble : + flickr : + #facebook : *facebook + foursquare : + github : "henryyan" + google_plus : + keybase : + #instagram : "mmistakes" + lastfm : + linkedin : + pinterest : + soundcloud : + stackoverflow : # http://stackoverflow.com/users/123456/username + steam : + tumblr : + twitter : *twitter + vine : + weibo : + xing : + youtube : + + +# Reading Files +include: + - .htaccess + - _pages +exclude: + - "*.sublime-project" + - "*.sublime-workspace" + - vendor + - .asset-cache + - .bundle + - .jekyll-assets-cache + - .sass-cache + - assets/js/plugins + - assets/js/_main.js + - assets/js/vendor + - Capfile + - CHANGELOG + - config + - Gemfile + - Gruntfile.js + - gulpfile.js + - LICENSE + - log + - node_modules + - package.json + - Rakefile + - README + - tmp +keep_files: + - .git + - .svn +encoding: "utf-8" +markdown_ext: "markdown,mkdown,mkdn,mkd,md" + + +# Conversion +markdown: kramdown +highlighter: rouge +lsi: false +excerpt_separator: "\n\n" +incremental: false + + +# Markdown Processing +kramdown: + input: GFM + hard_wrap: false + auto_ids: true + footnote_nr: 1 + entity_output: as_char + toc_levels: 1..6 + smart_quotes: lsquo,rsquo,ldquo,rdquo + enable_coderay: false + + +# Collections +collections: + docs: + output: true + permalink: /:collection/:path/ + recipes: + output: true + permalink: /:collection/:path/ + pets: + output: true + permalink: /:collection/:path/ + portfolio: + output: true + permalink: /:collection/:path/ + + +# Defaults +defaults: + # _posts + - scope: + path: "" + type: posts + values: + layout: single + author_profile: true + read_time: true + comments: true + share: true + related: true + # _pages + - scope: + path: "" + type: pages + values: + layout: single + author_profile: true + # _docs + - scope: + path: "" + type: docs + values: + layout: single + read_time: false + author_profile: false + share: false + comments: false + sidebar: + nav: "docs" + # _recipes + - scope: + path: "" + type: recipes + values: + layout: single + author_profile: true + share: true + comments: true + # _pets + - scope: + path: "" + type: pets + values: + layout: single + author_profile: true + share: true + comment: true + # _portfolio + - scope: + path: "" + type: portfolio + values: + layout: single + author_profile: false + share: true + + +# Sass/SCSS +sass: + sass_dir: _sass + style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style + + +# Outputting +permalink: /:categories/:year/:month/:day/:title.html +# paginate: 5 # amount of posts to show +# paginate_path: /page:num/ +timezone: Asia/Shanghai # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones + + +# Plugins +gems: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jemoji + +# mimic GitHub Pages with --safe +whitelist: + - jekyll-paginate + - jekyll-sitemap + - jekyll-gist + - jekyll-feed + - jemoji + + +# Archives +# Type +# - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default) +# - Jekyll Archives plugin archive pages ~> type: jekyll-archives +# Path (examples) +# - Archive page should exist at path when using Liquid method or you can +# expect broken links (especially with breadcrumbs enabled) +# - /tags/my-awesome-tag/index.html ~> path: /tags/ +# - path: /categories/ +# - path: / +category_archive: + type: liquid + path: /categories/ +tag_archive: + type: liquid + path: /tags/ +# https://github.com/jekyll/jekyll-archives +# jekyll-archives: +# enabled: +# - categories +# - tags +# layouts: +# category: archive-taxonomy +# tag: archive-taxonomy +# permalinks: +# category: /categories/:name/ +# tag: /tags/:name/ + + +# HTML Compression +# - http://jch.penibelst.de/ +compress_html: + clippings: all + ignore: + envs: development diff --git a/_data/authors.yml b/_data/authors.yml new file mode 100644 index 00000000..0ea8a64a --- /dev/null +++ b/_data/authors.yml @@ -0,0 +1,18 @@ +# Authors + +Billy Rick: + name : "Billy Rick" + uri : "http://thewhip.com" + email : "billy@rick.com" + bio : "What do you want, jewels? I am a very extravagant man." + avatar : "bio-photo-2.jpg" + twitter : "extravagantman" + google_plus : "BillyRick" + +Cornelius Fiddlebone: + name : "Cornelius Fiddlebone" + email : "cornelius@thewhip.com" + bio : "I ordered what?" + avatar : "bio-photo.jpg" + twitter : "rhymeswithsackit" + google_plus : "CorneliusFiddlebone" \ No newline at end of file diff --git a/_data/comments/chocolate-chip-cookies/comment-1473870213530.yml b/_data/comments/chocolate-chip-cookies/comment-1473870213530.yml new file mode 100644 index 00000000..7eeb3fc0 --- /dev/null +++ b/_data/comments/chocolate-chip-cookies/comment-1473870213530.yml @@ -0,0 +1,6 @@ +message: Cooooookies! Yum! (Thanks for this awesome them.. and... recipe..) +name: Markus +email: f6f9be6ae6e174661ea7c87a520ffef8 +url: 'http://www.markusgiesen.com' +hidden: '' +date: '2016-09-14T16:23:32.840Z' diff --git a/_data/comments/layout-comments/comment-1470944006665.yml b/_data/comments/layout-comments/comment-1470944006665.yml new file mode 100644 index 00000000..fd4e1a79 --- /dev/null +++ b/_data/comments/layout-comments/comment-1470944006665.yml @@ -0,0 +1,6 @@ +message: "![Bill Murray](http://www.fillmurray.com/400/300)\r\n\r\n“It's hard to be an artist. It's hard to be anything. It's hard to be.”" +name: Bill Murray +email: b0caa2a71f5066b3d90711c224578c21 +url: '' +hidden: '' +date: '2016-08-11T19:33:25.928Z' diff --git a/_data/comments/layout-comments/comment-1470944162041.yml b/_data/comments/layout-comments/comment-1470944162041.yml new file mode 100644 index 00000000..fb9b55e3 --- /dev/null +++ b/_data/comments/layout-comments/comment-1470944162041.yml @@ -0,0 +1,6 @@ +message: "> “I never had seen Seinfeld, and they said, ‘Oh, it’s the last episode.’ And I said, ‘Oh, I’ll watch Seinfeld.’ And it was terrible.”\r\n>\r\n> *— From a 2014 interview with Howard Stern*" +name: Anonymous +email: 8c7e898f1b570760f834ecc03edf6b35 +url: '' +hidden: '' +date: '2016-08-11T19:36:01.033Z' diff --git a/_data/comments/layout-comments/comment-1472308473018.yml b/_data/comments/layout-comments/comment-1472308473018.yml new file mode 100644 index 00000000..52f7d6e6 --- /dev/null +++ b/_data/comments/layout-comments/comment-1472308473018.yml @@ -0,0 +1,6 @@ +message: test +name: test +email: c028c75814332d38e088e43a252b7092 +url: '' +hidden: '' +date: '2016-08-27T14:34:32.281Z' diff --git a/_data/comments/layout-header-image-text-readability/comment-1474306861206.yml b/_data/comments/layout-header-image-text-readability/comment-1474306861206.yml new file mode 100644 index 00000000..0191bbb7 --- /dev/null +++ b/_data/comments/layout-header-image-text-readability/comment-1474306861206.yml @@ -0,0 +1,6 @@ +message: Test message +name: Artur +email: 1cbebf1e64617de54d7858ffc6d96935 +url: '' +hidden: '' +date: '2016-09-19T17:41:00.416Z' diff --git a/_data/comments/layout-header-image-text-readability/comment-1477487160398.yml b/_data/comments/layout-header-image-text-readability/comment-1477487160398.yml new file mode 100644 index 00000000..6e186d4d --- /dev/null +++ b/_data/comments/layout-header-image-text-readability/comment-1477487160398.yml @@ -0,0 +1,6 @@ +message: How does comments feature work? +name: Vaibhav +email: 0dbb98b5a3576e50b33808f3577447b2 +url: 'http://vaibhavkaushal.com' +hidden: '' +date: '2016-10-26T13:05:59.708Z' diff --git a/_data/comments/layout-header-image-text-readability/comment-1477488813575.yml b/_data/comments/layout-header-image-text-readability/comment-1477488813575.yml new file mode 100644 index 00000000..07695a67 --- /dev/null +++ b/_data/comments/layout-header-image-text-readability/comment-1477488813575.yml @@ -0,0 +1,12 @@ +message: >- + @Vaibhav - Comments on the demo site are powered by + [Staticman](https://staticman.net/) that generates `_data` files for each. You + can read the theme's docs on [how to set it + up](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#static-based-comments-via-staticman) + and check out a more detailed post on my site explaining [how it all + works](https://mademistakes.com/articles/jekyll-static-comments/). +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-10-26T13:33:32.881Z' diff --git a/_data/comments/markup-more-images/comment-1472040323579.yml b/_data/comments/markup-more-images/comment-1472040323579.yml new file mode 100644 index 00000000..72c3c4b0 --- /dev/null +++ b/_data/comments/markup-more-images/comment-1472040323579.yml @@ -0,0 +1,6 @@ +message: test +name: test +email: 01540d5a1cdb4d03edb23805df684762 +url: '' +hidden: '' +date: '2016-08-24T12:05:22.844Z' diff --git a/_data/comments/markup-more-images/comment-1472146638519.yml b/_data/comments/markup-more-images/comment-1472146638519.yml new file mode 100644 index 00000000..9ddc5fa1 --- /dev/null +++ b/_data/comments/markup-more-images/comment-1472146638519.yml @@ -0,0 +1,6 @@ +message: test +name: ppmeng +email: b9c981f67166172c8804b5f9066a404a +url: '' +hidden: '' +date: '2016-08-25T17:37:17.780Z' diff --git a/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml b/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml new file mode 100644 index 00000000..bc7a53fc --- /dev/null +++ b/_data/comments/markup-syntax-highlighting/comment-1470969665387.yml @@ -0,0 +1,6 @@ +message: "Here's a test comment with a Markdown code block:\r\n\r\n```scss\r\nh1, h2, h3, h4, h5, h6 {\r\n margin: 2em 0 0.5em;\r\n line-height: 1.2;\r\n font-family: $header-font-family;\r\n font-weight: bold;\r\n}\r\n```" +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-12T02:41:04.706Z' diff --git a/_data/comments/post-future-date/comment-1472064560364.yml b/_data/comments/post-future-date/comment-1472064560364.yml new file mode 100644 index 00000000..0b7464ca --- /dev/null +++ b/_data/comments/post-future-date/comment-1472064560364.yml @@ -0,0 +1,6 @@ +message: mm +name: mm +email: 9d0057d30e7a5e44f6378ea2c9c11f5d +url: '' +hidden: '' +date: '2016-08-24T18:49:19.649Z' diff --git a/_data/comments/post-future-date/comment-1472786137736.yml b/_data/comments/post-future-date/comment-1472786137736.yml new file mode 100644 index 00000000..ac4bafb8 --- /dev/null +++ b/_data/comments/post-future-date/comment-1472786137736.yml @@ -0,0 +1,6 @@ +message: This is a tst +name: GnCavalry +email: 5669e6e45ccab46a7384a8c8ab88edd2 +url: '' +hidden: '' +date: '2016-09-02T03:15:37.068Z' diff --git a/_data/comments/post-future-date/comment-1476970895811.yml b/_data/comments/post-future-date/comment-1476970895811.yml new file mode 100644 index 00000000..fbbdbec4 --- /dev/null +++ b/_data/comments/post-future-date/comment-1476970895811.yml @@ -0,0 +1,6 @@ +message: this is a test +name: meee +email: 232a9dcb3a6c5207768a6ee567a7bfac +url: '' +hidden: '' +date: '2016-10-20T13:41:35.070Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942205700.yml b/_data/comments/welcome-to-jekyll/comment-1470942205700.yml new file mode 100644 index 00000000..cde7395b --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942205700.yml @@ -0,0 +1,6 @@ +message: "This is a test comment with some **Markdown** sprinkled about for *testing purposes*.\r\n\r\n### Subheading in a comment? Madness!\r\n\r\nNam et risus nec ipsum efficitur facilisis. Aenean tincidunt dapibus odio, eget rutrum urna lacinia non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas." +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-11T19:03:24.929Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942247755.yml b/_data/comments/welcome-to-jekyll/comment-1470942247755.yml new file mode 100644 index 00000000..8bc479ed --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942247755.yml @@ -0,0 +1,6 @@ +message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"' +name: Jackalope +email: cba827e665ae179e1d1ae007a6c3c1ab +url: '' +hidden: '' +date: '2016-08-11T19:04:06.958Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942265819.yml b/_data/comments/welcome-to-jekyll/comment-1470942265819.yml new file mode 100644 index 00000000..58c506a9 --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942265819.yml @@ -0,0 +1,6 @@ +message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"' +name: Jackalope Duplicate +email: cba827e665ae179e1d1ae007a6c3c1ab +url: '' +hidden: '' +date: '2016-08-11T19:04:25.085Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1470942493518.yml b/_data/comments/welcome-to-jekyll/comment-1470942493518.yml new file mode 100644 index 00000000..99d5210e --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1470942493518.yml @@ -0,0 +1,6 @@ +message: "Images can be added to a comment using Markdown like this\r\n\r\n```markdown\r\n![Bill Murray](http://www.fillmurray.com/600/400)\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)" +name: Michael Rose +email: 1ce71bc10b86565464b612093d89707e +url: 'https://mademistakes.com' +hidden: '' +date: '2016-08-11T19:08:12.789Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1471823346931.yml b/_data/comments/welcome-to-jekyll/comment-1471823346931.yml new file mode 100644 index 00000000..c4960f40 --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1471823346931.yml @@ -0,0 +1,6 @@ +message: 'Wow, this is awesome' +name: kkangshawn +email: db92190b2ee6118786fd1f25dceb448c +url: '' +hidden: '' +date: '2016-08-21T23:49:06.270Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1471834988411.yml b/_data/comments/welcome-to-jekyll/comment-1471834988411.yml new file mode 100644 index 00000000..02d476f9 --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1471834988411.yml @@ -0,0 +1,6 @@ +message: Test +name: Test +email: b642b4217b34b1e8d3bd915fc65c4452 +url: '' +hidden: '' +date: '2016-08-22T03:03:07.694Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1472786599470.yml b/_data/comments/welcome-to-jekyll/comment-1472786599470.yml new file mode 100644 index 00000000..bb3541d5 --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1472786599470.yml @@ -0,0 +1,6 @@ +message: This is a test +name: TestName +email: 97dfebf4098c0f5c16bca61e2b76c373 +url: '' +hidden: '' +date: '2016-09-02T03:23:18.756Z' diff --git a/_data/comments/welcome-to-jekyll/comment-1474328950155.yml b/_data/comments/welcome-to-jekyll/comment-1474328950155.yml new file mode 100644 index 00000000..a3e8393f --- /dev/null +++ b/_data/comments/welcome-to-jekyll/comment-1474328950155.yml @@ -0,0 +1,6 @@ +message: just testing as well +name: js +email: f349d4bc6fa472971f68bcccc04337f9 +url: '' +hidden: '' +date: '2016-09-19T23:49:09.452Z' diff --git a/_data/navigation.yml b/_data/navigation.yml new file mode 100644 index 00000000..6d554417 --- /dev/null +++ b/_data/navigation.yml @@ -0,0 +1,22 @@ +# main links links +main: + - title: "Blog" + url: /blog.html + + - title: "《Activiti实战》" + url: /activiti-in-action.html + + - title: "Activiti文章" + url: /activiti.html + + - title: "Categories" + url: /categories/ + + - title: "Tags" + url: /tags/ + + - title: "Github" + url: https://github.com/henryyan + + - title: "About" + url: /about.html \ No newline at end of file diff --git a/_data/ui-text.yml b/_data/ui-text.yml new file mode 100644 index 00000000..21c31532 --- /dev/null +++ b/_data/ui-text.yml @@ -0,0 +1,355 @@ +# User interface text and labels + +# English (default) +# ----------------- +en: &DEFAULT_EN + page : "Page" + pagination_previous : "Previous" + pagination_next : "Next" + breadcrumb_home_label : "Home" + breadcrumb_separator : "/" + toc_label : "On This Page" + ext_link_label : "Direct Link" + less_than : "less than" + minute_read : "minute read" + share_on_label : "Share on" + meta_label : + tags_label : "Tags:" + categories_label : "Categories:" + date_label : "Updated:" + comments_label : "Leave a Comment" + comments_title : "Comments" + more_label : "Learn More" + related_label : "You May Also Enjoy" + follow_label : "Follow:" + feed_label : "Feed" + powered_by : "Powered by" + website_label : "Website" + email_label : "Email" + recent_posts : "Recent Posts" + undefined_wpm : "Undefined parameter words_per_minute at _config.yml" + comment_form_info : "Your email address will not be published. Required fields are marked" + comment_form_comment_label : "Comment" + comment_form_md_info : "Markdown is supported." + comment_form_name_label : "Name" + comment_form_email_label : "Email address" + comment_form_website_label : "Website (optional)" + comment_btn_submit : "Submit Comment" + comment_btn_submitted : "Submitted" + comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved." + comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." + loading_label : "Loading..." +en-US: + <<: *DEFAULT_EN +en-CA: + <<: *DEFAULT_EN +en-GB: + <<: *DEFAULT_EN +en-AU: + <<: *DEFAULT_EN + +# Spanish +# -------------- +es: &DEFAULT_ES + page : "Página" + pagination_previous : "Anterior" + pagination_next : "Siguiente" + breadcrumb_home_label : "Inicio" + breadcrumb_separator : "/" + toc_label : "Contenidos" + ext_link_label : "Enlace" + less_than : "menos de" + minute_read : "minuto de lectura" + share_on_label : "Compartir" + meta_label : + tags_label : "Etiquetas:" + categories_label : "Categorías:" + date_label : "Actualizado:" + comments_label : "Comentar" + comments_title : + more_label : "Ver más" + related_label : "Podrías ver también" + follow_label : "Seguir:" + feed_label : "Feed" + powered_by : "Powered by" + website_label : "Sitio web" + email_label : "Email" + recent_posts : "Entradas recientes" + undefined_wpm : "Parametro words_per_minute (Palabras por minuto) no definido en _config.yml" + comment_form_info : + comment_form_comment_label : + comment_form_md_info : + comment_form_name_label : + comment_form_email_label : + comment_form_website_label : + comment_btn_submit : + comment_btn_submitted : + comment_success_msg : + comment_error_msg : + loading_label : +es-ES: + <<: *DEFAULT_ES +es-CO: + <<: *DEFAULT_ES + +# French +# ----------------- +fr: &DEFAULT_FR + page : "Page" + pagination_previous : "Précédent" + pagination_next : "Suivant" + breadcrumb_home_label : "Accueil" + breadcrumb_separator : "/" + toc_label : "Sur cette page" + ext_link_label : "Lien direct" + less_than : "plus petit que" + minute_read : "minute de lecture" + share_on_label : "Partager sur" + meta_label : + tags_label : "Tags :" + categories_label : "Catégories :" + date_label : "Mis à jour :" + comments_label : "Laisser un commentaire" + comments_title : + more_label : "Lire plus" + related_label : "Vous pourriez aimer" + follow_label : "Suivez moi" + feed_label : "Flux" + powered_by : "Propulsé par" + website_label : "Site" + email_label : "Email" + recent_posts : "Posts récents" + undefined_wpm : "Le paramètre words_per_minute n'est pas défini dans _config.yml" + comments_title : "Commentaires" + comment_form_info : "Votre adresse email ne sera pas visible. Les champs obligatoires sont marqués" + comment_form_comment_label : "Commentaire" + comment_form_md_info : "Markdown est supporté." + comment_form_name_label : "Nom" + comment_form_email_label : "Adresse mail" + comment_form_website_label : "Site web (optionnel)" + comment_btn_submit : "Envoyer" + comment_btn_submitted : "Envoyé" + comment_success_msg : "Merci pour votre comentaire, il sera visible sur le site une fois approuvé." + comment_error_msg : "Désolé, une erreur est survenue lors de la soumission. Vérifiez que les champs obligatoires ont été remplis et réessayez." + loading_label : "Chargement..." +fr-FR: + <<: *DEFAULT_FR +fr-BE: + <<: *DEFAULT_FR +fr-CH: + <<: *DEFAULT_FR + +# Turkish +# ----------------- +tr: &DEFAULT_TR + page : "Sayfa" + pagination_previous : "Önceki" + pagination_next : "Sonraki" + breadcrumb_home_label : "Ana Sayfa" + breadcrumb_separator : "/" + toc_label : "İçindekiler" + ext_link_label : "Doğrudan Bağlantı" + less_than : "Şu süreden az: " + minute_read : "dakika tahmini okuma süresi" + share_on_label : "Paylaş" + meta_label : + tags_label : "Etiketler:" + categories_label : "Kategoriler:" + date_label : "Güncelleme tarihi:" + comments_label : "Yorum yapın" + comments_title : "Yorumlar" + more_label : "Daha fazlasını öğrenin" + related_label : "Bunlar ilginizi çekebilir:" + follow_label : "Takip et:" + feed_label : "RSS" + powered_by : "Emeği geçenler: " + website_label : "Web sayfası" + email_label : "E-posta" + recent_posts : "Son yazılar" + undefined_wpm : "_config.yml dosyasında tanımlanmamış words_per_minute parametresi" + comment_form_info : "Email adresiniz gösterilmeyecektir. Zorunlu alanlar işaretlenmiştir" + comment_form_comment_label : "Yorumunuz" + comment_form_md_info : "Markdown desteklenmektedir." + comment_form_name_label : "Adınız" + comment_form_email_label : "Email adresiniz" + comment_form_website_label : "Websiteniz (opsiyonel)" + comment_btn_submit : "Yorum Yap" + comment_btn_submitted : "Gönderildi" + comment_success_msg : "Yorumunuz için teşekkürler! Yorumunuz onaylandıktan sonra sitede gösterilecektir." + comment_error_msg : "Maalesef bir hata oluştu. Lütfen zorunlu olan tüm alanları doldurduğunuzdan emin olun ve sonrasında tekrar deneyin." + loading_label : "Yükleniyor..." +tr-TR: + <<: *DEFAULT_TR + +# Portuguese +# ----------------- +pt: &DEFAULT_PT + page : "Página" + pagination_previous : "Anterior" + pagination_next : "Seguinte" + breadcrumb_home_label : "Início" + breadcrumb_separator : "/" + toc_label : "Nesta Página" + ext_link_label : "Link Direto" + less_than : "menos de" + minute_read : "minutos de leitura" + share_on_label : "Partilhar no" + meta_label : + tags_label : "Etiquetas:" + categories_label : "Categorias:" + date_label : "Atualizado:" + comments_label : "Deixe um Comentário" + comments_title : "Comentários" + more_label : "Saber mais" + related_label : "Também pode gostar de" + follow_label : "Siga:" + feed_label : "Feed" + powered_by : "Feito com" + website_label : "Site" + email_label : "Email" + recent_posts : "Artigos Recentes" + undefined_wpm : "Parâmetro words_per_minute não definido em _config.yml" + comment_form_info : "O seu endereço email não será publicado. Os campos obrigatórios estão assinalados" + comment_form_comment_label : "Comentário" + comment_form_md_info : "Markdown é suportado." + comment_form_name_label : "Nome" + comment_form_email_label : "Endereço Email" + comment_form_website_label : "Site (opcional)" + comment_btn_submit : "Sumbeter Comentário" + comment_btn_submitted : "Submetido" + comment_success_msg : "Obrigado pelo seu comentário! Será visível no site logo que aprovado." + comment_error_msg : "Lamento, ocorreu um erro na sua submissão. Por favor verifique se todos os campos obrigatórios estão corretamente preenchidos e tente novamente." + loading_label : "A carregar..." +# Brazilian Portuguese +pt-BR: + page : "Página" + pagination_previous : "Anterior" + pagination_next : "Próxima" + breadcrumb_home_label : "Home" + breadcrumb_separator : "/" + toc_label : "Nesta página" + ext_link_label : "Link direto" + less_than : "meno que" + minute_read : "minutos de leitura" + share_on_label : "Compartilhe em" + meta_label : + tags_label : "Tags:" + categories_label : "Categorias:" + date_label : "Atualizado em:" + comments_label : "Deixe um comentário" + comments_title : + more_label : "Aprenda Mais" + related_label : "Você Talvez Goste Também" + follow_label : "Acompanhe em" + feed_label : "Feed" + powered_by : "Feito com" + website_label : "Site" + email_label : "Email" + recent_posts : "Postagens recentes" + undefined_wpm : "Parâmetro indefinido em word_per_minute no _config.yml" + comment_form_info : + comment_form_comment_label : + comment_form_md_info : + comment_form_name_label : + comment_form_email_label : + comment_form_website_label : + comment_btn_submit : + comment_btn_submitted : + comment_success_msg : + comment_error_msg : + loading_label : +pt-PT: + <<: *DEFAULT_PT + +# Italian +# ----------------- +it: &DEFAULT_IT + page : "Pagina" + pagination_previous : "Precedente" + pagination_next : "Prossima" + breadcrumb_home_label : "Home" + breadcrumb_separator : "/" + toc_label : "Indice della pagina" + ext_link_label : "Link" + less_than : "meno di" + minute_read : "minuto/i di lettura" + share_on_label : "Condividi" + meta_label : + tags_label : "Tags:" + categories_label : "Categorie:" + date_label : "Aggiornato:" + comments_label : "Scrivi un commento" + comments_title : + more_label : "Scopri di più" + related_label : "Potrebbe Piacerti Anche" + follow_label : "Segui:" + feed_label : "Feed" + powered_by : "Powered by" + website_label : "Website" + email_label : "Email" + recent_posts : "Articoli Recenti" + undefined_wpm : "Parametro words_per_minute non definito in _config.yml" + comment_form_info : "Il tuo indirizzo email non sarà pubblicato. Sono segnati i campi obbligatori" + comment_form_comment_label : "Commenta" + comment_form_md_info : "Il linguaggio Markdown è supportato" + comment_form_name_label : "Nome" + comment_form_email_label : "Indirizzo email" + comment_form_website_label : "Sito Web (opzionale)" + comment_btn_submit : "Invia commento" + comment_btn_submitted : "Inviato" + comment_success_msg : "Grazie per il tuo commento! Verrà visualizzato nel sito una volta che sarà approvato." + comment_error_msg : "C'è stato un errore con il tuo invio. Assicurati che tutti i campi richiesti siano stati completati e riprova." + loading_label : "Caricamento..." +it-IT: + <<: *DEFAULT_IT + +# Chinese (zh-CN Chinese - China) +# ----------------- +zh: &DEFAULT_ZH + page : "页面" + pagination_previous : "向前" + pagination_next : "向后" + breadcrumb_home_label : "首页" + breadcrumb_separator : "/" + toc_label : "在本页上" + ext_link_label : "直接链接" + less_than : "少于" + minute_read : "分钟 阅读" + share_on_label : "分享" + meta_label : + tags_label : "标签:" + categories_label : "分类:" + date_label : "最新的:" + comments_label : "留下评论" + comments_title : "评论" + more_label : "了解更多" + related_label : "猜您还喜欢" + follow_label : "关注:" + feed_label : "Feed" + powered_by : "Powered by" + website_label : "网站" + email_label : "Email" + recent_posts : "最新文章" + undefined_wpm : "Undefined parameter words_per_minute at _config.yml" + comment_form_info : "Your email address will not be published. Required fields are marked" + comment_form_comment_label : "Comment" + comment_form_md_info : "Markdown is supported." + comment_form_name_label : "Name" + comment_form_email_label : "Email address" + comment_form_website_label : "Website (optional)" + comment_btn_submit : "Submit Comment" + comment_btn_submitted : "Submitted" + comment_success_msg : "Thanks for your comment! It will show on the site once it has been approved." + comment_error_msg : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." + loading_label : "Loading..." + zh-CN: + <<: *DEFAULT_ZH + zh-HK: + <<: *DEFAULT_ZH + zh-SG: + <<: *DEFAULT_ZH + zh-TW: + <<: *DEFAULT_ZH + +# Another locale +# -------------- diff --git a/_drafts/post-draft.md b/_drafts/post-draft.md new file mode 100644 index 00000000..e0bb2bd4 --- /dev/null +++ b/_drafts/post-draft.md @@ -0,0 +1,19 @@ +--- +layout: single +title: "Draft Post" +header: + teaser: "unsplash-gallery-image-2-th.jpg" +categories: + - Jekyll +tags: + - edge case +--- +Monocle ipsum dolor sit amet handsome pariatur aliqua, hub remarkable irure commodo classic deserunt bespoke. Sunt commodo signature, Swiss minim flat white Tsutaya excepteur artisanal et Nordic laborum joy ANA. Beams mollit exquisite Ginza efficient dolore qui Comme des Garçons Winkreative Lufthansa bulletin global. Iconic sed liveable duis. Mollit dolore eu laboris Comme des Garçons hub pintxos sed eiusmod tote bag Shinkansen nisi consectetur pariatur. Nordic international quis finest Baggu dolore, bureaux hub hand-crafted ut joy sint Airbus A380. + +Conversation handsome hub cosy, enim emerging sed K-pop velit Gaggenau charming proident et boulevard ryokan. Remarkable airport deserunt international est, nulla minim magna emerging discerning in exclusive dolor. Commodo dolore deserunt cosy, global Nordic culpa uniforms signature charming. Smart ryokan commodo, eiusmod global occaecat incididunt aliqua Beams. Boulevard conversation excepteur finest Swiss non veniam Comme des Garçons essential artisanal. Destination Scandinavian international, anim Boeing 787 in duis Baggu irure essential. + +Fugiat exclusive laborum, Gaggenau ad Winkreative sharp elit labore. Remarkable officia ryokan Boeing 787, consectetur boutique Nordic Singapore espresso elit iconic perfect izakaya soft power excepteur. Ut veniam carefully curated K-pop dolore, uniforms in voluptate. Craftsmanship Ettinger Lufthansa sophisticated esse boutique veniam exquisite. Aute cillum bespoke, intricate consectetur in exquisite international lovely bulletin irure Washlet Gaggenau deserunt. Efficient eu quality of life wardrobe labore, dolor emerging airport concierge reprehenderit izakaya dolore liveable Baggu. + +Commodo elegant essential consectetur Gaggenau culpa consequat id sophisticated St Moritz sunt conversation duis non velit. Nulla business class non ut Marylebone ANA soft power fugiat carefully curated. Bureaux sed punctual handsome Washlet impeccable hand-crafted aute extraordinary tote bag enim boulevard soft power sleepy. Dolore conversation irure Zürich the best adipisicing, vibrant finest hub anim premium aliqua. Cupidatat smart international, bureaux Baggu id efficient punctual. Tempor nulla flat white enim, K-pop incididunt elit efficient Toto uniforms concierge discerning. Concierge sleepy extraordinary, deserunt Melbourne commodo Nordic Winkreative Washlet Ginza exercitation espresso. + +Tsutaya sed in business class sharp. Do Beams in adipisicing Lufthansa. Business class occaecat Melbourne, irure Singapore commodo espresso carefully curated quis quality of life adipisicing. Impeccable laborum efficient classic proident in. Beams Helsinki ullamco Marylebone dolore sophisticated concierge Muji anim duis joy ut. Comme des Garçons aute Muji in aliquip ryokan soft power Nordic essential ANA culpa elegant. \ No newline at end of file diff --git a/_includes/JB/analytics b/_includes/JB/analytics deleted file mode 100644 index 4b04ec9d..00000000 --- a/_includes/JB/analytics +++ /dev/null @@ -1,14 +0,0 @@ -{% if site.safe and site.JB.analytics.provider and page.JB.analytics != false %} - -{% case site.JB.analytics.provider %} -{% when "google" %} - {% include JB/analytics-providers/google %} -{% when "getclicky" %} - {% include JB/analytics-providers/getclicky %} -{% when "mixpanel" %} - {% include JB/analytics-providers/mixpanel %} -{% when "custom" %} - {% include custom/analytics %} -{% endcase %} - -{% endif %} \ No newline at end of file diff --git a/_includes/JB/analytics-providers/getclicky b/_includes/JB/analytics-providers/getclicky deleted file mode 100644 index e9462f4f..00000000 --- a/_includes/JB/analytics-providers/getclicky +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/_includes/JB/analytics-providers/mixpanel b/_includes/JB/analytics-providers/mixpanel deleted file mode 100644 index 4406eb04..00000000 --- a/_includes/JB/analytics-providers/mixpanel +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/_includes/JB/categories_list b/_includes/JB/categories_list deleted file mode 100644 index 83be2e29..00000000 --- a/_includes/JB/categories_list +++ /dev/null @@ -1,37 +0,0 @@ -{% comment %}{% endcomment %} - -{% if site.JB.categories_list.provider == "custom" %} - {% include custom/categories_list %} -{% else %} - {% if categories_list.first[0] == null %} - {% for category in categories_list %} -
  • - {{ category | join: "/" }} {{ site.categories[category].size }} -
  • - {% endfor %} - {% else %} - {% for category in categories_list %} -
  • - {{ category[0] | join: "/" }} {{ category[1].size }} -
  • - {% endfor %} - {% endif %} -{% endif %} -{% assign categories_list = nil %} \ No newline at end of file diff --git a/_includes/JB/liquid_raw b/_includes/JB/liquid_raw deleted file mode 100644 index a5c17832..00000000 --- a/_includes/JB/liquid_raw +++ /dev/null @@ -1,32 +0,0 @@ -{% comment%}{% endcomment%} - -{% if site.JB.liquid_raw.provider == "custom" %} - {% include custom/liquid_raw %} -{% else %} -
    {{text | replace:"|.", "{" | replace:".|", "}" | replace:">", ">" | replace:"<", "<" }}
    -{% endif %} -{% assign text = nil %} \ No newline at end of file diff --git a/_includes/JB/pages_list b/_includes/JB/pages_list deleted file mode 100644 index 42f827a8..00000000 --- a/_includes/JB/pages_list +++ /dev/null @@ -1,39 +0,0 @@ -{% comment %}{% endcomment %} - -{% if site.JB.pages_list.provider == "custom" %} - {% include custom/pages_list %} -{% else %} - {% for node in pages_list %} - {% if node.title != null %} - {% if group == null or group == node.group %} - {% if page.url == node.url %} -
  • {{node.title}}
  • - {% else %} -
  • {{node.title}}
  • - {% endif %} - {% endif %} - {% endif %} - {% endfor %} -{% endif %} -{% assign pages_list = nil %} -{% assign group = nil %} \ No newline at end of file diff --git a/_includes/JB/posts_collate b/_includes/JB/posts_collate deleted file mode 100644 index f612ade8..00000000 --- a/_includes/JB/posts_collate +++ /dev/null @@ -1,55 +0,0 @@ -{% comment %}{% endcomment %} - -{% if site.JB.posts_collate.provider == "custom" %} - {% include custom/posts_collate %} -{% else %} - {% for post in posts_collate %} - {% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %} - {% capture this_month %}{{ post.date | date: "%B" }}{% endcapture %} - {% capture next_year %}{{ post.previous.date | date: "%Y" }}{% endcapture %} - {% capture next_month %}{{ post.previous.date | date: "%B" }}{% endcapture %} - - {% if forloop.first %} -

    {{this_year}}

    -

    {{this_month}}

    - - {% else %} - {% if this_year != next_year %} - -

    {{next_year}}

    -

    {{next_month}}

    - -

    {{next_month}}

    - -
    +
    \ No newline at end of file diff --git a/activiti.md b/_pages/activiti.md similarity index 78% rename from activiti.md rename to _pages/activiti.md index cf33c25d..7dda3648 100644 --- a/activiti.md +++ b/_pages/activiti.md @@ -1,8 +1,20 @@ --- -layout: master -title: Activiti +permalink: /activiti.html +title: "Activiti" +layouts_gallery: + - url: mm-layout-splash.png + image_path: mm-layout-splash.png + alt: "splash layout example" + - url: mm-layout-single-meta.png + image_path: mm-layout-single-meta.png + alt: "single layout with comments and related posts" + - url: mm-layout-archive.png + image_path: mm-layout-archive.png + alt: "archive layout example" --- +{% include base_path %} +
    Activiti 优秀的轻量级BPMN2.0规范流程引擎——Activiti,由jBPM创始人——Tom Baeyens发起。 @@ -12,14 +24,14 @@ title: Activiti

    Activiti相关博文

    kft-activiti-demo -
    - -## Activiti中文论坛 -为了方便国内Activiti开发者交流,把交流的结果沉淀下来方便新人学习,**Activiti中文论坛**与2013年5月20日建立。 - -论坛网址:[http://www.activiti-cn.org](http://www.activiti-cn.org) - -开放注册方式:Email、QQ、微博(建议用微博或者QQ互联),点**[这里](http://www.activiti-cn.org/member.php?mod=register)**注册。 - -![Activiti中文论坛](/files/2013/05/forums-large.png) \ No newline at end of file +
    \ No newline at end of file diff --git a/_pages/archive-layout-with-content.md b/_pages/archive-layout-with-content.md new file mode 100644 index 00000000..c99ca8ef --- /dev/null +++ b/_pages/archive-layout-with-content.md @@ -0,0 +1,219 @@ +--- +title: "Archive Layout with Content" +layout: archive +permalink: /archive-layout-with-content/ +--- + +A variety of common markup showing how the theme styles them. + +# Header one + +## Header two + +### Header three + +#### Header four + +##### Header five + +###### Header six + +## Blockquotes + +Single line blockquote: + +> Stay hungry. Stay foolish. + +Multi line blockquote with a cite reference: + +> People think focus means saying yes to the thing you've got to focus on. But that's not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I'm actually as proud of the things we haven't done as the things I have done. Innovation is saying no to 1,000 things. + +Steve Jobs --- Apple Worldwide Developers' Conference, 1997 +{: .small} + +## Tables + +| Employee | Salary | | +| -------- | ------ | ------------------------------------------------------------ | +| [John Doe](#) | $1 | Because that's all Steve Jobs needed for a salary. | +| [Jane Doe](#) | $100K | For all the blogging she does. | +| [Fred Bloggs](#) | $100M | Pictures are worth a thousand words, right? So Jane × 1,000. | +| [Jane Bloggs](#) | $100B | With hair like that?! Enough said. | + +| Header1 | Header2 | Header3 | +|:--------|:-------:|--------:| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|-----------------------------| +| cell1 | cell2 | cell3 | +| cell4 | cell5 | cell6 | +|=============================| +| Foot1 | Foot2 | Foot3 | + +## Definition Lists + +Definition List Title +: Definition list division. + +Startup +: A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model. + +#dowork +: Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends. + +Do It Live +: I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one. + +## Unordered Lists (Nested) + + * List item one + * List item one + * List item one + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + * List item two + * List item three + * List item four + +## Ordered List (Nested) + + 1. List item one + 1. List item one + 1. List item one + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + 2. List item two + 3. List item three + 4. List item four + +## Buttons + +Make any link standout more when applying the `.btn` class. + +```html +Success Button +``` + +[Primary Button](#){: .btn} +[Success Button](#){: .btn .btn--success} +[Warning Button](#){: .btn .btn--warning} +[Danger Button](#){: .btn .btn--danger} +[Info Button](#){: .btn .btn--info} +[Inverse Button](#){: .btn .btn--inverse} +[Light Outline Button](#){: .btn .btn--light-outline} + +```markdown +[Primary Button Text](#link){: .btn} +[Success Button Text](#link){: .btn .btn--success} +[Warning Button Text](#link){: .btn .btn--warning} +[Danger Button Text](#link){: .btn .btn--danger} +[Info Button Text](#link){: .btn .btn--info} +[Inverse Button](#link){: .btn .btn--inverse} +[Light Outline Button](#link){: .btn .btn--light-outline} +``` + +[X-Large Button](#){: .btn .btn--x-large} +[Large Button](#){: .btn .btn--large} +[Default Button](#){: .btn} +[Small Button](#){: .btn .btn--small} + +```markdown +[X-Large Button](#link){: .btn .btn--x-large} +[Large Button](#link){: .btn .btn--large} +[Default Button](#link){: .btn} +[Small Button](#link){: .btn .btn--small} +``` + +## Notices + +**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph. +{: .notice} + +## HTML Tags + +### Address Tag + +
    + 1 Infinite Loop
    Cupertino, CA 95014
    United States +
    + +### Anchor Tag (aka. Link) + +This is an example of a [link](http://apple.com "Apple"). + +### Abbreviation Tag + +The abbreviation CSS stands for "Cascading Style Sheets". + +*[CSS]: Cascading Style Sheets + +### Cite Tag + +"Code is poetry." ---Automattic + +### Code Tag + +You will learn later on in these tests that `word-wrap: break-word;` will be your best friend. + +### Strike Tag + +This tag will let you strikeout text. + +### Emphasize Tag + +The emphasize tag should _italicize_ text. + +### Insert Tag + +This tag should denote inserted text. + +### Keyboard Tag + +This scarcely known tag emulates keyboard text, which is usually styled like the `` tag. + +### Preformatted Tag + +This tag styles large blocks of code. + +
    +.post-title {
    +  margin: 0 0 5px;
    +  font-weight: bold;
    +  font-size: 38px;
    +  line-height: 1.2;
    +  and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
    +}
    +
    + +### Quote Tag + +Developers, developers, developers… –Steve Ballmer + +### Strong Tag + +This tag shows **bold text**. + +### Subscript Tag + +Getting our science styling on with H2O, which should push the "2" down. + +### Superscript Tag + +Still sticking with science and Isaac Newton's E = MC2, which should lift the 2 up. + +### Variable Tag + +This allows you to denote variables. + +{% include base_path %} +{% for post in site.pages %} +{% include archive-single.html %} +{% endfor %} \ No newline at end of file diff --git a/_pages/blog.html b/_pages/blog.html new file mode 100644 index 00000000..be6cfd0e --- /dev/null +++ b/_pages/blog.html @@ -0,0 +1,17 @@ +--- +layout: archive +permalink: /blog.html +title: "Posts by Year" +author_profile: true +--- + +{% include base_path %} +{% capture written_year %}'None'{% endcapture %} +{% for post in site.posts %} + {% capture year %}{{ post.date | date: '%Y' }}{% endcapture %} + {% if year != written_year %} +

    {{ year }}

    + {% capture written_year %}{{ year }}{% endcapture %} + {% endif %} + {% include archive-single.html %} +{% endfor %} \ No newline at end of file diff --git a/_pages/category-archive.html b/_pages/category-archive.html new file mode 100644 index 00000000..3ed3378f --- /dev/null +++ b/_pages/category-archive.html @@ -0,0 +1,17 @@ +--- +layout: archive +permalink: /categories/ +title: "Posts by Category" +author_profile: true +--- + +{% include base_path %} +{% include group-by-array collection=site.posts field="categories" %} + +{% for category in group_names %} + {% assign posts = group_items[forloop.index0] %} +

    {{ category }}

    + {% for post in posts %} + {% include archive-single.html %} + {% endfor %} +{% endfor %} \ No newline at end of file diff --git a/_pages/collection-archive.html b/_pages/collection-archive.html new file mode 100644 index 00000000..344c51ea --- /dev/null +++ b/_pages/collection-archive.html @@ -0,0 +1,24 @@ +--- +layout: archive +title: "Posts by Collection" +permalink: /collection-archive/ +author_profile: true +--- + +{% include base_path %} +{% capture written_label %}'None'{% endcapture %} + +{% for collection in site.collections %} + {% unless collection.output == false or collection.label == "posts" %} + {% capture label %}{{ collection.label }}{% endcapture %} + {% if label != written_label %} +

    {{ label }}

    + {% capture written_label %}{{ label }}{% endcapture %} + {% endif %} + {% endunless %} + {% for post in collection.docs %} + {% unless collection.output == false or collection.label == "posts" %} + {% include archive-single.html %} + {% endunless %} + {% endfor %} +{% endfor %} \ No newline at end of file diff --git a/_pages/home.md b/_pages/home.md new file mode 100644 index 00000000..67565331 --- /dev/null +++ b/_pages/home.md @@ -0,0 +1,36 @@ +--- +layout: splash +permalink: / +header: + overlay_color: "#5e616c" + overlay_image: unsplash-image-3.jpg + caption: +excerpt: '深入研究,覆盖领域:Serverless/FaaS、Kubernetes、Docker,BPM Platform Activiti.
    《Activiti实战》配套源码

    {::nomarkdown} {:/nomarkdown}' +feature_row: + - image_path: mm-customizable-feature.png + alt: "customizable" + title: "Serverless" + excerpt: "下一次革命即将来袭,把握未来!" + url: "/category/serverless" + btn_label: "Learn More" + - image_path: mm-responsive-feature.png + alt: "fully responsive" + title: "K8s + Docker" + excerpt: "Kubernetes + Docker" + url: "/category/kubernetes" + btn_label: "Learn More" + - image_path: activiti-in-action-small.jpg + alt: "《Activiti实战》" + title: "《Activiti实战》" + excerpt: "全面介绍BPM平台 - Activiti,咖啡兔著" + url: "/activiti-in-action.html" + btn_label: "Learn More" +github: + - excerpt: '{::nomarkdown} {:/nomarkdown}' +intro: + - excerpt: while (true) { share() } +--- + +{% include feature_row id="intro" type="center" %} + +{% include feature_row %} diff --git a/_pages/lorem-ipsum.md b/_pages/lorem-ipsum.md new file mode 100644 index 00000000..13be88ae --- /dev/null +++ b/_pages/lorem-ipsum.md @@ -0,0 +1,52 @@ +--- +title: "Lorem Ipsum" +permalink: /lorem-ipsum/ +--- + +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec mollis. Quisque convallis libero in sapien pharetra tincidunt. Aliquam elit ante, malesuada id, tempor eu, gravida id, odio. Maecenas suscipit, risus et eleifend imperdiet, nisi orci ullamcorper massa, et adipiscing orci velit quis magna. Praesent sit amet ligula id orci venenatis auctor. Phasellus porttitor, metus non tincidunt dapibus, orci pede pretium neque, sit amet adipiscing ipsum lectus et libero. Aenean bibendum. Curabitur mattis quam id urna. Vivamus dui. Donec nonummy lacinia lorem. Cras risus arcu, sodales ac, ultrices ac, mollis quis, justo. Sed a libero. Quisque risus erat, posuere at, tristique non, lacinia quis, eros. + +Cras volutpat, lacus quis semper pharetra, nisi enim dignissim est, et sollicitudin quam ipsum vel mi. Sed commodo urna ac urna. Nullam eu tortor. Curabitur sodales scelerisque magna. Donec ultricies tristique pede. Nullam libero. Nam sollicitudin felis vel metus. Nullam posuere molestie metus. Nullam molestie, nunc id suscipit rhoncus, felis mi vulputate lacus, a ultrices tortor dolor eget augue. Aenean ultricies felis ut turpis. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse placerat tellus ac nulla. Proin adipiscing sem ac risus. Maecenas nisi. Cras semper. + +Praesent interdum mollis neque. In egestas nulla eget pede. Integer eu purus sed diam dictum scelerisque. Morbi cursus velit et felis. Maecenas faucibus aliquet erat. In aliquet rhoncus tellus. Integer auctor nibh a nunc fringilla tempus. Cras turpis urna, dignissim vel, suscipit pulvinar, rutrum quis, sem. Ut lobortis convallis dui. Sed nonummy orci a justo. Morbi nec diam eget eros eleifend tincidunt. + +Curabitur non elit. Pellentesque iaculis, nisl non aliquet adipiscing, purus urna aliquet orci, sed sodales pede neque at massa. Pellentesque laoreet, enim eget varius mollis, sapien erat suscipit metus, sit amet iaculis nulla sapien id felis. Aliquam erat volutpat. Nam congue nulla a ligula. Morbi tempor hendrerit erat. Curabitur augue. Vestibulum nulla est, commodo et, fringilla quis, bibendum eget, ipsum. Suspendisse pulvinar iaculis ante. Mauris dignissim ante quis nisi. Aliquam ante mi, aliquam et, pellentesque ac, dapibus et, enim. In vulputate justo vel magna. Phasellus imperdiet justo. Proin odio orci, dapibus id, porta a, pellentesque id, erat. Aliquam erat volutpat. Mauris nonummy varius libero. Sed dolor ipsum, tempor non, aliquet et, pulvinar quis, dui. Pellentesque mauris diam, lobortis id, varius varius, facilisis at, nulla. + +Cras pede. Nullam id velit sit amet turpis tincidunt sagittis. Nunc malesuada. Nunc consequat scelerisque odio. Donec eu leo. Nunc pellentesque felis sed odio. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus lobortis metus in lectus. Cras mollis quam eget sapien. Pellentesque non lorem sit amet sem lacinia euismod. + +Nulla eget diam eget leo imperdiet consequat. Morbi nunc magna, pellentesque eu, porta at, ultricies ut, neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In tincidunt. Praesent ut orci id eros congue ultrices. Mauris non neque. Donec nulla ante, molestie sit amet, fermentum nec, blandit sit amet, purus. Fusce eget diam eu odio iaculis mollis. Phasellus consectetuer pede quis nisi. Proin non sem ut elit pulvinar faucibus. In a turpis nec augue fringilla elementum. + +Nullam felis. Donec in nulla. Suspendisse sodales, turpis in suscipit ullamcorper, enim nunc sagittis risus, eu auctor velit tortor ut turpis. Mauris id augue at neque aliquam eleifend. Sed eget augue. Nunc faucibus ligula sed massa. Etiam non nulla. Etiam accumsan ullamcorper nisl. In pharetra massa at nunc. Nunc elementum. Duis sodales enim nec libero. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Praesent dapibus eros sodales urna. Duis magna nisi, lobortis quis, tincidunt rutrum, posuere non, ipsum. + +Aliquam convallis neque vitae diam. In diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis fermentum arcu in tortor. Sed nibh leo, rhoncus eu, fermentum et, scelerisque ac, massa. Cras id turpis. Etiam commodo sem luctus lorem. Morbi at mi. In rutrum. Aenean luctus pede euismod tortor. Phasellus dictum. Cras neque justo, venenatis sit amet, tristique et, vulputate in, dui. Etiam sed mi gravida sapien imperdiet dictum. Aliquam gravida orci a tortor. Donec tempor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus risus ante, pellentesque vitae, luctus eget, scelerisque sed, libero. Donec massa. + +Donec libero mauris, volutpat at, convallis vel, laoreet euismod, augue. In accumsan malesuada risus. Mauris metus magna, condimentum in, nonummy non, ornare eu, velit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin posuere. Proin rhoncus rutrum lorem. Phasellus dignissim massa non libero volutpat tincidunt. In hac habitasse platea dictumst. Phasellus eget eros. Nulla in nulla. Vivamus quis mauris. Maecenas pharetra rhoncus tellus. Sed sit amet lacus. + +Quisque interdum felis a tellus. Aliquam sed diam ac velit aliquam rutrum. Morbi commodo, risus a pulvinar adipiscing, tortor pede posuere risus, ac ornare tellus massa nec lectus. Vivamus mollis metus ac sapien. Nam sed est a libero ullamcorper dapibus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean a erat ac nibh accumsan volutpat. Phasellus pulvinar consequat turpis. Curabitur ante metus, tempus ut, consequat eu, sollicitudin sit amet, justo. Duis ut libero. + +Հայերեն + +Lorem Ipsum-ը տպագրության և տպագրական արդյունաբերության համար նախատեսված մոդելային տեքստ է: Սկսած 1500-ականներից\` Lorem Ipsum-ը հանդիսացել է տպագրական արդյունաբերության ստանդարտ մոդելային տեքստ, ինչը մի անհայտ տպագրիչի կողմից տարբեր տառատեսակների օրինակների գիրք ստեղծելու ջանքերի արդյունք է: Այս տեքստը ոչ միայն կարողացել է գոյատևել հինգ դարաշրջան, այլև ներառվել է էլեկտրոնային տպագրության մեջ\` մնալով էապես անփոփոխ: Այն հայտնի է դարձել 1960-ականներին Lorem Ipsum բովանդակող Letraset էջերի թողարկման արդյունքում, իսկ ավելի ուշ համակարգչային տպագրության այնպիսի ծրագրերի թողարկման հետևանքով, ինչպիսին է Aldus PageMaker-ը, որը ներառում է Lorem Ipsum-ի տարատեսակներ: + +Български + +Lorem Ipsum е елементарен примерен текст, използван в печатарската и типографската индустрия. Lorem Ipsum е индустриален стандарт от около 1500 година, когато неизвестен печатар взема няколко печатарски букви и ги разбърква, за да напечата с тях книга с примерни шрифтове. Този начин не само е оцелял повече от 5 века, но е навлязъл и в публикуването на електронни издания като е запазен почти без промяна. Популяризиран е през 60те години на 20ти век със издаването на Letraset листи, съдържащи Lorem Ipsum пасажи, популярен е и в наши дни във софтуер за печатни издания като Aldus PageMaker, който включва различни версии на Lorem Ipsum. + +Català + +Lorem Ipsum és un text de farciment usat per la indústria de la tipografia i la impremta. Lorem Ipsum ha estat el text estàndard de la indústria des de l’any 1500, quan un impressor desconegut va fer servir una galerada de text i la va mesclar per crear un llibre de mostres tipogràfiques. No només ha sobreviscut cinc segles, sinó que ha fet el salt cap a la creació de tipus de lletra electrònics, romanent essencialment sense canvis. Es va popularitzar l’any 1960 amb el llançament de fulls Letraset que contenien passatges de Lorem Ipsum, i més recentment amb programari d’autoedició com Aldus Pagemaker que inclou versions de Lorem Ipsum. + +Hrvatski + +Lorem Ipsum je jednostavno probni tekst koji se koristi u tiskarskoj i slovoslagarskoj industriji. Lorem Ipsum postoji kao industrijski standard još od 16-og stoljeća, kada je nepoznati tiskar uzeo tiskarsku galiju slova i posložio ih da bi napravio knjigu s uzorkom tiska. Taj je tekst ne samo preživio pet stoljeća, već se i vinuo u svijet elektronskog slovoslagarstva, ostajući u suštini nepromijenjen. Postao je popularan tijekom 1960-ih s pojavom Letraset listova s odlomcima Lorem Ipsum-a, a u skorije vrijeme sa software-om za stolno izdavaštvo kao što je Aldus PageMaker koji također sadrži varijante Lorem Ipsum-a. + +Česky + +Lorem Ipsum je demonstrativní výplňový text používaný v tiskařském a knihařském průmyslu. Lorem Ipsum je považováno za standard v této oblasti už od začátku 16. století, kdy dnes neznámý tiskař vzal kusy textu a na jejich základě vytvořil speciální vzorovou knihu. Jeho odkaz nevydržel pouze pět století, on přežil i nástup elektronické sazby v podstatě beze změny. Nejvíce popularizováno bylo Lorem Ipsum v šedesátých letech 20. století, kdy byly vydávány speciální vzorníky s jeho pasážemi a později pak díky počítačovým DTP programům jako Aldus PageMaker. + +Româna + +Lorem Ipsum este pur şi simplu o machetă pentru text a industriei tipografice. Lorem Ipsum a fost macheta standard a industriei încă din secolul al XVI-lea, când un tipograf anonim a luat o planşetă de litere şi le-a amestecat pentru a crea o carte demonstrativă pentru literele respective. Nu doar că a supravieţuit timp de cinci secole, dar şi a facut saltul în tipografia electronică practic neschimbată. A fost popularizată în anii ’60 odată cu ieşirea colilor Letraset care conţineau pasaje Lorem Ipsum, iar mai recent, prin programele de publicare pentru calculator, ca Aldus PageMaker care includeau versiuni de Lorem Ipsum. + +Српски + +Lorem Ipsum је једноставно модел текста који се користи у штампарској и словослагачкој индустрији. Lorem ipsum је био стандард за модел текста још од 1500. године, када је непознати штампар узео кутију са словима и сложио их како би направио узорак књиге. Не само што је овај модел опстао пет векова, него је чак почео да се користи и у електронским медијима, непроменивши се. Популаризован је шездесетих година двадесетог века заједно са листовима летерсета који су садржали Lorem Ipsum пасусе, а данас са софтверским пакетом за прелом као што је Aldus PageMaker који је садржао Lorem Ipsum верзије. \ No newline at end of file diff --git a/_pages/page-a.md b/_pages/page-a.md new file mode 100644 index 00000000..3083db24 --- /dev/null +++ b/_pages/page-a.md @@ -0,0 +1,7 @@ +--- +title: "Page A" +permalink: /page-a/ +date: 2011-06-23T18:38:52+00:00 +--- + +Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. \ No newline at end of file diff --git a/_pages/page-archive.html b/_pages/page-archive.html new file mode 100644 index 00000000..c1c5d7ca --- /dev/null +++ b/_pages/page-archive.html @@ -0,0 +1,11 @@ +--- +layout: archive +title: "Page Archive" +permalink: /page-archive/ +author_profile: false +--- + +{% include base_path %} +{% for post in site.pages %} + {% include archive-single.html %} +{% endfor %} \ No newline at end of file diff --git a/_pages/page-b.md b/_pages/page-b.md new file mode 100644 index 00000000..d15ce122 --- /dev/null +++ b/_pages/page-b.md @@ -0,0 +1,7 @@ +--- +title: "Page B" +permalink: /page-b/ +date: 2011-06-23T18:39:14+00:00 +--- + +(lorem ipsum) \ No newline at end of file diff --git a/_pages/portfolio-archive.html b/_pages/portfolio-archive.html new file mode 100644 index 00000000..4aafb84a --- /dev/null +++ b/_pages/portfolio-archive.html @@ -0,0 +1,14 @@ +--- +layout: archive +title: "Portfolio" +permalink: /portfolio/ +author_profile: false +--- + +{% include base_path %} + +
    + {% for post in site.portfolio %} + {% include archive-single.html type="grid" %} + {% endfor %} +
    \ No newline at end of file diff --git a/_pages/recipes-archive.html b/_pages/recipes-archive.html new file mode 100644 index 00000000..27c6a584 --- /dev/null +++ b/_pages/recipes-archive.html @@ -0,0 +1,12 @@ +--- +layout: archive +title: "Recipes" +permalink: /recipes/ +author_profile: false +--- + +{% include base_path %} + +{% for post in site.recipes %} + {% include archive-single.html %} +{% endfor %} \ No newline at end of file diff --git a/_pages/sample-page.md b/_pages/sample-page.md new file mode 100644 index 00000000..060e53b8 --- /dev/null +++ b/_pages/sample-page.md @@ -0,0 +1,15 @@ +--- +title: "Sample Page" +permalink: /sample-page/ +date: 2016-02-24T03:02:20+00:00 +--- + +This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this: + +> Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like pi'a coladas. (And gettin' caught in the rain.) + +...or something like this: + +> The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community. + +You should probably delete this page and create new pages for your content. Have fun! \ No newline at end of file diff --git a/_pages/sitemap.md b/_pages/sitemap.md new file mode 100644 index 00000000..9fd359dc --- /dev/null +++ b/_pages/sitemap.md @@ -0,0 +1,37 @@ +--- +layout: archive +title: "Sitemap" +permalink: /sitemap/ +author_profile: false +--- + +{% include base_path %} + +A list of all the posts and pages found on the site. For you robots out there is an [XML version]({{ base_path }}/sitemap.xml) available for digesting as well. + +

    Pages

    +{% for post in site.pages %} + {% include archive-single.html %} +{% endfor %} + +

    Posts

    +{% for post in site.posts %} + {% include archive-single.html %} +{% endfor %} + +{% capture written_label %}'None'{% endcapture %} + +{% for collection in site.collections %} +{% unless collection.output == false or collection.label == "posts" %} + {% capture label %}{{ collection.label }}{% endcapture %} + {% if label != written_label %} +

    {{ label }}

    + {% capture written_label %}{{ label }}{% endcapture %} + {% endif %} +{% endunless %} +{% for post in collection.docs %} + {% unless collection.output == false or collection.label == "posts" %} + {% include archive-single.html %} + {% endunless %} +{% endfor %} +{% endfor %} \ No newline at end of file diff --git a/_pages/splash-page.md b/_pages/splash-page.md new file mode 100644 index 00000000..2ca5efb1 --- /dev/null +++ b/_pages/splash-page.md @@ -0,0 +1,65 @@ +--- +title: "Splash Page" +layout: splash +permalink: /splash-page/ +date: 2016-03-23T11:48:41-04:00 +header: + overlay_color: "#000" + overlay_filter: "0.5" + overlay_image: unsplash-image-1.jpg + cta_label: "Download" + cta_url: "https://github.com/mmistakes/minimal-mistakes/" + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +excerpt: "Bacon ipsum dolor sit amet salami ham hock ham, hamburger corned beef short ribs kielbasa biltong t-bone drumstick tri-tip tail sirloin pork chop." +intro: + - excerpt: 'Nullam suscipit et nam, tellus velit pellentesque at malesuada, enim eaque. Quis nulla, netus tempor in diam gravida tincidunt, *proin faucibus* voluptate felis id sollicitudin. Centered with `type="center"`' +feature_row: + - image_path: unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + title: "Placeholder 1" + excerpt: "This is some sample content that goes here with **Markdown** formatting." + - image_path: unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Placeholder 2" + excerpt: "This is some sample content that goes here with **Markdown** formatting." + url: "#test-link" + btn_label: "Read More" + btn_class: "btn--inverse" + - image_path: unsplash-gallery-image-3-th.jpg + title: "Placeholder 3" + excerpt: "This is some sample content that goes here with **Markdown** formatting." +feature_row2: + - image_path: unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Placeholder Image Left Aligned" + excerpt: 'This is some sample content that goes here with **Markdown** formatting. Left aligned with `type="left"`' + url: "#test-link" + btn_label: "Read More" + btn_class: "btn--inverse" +feature_row3: + - image_path: unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Placeholder Image Right Aligned" + excerpt: 'This is some sample content that goes here with **Markdown** formatting. Right aligned with `type="right"`' + url: "#test-link" + btn_label: "Read More" + btn_class: "btn--inverse" +feature_row4: + - image_path: unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + title: "Placeholder Image Center Aligned" + excerpt: 'This is some sample content that goes here with **Markdown** formatting. Centered with `type="center"`' + url: "#test-link" + btn_label: "Read More" + btn_class: "btn--inverse" +--- + +{% include feature_row id="intro" type="center" %} + +{% include feature_row %} + +{% include feature_row id="feature_row2" type="left" %} + +{% include feature_row id="feature_row3" type="right" %} + +{% include feature_row id="feature_row4" type="center" %} \ No newline at end of file diff --git a/_pages/tag-archive.html b/_pages/tag-archive.html new file mode 100644 index 00000000..4006381d --- /dev/null +++ b/_pages/tag-archive.html @@ -0,0 +1,17 @@ +--- +layout: archive +permalink: /tags/ +title: "Posts by Tags" +author_profile: true +--- + +{% include base_path %} +{% include group-by-array collection=site.posts field="tags" %} + +{% for tag in group_names %} + {% assign posts = group_items[forloop.index0] %} +

    {{ tag }}

    + {% for post in posts %} + {% include archive-single.html %} + {% endfor %} +{% endfor %} \ No newline at end of file diff --git a/_pages/terms.md b/_pages/terms.md new file mode 100644 index 00000000..410a7422 --- /dev/null +++ b/_pages/terms.md @@ -0,0 +1,58 @@ +--- +permalink: /terms/ +title: "Terms and Privacy Policy" +modified: 2016-06-06 +--- + +{% include base_path %} +{% include toc %} + +## Privacy Policy + +The privacy of my visitors is extremely important. This Privacy Policy outlines the types of personal information that is received and collected and how it is used. + +First and foremost, I will never share your email address or any other personal information to anyone without your direct consent. + +### Log Files + +Like many other websites, this site uses log files to help learn about when, from where, and how often traffic flows to this site. The information in these log files include: + +* Internet Protocol addresses (IP) +* Types of browser +* Internet Service Provider (ISP) +* Date and time stamp +* Referring and exit pages +* Number of clicks + +All of this information is not linked to anything that is personally identifiable. + +### Cookies and Web Beacons + +When you visit this site "convenience" cookies are stored on your computer when you submit a comment to help you log in faster to [Disqus](http://disqus.com) the next time you leave a comment. + +Third-party advertisers may also place and read cookies on your browser and/or use web beacons to collect information. This site has no access or control over these cookies. You should review the respective privacy policies on any and all third-party ad servers for more information regarding their practices and how to opt-out. + +If you wish to disable cookies, you may do so through your web browser options. Instructions for doing so can be found on the specific web browsers' websites. + +#### Google Analytics + +Google Analytics is a web analytics tool I use to help understand how visitors engage with this website. It reports website trends using cookies and web beacons without identifying individual visitors. You can read [Google Analytics Privacy Policy](http://www.google.com/analytics/learn/privacy.html). + +#### Google Adsense + +Google Adsense, a third party affiliate marketing network, uses cookies to help make sure I get a commission when you buy a product after clicking on a link or ad banner that takes you to the site of one of their merchants. You can read [Google Adsense Privacy Policy](http://support.google.com/adsense/bin/answer.py?hl=en&answer=48182). + +## Disclosure Policy + +I make money on this website through affiliate programs. If you click an affiliate link or ad banner and buy the product, you help support this website because I'll get a percentage of that sale. + +Currently I'm an affiliate for Amazon and Google Adsense. + +What this means for you: + +* I became an affiliate to earn revenue towards the costs of running and maintaining this website. Where I have direct control over which ads are served on this website I offer only products that are directly related to the topic of this website and products that a reader/subscriber would have a genuine interest in or need of. +* I do not and will not recommend a product just for the sake of making money. +* I do not let the compensation I receive influence the content, topics, posts, or opinions expressed on this website. +* I respect and value my readers too much to write anything other than my own genuine and objective opinions and advice. + +Just like this website, my Disclosure Policy is a work in progress. As the revenue streams evolve, so will this page. \ No newline at end of file diff --git a/_pages/year-archive.html b/_pages/year-archive.html new file mode 100644 index 00000000..7198ab65 --- /dev/null +++ b/_pages/year-archive.html @@ -0,0 +1,17 @@ +--- +layout: archive +permalink: /year-archive/ +title: "Posts by Year" +author_profile: true +--- + +{% include base_path %} +{% capture written_year %}'None'{% endcapture %} +{% for post in site.posts %} + {% capture year %}{{ post.date | date: '%Y' }}{% endcapture %} + {% if year != written_year %} +

    {{ year }}

    + {% capture written_year %}{{ year }}{% endcapture %} + {% endif %} + {% include archive-single.html %} +{% endfor %} \ No newline at end of file diff --git a/_pets/lhasa-apso.md b/_pets/lhasa-apso.md new file mode 100644 index 00000000..2673b6ba --- /dev/null +++ b/_pets/lhasa-apso.md @@ -0,0 +1,8 @@ +--- +title: "Lhasa Apso" +excerpt: "The Lhasa Apso is a non-sporting dog breed originating in Tibet." +--- + +> The Lhasa Apso (/ˈlɑːsə ˈæpsoʊ/ lah-sə ap-soh) is a non-sporting dog breed originating in Tibet. It was bred as an interior sentinel in the Buddhist monasteries, to alert the monks to any intruders who entered. Lhasa is the capital city of Tibet, and apso is a word in the Tibetan language meaning "bearded", so, Lhasa Apso simply means "long-haired Lhasa dog". There are, however, some who claim that the word "apso" is a form of the Tibetan word "rapso", meaning "goat-like", which would make the equivalent translation "wooly Lhasa dog". + +> From Wikipedia, the free encyclopedia \ No newline at end of file diff --git a/_pets/tabby.md b/_pets/tabby.md new file mode 100644 index 00000000..b62b6745 --- /dev/null +++ b/_pets/tabby.md @@ -0,0 +1,8 @@ +--- +title: "Tabby" +excerpt: "A tabby is any domestic cat that has a coat featuring distinctive stripes, dots, lines or swirling patterns, usually with a mark resembling an 'M' on its forehead." +--- + +> A tabby is any domestic cat that has a coat featuring distinctive stripes, dots, lines or swirling patterns, usually together with a mark resembling an 'M' on its forehead. Tabbies are sometimes erroneously assumed to be a cat breed. In fact, the tabby pattern is found in many breeds, as well as among the general mixed-breed population. The tabby pattern is a naturally occurring feature that may be related to the coloration of the domestic cat's direct ancestor, the African wildcat, which (along with the European wildcat and Asiatic wildcat) has a similar coloration. + +> From Wikipedia, the free encyclopedia \ No newline at end of file diff --git a/_portfolio/foo-bar-website.md b/_portfolio/foo-bar-website.md new file mode 100644 index 00000000..79d9e828 --- /dev/null +++ b/_portfolio/foo-bar-website.md @@ -0,0 +1,30 @@ +--- +title: "Foo Bar Identity" +excerpt: "Foo Bar design system including logo mark, website design, and branding applications." +header: + image: foo-bar-identity.jpg + teaser: foo-bar-identity-th.jpg +sidebar: + - title: "Role" + image: http://placehold.it/350x250 + image_alt: "logo" + text: "Designer, Front-End Developer" + - title: "Responsibilities" + text: "Reuters try PR stupid commenters should isn't a business model" +gallery: + - url: unsplash-gallery-image-1.jpg + image_path: unsplash-gallery-image-1-th.jpg + alt: "placeholder image 1" + - url: unsplash-gallery-image-2.jpg + image_path: unsplash-gallery-image-2-th.jpg + alt: "placeholder image 2" + - url: unsplash-gallery-image-3.jpg + image_path: unsplash-gallery-image-3-th.jpg + alt: "placeholder image 3" +--- + +Pictures of Goats section West Seattle Blog dingbat newspaper rubber cement Google+ newsroom cafe news.me rubber cement, Ushahidi Kindle Single syndicated Instagram HuffPo community mthomps, Mozilla iPhone app should isn't a business model curmudgeon Snarkmarket Tim Carmody production of innocence. Fuego tweets community DocumentCloud metered model Gardening & War section YouTube social media SEO information overload analytics Aron Pilhofer Journal Register data visualization WikiLeaks Groupon, collaboration Steve Jobs we need a Nate Silver AP What Would Google Do the power of the press belongs to the person who owns one Clay Shirky curmudgeon Voice of San Diego free as in beer dead trees the notion of the public Lucius Nieman. + +{% include gallery caption="This is a sample gallery to go along with this case study." %} + +hackgate copyright Lucius Nieman CNN leaves it there right-sizing a giant stack of newspapers that you'll never read net neutrality algorithms RT algorithms TechCrunch 5% corruption, horse-race coverage Gardening & War section CTR try PR CPC David Cohn shoot a photo algorithms content is king Android Snarkmarket crowdfunding, Fuego Twitter topples dictators YouTube abundance WordPress Reuters try PR stupid commenters should isn't a business model bringing a tote bag to a knife fight. \ No newline at end of file diff --git a/_posts/2009-02-07-import-javascript-in-web.markdown b/_posts/2009-02-07-import-javascript-in-web.markdown index 59c50359..ad5dd74a 100644 --- a/_posts/2009-02-07-import-javascript-in-web.markdown +++ b/_posts/2009-02-07-import-javascript-in-web.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "关于WEB开发中引入javascript文件方式的一点建议" wordpress_id: 12 wordpress_url: http://wsria.com/?p=12 date: 2009-02-07 18:24:46 +08:00 -category: javascript +categories: javascript tags: - jquery - prototype diff --git a/_posts/2009-02-07-java-23-pattern.markdown b/_posts/2009-02-07-java-23-pattern.markdown index 02d6c63d..130ca1bc 100644 --- a/_posts/2009-02-07-java-23-pattern.markdown +++ b/_posts/2009-02-07-java-23-pattern.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "经典:从追MM谈Java的23种设计模式" wordpress_id: 20 wordpress_url: http://wsria.com/?p=20 date: 2009-02-07 18:45:18 +08:00 -category: design +categories: design tags: - 设计模式 - java diff --git a/_posts/2009-02-07-javascript-string-and-stringbuffer.markdown b/_posts/2009-02-07-javascript-string-and-stringbuffer.markdown index 0942ba90..1dd39ff2 100644 --- a/_posts/2009-02-07-javascript-string-and-stringbuffer.markdown +++ b/_posts/2009-02-07-javascript-string-and-stringbuffer.markdown @@ -1,10 +1,9 @@ --- -layout: post title: " javascript中字符串累加的性能优化(String和StringBuffer)" wordpress_id: 17 wordpress_url: http://wsria.com/?p=17 date: 2009-02-07 18:38:39 +08:00 -category: javascript +categories: javascript tags: - string - StringBuffer diff --git a/_posts/2009-02-07-json-lib-cycle-in-the-hierarchy.markdown b/_posts/2009-02-07-json-lib-cycle-in-the-hierarchy.markdown index dfba71f5..9d322529 100644 --- a/_posts/2009-02-07-json-lib-cycle-in-the-hierarchy.markdown +++ b/_posts/2009-02-07-json-lib-cycle-in-the-hierarchy.markdown @@ -1,91 +1,90 @@ ---- -layout: post -title: "出现net.sf.json.JSONException: There is a cycle in the hierarchy异常的解决办法" -wordpress_id: 14 -wordpress_url: http://wsria.com/?p=14 -date: 2009-02-07 18:33:22 +08:00 -category: json -tags: - - hibernate - - json-lib ---- -因为项目中使用了AJAX技术,JAR包为:json-lib.jar,?在开发过程中遇到了一个JSON-LIB和Hibernate有关的问题: - -net.sf.json.JSONException: There is a cycle in the hierarchy! - - -
    -at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:97)
    -at net.sf.json.JSONObject._fromBean(JSONObject.java:857)
    -at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    -at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    -at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    -at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    -at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    -at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    -at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    -at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    -at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    -at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    -at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    -at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    -at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    -at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    -at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    -at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    -at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    -at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    -at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    -at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    -at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    -at net.yanhl.iouser.action.IOUserAction.loadUser(IOUserAction.java:142)
    -
    -因为Hibernate中设置了自身关联: -Iouser.hbm.xml: -
    -
    -
    -
    -
    - -//设置自身关联的组对象 -
    -public class GroupRelation implements Serializable {
    -
    -private static final long serialVersionUID = 6202253180943473205L;
    -private Integer id;// 主键ID
    -private Integer creatorId;// 创建人
    -private Date createDate;// 创建日期
    -private String groupName;// 组名称
    -private GroupRelation parentGroup;
    -private Set childGroups = new HashSet();
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - -起初想通过hibernate来解决问题,就是想过滤掉自身关联后来查资料发现不可能实现,最后找到通过JSON-LIB来过滤关联的集合属性,代码如下: -
    -JsonConfig config = new JsonConfig();
    -config.setJsonPropertyFilter(new PropertyFilter(){
    -	public boolean apply(Object source, String name, Object value) {
    -		if(name.equals("parentGroup") || name.equals("childGroups")) {
    -			return true;
    -		} else {
    -			return false;
    -		}
    -	}
    -});
    -Iouser user = (Iouser) getBaseManager().get(Iouser.class, iouserId);
    -JSONObject jsonObject = JSONObject.fromObject(user, config);
    -
    - -当JSON-LIB解析JAVABEAN时过滤掉parentGroup、childGroups这两个属性,重新启动服务,pass +--- +title: "出现net.sf.json.JSONException: There is a cycle in the hierarchy异常的解决办法" +wordpress_id: 14 +wordpress_url: http://wsria.com/?p=14 +date: 2009-02-07 18:33:22 +08:00 +categories: json +tags: + - hibernate + - json-lib +--- +因为项目中使用了AJAX技术,JAR包为:json-lib.jar,?在开发过程中遇到了一个JSON-LIB和Hibernate有关的问题: + +net.sf.json.JSONException: There is a cycle in the hierarchy! + + +
    +at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:97)
    +at net.sf.json.JSONObject._fromBean(JSONObject.java:857)
    +at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    +at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    +at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    +at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    +at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    +at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    +at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    +at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    +at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    +at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    +at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    +at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    +at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    +at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    +at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    +at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    +at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
    +at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
    +at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
    +at net.sf.json.JSONObject._fromBean(JSONObject.java:940)
    +at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
    +at net.yanhl.iouser.action.IOUserAction.loadUser(IOUserAction.java:142)
    +
    +因为Hibernate中设置了自身关联: +Iouser.hbm.xml: +
    +
    +
    +
    +
    + +//设置自身关联的组对象 +
    +public class GroupRelation implements Serializable {
    +
    +private static final long serialVersionUID = 6202253180943473205L;
    +private Integer id;// 主键ID
    +private Integer creatorId;// 创建人
    +private Date createDate;// 创建日期
    +private String groupName;// 组名称
    +private GroupRelation parentGroup;
    +private Set childGroups = new HashSet();
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +起初想通过hibernate来解决问题,就是想过滤掉自身关联后来查资料发现不可能实现,最后找到通过JSON-LIB来过滤关联的集合属性,代码如下: +
    +JsonConfig config = new JsonConfig();
    +config.setJsonPropertyFilter(new PropertyFilter(){
    +	public boolean apply(Object source, String name, Object value) {
    +		if(name.equals("parentGroup") || name.equals("childGroups")) {
    +			return true;
    +		} else {
    +			return false;
    +		}
    +	}
    +});
    +Iouser user = (Iouser) getBaseManager().get(Iouser.class, iouserId);
    +JSONObject jsonObject = JSONObject.fromObject(user, config);
    +
    + +当JSON-LIB解析JAVABEAN时过滤掉parentGroup、childGroups这两个属性,重新启动服务,pass diff --git a/_posts/2009-02-08-financial-pro-demo.markdown b/_posts/2009-02-08-financial-pro-demo.markdown index bccd2d1d..b35eb265 100644 --- a/_posts/2009-02-08-financial-pro-demo.markdown +++ b/_posts/2009-02-08-financial-pro-demo.markdown @@ -1,21 +1,20 @@ ---- -layout: post -title: "基于jQuery开发的账务管理系统(个人版)演示" -wordpress_id: 73 -wordpress_url: http://wsria.com/?p=73 -date: 2009-02-08 11:48:43 +08:00 -category: financial -tags: - - 演示 - - 视频 ---- -
    开发此系统的初衷在于学习前台技术,然后就想到开发一个小系统,边开发边学习
    -
    后来一天突然想到做账务系统(个人版),然后计划使用什么技术来实现,在公司待了也快两年了最看不惯的就是用户界面、体验,所以就计划使用目前比较成熟的Ajax框架来做前台,后台还是使用基于Java语言的SSH架构来实现
    -
    平常工作忙只能下班或者周末开发、学习,在开始做的时候比较了几个目前比较流行的Ajax框架,例如:Ext、Prototype、jQuery、Dojo,后来经过比较还是选择了轻量级的Ajax框架jQuery来完成前台的功能,至于为什么使用jQuery请参见《推荐使用轻量级ajax框架-jQuery》
    -
    经过近两年的BS开发经验积累我得知一个易用的系统最主要的是什么,简单的操作和友好提示+界面的美化是给用户的第一初体验,此系统就抓住了这一点为主攻方向,具体请下载视频观看
    -
    此项目已在googlecode上建立版本库,如果你想学习jQuery或者参与后期开发请QQ或者E-mail联系我
    -
    QQ:576525789
    -
    gmail:yanhonglei@gmail.com(使用googlecode必须要有一个google账户)
    -
    [download#15#format=1]
    - -账务管理系统(个人版)演示 +--- +title: "基于jQuery开发的账务管理系统(个人版)演示" +wordpress_id: 73 +wordpress_url: http://wsria.com/?p=73 +date: 2009-02-08 11:48:43 +08:00 +categories: financial +tags: + - 演示 + - 视频 +--- +
    开发此系统的初衷在于学习前台技术,然后就想到开发一个小系统,边开发边学习
    +
    后来一天突然想到做账务系统(个人版),然后计划使用什么技术来实现,在公司待了也快两年了最看不惯的就是用户界面、体验,所以就计划使用目前比较成熟的Ajax框架来做前台,后台还是使用基于Java语言的SSH架构来实现
    +
    平常工作忙只能下班或者周末开发、学习,在开始做的时候比较了几个目前比较流行的Ajax框架,例如:Ext、Prototype、jQuery、Dojo,后来经过比较还是选择了轻量级的Ajax框架jQuery来完成前台的功能,至于为什么使用jQuery请参见《推荐使用轻量级ajax框架-jQuery》
    +
    经过近两年的BS开发经验积累我得知一个易用的系统最主要的是什么,简单的操作和友好提示+界面的美化是给用户的第一初体验,此系统就抓住了这一点为主攻方向,具体请下载视频观看
    +
    此项目已在googlecode上建立版本库,如果你想学习jQuery或者参与后期开发请QQ或者E-mail联系我
    +
    QQ:576525789
    +
    gmail:yanhonglei@gmail.com(使用googlecode必须要有一个google账户)
    +
    [download#15#format=1]
    + +账务管理系统(个人版)演示 diff --git a/_posts/2009-02-08-great-programer-two-points.markdown b/_posts/2009-02-08-great-programer-two-points.markdown index 612ae114..46fe48b5 100644 --- a/_posts/2009-02-08-great-programer-two-points.markdown +++ b/_posts/2009-02-08-great-programer-two-points.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "优秀程序员的两大要素:懒+笨" wordpress_id: 67 wordpress_url: http://wsria.com/?p=67 date: 2009-02-08 11:12:15 +08:00 -category: programmer +categories: programmer tags: - 懒 --- diff --git a/_posts/2009-02-08-jquery-in-action.markdown b/_posts/2009-02-08-jquery-in-action.markdown index b70f264b..f9878149 100644 --- a/_posts/2009-02-08-jquery-in-action.markdown +++ b/_posts/2009-02-08-jquery-in-action.markdown @@ -1,35 +1,34 @@ ---- -layout: post -title: "《jQuery in Action》中文版即将上市" -wordpress_id: 46 -wordpress_url: http://wsria.com/?p=46 -date: 2009-02-08 02:32:55 +08:00 -category: jquery -tags: - - 图书 ---- -消息称2月中旬《jQuery in Action》中文版就要上市了 - -虽然使用jQuery半年多了,但都是停留在应用层面上,等书出来了第一时间购买,达到理论+实践的目的 - -? - -jQuery in Action - -? - -? - -《jQuery in Action》中文版目录(试译): -序 -前言 -第1章 jQuery入门(或jQuery简介) -第2章 jQuery对象 -第3章 文档操作 -第4章 事件 -第5章 动画和效果 -第6章 实用函数 -第7章 扩展 -第8章 Ajax -第9章 插件 -附录A JavaScript:应知未知的特性 +--- +title: "《jQuery in Action》中文版即将上市" +wordpress_id: 46 +wordpress_url: http://wsria.com/?p=46 +date: 2009-02-08 02:32:55 +08:00 +categories: jquery +tags: + - 图书 +--- +消息称2月中旬《jQuery in Action》中文版就要上市了 + +虽然使用jQuery半年多了,但都是停留在应用层面上,等书出来了第一时间购买,达到理论+实践的目的 + +? + +jQuery in Action + +? + +? + +《jQuery in Action》中文版目录(试译): +序 +前言 +第1章 jQuery入门(或jQuery简介) +第2章 jQuery对象 +第3章 文档操作 +第4章 事件 +第5章 动画和效果 +第6章 实用函数 +第7章 扩展 +第8章 Ajax +第9章 插件 +附录A JavaScript:应知未知的特性 diff --git a/_posts/2009-02-10-let-me-use-jquery.markdown b/_posts/2009-02-10-let-me-use-jquery.markdown index 211039e7..f15bba6e 100644 --- a/_posts/2009-02-10-let-me-use-jquery.markdown +++ b/_posts/2009-02-10-let-me-use-jquery.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "推荐使用轻量级ajax框架-jQuery" wordpress_id: 84 wordpress_url: http://wsria.com/?p=84 date: 2009-02-10 14:19:09 +08:00 -category: ria +categories: ria tags: - jquery - ajax diff --git a/_posts/2009-02-13-finance-project1.markdown b/_posts/2009-02-13-finance-project1.markdown index ed15ee9f..91af7dc3 100644 --- a/_posts/2009-02-13-finance-project1.markdown +++ b/_posts/2009-02-13-finance-project1.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "基于Java、jQuery开发的账务管理系统(个人版)即将开源" wordpress_id: 89 wordpress_url: http://www.wsria.com/?p=89 diff --git a/_posts/2009-02-14-financial-pro-sources.markdown b/_posts/2009-02-14-financial-pro-sources.markdown index 3d6e7312..9b22d710 100644 --- a/_posts/2009-02-14-financial-pro-sources.markdown +++ b/_posts/2009-02-14-financial-pro-sources.markdown @@ -1,87 +1,86 @@ ---- -layout: post -title: "基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)" -wordpress_id: 136 -wordpress_url: http://www.wsria.com/?p=136 -date: 2009-02-14 17:35:00 +08:00 -category: financial -tags: - - 演示 - - 财务 ---- -基于Java、jQuery开发的账务管理系统(个人版)系统演示及源码共享,致力于企业级RIA应用…… - - - -在这个特殊的日子还是继续宅男的生活,过着没有情人的情人节,但是今年这个没有情人的情人节要献给广大Java、jQuery技术爱好者一份大礼,半年来周末、下班时间学习使用的账务管理系统公开源代码了,关于系统的说明请参看本博客相关文章,废话不说了,googlecode地址公布如下: - -2009.02.25更新…… -
    版本库主页:http://code.google.com/p/finance-p/
    -匿名检出版本库:svn checkout http://finance-p.googlecode.com/svn/branches/v1-Final finance
    -googlecode上去下载
    -
    -预览系统演示视频
    -
    关于系统功能的内部实现会陆续发布文章供大家研究、学习
    -
    -如果你想参与到此项目的继续开发请联系博主
    -
    -代码、功能仅供学习、参考,肯定存在一定问题,希望一块学习
    -

    更新2009.2.26

    -
    最近有一个网友下载了基于Java、jQuery开发的账务管理系统,上次的文档写的不完整,在这里向各位表示歉意,下面写一个完整的安装文档:
    -

    -
    -
    一、一个仅供学习之用的账务管理系统(个人版)
    -
    -系统简介: 1、实现了用户、组管理 2、实现了物品类别、详细管理 3、实现了基本账务(货币)管理
    -
    -开发此系统的初衷在于学习技术以便更好的应用在公司的项目中,本系统特别注重用户体验方面的设计,友好的界面和傻瓜式的操作
    -
    -前后台架构: 1、java语言(jdk1.5)、struts1.2.9、hibernate3.2.6.ga、spring2.0.8 2、前台:主要使用了轻量级的ajax开发框架jQuery,使用jQuery很轻松的降低了服务器压力提高了用户体验并且代码容易维护,尤其是jQuery的插件机制更是简易了代码 3、数据库版本为mysql5.0 4、编码:为防止ajax乱码,所以项目、数据库全部使用UTF-8编码
    -
    -浏览器兼容性: 目前的设计兼容IE7+、FireFox、Chrome(有一点路径问题) 因为IE6下的CSS文件还为完成所以使用IE6访问系统会出现布局不美观情况
    -
    -二、系统配置说明
    -
    -1、数据库
    -
      -
    • mysql,本人使用版本是5.0.18
    • -
    • 建立数据库名称为:finance,字符集设置为UTF-8,然后导入bak/finance.sql文件
    • -
    -mysql数据库属性 - -2、编译项目 - -说明:本项目没有使用标准的WebRoot格式,源代码文件夹SRC位于/WEB-INF/SRC目录下 - -
      -
    • SVN版本库和压缩包中没有class文件,即/WEB-INF目录下没有classes目录,需要自己使用eclipse编译,所有用到的jar包都在WEB-INF/lib目录下,即eclipse中build path-->libraries设置,各个框架的版本上面都已说明
    • -
    • 编译时如果使用MyEclipse的话使用J2EE1.4这个library
    • -
    • 使用tomcat或者weblogic等服务器jar包的请自行引入
    • -配置完成的eclipse目录 -
      eclipse编译环境 - -
      配置完成的eclipse目录
    -3、设置、启动服务 -
      -
    • 打开finance/WEB-INF/config/applicationContext.xml:
    • -
    • 修改第10、11行的数据库名和密码为你的mysql数据库用户名、密码
    • -
    • 部署tomcat应用: -
        -
      • 在tomcat目录confCatalinalocalhost下建立一个finance.xml
      • -
      • 内容:<Context docBase="D:projectsfinancetrunk" reloadable="true" privileged="true"></Context> -docBase根据自己的情况设置
      • -
      -
    • -
    • 做完上面两步后就可以启动服务了,如果应用名设置为finance就直接可以访问了,如果自己另外定了应用名称则需要修改common/js/plugin/weebox.js中第17行,改为:url: '/应用名称/common/js/plugin/bgiframe.js'即可
    • -
    • 访问系统最好使用Firefox浏览器,因为FF内置的JS引擎机制速度比IE快的多,或者google的Chrome浏览器也不错,其内置的JS8引擎比FF的性能还要好
    • -账务管理系统(个人版)演示
    -4、更新最新版本 - -http://finance-p.googlecode.com/svn/trunk/ - -声明:本系统仅供学习使用,禁止商业应用 版权归http://www.wsria.com所有 - -如果有问题请联系作者: - -QQ:576525789 -MSN:yanhonglei@gmail.com
    +--- +title: "基于Java、jQuery应用的账务管理系统开源了(09.3.19更新)" +wordpress_id: 136 +wordpress_url: http://www.wsria.com/?p=136 +date: 2009-02-14 17:35:00 +08:00 +categories: financial +tags: + - 演示 + - 财务 +--- +基于Java、jQuery开发的账务管理系统(个人版)系统演示及源码共享,致力于企业级RIA应用…… + + + +在这个特殊的日子还是继续宅男的生活,过着没有情人的情人节,但是今年这个没有情人的情人节要献给广大Java、jQuery技术爱好者一份大礼,半年来周末、下班时间学习使用的账务管理系统公开源代码了,关于系统的说明请参看本博客相关文章,废话不说了,googlecode地址公布如下: + +2009.02.25更新…… +
    版本库主页:http://code.google.com/p/finance-p/
    +匿名检出版本库:svn checkout http://finance-p.googlecode.com/svn/branches/v1-Final finance
    +googlecode上去下载
    +
    +预览系统演示视频
    +
    关于系统功能的内部实现会陆续发布文章供大家研究、学习
    +
    +如果你想参与到此项目的继续开发请联系博主
    +
    +代码、功能仅供学习、参考,肯定存在一定问题,希望一块学习
    +

    更新2009.2.26

    +
    最近有一个网友下载了基于Java、jQuery开发的账务管理系统,上次的文档写的不完整,在这里向各位表示歉意,下面写一个完整的安装文档:
    +

    +
    +
    一、一个仅供学习之用的账务管理系统(个人版)
    +
    +系统简介: 1、实现了用户、组管理 2、实现了物品类别、详细管理 3、实现了基本账务(货币)管理
    +
    +开发此系统的初衷在于学习技术以便更好的应用在公司的项目中,本系统特别注重用户体验方面的设计,友好的界面和傻瓜式的操作
    +
    +前后台架构: 1、java语言(jdk1.5)、struts1.2.9、hibernate3.2.6.ga、spring2.0.8 2、前台:主要使用了轻量级的ajax开发框架jQuery,使用jQuery很轻松的降低了服务器压力提高了用户体验并且代码容易维护,尤其是jQuery的插件机制更是简易了代码 3、数据库版本为mysql5.0 4、编码:为防止ajax乱码,所以项目、数据库全部使用UTF-8编码
    +
    +浏览器兼容性: 目前的设计兼容IE7+、FireFox、Chrome(有一点路径问题) 因为IE6下的CSS文件还为完成所以使用IE6访问系统会出现布局不美观情况
    +
    +二、系统配置说明
    +
    +1、数据库
    +
      +
    • mysql,本人使用版本是5.0.18
    • +
    • 建立数据库名称为:finance,字符集设置为UTF-8,然后导入bak/finance.sql文件
    • +
    +mysql数据库属性 + +2、编译项目 + +说明:本项目没有使用标准的WebRoot格式,源代码文件夹SRC位于/WEB-INF/SRC目录下 + +
      +
    • SVN版本库和压缩包中没有class文件,即/WEB-INF目录下没有classes目录,需要自己使用eclipse编译,所有用到的jar包都在WEB-INF/lib目录下,即eclipse中build path-->libraries设置,各个框架的版本上面都已说明
    • +
    • 编译时如果使用MyEclipse的话使用J2EE1.4这个library
    • +
    • 使用tomcat或者weblogic等服务器jar包的请自行引入
    • +配置完成的eclipse目录 +
      eclipse编译环境 + +
      配置完成的eclipse目录
    +3、设置、启动服务 +
      +
    • 打开finance/WEB-INF/config/applicationContext.xml:
    • +
    • 修改第10、11行的数据库名和密码为你的mysql数据库用户名、密码
    • +
    • 部署tomcat应用: +
        +
      • 在tomcat目录confCatalinalocalhost下建立一个finance.xml
      • +
      • 内容:<Context docBase="D:projectsfinancetrunk" reloadable="true" privileged="true"></Context> +docBase根据自己的情况设置
      • +
      +
    • +
    • 做完上面两步后就可以启动服务了,如果应用名设置为finance就直接可以访问了,如果自己另外定了应用名称则需要修改common/js/plugin/weebox.js中第17行,改为:url: '/应用名称/common/js/plugin/bgiframe.js'即可
    • +
    • 访问系统最好使用Firefox浏览器,因为FF内置的JS引擎机制速度比IE快的多,或者google的Chrome浏览器也不错,其内置的JS8引擎比FF的性能还要好
    • +账务管理系统(个人版)演示
    +4、更新最新版本 + +http://finance-p.googlecode.com/svn/trunk/ + +声明:本系统仅供学习使用,禁止商业应用 版权归http://www.wsria.com所有 + +如果有问题请联系作者: + +QQ:576525789 +MSN:yanhonglei@gmail.com
    diff --git a/_posts/2009-02-14-jquery-api-1.3-chm.markdown b/_posts/2009-02-14-jquery-api-1.3-chm.markdown index 247744ed..e9ab17b1 100644 --- a/_posts/2009-02-14-jquery-api-1.3-chm.markdown +++ b/_posts/2009-02-14-jquery-api-1.3-chm.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "jQuery1.3中文API下载(HTML、chm版)" wordpress_id: 151 wordpress_url: http://www.wsria.com/?p=151 date: 2009-02-14 19:19:10 +08:00 -category: jquery +categories: jquery tags: - API --- diff --git a/_posts/2009-02-14-programer-levels.markdown b/_posts/2009-02-14-programer-levels.markdown index e9e07a1f..f240fa33 100644 --- a/_posts/2009-02-14-programer-levels.markdown +++ b/_posts/2009-02-14-programer-levels.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "程序员的十种级别,看看你属于哪个级别的程序员" wordpress_id: 109 wordpress_url: http://www.wsria.com/?p=109 date: 2009-02-14 00:48:21 +08:00 -category: programmer +categories: programmer tags: - level --- diff --git a/_posts/2009-02-18-jquery-plugin-formValidator.markdown b/_posts/2009-02-18-jquery-plugin-formValidator.markdown index f8ca8606..b203eb3e 100644 --- a/_posts/2009-02-18-jquery-plugin-formValidator.markdown +++ b/_posts/2009-02-18-jquery-plugin-formValidator.markdown @@ -1,49 +1,48 @@ ---- -layout: post -title: "推荐jQuery插件系列——表单验证formValidator" -wordpress_id: 214 -wordpress_url: http://www.wsria.com/?p=214 -date: 2009-02-18 19:41:13 +08:00 -category: jquery -tags: - - plugin - - 验证 ---- -在开发各种BS架构的系统时表单验证是每个系统、网站都要做的一件事情,在客户端拦截用户的输入、选择是否合法从而降低对服务端的压力也增加用户体验,一般来说都会简单的验证必输项是否为空,或者必选项是否已选择,复杂一点的比如在注册时实时验证用户名是否重复,如此等等 - -在开发账务管理系统的时候开始想使用自己在公司项目中写的一个验证方法,但是后来想想感觉功能太单调了,虽然能够满足系统的要求但是用户体验不好,所有的错误提示都是使用的alert的方式提示用户,而且没有实时验证的功能,最终放弃了;然后就在jQuery官网插件上搜索关于验证的插件,刚刚说的几个功能都得满足,找了几个最终选择了formValidator,下面是摘自插件官网上的: - - -
    本插件于其他校验控件最大的区别有3点:
    -
    -1、校验功能可以扩展。
    -   对 中文、英文、数字、整数、实数、Email地址格式、基于HTTP协议的网址格式、电话号码格式、手机号码格式、货币格式、邮政编码、身份证号码、QQ号 码、日期等等这些控制,别的表单校验控件是代码里写死的,而formValidator是通过外部js文件来扩展的,你可以通过写正则表达式和函数来无限的扩展这些功能。
    -
    -2、实现了校验代码于html代码的完全分离。
    -你的所有信息都无需配置在校验表单元素上,你只要在js上配置你的信息。使美工(界面)和javascript工程师的工作不交织在一起
    -
    -3、你只需写一行代码就能完成一个表单元素的所有校验。你只需要写一行代码就能完成一下所有的控制
    -
      -
    • 支持所有类型客户端控件的校验
    • -
    • 支持jQuery所有的选择器语法,只要控件有唯一ID和type属性
    • -
    • 支持函数和正则表达式的扩展。提供扩展库formValidatorReg.js,你可以自由的添加、修改里面的内容。
    • -
    • 支持2种校验模式。第一种:文字提示(showword模式);第二种:弹出窗口提示(showalert模式)
    • -
    • 支持多个校验组。如果一个页面有多个提交按钮,分别做不同得提交,提交前要做不同的校验,所以你得用到校验组的功能。
    • -
    • 支持4种状态的信息提示功能,可以灵活的控制4种状态是否显示。第一种:刚打开网页的时候进行提示;第二种:获得焦点的时候进行提示;第三种:失去焦点时,校验成功时候的提示;第四种:失去焦点时,校验失败的错误提示。
    • -
    • 支持自动构建提示层。可以进行精确的定位。
    • -
    • 支持自定义错误提示信息。
    • -
    • 支持控件的字符长度、值范围、选择个数的控制。值范围支持数值型和字符型;选择的个数支持radio/checkbox/select三种控件
    • -
    • 支持2个控件值的比较。目前可以比较字符串和数值型。
    • -
    • 支持服务器端校验。
    • -
    • 支持输入格式的校验。
    • -
    -
    -大家可以到formValidator 官网上去查看具体效果及其使用方法,也可以在晚上7点之后访问我在账务管理系统中的实际应用效果供大家参考 - -但是目前jQuery的版本更新到了1.3弃用了1.1和1.2版本中@写法,例如选择一个已选择的radio在1.1或者1.2版本中可以这样写: -
    alert($(":radio[@checked]").length);
    -但是在1.3中就不可以这样写,1.3的写法: -
    alert($(":radio:checked").length);
    -所以当我前段时间更新到1.3版本中就出现问题了,我上传一个我修改过的版本供大家下载: - -[download#10#format=1] +--- +title: "推荐jQuery插件系列——表单验证formValidator" +wordpress_id: 214 +wordpress_url: http://www.wsria.com/?p=214 +date: 2009-02-18 19:41:13 +08:00 +categories: jquery +tags: + - plugin + - 验证 +--- +在开发各种BS架构的系统时表单验证是每个系统、网站都要做的一件事情,在客户端拦截用户的输入、选择是否合法从而降低对服务端的压力也增加用户体验,一般来说都会简单的验证必输项是否为空,或者必选项是否已选择,复杂一点的比如在注册时实时验证用户名是否重复,如此等等 + +在开发账务管理系统的时候开始想使用自己在公司项目中写的一个验证方法,但是后来想想感觉功能太单调了,虽然能够满足系统的要求但是用户体验不好,所有的错误提示都是使用的alert的方式提示用户,而且没有实时验证的功能,最终放弃了;然后就在jQuery官网插件上搜索关于验证的插件,刚刚说的几个功能都得满足,找了几个最终选择了formValidator,下面是摘自插件官网上的: + + +
    本插件于其他校验控件最大的区别有3点:
    +
    +1、校验功能可以扩展。
    +   对 中文、英文、数字、整数、实数、Email地址格式、基于HTTP协议的网址格式、电话号码格式、手机号码格式、货币格式、邮政编码、身份证号码、QQ号 码、日期等等这些控制,别的表单校验控件是代码里写死的,而formValidator是通过外部js文件来扩展的,你可以通过写正则表达式和函数来无限的扩展这些功能。
    +
    +2、实现了校验代码于html代码的完全分离。
    +你的所有信息都无需配置在校验表单元素上,你只要在js上配置你的信息。使美工(界面)和javascript工程师的工作不交织在一起
    +
    +3、你只需写一行代码就能完成一个表单元素的所有校验。你只需要写一行代码就能完成一下所有的控制
    +
      +
    • 支持所有类型客户端控件的校验
    • +
    • 支持jQuery所有的选择器语法,只要控件有唯一ID和type属性
    • +
    • 支持函数和正则表达式的扩展。提供扩展库formValidatorReg.js,你可以自由的添加、修改里面的内容。
    • +
    • 支持2种校验模式。第一种:文字提示(showword模式);第二种:弹出窗口提示(showalert模式)
    • +
    • 支持多个校验组。如果一个页面有多个提交按钮,分别做不同得提交,提交前要做不同的校验,所以你得用到校验组的功能。
    • +
    • 支持4种状态的信息提示功能,可以灵活的控制4种状态是否显示。第一种:刚打开网页的时候进行提示;第二种:获得焦点的时候进行提示;第三种:失去焦点时,校验成功时候的提示;第四种:失去焦点时,校验失败的错误提示。
    • +
    • 支持自动构建提示层。可以进行精确的定位。
    • +
    • 支持自定义错误提示信息。
    • +
    • 支持控件的字符长度、值范围、选择个数的控制。值范围支持数值型和字符型;选择的个数支持radio/checkbox/select三种控件
    • +
    • 支持2个控件值的比较。目前可以比较字符串和数值型。
    • +
    • 支持服务器端校验。
    • +
    • 支持输入格式的校验。
    • +
    +
    +大家可以到formValidator 官网上去查看具体效果及其使用方法,也可以在晚上7点之后访问我在账务管理系统中的实际应用效果供大家参考 + +但是目前jQuery的版本更新到了1.3弃用了1.1和1.2版本中@写法,例如选择一个已选择的radio在1.1或者1.2版本中可以这样写: +
    alert($(":radio[@checked]").length);
    +但是在1.3中就不可以这样写,1.3的写法: +
    alert($(":radio:checked").length);
    +所以当我前段时间更新到1.3版本中就出现问题了,我上传一个我修改过的版本供大家下载: + +[download#10#format=1] diff --git a/_posts/2009-02-19-my-habit-of-programmer.markdown b/_posts/2009-02-19-my-habit-of-programmer.markdown index c6133c44..5bcd6462 100644 --- a/_posts/2009-02-19-my-habit-of-programmer.markdown +++ b/_posts/2009-02-19-my-habit-of-programmer.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "我暴露了程序员的习惯" wordpress_id: 232 wordpress_url: http://www.wsria.com/?p=232 date: 2009-02-19 22:19:03 +08:00 -category: study +categories: study tags: - 学习机 --- diff --git a/_posts/2009-02-20-apply-friendly-links-readme.markdown b/_posts/2009-02-20-apply-friendly-links-readme.markdown index 05778f37..b46a0949 100644 --- a/_posts/2009-02-20-apply-friendly-links-readme.markdown +++ b/_posts/2009-02-20-apply-friendly-links-readme.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "申请友链及说明" wordpress_id: 237 wordpress_url: http://www.wsria.com/?p=237 date: 2009-02-20 11:33:31 +08:00 -category: blog +categories: blog tags: - 友链 - 博客 diff --git a/_posts/2009-02-20-google-and-jquery.markdown b/_posts/2009-02-20-google-and-jquery.markdown index 9e2e6438..7587f605 100644 --- a/_posts/2009-02-20-google-and-jquery.markdown +++ b/_posts/2009-02-20-google-and-jquery.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "从Google搜索联想到了jQuery" wordpress_id: 245 wordpress_url: http://www.wsria.com/?p=245 date: 2009-02-20 22:10:17 +08:00 -category: google +categories: google tags: - google --- diff --git a/_posts/2009-02-20-oracle-single-table-self-tree.markdown b/_posts/2009-02-20-oracle-single-table-self-tree.markdown index e0eefb5c..49615382 100644 --- a/_posts/2009-02-20-oracle-single-table-self-tree.markdown +++ b/_posts/2009-02-20-oracle-single-table-self-tree.markdown @@ -1,44 +1,43 @@ ---- -layout: post -title: "单表查询树形结构的SQL语句" -wordpress_id: 241 -wordpress_url: http://www.wsria.com/?p=241 -date: 2009-02-20 18:25:14 +08:00 -category: database -tags: - - sql - - 树 - - 关联 ---- -今天在做一个项目模块的时候遇到了点问题,数据库设计是单表自身关联,就是增加一个字段保存父级ID实现树状数据结构,开始设计的时候没有考虑要怎么查询,今天做到着一步卡住了,不晓得怎么写SQL语句,当时还在想是不是没有这种案例,但是转念一想不肯能这么经典的案例都没有解决方案,然后google了一下晓得了: - -Start with...Connect By子句递归查询 - -下面是从网上转载的内容: - - -
    -CREATE TABLE TBL_TEST
    -(
    -ID    NUMBER,
    -NAME  VARCHAR2(100 BYTE),
    -PID   NUMBER                                  DEFAULT 0
    -);
    -
    -#插入测试数据:
    -INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''1'''',''''10'''',''''0'''');
    -INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''2'''',''''11'''',''''1'''');
    -INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''3'''',''''20'''',''''0'''');
    -INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''4'''',''''12'''',''''1'''');
    -INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''5'''',''''121'''',''''2'''');
    -
    -#从Root往树末梢递归
    -select * from TBL_TEST
    -start with id=1
    -connect by prior id = pid
    -
    -#从末梢往树ROOT递归
    -select * from TBL_TEST
    -start with id=5
    -connect by prior pid = id
    -
    +--- +title: "单表查询树形结构的SQL语句" +wordpress_id: 241 +wordpress_url: http://www.wsria.com/?p=241 +date: 2009-02-20 18:25:14 +08:00 +categories: database +tags: + - sql + - 树 + - 关联 +--- +今天在做一个项目模块的时候遇到了点问题,数据库设计是单表自身关联,就是增加一个字段保存父级ID实现树状数据结构,开始设计的时候没有考虑要怎么查询,今天做到着一步卡住了,不晓得怎么写SQL语句,当时还在想是不是没有这种案例,但是转念一想不肯能这么经典的案例都没有解决方案,然后google了一下晓得了: + +Start with...Connect By子句递归查询 + +下面是从网上转载的内容: + + +
    +CREATE TABLE TBL_TEST
    +(
    +ID    NUMBER,
    +NAME  VARCHAR2(100 BYTE),
    +PID   NUMBER                                  DEFAULT 0
    +);
    +
    +#插入测试数据:
    +INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''1'''',''''10'''',''''0'''');
    +INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''2'''',''''11'''',''''1'''');
    +INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''3'''',''''20'''',''''0'''');
    +INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''4'''',''''12'''',''''1'''');
    +INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(''''5'''',''''121'''',''''2'''');
    +
    +#从Root往树末梢递归
    +select * from TBL_TEST
    +start with id=1
    +connect by prior id = pid
    +
    +#从末梢往树ROOT递归
    +select * from TBL_TEST
    +start with id=5
    +connect by prior pid = id
    +
    diff --git a/_posts/2009-02-21-javascript-compressor.markdown b/_posts/2009-02-21-javascript-compressor.markdown index 51750b68..b3b4f640 100644 --- a/_posts/2009-02-21-javascript-compressor.markdown +++ b/_posts/2009-02-21-javascript-compressor.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "分享:JavaScript在线压缩工具" wordpress_id: 249 wordpress_url: http://www.wsria.com/?p=249 date: 2009-02-21 18:27:03 +08:00 -category: javascript +categories: javascript tags: - 压缩 --- diff --git a/_posts/2009-02-21-javascript-debug-experience.markdown b/_posts/2009-02-21-javascript-debug-experience.markdown index a4bd305e..1a81d331 100644 --- a/_posts/2009-02-21-javascript-debug-experience.markdown +++ b/_posts/2009-02-21-javascript-debug-experience.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "转:Javascript 脚本的调试经验" wordpress_id: 255 wordpress_url: http://www.wsria.com/?p=255 date: 2009-02-21 20:03:38 +08:00 -category: javascript +categories: javascript tags: - 调试 --- diff --git a/_posts/2009-02-21-love-and-hate-firefox.markdown b/_posts/2009-02-21-love-and-hate-firefox.markdown index 61f3f1c9..ef4acd31 100644 --- a/_posts/2009-02-21-love-and-hate-firefox.markdown +++ b/_posts/2009-02-21-love-and-hate-firefox.markdown @@ -1,21 +1,20 @@ ---- -layout: post -title: "既爱又恨Firefox" -wordpress_id: 259 -wordpress_url: http://www.wsria.com/?p=259 -date: 2009-02-21 21:04:47 +08:00 -category: browser -tags: - - firefox ---- -既爱又恨的Firefox对于开发人员来说使用FF应该多一些,自从IE7发布以后一直感觉慢,后来迫不得已使用了Firefox浏览器,从速度上来说比IE7要快的多,且IE7在打开多个标签的时候在执行“关闭其他标签”命令会“挂起”,需要过几秒钟才反应过来,使用FF没有这种那个情况发生,且易用、插件多(firebug最好),但是大家都知道的FF内存泄露很烦人,下面看看截图吧: - -firefox占内存情况 - -这是在开了10个标签页后的内存消耗情况,如果使用的时间长消耗的更多,悲哀 - -使用google的chrome吧有一些网站不兼容…… - -哎,什么时候能有一款速度快、遵照W3C标准、有插件支持的浏览器 - -发发牢骚): +--- +title: "既爱又恨Firefox" +wordpress_id: 259 +wordpress_url: http://www.wsria.com/?p=259 +date: 2009-02-21 21:04:47 +08:00 +categories: browser +tags: + - firefox +--- +既爱又恨的Firefox对于开发人员来说使用FF应该多一些,自从IE7发布以后一直感觉慢,后来迫不得已使用了Firefox浏览器,从速度上来说比IE7要快的多,且IE7在打开多个标签的时候在执行“关闭其他标签”命令会“挂起”,需要过几秒钟才反应过来,使用FF没有这种那个情况发生,且易用、插件多(firebug最好),但是大家都知道的FF内存泄露很烦人,下面看看截图吧: + +firefox占内存情况 + +这是在开了10个标签页后的内存消耗情况,如果使用的时间长消耗的更多,悲哀 + +使用google的chrome吧有一些网站不兼容…… + +哎,什么时候能有一款速度快、遵照W3C标准、有插件支持的浏览器 + +发发牢骚): diff --git a/_posts/2009-02-21-my97-datepicker.markdown b/_posts/2009-02-21-my97-datepicker.markdown index 818fdaa8..2fc68b99 100644 --- a/_posts/2009-02-21-my97-datepicker.markdown +++ b/_posts/2009-02-21-my97-datepicker.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "推荐日期选择组件My97 DatePicker" wordpress_id: 263 wordpress_url: http://www.wsria.com/?p=263 date: 2009-02-21 21:18:47 +08:00 -category: plugins +categories: plugins tags: - my97 - 日期 diff --git a/_posts/2009-02-22-imitate-google-picture-use-jquery.markdown b/_posts/2009-02-22-imitate-google-picture-use-jquery.markdown index ae42591d..1565cb77 100644 --- a/_posts/2009-02-22-imitate-google-picture-use-jquery.markdown +++ b/_posts/2009-02-22-imitate-google-picture-use-jquery.markdown @@ -1,52 +1,51 @@ ---- -layout: post -title: "模拟google相册鼠标移动提示信息" -wordpress_id: 285 -wordpress_url: http://www.wsria.com/?p=285 -date: 2009-02-22 16:57:07 +08:00 -category: jquery -tags: - - google - - 悬浮 ---- -在jQuery中文社区中看到一篇帖子提问,http://bbs.jquery.org.cn/read.php?tid-3992.html - -模拟google的照片鼠标提示信息 - -下面介绍如何实现: - -1、在html中增加两个img -
    <img src="panda.jpg" border="0" alt="" width="231" height="300" />
    -<img src="no.jpg" alt="" width="231" height="300" />
    -2、准备一个提示信息使用的DIV层 - -<div id="tipInfo" style="display:none"></div> - - - -这里一定要主意把tipInfo的position设置为absolute,我在做的时候就卡到这里了,后来发现原来忘了设置…… - -3、javascript代码: -
    $(function() {
    -        //$('#content img:not(:eq(0))')的意思是不显示第一张图片的信息
    -	$('#content img:not(:eq(0))').hover(
    -		function() {
    -			var position = $(this).position();
    -			var tipHight = $('#tipInfo').height();
    -
    -			var endTop = (position.top + $(this).height()) - tipHight;
    -			//$(this).addClass('active');
    -			$("#tipInfo").width($(this).width())
    -				.html('作者:' + $(this).attr('author'))
    -				.show()
    -				.css({top: endTop + "px", left: position.left + "px"});
    -		},
    -		function() {
    -			//$(this).removeClass('active');
    -			$('#tipInfo').hide();
    -		}
    -	);
    -});
    -测试通过,代码很简单,点击这里查看演示 - -源码[download#12#format=1] +--- +title: "模拟google相册鼠标移动提示信息" +wordpress_id: 285 +wordpress_url: http://www.wsria.com/?p=285 +date: 2009-02-22 16:57:07 +08:00 +categories: jquery +tags: + - google + - 悬浮 +--- +在jQuery中文社区中看到一篇帖子提问,http://bbs.jquery.org.cn/read.php?tid-3992.html + +模拟google的照片鼠标提示信息 + +下面介绍如何实现: + +1、在html中增加两个img +
    <img src="panda.jpg" border="0" alt="" width="231" height="300" />
    +<img src="no.jpg" alt="" width="231" height="300" />
    +2、准备一个提示信息使用的DIV层 + +<div id="tipInfo" style="display:none"></div> + + + +这里一定要主意把tipInfo的position设置为absolute,我在做的时候就卡到这里了,后来发现原来忘了设置…… + +3、javascript代码: +
    $(function() {
    +        //$('#content img:not(:eq(0))')的意思是不显示第一张图片的信息
    +	$('#content img:not(:eq(0))').hover(
    +		function() {
    +			var position = $(this).position();
    +			var tipHight = $('#tipInfo').height();
    +
    +			var endTop = (position.top + $(this).height()) - tipHight;
    +			//$(this).addClass('active');
    +			$("#tipInfo").width($(this).width())
    +				.html('作者:' + $(this).attr('author'))
    +				.show()
    +				.css({top: endTop + "px", left: position.left + "px"});
    +		},
    +		function() {
    +			//$(this).removeClass('active');
    +			$('#tipInfo').hide();
    +		}
    +	);
    +});
    +测试通过,代码很简单,点击这里查看演示 + +源码[download#12#format=1] diff --git a/_posts/2009-02-22-javascript-editor-spket.markdown b/_posts/2009-02-22-javascript-editor-spket.markdown index c9ec073c..c25e8f5e 100644 --- a/_posts/2009-02-22-javascript-editor-spket.markdown +++ b/_posts/2009-02-22-javascript-editor-spket.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "推荐一个不错的js编辑工具Spket IDE for eclipse" wordpress_id: 296 wordpress_url: http://www.wsria.com/?p=296 date: 2009-02-22 18:12:45 +08:00 -category: eclipse +categories: eclipse tags: - eclipse - spket diff --git a/_posts/2009-02-24-jquery-json-java-struts.markdown b/_posts/2009-02-24-jquery-json-java-struts.markdown index 8a47bfcd..0e970333 100644 --- a/_posts/2009-02-24-jquery-json-java-struts.markdown +++ b/_posts/2009-02-24-jquery-json-java-struts.markdown @@ -1,194 +1,193 @@ ---- -layout: post -title: "实例解析java + jQuery + json工作过程(登录)" -wordpress_id: 300 -wordpress_url: http://www.wsria.com/?p=300 -date: 2009-02-24 21:55:29 +08:00 -category: jquery -tags: - - json - - jqury - - java - - struts ---- -本文主要讲解在java环境下使用jQuery进行JSON数据传送的交互过程 - -参考根据作者的账务管理系统(个人版) 源码下载 讲解 - - -一、相关技术、工具简介 - -1、简单介绍一下JSON,JSON是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。已键值对形式表示数据,和java中的Map的数据存储形式相似,具体细节请参考http://www.json.org/json-zh.html。 - -2、对应后台JSON的数据处理工具json-lib,包含各种格式数据的工具类,比如:JavaBean、数组、集合(Collection)等,参考API文档。 - -3、jQuery框架中的数据表现形式,如果你熟悉jQuery的话就会发现jQuery的使用的数据传输都是JSON格式,比如我们经常使用的$.ajax方法: -
    $.ajax({
    -	url : url,
    -	data : {
    -		id : chkValue
    -	},
    -	cache : false,
    -	dataType : "json",
    -	success : function(result){
    -		alert(result);
    -	}
    -);
    -其中 {...} 表示的就是JSON格式的数据 - -二、前台工作方式 -为了能够容易理解以系统登录讲解,最后会以一个实例的方式讲解 -1、登录页面 -代码请参见 http://code.google.com/p/finance-p/source/browse/trunk/login.jsp -
    用户名:
    -
    -
    -密码:
    -
    -2、登录javascript文件 login.js -
    /**
    - * 设置表单验证规则
    - */
    -function regFormValidator() {
    -	$.formValidator.initConfig({formid:"loginForm"});
    -	$("#loginName").formValidator({
    -		onshow : "请输入用户名",
    -		onfocus : "用户名至少2个字,最多4个字"
    -	}).inputValidator({
    -		min : 1,
    -		onerror : "你输入的用户名非法,请确认"
    -	});
    -
    -	$("#password").formValidator({
    -		onshow : "请输入密码"
    -	}).inputValidator({
    -		min : 6,
    -		onerror : "密码在6位以上,请确认"
    -	});
    -}
    -
    -$(function() {
    -	// 注册表单验证插件
    -	regFormValidator();
    -
    -	$('#submit').click(function(){
    -		// 验证输入的用户名、密码是否正确
    -		var valid = jQuery.formValidator.pageIsValid('1');
    -		if (valid) {
    -			$(this).attr('value', '正在登录……').attr('disabled', true);
    -		} else {
    -			return;
    -		}
    -
    -		// 发送请求
    -		$.ajax({
    -			url	: 'login.do',
    -			data	: { loginName:$('#loginName').val(), password: $('#password').val() },
    -			success : function(result){
    -				// 根据result返回信息判断是否登录成功
    -				if(result && result == 'success') {
    -					window.location.href = 'index.jsp';
    -				} else {
    -					alert('登录失败,用户名或密码错误,请重试!');
    -				}
    -			}
    -		});
    -
    -	});
    -});
    -这样当点击“登录”按钮的时候触发ajax请求: -
      -
    1. 验证表单完整性
    2. -
    3. 发送ajax请求到后台,值通过data键已JSON格式传送至后台
    4. -
    5. 如果后台返回的result为success时表示登录成功,页面跳转至首页index.jsp
    6. -
    -三、后台工作方式 - -后台要比前台操作复杂一些,以为涉及到数据库、编码或者一些业务逻辑 - -1、获得请求参数 - -有两种方式: - -这我们主要讲解怎么通过json-lib获取参数 - -首先我们来写一个公共的方法,可以返回一个net.sf.json.JSONObject对象,具体代码如下: -
    /**
    - * 读取请求参数转换JSONObject对象
    - *
    - * @param request HttpServletRequest 对象
    - * @return json格式的String对象
    - * @throws Exception
    - */
    -@SuppressWarnings("unchecked")
    -protected JSONObject readJson(HttpServletRequest request) throws Exception {
    -	JSONObject jsonObject = new JSONObject();
    -	try {
    -		Map parameterMap = request.getParameterMap();
    -                // 通过循环遍历的方式获得key和value并set到JSONObject中
    -		Iterator paIter = parameterMap.keySet().iterator();
    -		while (paIter.hasNext()) {
    -			String key = paIter.next().toString();
    -			String[] values = (String[])parameterMap.get(key);
    -			jsonObject.accumulate(key, values[0]);
    -		}
    -		log.debug("从客户端获得json=" + jsonObject.toString());
    -	} catch (Exception e) {
    -		log.error("获取json数据出错,错误信息如下:nt" + e.getMessage());
    -		e.printStackTrace();
    -		throw e;
    -	}
    -	return jsonObject;
    -}
    -通过这个方法我们可以获得一个JSONObject对象,然后就可以通过key获得对应的value; - -2、登录处理Action -
    public ActionForward login(ActionMapping mapping, ActionForm actionForm,
    -             HttpServletRequest request,HttpServletResponse response) throws Exception {
    -	JSONObject jsonObject = readJson(request);
    -	String name = jsonObject.getString("loginName");
    -	String pass = jsonObject.getString("password");
    -	try {
    -		int loginFlag = userManager.validLogin(name, pass);
    -		if (loginFlag == UserManager.LOGIN_SUCCESS) {
    -			User user = userManager.getUserByNameAndPass(name, pass);
    -			UserUtil.saveUser2Session(user, request);
    -			log.info("用户<" + user.getUserName()
    -                              + ",ip=" + request.getRemoteAddr() + ">登录系统");
    -			print(response, RESBONSE_SUCCESS);
    -		} else if (loginFlag == UserManager.LOGIN_FAIL) {
    -			print(response, RESBONSE_ERROR);
    -		}
    -	} catch (Exception e) {
    -		e.printStackTrace();
    -	}
    -	return null;
    -}
    -解释: - -在34行我们通过刚刚准备好的readJson方法获得一个JSONObject对象,接下来通过key获得用户名和密码,接下来就是业务逻辑的验证工作了,通过后我们向前台返回请求结果。 -我们还需要一个小方法向前台写结果,如上面44、46行 -
    protected void print(HttpServletResponse response, String info) throws IOException {
    -	try {
    -		response.getWriter().print(info);
    -	} catch (IOException e) {
    -		e.printStackTrace();
    -		throw e;
    -	}
    -}
    -
    这里有一点要说明,在获得输出流的时候有个小插曲,我在开发的时候使用的tomcat5.5.26版本,
    -当时的写法为:
    -
    response.getOutputStream().print(info);
    -后来源码开源后一个网友使用的tomcat6版本,说系统不能正常运行,后来他查到了原因,因为获得输出流时出了问题, -改成getWriter就没有问题了,集体也没有搞清除为什么会是这样……
    -基于java开发时会使用struts,struts需要返回一个ActionMapping对象,但是在ajax请求不需要返回特定页面,因为根本没有跳转页面的动作,解决办法很简单,直接return null就可以了 - -输出结果后jQuery的ajax的success方法就接收到了请求结果,然后就可以根据结果处理业务逻辑了O(∩_∩)O~ - -OK,到此整个请求结束,有不明白的请留言或者到“关于”中联系我 - -注:本文为原创文章,转载请注明来自 http://www.wsria.com/archives/300 -作者:www.wsria.com +--- +title: "实例解析java + jQuery + json工作过程(登录)" +wordpress_id: 300 +wordpress_url: http://www.wsria.com/?p=300 +date: 2009-02-24 21:55:29 +08:00 +categories: jquery +tags: + - json + - jqury + - java + - struts +--- +本文主要讲解在java环境下使用jQuery进行JSON数据传送的交互过程 + +参考根据作者的账务管理系统(个人版) 源码下载 讲解 + + +一、相关技术、工具简介 + +1、简单介绍一下JSON,JSON是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。已键值对形式表示数据,和java中的Map的数据存储形式相似,具体细节请参考http://www.json.org/json-zh.html。 + +2、对应后台JSON的数据处理工具json-lib,包含各种格式数据的工具类,比如:JavaBean、数组、集合(Collection)等,参考API文档。 + +3、jQuery框架中的数据表现形式,如果你熟悉jQuery的话就会发现jQuery的使用的数据传输都是JSON格式,比如我们经常使用的$.ajax方法: +
    $.ajax({
    +	url : url,
    +	data : {
    +		id : chkValue
    +	},
    +	cache : false,
    +	dataType : "json",
    +	success : function(result){
    +		alert(result);
    +	}
    +);
    +其中 {...} 表示的就是JSON格式的数据 + +二、前台工作方式 +为了能够容易理解以系统登录讲解,最后会以一个实例的方式讲解 +1、登录页面 +代码请参见 http://code.google.com/p/finance-p/source/browse/trunk/login.jsp +
    用户名:
    +
    +
    +密码:
    +
    +2、登录javascript文件 login.js +
    /**
    + * 设置表单验证规则
    + */
    +function regFormValidator() {
    +	$.formValidator.initConfig({formid:"loginForm"});
    +	$("#loginName").formValidator({
    +		onshow : "请输入用户名",
    +		onfocus : "用户名至少2个字,最多4个字"
    +	}).inputValidator({
    +		min : 1,
    +		onerror : "你输入的用户名非法,请确认"
    +	});
    +
    +	$("#password").formValidator({
    +		onshow : "请输入密码"
    +	}).inputValidator({
    +		min : 6,
    +		onerror : "密码在6位以上,请确认"
    +	});
    +}
    +
    +$(function() {
    +	// 注册表单验证插件
    +	regFormValidator();
    +
    +	$('#submit').click(function(){
    +		// 验证输入的用户名、密码是否正确
    +		var valid = jQuery.formValidator.pageIsValid('1');
    +		if (valid) {
    +			$(this).attr('value', '正在登录……').attr('disabled', true);
    +		} else {
    +			return;
    +		}
    +
    +		// 发送请求
    +		$.ajax({
    +			url	: 'login.do',
    +			data	: { loginName:$('#loginName').val(), password: $('#password').val() },
    +			success : function(result){
    +				// 根据result返回信息判断是否登录成功
    +				if(result && result == 'success') {
    +					window.location.href = 'index.jsp';
    +				} else {
    +					alert('登录失败,用户名或密码错误,请重试!');
    +				}
    +			}
    +		});
    +
    +	});
    +});
    +这样当点击“登录”按钮的时候触发ajax请求: +
      +
    1. 验证表单完整性
    2. +
    3. 发送ajax请求到后台,值通过data键已JSON格式传送至后台
    4. +
    5. 如果后台返回的result为success时表示登录成功,页面跳转至首页index.jsp
    6. +
    +三、后台工作方式 + +后台要比前台操作复杂一些,以为涉及到数据库、编码或者一些业务逻辑 + +1、获得请求参数 + +有两种方式: + +这我们主要讲解怎么通过json-lib获取参数 + +首先我们来写一个公共的方法,可以返回一个net.sf.json.JSONObject对象,具体代码如下: +
    /**
    + * 读取请求参数转换JSONObject对象
    + *
    + * @param request HttpServletRequest 对象
    + * @return json格式的String对象
    + * @throws Exception
    + */
    +@SuppressWarnings("unchecked")
    +protected JSONObject readJson(HttpServletRequest request) throws Exception {
    +	JSONObject jsonObject = new JSONObject();
    +	try {
    +		Map parameterMap = request.getParameterMap();
    +                // 通过循环遍历的方式获得key和value并set到JSONObject中
    +		Iterator paIter = parameterMap.keySet().iterator();
    +		while (paIter.hasNext()) {
    +			String key = paIter.next().toString();
    +			String[] values = (String[])parameterMap.get(key);
    +			jsonObject.accumulate(key, values[0]);
    +		}
    +		log.debug("从客户端获得json=" + jsonObject.toString());
    +	} catch (Exception e) {
    +		log.error("获取json数据出错,错误信息如下:nt" + e.getMessage());
    +		e.printStackTrace();
    +		throw e;
    +	}
    +	return jsonObject;
    +}
    +通过这个方法我们可以获得一个JSONObject对象,然后就可以通过key获得对应的value; + +2、登录处理Action +
    public ActionForward login(ActionMapping mapping, ActionForm actionForm,
    +             HttpServletRequest request,HttpServletResponse response) throws Exception {
    +	JSONObject jsonObject = readJson(request);
    +	String name = jsonObject.getString("loginName");
    +	String pass = jsonObject.getString("password");
    +	try {
    +		int loginFlag = userManager.validLogin(name, pass);
    +		if (loginFlag == UserManager.LOGIN_SUCCESS) {
    +			User user = userManager.getUserByNameAndPass(name, pass);
    +			UserUtil.saveUser2Session(user, request);
    +			log.info("用户<" + user.getUserName()
    +                              + ",ip=" + request.getRemoteAddr() + ">登录系统");
    +			print(response, RESBONSE_SUCCESS);
    +		} else if (loginFlag == UserManager.LOGIN_FAIL) {
    +			print(response, RESBONSE_ERROR);
    +		}
    +	} catch (Exception e) {
    +		e.printStackTrace();
    +	}
    +	return null;
    +}
    +解释: + +在34行我们通过刚刚准备好的readJson方法获得一个JSONObject对象,接下来通过key获得用户名和密码,接下来就是业务逻辑的验证工作了,通过后我们向前台返回请求结果。 +我们还需要一个小方法向前台写结果,如上面44、46行 +
    protected void print(HttpServletResponse response, String info) throws IOException {
    +	try {
    +		response.getWriter().print(info);
    +	} catch (IOException e) {
    +		e.printStackTrace();
    +		throw e;
    +	}
    +}
    +
    这里有一点要说明,在获得输出流的时候有个小插曲,我在开发的时候使用的tomcat5.5.26版本,
    +当时的写法为:
    +
    response.getOutputStream().print(info);
    +后来源码开源后一个网友使用的tomcat6版本,说系统不能正常运行,后来他查到了原因,因为获得输出流时出了问题, +改成getWriter就没有问题了,集体也没有搞清除为什么会是这样……
    +基于java开发时会使用struts,struts需要返回一个ActionMapping对象,但是在ajax请求不需要返回特定页面,因为根本没有跳转页面的动作,解决办法很简单,直接return null就可以了 + +输出结果后jQuery的ajax的success方法就接收到了请求结果,然后就可以根据结果处理业务逻辑了O(∩_∩)O~ + +OK,到此整个请求结束,有不明白的请留言或者到“关于”中联系我 + +注:本文为原创文章,转载请注明来自 http://www.wsria.com/archives/300 +作者:www.wsria.com diff --git a/_posts/2009-02-26-custom-loading-picture.markdown b/_posts/2009-02-26-custom-loading-picture.markdown index f62c7d8d..2ec379a2 100644 --- a/_posts/2009-02-26-custom-loading-picture.markdown +++ b/_posts/2009-02-26-custom-loading-picture.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "自己动手定制ajax loading图片" wordpress_id: 375 wordpress_url: http://www.wsria.com/?p=375 date: 2009-02-26 23:31:34 +08:00 -category: ajax +categories: ajax tags: - ajax - 图片 diff --git a/_posts/2009-02-28-java-jquery-ajax-json-login.markdown b/_posts/2009-02-28-java-jquery-ajax-json-login.markdown index 9750fedf..7cc6da1b 100644 --- a/_posts/2009-02-28-java-jquery-ajax-json-login.markdown +++ b/_posts/2009-02-28-java-jquery-ajax-json-login.markdown @@ -1,161 +1,160 @@ ---- -layout: post -title: "实例解析java + jQuery + json工作过程(获取JSON数据)" -wordpress_id: 369 -wordpress_url: http://www.wsria.com/?p=369 -date: 2009-02-28 18:39:27 +08:00 -category: jquery -tags: - - jquery - - json - - struts ---- -前天刚刚写的一篇关于《实例解析java + ajax(jQuery) + json工作过程(登录)》的文章引起了网友们的关注和好评, - -自从本站的账务管理系统(个人版)开源 以后很多网友询问系统的实现方式,我一一解释……,为此今天写文章详细讲解系统功能的实现细节。 - -以本站的开源项目账务管理系统的“债务人”模块为例子讲解 -

    一、效果预览

    -债务人详细页面效果预览 -

    二、实现方式

    -
    基本思想就是绑定列表中的人员名称触发事件,获得当前人员的ID发送ajax请求到后台,后台根据ID查询详细信息,返回JSON数据结果至前台,前台通过对话框组件显示人员详细
    -1、绑定click事件到列表的人员名称 -在项目中的iouser/js/iouser.js文件中有这样一个方法: -
    /**
    - * 点击名称弹出详细
    - */
    -function regShowDetail() {
    -	$("span[name=iouid]").unbind('click').bind('click', function(){
    -		showDetail($(this).parent().parent().find('input[name=chk]').val());
    -	});
    -}
    -通过regShowDetail绑定了点击人员时执行showDetail的事件, -
    $(this).parent().parent().find('input[name=chk]').val()
    -//上面这句话就是获得列表左侧的复选框的value值以便传送给后台
    - -
     * 查看用户详细资料
    - * @param {} userId 用户ID
    - */
    -function showDetail(userId) {
    -	// 创建一个对话框组件
    -	var dialog = $.weeboxs.open('showDetail.html', {
    -		title: '正在加载用户信息……',
    -		contentType: 'ajax',
    -		width: 600,
    -		height: 350,
    -		animate: true,
    -		clickClose: false,
    -		type: 'wee',
    -		showOk: false,
    -		cancelBtnName: '关 闭',
    -		onopen: innerShowDetail
    -	});
    -
    -	//内部函数,实现债务人详细信息的载入、设置值
    -	function innerShowDetail() {
    -		// 获得JSON格式的数据
    -		$.getJSON('load.do',{id : userId}, function(json) {
    -			// 根据key设置value
    -			for (key in json) {
    -				if(key == 'id'){
    -					$('#detailDiv #' + key).val(json[key]);
    -				} else {
    -					if(json[key] == ''){
    -						// 没有值设置为空
    -						$('#detailDiv #' + key).html('?');
    -					} else if(key == 'sex'){
    -						$('#detailDiv #' + key).html(json[key] == '0' ? '女' : '男');
    -					} else if(key == 'group'){
    -						if(json[key] != null) {
    -							$('#detailDiv #' + key).html(json[key]['groupName']);
    -						}
    -					} else {
    -						$('#detailDiv #' + key).html(json[key]);
    -					}
    -				}
    -			}
    -
    -			//设置对话框标题和内容
    -			$('#detailDiv').removeAttr('class');
    -			dialog.setTitle('查看人员[' + json['userName'] + ']详细资料');
    -			dialog.setContent($('#detailDiv').html());
    -		});
    -	}
    -}
    - -附: - +--- +title: "实例解析java + jQuery + json工作过程(获取JSON数据)" +wordpress_id: 369 +wordpress_url: http://www.wsria.com/?p=369 +date: 2009-02-28 18:39:27 +08:00 +categories: jquery +tags: + - jquery + - json + - struts +--- +前天刚刚写的一篇关于《实例解析java + ajax(jQuery) + json工作过程(登录)》的文章引起了网友们的关注和好评, + +自从本站的账务管理系统(个人版)开源 以后很多网友询问系统的实现方式,我一一解释……,为此今天写文章详细讲解系统功能的实现细节。 + +以本站的开源项目账务管理系统的“债务人”模块为例子讲解 +

    一、效果预览

    +债务人详细页面效果预览 +

    二、实现方式

    +
    基本思想就是绑定列表中的人员名称触发事件,获得当前人员的ID发送ajax请求到后台,后台根据ID查询详细信息,返回JSON数据结果至前台,前台通过对话框组件显示人员详细
    +1、绑定click事件到列表的人员名称 +在项目中的iouser/js/iouser.js文件中有这样一个方法: +
    /**
    + * 点击名称弹出详细
    + */
    +function regShowDetail() {
    +	$("span[name=iouid]").unbind('click').bind('click', function(){
    +		showDetail($(this).parent().parent().find('input[name=chk]').val());
    +	});
    +}
    +通过regShowDetail绑定了点击人员时执行showDetail的事件, +
    $(this).parent().parent().find('input[name=chk]').val()
    +//上面这句话就是获得列表左侧的复选框的value值以便传送给后台
    + +
     * 查看用户详细资料
    + * @param {} userId 用户ID
    + */
    +function showDetail(userId) {
    +	// 创建一个对话框组件
    +	var dialog = $.weeboxs.open('showDetail.html', {
    +		title: '正在加载用户信息……',
    +		contentType: 'ajax',
    +		width: 600,
    +		height: 350,
    +		animate: true,
    +		clickClose: false,
    +		type: 'wee',
    +		showOk: false,
    +		cancelBtnName: '关 闭',
    +		onopen: innerShowDetail
    +	});
    +
    +	//内部函数,实现债务人详细信息的载入、设置值
    +	function innerShowDetail() {
    +		// 获得JSON格式的数据
    +		$.getJSON('load.do',{id : userId}, function(json) {
    +			// 根据key设置value
    +			for (key in json) {
    +				if(key == 'id'){
    +					$('#detailDiv #' + key).val(json[key]);
    +				} else {
    +					if(json[key] == ''){
    +						// 没有值设置为空
    +						$('#detailDiv #' + key).html('?');
    +					} else if(key == 'sex'){
    +						$('#detailDiv #' + key).html(json[key] == '0' ? '女' : '男');
    +					} else if(key == 'group'){
    +						if(json[key] != null) {
    +							$('#detailDiv #' + key).html(json[key]['groupName']);
    +						}
    +					} else {
    +						$('#detailDiv #' + key).html(json[key]);
    +					}
    +				}
    +			}
    +
    +			//设置对话框标题和内容
    +			$('#detailDiv').removeAttr('class');
    +			dialog.setTitle('查看人员[' + json['userName'] + ']详细资料');
    +			dialog.setContent($('#detailDiv').html());
    +		});
    +	}
    +}
    + +附: + diff --git a/_posts/2009-03-01-hr-tell-you-how-to-resume.markdown b/_posts/2009-03-01-hr-tell-you-how-to-resume.markdown index f25ba949..a8320e99 100644 --- a/_posts/2009-03-01-hr-tell-you-how-to-resume.markdown +++ b/_posts/2009-03-01-hr-tell-you-how-to-resume.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "HR教你怎么投简历" wordpress_id: 412 wordpress_url: http://www.wsria.com/?p=412 diff --git a/_posts/2009-03-02-jquery-plugin-nyroModal.markdown b/_posts/2009-03-02-jquery-plugin-nyroModal.markdown index 8134fa38..d4b2d858 100644 --- a/_posts/2009-03-02-jquery-plugin-nyroModal.markdown +++ b/_posts/2009-03-02-jquery-plugin-nyroModal.markdown @@ -1,24 +1,23 @@ ---- -layout: post -title: "jQuery.plugin——强大的遮罩层(nyroModal)" -wordpress_id: 429 -wordpress_url: http://www.wsria.com/?p=429 -date: 2009-03-02 21:57:43 +08:00 -category: jquery -tags: - - 遮罩 - - jquery ---- -在cssrain那里看到的,特转载过来分享给大家;效果做的很华丽,给用户柔和的感觉,比blockUI还要好 -
    强大的 遮罩层, 它包括以下功能:
    -
      -
    • 以ajax远程加载内容
    • -
    • 以ajax加载内容
    • -
    • 显示图片
    • -
    • 对话框
    • -
    • iframe
    • -
    • 等等……
    • -
    -
    -
    演示:http://nyromodal.nyrodev.com/
    -[download#18#format=1]
    +--- +title: "jQuery.plugin——强大的遮罩层(nyroModal)" +wordpress_id: 429 +wordpress_url: http://www.wsria.com/?p=429 +date: 2009-03-02 21:57:43 +08:00 +categories: jquery +tags: + - 遮罩 + - jquery +--- +在cssrain那里看到的,特转载过来分享给大家;效果做的很华丽,给用户柔和的感觉,比blockUI还要好 +
    强大的 遮罩层, 它包括以下功能:
    +
      +
    • 以ajax远程加载内容
    • +
    • 以ajax加载内容
    • +
    • 显示图片
    • +
    • 对话框
    • +
    • iframe
    • +
    • 等等……
    • +
    +
    +
    演示:http://nyromodal.nyrodev.com/
    +[download#18#format=1]
    diff --git a/_posts/2009-03-11-ie-debug-tool-fullsource.markdown b/_posts/2009-03-11-ie-debug-tool-fullsource.markdown index abf687dc..f72a43ec 100644 --- a/_posts/2009-03-11-ie-debug-tool-fullsource.markdown +++ b/_posts/2009-03-11-ie-debug-tool-fullsource.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "IE浏览器下的JS实用调试小工具——fullsource(2K)" wordpress_id: 461 wordpress_url: http://www.wsria.com/?p=461 date: 2009-03-11 22:20:09 +08:00 -category: tools +categories: tools tags: - IE - 工具 diff --git a/_posts/2009-03-25-jquery-one-line-code-create-nine-nine-table.markdown b/_posts/2009-03-25-jquery-one-line-code-create-nine-nine-table.markdown index ac86735b..b89d3db4 100644 --- a/_posts/2009-03-25-jquery-one-line-code-create-nine-nine-table.markdown +++ b/_posts/2009-03-25-jquery-one-line-code-create-nine-nine-table.markdown @@ -1,52 +1,51 @@ ---- -layout: post -title: "一行jQuery代码打印九九乘法表" -wordpress_id: 471 -wordpress_url: http://www.wsria.com/?p=471 -date: 2009-03-25 19:30:46 +08:00 -category: jquery -tags: - - 乘法表 ---- -网友西_西_佛用一行代码打印九九乘法表 -展示了jQuery的级联语法,简介且功能强大 -这个程序的要求:不能用if,for,var xx =等常见js代码。只能用jquery的链式代码。 - -于是,要生成99表,必然要递归。可递归必然有终止的条件,那就得有if(n==0)return这样的 -代码,又是不被允许的。那么jquery怎么才能终止呢?我想到了用find('p:lt(n)'),n<0的时候 -是会终止的。 - -而bind的使用,纯粹是为了递归循环。我们首先建立一个对象,绑定一个事件,无所谓了,比如error,然后在这个对象最后,triggerHandler一下,就能完成递归了。 - -这个程序有两个递归循环,外层的是建立九个,内层的是建立9个,在创建p的时候,把99口诀打出来。 -代码如下: - -
    -$(document).ready(function(){
    -	
    -	$("
    ").data('fact',8).css('margin','10px') - .appendTo(document.body) - .bind('error',function(){ - $(this).parent().find("div:lt("+ ($(this).data('fact')) +")").eq(0) - .before($(this).clone(true).data('fact',$(this).data('fact') - 1)) - .unbind('error') - .append( - $("

    ").data('fact',$(this).data('fact')).width(20).height(20) - .css('display','inline').css('margin','10px') - .appendTo($(this)) - .bind('focus',function(){ - $(this).text(($(this).data('fact') + 1) + - "x" + - ($(this).parent().data('fact') + 1) + - "=" + - ($(this).data('fact') + 1)*($(this).parent().data('fact') + 1) - ) - .parent().find("p:lt("+ ($(this).data('fact')) +")").eq(0) - .before($(this).clone(true).data('fact',$(this).data('fact') - 1)) - .unbind('focus') - .parent().find("p").eq(0).triggerHandler('focus'); - }).triggerHandler('focus') - ).parent().find("div").eq(0).triggerHandler('error'); - }).triggerHandler('error'); -}); -

    +--- +title: "一行jQuery代码打印九九乘法表" +wordpress_id: 471 +wordpress_url: http://www.wsria.com/?p=471 +date: 2009-03-25 19:30:46 +08:00 +categories: jquery +tags: + - 乘法表 +--- +网友西_西_佛用一行代码打印九九乘法表 +展示了jQuery的级联语法,简介且功能强大 +这个程序的要求:不能用if,for,var xx =等常见js代码。只能用jquery的链式代码。 + +于是,要生成99表,必然要递归。可递归必然有终止的条件,那就得有if(n==0)return这样的 +代码,又是不被允许的。那么jquery怎么才能终止呢?我想到了用find('p:lt(n)'),n<0的时候 +是会终止的。 + +而bind的使用,纯粹是为了递归循环。我们首先建立一个对象,绑定一个事件,无所谓了,比如error,然后在这个对象最后,triggerHandler一下,就能完成递归了。 + +这个程序有两个递归循环,外层的是建立九个,内层的是建立9个,在创建p的时候,把99口诀打出来。 +代码如下: + +
    +$(document).ready(function(){
    +	
    +	$("
    ").data('fact',8).css('margin','10px') + .appendTo(document.body) + .bind('error',function(){ + $(this).parent().find("div:lt("+ ($(this).data('fact')) +")").eq(0) + .before($(this).clone(true).data('fact',$(this).data('fact') - 1)) + .unbind('error') + .append( + $("

    ").data('fact',$(this).data('fact')).width(20).height(20) + .css('display','inline').css('margin','10px') + .appendTo($(this)) + .bind('focus',function(){ + $(this).text(($(this).data('fact') + 1) + + "x" + + ($(this).parent().data('fact') + 1) + + "=" + + ($(this).data('fact') + 1)*($(this).parent().data('fact') + 1) + ) + .parent().find("p:lt("+ ($(this).data('fact')) +")").eq(0) + .before($(this).clone(true).data('fact',$(this).data('fact') - 1)) + .unbind('focus') + .parent().find("p").eq(0).triggerHandler('focus'); + }).triggerHandler('focus') + ).parent().find("div").eq(0).triggerHandler('error'); + }).triggerHandler('error'); +}); +

    diff --git a/_posts/2009-03-29-beutiful-template-made-by-xhtml+css.markdown b/_posts/2009-03-29-beutiful-template-made-by-xhtml+css.markdown index 878b1f87..76e77c75 100644 --- a/_posts/2009-03-29-beutiful-template-made-by-xhtml+css.markdown +++ b/_posts/2009-03-29-beutiful-template-made-by-xhtml+css.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "推荐国外著名的xhtml+css模板" wordpress_id: 481 wordpress_url: http://www.wsria.com/?p=481 date: 2009-03-29 01:44:28 +08:00 -category: ria +categories: ria tags: - 模板 --- diff --git a/_posts/2009-04-04-6-use-ajax-and-6-dont-use-ajax.markdown b/_posts/2009-04-04-6-use-ajax-and-6-dont-use-ajax.markdown index 588cf3b2..fefe4dbf 100644 --- a/_posts/2009-04-04-6-use-ajax-and-6-dont-use-ajax.markdown +++ b/_posts/2009-04-04-6-use-ajax-and-6-dont-use-ajax.markdown @@ -1,68 +1,67 @@ ---- -layout: post -title: "6个你必须用到AJAX的地方与6个不必用到的地方" -wordpress_id: 505 -wordpress_url: http://www.wsria.com/?p=505 -date: 2009-04-04 22:27:38 +08:00 -category: ria -tags: - - ajax ---- -用ajax开发系统、网站确实好给客户带来了很大的方便,也降低了服务器的压力,但是我们在开发的时候不能盲目的使用ajax,不是所有的情况都适合使用ajax的,下面是从CSDN上面看到的,分享给大家。 - - - -下面是当前网页应用程序应该出现的地方: - -
    表单是很慢的,非常慢。尝试编辑位于del.icio.us上面的一个书签?点击编辑链接打开一个编辑书签的表单页面,然后编辑你的内容并点击提交 按钮等待整个提交过程结束,最后返回上一页并向下滚动到你刚才编辑的书签那里查看内容是否已经正确更改。那AJAX呢?点击编辑链接马上开始更改标签内 容,点击提交按钮开始异步传输标签编辑的内容并立即看到更改后的内容而无需重载整个页面。
    - -
    总而言之,带有深层树状导航的应用程序通常是一个噩梦。在大多数情况中简单平直的拓扑结构以及搜索/标记可以很好的工作。但是如果一个 应用程序真正使用深层树状导航,使用JavaScript来管理拓扑ui(user interface用户接口),则使用Ajax懒加载深层数据可以降低服务器的负载。举例来说,为了阅读一个只有一行的结果来加载整个一个新页面是非常耗时的。
    - -
    在一个允许用户创建实时讨论的信息公 告系统中,迫使用户一次又一次的更新完页面看到答复是非常愚蠢的。回复应该是实时的,用户不应被迫总是去痴迷于刷新操作。即使是gmail这个已经对以前 像hotmail/yahoo mail的收件箱刷新,刷新收件箱标记的操作有所改进,也并没有充分的使用Ajax的功能来提示有新邮件到达。
    - -
    如果Ajax提交过程没有一个协调的UI提示是非常糟糕的,通过使用Ajax来提交一个调查或是否选择可以减少提交过程等待的痛苦。通过减少点击的 等待时间,Ajax应用程序变得越来越有交互性-如果要用40秒来提交一个投票,除非非常在意的话大多数人会选择放弃。如果只花1秒呢,非常大比例的人会 乐于参加投票的。(我在Netflix versus有2008张电影投票在IMDb.com有210张电影投票)
    - -
    应用一个过滤、按日期排序、按日期和姓名排序、打开或关闭过滤器等等。任何一种高交换型操作应该交给JavaScript来处理而不是通过向服务器来提交一系列的请求。在查找或者操作大量数据的时候带来的视图上的改变最多不会超过30秒,Ajax真的使这些操作加速了。
    - -
    一些软件/JavaScript是擅长于帮助用户完成键入相同的文字或可以预测的文字的工作的。在del.icio.us 和 Gmail 中该功能是非常有益的,可以用来快速增加标记/email等。
    -对于一个频繁使用的应用程序诸如网页邮件客户端或博客阅读器来说,用户有充足的时间来学习如何使用新的UI概念但是他们却无法接受一个非常缓慢 的反应速度。这种应用为Ajax变的更加普及起到了一个完美的杠杆作用。随着用户使用频率的增加,更多的Ajax部件应该加强用户的使用体验。 - -但是对于网页应用程序来说,把每件事甚至任何事都用JavaScript来实现也是没有意义的。Ajax只是针对一些特定的环境才能带来显著的 帮助。在Ajax出现之前网页应用程序已经可以工作的很好了并且目前在网页开发中Ajax还存在着许多的缺陷和缺点。就算不从服务器端取得一个异步的信息 数据流一个平直的html网页日志也可以工作的很好。对于文档或文档之间的跳转来说,老旧的纯HTML仍然是最好的选择。简单或很少使用的应用程序就算不 用JavaScript同样可以很好的工作。 - -下面是一些不应该用到Ajax的地方: - -
    就算表单是Ajax技术的最大受益人,一个简单内容的表单,或提交订货单,或一次性的很少用到的表单都不应该使用以Ajax驱动的表单提交机制。总的来说,如果一个表单不是很长用,或已经工作的很好,那么就算使用Ajax也没有什么帮助。
    - -
    实时搜索带来的痛苦要远大于他带来的帮助。这就是为什么Google Suggest还处于beta测试而并没有放在主页上的原因。在Start.com Live.com上搜索的时候你是不能使用返回按钮来查看上一次搜索或返回上一页的。或许还没有人来完成这项工作,但是完成这个工作应该是很困难的至少是 不太明知的或者会因此带来更多的麻烦。(译注:现在已经有很多开源的框架可以实现历史记录功能)
    - -
    总的来说,使用Ajax为一个基础的网站/程序做导航是一个可怕的念头。谁会把用来使自己的程序变的更好的时间花在编写代码模仿浏览器的行为上面?在基础页面中导航的操作中JavaScript是没有用的。
    - -
    Ajax可以不用整页刷新来动态更新页面中改变的一小部分。但是如果一页上的大部分内容都需要更新,那为什么不从服务器那里获得一个新页面呢?
    - -
    虽然看上去Ajax是一个纯UI技术,其实不是这样的。他实际上是一个数据同步、操作、传输的技术。要想得到一个稳定的干净的网页程序,不使用 Ajax/JavaScript来直接完成用户接口是明智的。JavaScript可以分散分布并简单的操作XHTML/HTML DOM,根据CSS规则来决定如何让UI显示数据。
    - -滑块选择控件、拖拽控件、弹性控件(此处原文为bouncies,不知指为何物?)、鼠标样式、天气预报控件,这些小部件应该可以被更直接的控件代 替或者为了整洁干脆整个去掉。为了选择一种颜色,也许滑块选择控件可以选择一个正确的阴影颜色,但是在一个商店中选择一个价格,使用滑块选择控件选到分这 个单位对于用户来说有点过分。 +--- +title: "6个你必须用到AJAX的地方与6个不必用到的地方" +wordpress_id: 505 +wordpress_url: http://www.wsria.com/?p=505 +date: 2009-04-04 22:27:38 +08:00 +categories: ria +tags: + - ajax +--- +用ajax开发系统、网站确实好给客户带来了很大的方便,也降低了服务器的压力,但是我们在开发的时候不能盲目的使用ajax,不是所有的情况都适合使用ajax的,下面是从CSDN上面看到的,分享给大家。 + + + +下面是当前网页应用程序应该出现的地方: + +
    表单是很慢的,非常慢。尝试编辑位于del.icio.us上面的一个书签?点击编辑链接打开一个编辑书签的表单页面,然后编辑你的内容并点击提交 按钮等待整个提交过程结束,最后返回上一页并向下滚动到你刚才编辑的书签那里查看内容是否已经正确更改。那AJAX呢?点击编辑链接马上开始更改标签内 容,点击提交按钮开始异步传输标签编辑的内容并立即看到更改后的内容而无需重载整个页面。
    + +
    总而言之,带有深层树状导航的应用程序通常是一个噩梦。在大多数情况中简单平直的拓扑结构以及搜索/标记可以很好的工作。但是如果一个 应用程序真正使用深层树状导航,使用JavaScript来管理拓扑ui(user interface用户接口),则使用Ajax懒加载深层数据可以降低服务器的负载。举例来说,为了阅读一个只有一行的结果来加载整个一个新页面是非常耗时的。
    + +
    在一个允许用户创建实时讨论的信息公 告系统中,迫使用户一次又一次的更新完页面看到答复是非常愚蠢的。回复应该是实时的,用户不应被迫总是去痴迷于刷新操作。即使是gmail这个已经对以前 像hotmail/yahoo mail的收件箱刷新,刷新收件箱标记的操作有所改进,也并没有充分的使用Ajax的功能来提示有新邮件到达。
    + +
    如果Ajax提交过程没有一个协调的UI提示是非常糟糕的,通过使用Ajax来提交一个调查或是否选择可以减少提交过程等待的痛苦。通过减少点击的 等待时间,Ajax应用程序变得越来越有交互性-如果要用40秒来提交一个投票,除非非常在意的话大多数人会选择放弃。如果只花1秒呢,非常大比例的人会 乐于参加投票的。(我在Netflix versus有2008张电影投票在IMDb.com有210张电影投票)
    + +
    应用一个过滤、按日期排序、按日期和姓名排序、打开或关闭过滤器等等。任何一种高交换型操作应该交给JavaScript来处理而不是通过向服务器来提交一系列的请求。在查找或者操作大量数据的时候带来的视图上的改变最多不会超过30秒,Ajax真的使这些操作加速了。
    + +
    一些软件/JavaScript是擅长于帮助用户完成键入相同的文字或可以预测的文字的工作的。在del.icio.us 和 Gmail 中该功能是非常有益的,可以用来快速增加标记/email等。
    +对于一个频繁使用的应用程序诸如网页邮件客户端或博客阅读器来说,用户有充足的时间来学习如何使用新的UI概念但是他们却无法接受一个非常缓慢 的反应速度。这种应用为Ajax变的更加普及起到了一个完美的杠杆作用。随着用户使用频率的增加,更多的Ajax部件应该加强用户的使用体验。 + +但是对于网页应用程序来说,把每件事甚至任何事都用JavaScript来实现也是没有意义的。Ajax只是针对一些特定的环境才能带来显著的 帮助。在Ajax出现之前网页应用程序已经可以工作的很好了并且目前在网页开发中Ajax还存在着许多的缺陷和缺点。就算不从服务器端取得一个异步的信息 数据流一个平直的html网页日志也可以工作的很好。对于文档或文档之间的跳转来说,老旧的纯HTML仍然是最好的选择。简单或很少使用的应用程序就算不 用JavaScript同样可以很好的工作。 + +下面是一些不应该用到Ajax的地方: + +
    就算表单是Ajax技术的最大受益人,一个简单内容的表单,或提交订货单,或一次性的很少用到的表单都不应该使用以Ajax驱动的表单提交机制。总的来说,如果一个表单不是很长用,或已经工作的很好,那么就算使用Ajax也没有什么帮助。
    + +
    实时搜索带来的痛苦要远大于他带来的帮助。这就是为什么Google Suggest还处于beta测试而并没有放在主页上的原因。在Start.com Live.com上搜索的时候你是不能使用返回按钮来查看上一次搜索或返回上一页的。或许还没有人来完成这项工作,但是完成这个工作应该是很困难的至少是 不太明知的或者会因此带来更多的麻烦。(译注:现在已经有很多开源的框架可以实现历史记录功能)
    + +
    总的来说,使用Ajax为一个基础的网站/程序做导航是一个可怕的念头。谁会把用来使自己的程序变的更好的时间花在编写代码模仿浏览器的行为上面?在基础页面中导航的操作中JavaScript是没有用的。
    + +
    Ajax可以不用整页刷新来动态更新页面中改变的一小部分。但是如果一页上的大部分内容都需要更新,那为什么不从服务器那里获得一个新页面呢?
    + +
    虽然看上去Ajax是一个纯UI技术,其实不是这样的。他实际上是一个数据同步、操作、传输的技术。要想得到一个稳定的干净的网页程序,不使用 Ajax/JavaScript来直接完成用户接口是明智的。JavaScript可以分散分布并简单的操作XHTML/HTML DOM,根据CSS规则来决定如何让UI显示数据。
    + +滑块选择控件、拖拽控件、弹性控件(此处原文为bouncies,不知指为何物?)、鼠标样式、天气预报控件,这些小部件应该可以被更直接的控件代 替或者为了整洁干脆整个去掉。为了选择一种颜色,也许滑块选择控件可以选择一个正确的阴影颜色,但是在一个商店中选择一个价格,使用滑块选择控件选到分这 个单位对于用户来说有点过分。 diff --git a/_posts/2009-04-04-blog-wsria-pr-3-of-10.markdown b/_posts/2009-04-04-blog-wsria-pr-3-of-10.markdown index 2651ce6a..363db772 100644 --- a/_posts/2009-04-04-blog-wsria-pr-3-of-10.markdown +++ b/_posts/2009-04-04-blog-wsria-pr-3-of-10.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "庆祝博客PageRank提升到了3/10" wordpress_id: 502 wordpress_url: http://www.wsria.com/?p=502 diff --git a/_posts/2009-04-04-wordcamp-2009-in-shanghai.markdown b/_posts/2009-04-04-wordcamp-2009-in-shanghai.markdown index 28ceb3c2..4d31cb42 100644 --- a/_posts/2009-04-04-wordcamp-2009-in-shanghai.markdown +++ b/_posts/2009-04-04-wordcamp-2009-in-shanghai.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "wordcamp 2009 in ShangHai归来" excerpt: wordcamp 2009 in ShangHai wordpress_id: 487 diff --git a/_posts/2009-04-21-ie-lose-session.markdown b/_posts/2009-04-21-ie-lose-session.markdown index 03febbfb..145d6dd5 100644 --- a/_posts/2009-04-21-ie-lose-session.markdown +++ b/_posts/2009-04-21-ie-lose-session.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "IE中丢失session问题解决办法" wordpress_id: 510 wordpress_url: http://www.wsria.com/?p=510 diff --git a/_posts/2009-05-05-520.markdown b/_posts/2009-05-05-520.markdown index 587c2e37..72113ebe 100644 --- a/_posts/2009-05-05-520.markdown +++ b/_posts/2009-05-05-520.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "2009.5.1~5.3杭州之旅(露营、雨中游西湖)" wordpress_id: 520 wordpress_url: http://www.wsria.com/?p=520 diff --git a/_posts/2009-05-11-wenchuan-512.markdown b/_posts/2009-05-11-wenchuan-512.markdown index e743decb..365149dd 100644 --- a/_posts/2009-05-11-wenchuan-512.markdown +++ b/_posts/2009-05-11-wenchuan-512.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "心系5.12(2009年5.12日 2:28分我们集体默哀3分钟)" wordpress_id: 535 wordpress_url: http://www.wsria.com/?p=535 diff --git a/_posts/2009-05-23-jquery-optimize-3part.markdown b/_posts/2009-05-23-jquery-optimize-3part.markdown index 54cb8ab3..fc546556 100644 --- a/_posts/2009-05-23-jquery-optimize-3part.markdown +++ b/_posts/2009-05-23-jquery-optimize-3part.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "jQuery性能优化指南" wordpress_id: 555 wordpress_url: http://www.wsria.com/?p=555 date: 2009-05-23 14:54:48 +08:00 -category: jquery +categories: jquery tags: - 性能优化 --- diff --git a/_posts/2009-06-08-wordcamp-tshirt.markdown b/_posts/2009-06-08-wordcamp-tshirt.markdown index 65f60cae..4041601b 100644 --- a/_posts/2009-06-08-wordcamp-tshirt.markdown +++ b/_posts/2009-06-08-wordcamp-tshirt.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "夏天到了,终于收到迟来的WordPress T恤了" wordpress_id: 575 wordpress_url: http://www.wsria.com/?p=575 diff --git a/_posts/2009-06-22-how-to-judge-ajax-request.markdown b/_posts/2009-06-22-how-to-judge-ajax-request.markdown index 5c5c0e2a..eab5b2b9 100644 --- a/_posts/2009-06-22-how-to-judge-ajax-request.markdown +++ b/_posts/2009-06-22-how-to-judge-ajax-request.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "如何判断一个请求是否为AJAX请求" wordpress_id: 582 wordpress_url: http://www.wsria.com/?p=582 diff --git a/_posts/2009-06-22-java-simple-security-use-spring-and-struts.markdown b/_posts/2009-06-22-java-simple-security-use-spring-and-struts.markdown index 64b3999e..a3b47cd2 100644 --- a/_posts/2009-06-22-java-simple-security-use-spring-and-struts.markdown +++ b/_posts/2009-06-22-java-simple-security-use-spring-and-struts.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "简单实现在基于Java的AJAX环境下未登录自动跳转流程详解(spring代理struts的action)" wordpress_id: 588 wordpress_url: http://www.wsria.com/?p=588 diff --git a/_posts/2009-07-01-jquery-gbk-code-problem.markdown b/_posts/2009-07-01-jquery-gbk-code-problem.markdown index a44a60cc..4c12074e 100644 --- a/_posts/2009-07-01-jquery-gbk-code-problem.markdown +++ b/_posts/2009-07-01-jquery-gbk-code-problem.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "站点GBK编码下jQuery Ajax中文乱码解决方案" wordpress_id: 611 wordpress_url: http://www.wsria.com/?p=611 diff --git a/_posts/2009-07-16-ajax-resources-site-miniajax.markdown b/_posts/2009-07-16-ajax-resources-site-miniajax.markdown index c738c8d5..bd418503 100644 --- a/_posts/2009-07-16-ajax-resources-site-miniajax.markdown +++ b/_posts/2009-07-16-ajax-resources-site-miniajax.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "推荐一个ajax资源站点" wordpress_id: 640 wordpress_url: http://www.wsria.com/?p=640 diff --git a/_posts/2009-07-16-weeboxtree.markdown b/_posts/2009-07-16-weeboxtree.markdown index ada05bc8..92bdfd4f 100644 --- a/_posts/2009-07-16-weeboxtree.markdown +++ b/_posts/2009-07-16-weeboxtree.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "做了一次集成服务:基于weebox和simpletree的dialogtree诞生了" wordpress_id: 625 wordpress_url: http://www.wsria.com/?p=625 diff --git a/_posts/2009-07-18-ie6-dead.markdown b/_posts/2009-07-18-ie6-dead.markdown index a47a0b4d..00120469 100644 --- a/_posts/2009-07-18-ie6-dead.markdown +++ b/_posts/2009-07-18-ie6-dead.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Twitter用户发起“拒绝IE6”请愿活动" wordpress_id: 645 wordpress_url: http://www.wsria.com/?p=645 diff --git a/_posts/2009-07-23-crazy-programmer.markdown b/_posts/2009-07-23-crazy-programmer.markdown index 871c788c..29de93b7 100644 --- a/_posts/2009-07-23-crazy-programmer.markdown +++ b/_posts/2009-07-23-crazy-programmer.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "《疯狂程序员》一书中的奥秘" wordpress_id: 655 wordpress_url: http://www.wsria.com/?p=655 diff --git a/_posts/2009-07-27-jquery-plugin-hialert.markdown b/_posts/2009-07-27-jquery-plugin-hialert.markdown index a8ee9d80..6cff0a2e 100644 --- a/_posts/2009-07-27-jquery-plugin-hialert.markdown +++ b/_posts/2009-07-27-jquery-plugin-hialert.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "[推荐]改进的提示插件-jQuery.hiAlerts.1.0" wordpress_id: 659 wordpress_url: http://www.wsria.com/?p=659 diff --git a/_posts/2009-07-29-jiwai-pause.markdown b/_posts/2009-07-29-jiwai-pause.markdown index 4bafed7c..abef388b 100644 --- a/_posts/2009-07-29-jiwai-pause.markdown +++ b/_posts/2009-07-29-jiwai-pause.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "叽歪怎么了?" wordpress_id: 664 wordpress_url: http://www.wsria.com/?p=664 diff --git a/_posts/2009-07-30-hibernate-mysql-type-mapping.markdown b/_posts/2009-07-30-hibernate-mysql-type-mapping.markdown index 5d966a69..b2f819e1 100644 --- a/_posts/2009-07-30-hibernate-mysql-type-mapping.markdown +++ b/_posts/2009-07-30-hibernate-mysql-type-mapping.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Hibernate的映射类型 hibernate mysql映射类型" wordpress_id: 667 wordpress_url: http://www.wsria.com/?p=667 diff --git a/_posts/2009-08-04-hibernate-jsonlib-igore-fileds.markdown b/_posts/2009-08-04-hibernate-jsonlib-igore-fileds.markdown index 0dab69f8..d0169423 100644 --- a/_posts/2009-08-04-hibernate-jsonlib-igore-fileds.markdown +++ b/_posts/2009-08-04-hibernate-jsonlib-igore-fileds.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "使用hibernate和json-lib时忽略属性和集合" wordpress_id: 670 wordpress_url: http://www.wsria.com/?p=670 diff --git a/_posts/2009-08-22-22-years-old-of-birthday.markdown b/_posts/2009-08-22-22-years-old-of-birthday.markdown index b4737319..24f5d7b6 100644 --- a/_posts/2009-08-22-22-years-old-of-birthday.markdown +++ b/_posts/2009-08-22-22-years-old-of-birthday.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "22岁生日" wordpress_id: 691 wordpress_url: http://www.wsria.com/?p=691 diff --git a/_posts/2009-10-14-activex-grid-cell-cant-run-in-ie8.markdown b/_posts/2009-10-14-activex-grid-cell-cant-run-in-ie8.markdown index a71af920..432e51ae 100644 --- a/_posts/2009-10-14-activex-grid-cell-cant-run-in-ie8.markdown +++ b/_posts/2009-10-14-activex-grid-cell-cant-run-in-ie8.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "备忘:金格、用友CELL不能在IE8下使用的解决办法" wordpress_id: 713 wordpress_url: http://www.wsria.com/?p=713 diff --git a/_posts/2009-10-24-other-hibernate-and-jsonlib.markdown b/_posts/2009-10-24-other-hibernate-and-jsonlib.markdown index aa75ea2d..06965cc3 100644 --- a/_posts/2009-10-24-other-hibernate-and-jsonlib.markdown +++ b/_posts/2009-10-24-other-hibernate-and-jsonlib.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Json-lib 与 hibernate 共同使用的问题" wordpress_id: 724 wordpress_url: http://www.wsria.com/?p=724 diff --git a/_posts/2009-11-03-egular-expressions-formula-and-tutorial-recommended.markdown b/_posts/2009-11-03-egular-expressions-formula-and-tutorial-recommended.markdown index 0946059d..c1603082 100644 --- a/_posts/2009-11-03-egular-expressions-formula-and-tutorial-recommended.markdown +++ b/_posts/2009-11-03-egular-expressions-formula-and-tutorial-recommended.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "推荐:正则表达式口诀及教程" wordpress_id: 728 wordpress_url: http://www.wsria.com/?p=728 diff --git a/_posts/2009-11-18-are-you-a-blue-collar-or-white-collar-developer.markdown b/_posts/2009-11-18-are-you-a-blue-collar-or-white-collar-developer.markdown index f26791a7..bf969153 100644 --- a/_posts/2009-11-18-are-you-a-blue-collar-or-white-collar-developer.markdown +++ b/_posts/2009-11-18-are-you-a-blue-collar-or-white-collar-developer.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "程序员的学历有多重要" wordpress_id: 731 wordpress_url: http://www.wsria.com/?p=731 diff --git a/_posts/2009-12-12-the-best-jquery-plugins-of-2009.markdown b/_posts/2009-12-12-the-best-jquery-plugins-of-2009.markdown index 81f5a4d0..464b135a 100644 --- a/_posts/2009-12-12-the-best-jquery-plugins-of-2009.markdown +++ b/_posts/2009-12-12-the-best-jquery-plugins-of-2009.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "推荐:2009 年度最佳 jQuery 插件" wordpress_id: 733 wordpress_url: http://www.wsria.com/?p=733 diff --git a/_posts/2010-01-12-jquery-plugin-week-calendar.markdown b/_posts/2010-01-12-jquery-plugin-week-calendar.markdown index e1c6e446..703bc3a2 100644 --- a/_posts/2010-01-12-jquery-plugin-week-calendar.markdown +++ b/_posts/2010-01-12-jquery-plugin-week-calendar.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "推荐:基于jQuery开发仿Google Calendar(jQuery Week Calendar)" wordpress_id: 762 wordpress_url: http://www.wsria.com/?p=762 diff --git a/_posts/2010-01-15-java-util-date-source.markdown b/_posts/2010-01-15-java-util-date-source.markdown index c78fdbbd..4a37ef5a 100644 --- a/_posts/2010-01-15-java-util-date-source.markdown +++ b/_posts/2010-01-15-java-util-date-source.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "分享:Java日期工具类" wordpress_id: 785 wordpress_url: http://www.wsria.com/?p=785 diff --git a/_posts/2010-01-15-jquery-1.4-released.markdown b/_posts/2010-01-15-jquery-1.4-released.markdown index a7de685d..46c5ce53 100644 --- a/_posts/2010-01-15-jquery-1.4-released.markdown +++ b/_posts/2010-01-15-jquery-1.4-released.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "jQuery 1.4 正式版发布啦(14 Days of jQuery)" wordpress_id: 772 wordpress_url: http://www.wsria.com/?p=772 diff --git a/_posts/2010-01-19-jquery-1.4-api.markdown b/_posts/2010-01-19-jquery-1.4-api.markdown index 98da6adb..8a290eba 100644 --- a/_posts/2010-01-19-jquery-1.4-api.markdown +++ b/_posts/2010-01-19-jquery-1.4-api.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "jQuery1.4 API 区别与更新中文版" wordpress_id: 796 wordpress_url: http://www.wsria.com/?p=796 diff --git a/_posts/2010-01-27-how-to-designe-web2.0.markdown b/_posts/2010-01-27-how-to-designe-web2.0.markdown index 64ad39a5..c17442fe 100644 --- a/_posts/2010-01-27-how-to-designe-web2.0.markdown +++ b/_posts/2010-01-27-how-to-designe-web2.0.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "转:关于web2.0网站易用性设计的一些原则" wordpress_id: 804 wordpress_url: http://www.wsria.com/?p=804 diff --git a/_posts/2010-02-02-shawpy-jquery-1.4.1-api.markdown b/_posts/2010-02-02-shawpy-jquery-1.4.1-api.markdown index 9965ca3b..ac16bfb8 100644 --- a/_posts/2010-02-02-shawpy-jquery-1.4.1-api.markdown +++ b/_posts/2010-02-02-shawpy-jquery-1.4.1-api.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "jQuery 1.4.1 中文文档 CHM 版发布" wordpress_id: 807 wordpress_url: http://www.wsria.com/?p=807 diff --git a/_posts/2010-02-10-sexy-buttons.markdown b/_posts/2010-02-10-sexy-buttons.markdown index 790f4c42..5ff29bfe 100644 --- a/_posts/2010-02-10-sexy-buttons.markdown +++ b/_posts/2010-02-10-sexy-buttons.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Sexy Buttons(Web 按钮[图标]素材)" wordpress_id: 813 wordpress_url: http://www.wsria.com/?p=813 diff --git a/_posts/2010-02-25-programmer-health.markdown b/_posts/2010-02-25-programmer-health.markdown index bdae21e2..d22b899e 100644 --- a/_posts/2010-02-25-programmer-health.markdown +++ b/_posts/2010-02-25-programmer-health.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "[转][推荐]程序员们,请珍爱自己的身体" wordpress_id: 818 wordpress_url: http://www.wsria.com/?p=818 diff --git a/_posts/2010-03-02-ie6-dead-in-google.markdown b/_posts/2010-03-02-ie6-dead-in-google.markdown index a72e6e1b..8dad492c 100644 --- a/_posts/2010-03-02-ie6-dead-in-google.markdown +++ b/_posts/2010-03-02-ie6-dead-in-google.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "IE6浏览器葬礼的背后" wordpress_id: 914 wordpress_url: http://www.wsria.com/?p=914 diff --git a/_posts/2010-03-02-jquery-effects.markdown b/_posts/2010-03-02-jquery-effects.markdown index 95909c83..1602ed9a 100644 --- a/_posts/2010-03-02-jquery-effects.markdown +++ b/_posts/2010-03-02-jquery-effects.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "直逼 Flash 的流畅感:jQuery 运动特效展示" wordpress_id: 918 wordpress_url: http://www.wsria.com/?p=918 diff --git a/_posts/2010-03-03-how-to-install-oracle11-in-win7.markdown b/_posts/2010-03-03-how-to-install-oracle11-in-win7.markdown index 302e71a7..9a6842b3 100644 --- a/_posts/2010-03-03-how-to-install-oracle11-in-win7.markdown +++ b/_posts/2010-03-03-how-to-install-oracle11-in-win7.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Win7下不能安装Oracle11g解决办法" wordpress_id: 927 wordpress_url: http://www.wsria.com/?p=927 diff --git a/_posts/2010-03-12-google-pasue-china-business.markdown b/_posts/2010-03-12-google-pasue-china-business.markdown index 41bff1f5..42c4e922 100644 --- a/_posts/2010-03-12-google-pasue-china-business.markdown +++ b/_posts/2010-03-12-google-pasue-china-business.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "[转][评论]谷歌重申不过滤搜索结果 做好停止中国业务准备" wordpress_id: 934 wordpress_url: http://www.wsria.com/?p=934 diff --git a/_posts/2010-04-22-maven-assembly-repeat-classes.markdown b/_posts/2010-04-22-maven-assembly-repeat-classes.markdown index 44f0dcda..e0013bef 100644 --- a/_posts/2010-04-22-maven-assembly-repeat-classes.markdown +++ b/_posts/2010-04-22-maven-assembly-repeat-classes.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Maven下用mvn assembly:assembly打包class文件重复" wordpress_id: 958 wordpress_url: http://www.wsria.com/?p=958 diff --git a/_posts/2010-04-23-resovle-jqgrid-messy-code.markdown b/_posts/2010-04-23-resovle-jqgrid-messy-code.markdown index 74ab28c7..d13daeeb 100644 --- a/_posts/2010-04-23-resovle-jqgrid-messy-code.markdown +++ b/_posts/2010-04-23-resovle-jqgrid-messy-code.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "jqGrid查询中文乱码问题解决办法(2011-11-11)" wordpress_id: 961 wordpress_url: http://www.wsria.com/?p=961 diff --git a/_posts/2010-05-18-hibernate-a-different-object-with-the-same-identifier-value-was-already-associated-with-the-session.markdown b/_posts/2010-05-18-hibernate-a-different-object-with-the-same-identifier-value-was-already-associated-with-the-session.markdown index 16763bbe..76a10a66 100644 --- a/_posts/2010-05-18-hibernate-a-different-object-with-the-same-identifier-value-was-already-associated-with-the-session.markdown +++ b/_posts/2010-05-18-hibernate-a-different-object-with-the-same-identifier-value-was-already-associated-with-the-session.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "解决a different object with the same identifier value was already associated with the session错误" wordpress_id: 972 wordpress_url: http://www.wsria.com/?p=972 diff --git a/_posts/2010-05-20-15-javascript-web-ui.markdown b/_posts/2010-05-20-15-javascript-web-ui.markdown index 5c9a961c..a6757217 100644 --- a/_posts/2010-05-20-15-javascript-web-ui.markdown +++ b/_posts/2010-05-20-15-javascript-web-ui.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "[转][推荐]15 个 JavaScript Web UI 库" wordpress_id: 974 wordpress_url: http://www.wsria.com/?p=974 diff --git a/_posts/2010-05-30-jasperreports-ireport.markdown b/_posts/2010-05-30-jasperreports-ireport.markdown index 49b4fffe..4bd90fe0 100644 --- a/_posts/2010-05-30-jasperreports-ireport.markdown +++ b/_posts/2010-05-30-jasperreports-ireport.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "JasperReports iReport导出PDF中文解决办法" wordpress_id: 981 wordpress_url: http://www.wsria.com/?p=981 diff --git a/_posts/2010-06-19-add-dblclick-event-for-jstree.markdown b/_posts/2010-06-19-add-dblclick-event-for-jstree.markdown index 0b8dd8c1..ab0ea126 100644 --- a/_posts/2010-06-19-add-dblclick-event-for-jstree.markdown +++ b/_posts/2010-06-19-add-dblclick-event-for-jstree.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "为jstree添加双击事件切换[展开/收缩]功能" wordpress_id: 989 wordpress_url: http://www.wsria.com/?p=989 diff --git a/_posts/2010-07-30-to-do-a-good-job-one-must-first-sharpen-one's-tools.markdown b/_posts/2010-07-30-to-do-a-good-job-one-must-first-sharpen-one's-tools.markdown index 174dbef0..f1e11265 100644 --- a/_posts/2010-07-30-to-do-a-good-job-one-must-first-sharpen-one's-tools.markdown +++ b/_posts/2010-07-30-to-do-a-good-job-one-must-first-sharpen-one's-tools.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "工欲善其事,必先利其器" wordpress_id: 1026 wordpress_url: http://www.wsria.com/?p=1026 diff --git a/_posts/2010-08-07-maven-study-resources.markdown b/_posts/2010-08-07-maven-study-resources.markdown index 31454e80..64db8bd4 100644 --- a/_posts/2010-08-07-maven-study-resources.markdown +++ b/_posts/2010-08-07-maven-study-resources.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Maven学习引导" wordpress_id: 1072 wordpress_url: http://www.wsria.com/?p=1072 diff --git a/_posts/2010-08-09-springside-3.3.3-NoClassDefFoundError.markdown b/_posts/2010-08-09-springside-3.3.3-NoClassDefFoundError.markdown index d8f95016..57169852 100644 --- a/_posts/2010-08-09-springside-3.3.3-NoClassDefFoundError.markdown +++ b/_posts/2010-08-09-springside-3.3.3-NoClassDefFoundError.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Springside3.3.3报错:java.lang.NoClassDefFoundError: org/codehaus/classworlds/Launcher解决办法" wordpress_id: 1079 wordpress_url: http://www.wsria.com/?p=1079 diff --git a/_posts/2010-08-10-eclipse-maven-wtp-tomcat-cant-run.markdown b/_posts/2010-08-10-eclipse-maven-wtp-tomcat-cant-run.markdown index f4a77413..bc8efc8f 100644 --- a/_posts/2010-08-10-eclipse-maven-wtp-tomcat-cant-run.markdown +++ b/_posts/2010-08-10-eclipse-maven-wtp-tomcat-cant-run.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Eclipse+Maven+WTP+Tomcat不能Run On Server其中一个原因" wordpress_id: 1004 wordpress_url: http://www.wsria.com/?p=1004 diff --git a/_posts/2010-08-12-3-jquery-shade-plugin.markdown b/_posts/2010-08-12-3-jquery-shade-plugin.markdown index 99eaaa5f..045d32e8 100644 --- a/_posts/2010-08-12-3-jquery-shade-plugin.markdown +++ b/_posts/2010-08-12-3-jquery-shade-plugin.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "推荐精选3枚jQuery遮罩插件" wordpress_id: 1100 wordpress_url: http://www.wsria.com/?p=1100 diff --git a/_posts/2010-08-15-apache-asia-roadshow-2010.markdown b/_posts/2010-08-15-apache-asia-roadshow-2010.markdown index df37268a..0f6a65b7 100644 --- a/_posts/2010-08-15-apache-asia-roadshow-2010.markdown +++ b/_posts/2010-08-15-apache-asia-roadshow-2010.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Apache Asia Roadshow 2010归来" wordpress_id: 1111 wordpress_url: http://www.wsria.com/?p=1111 diff --git a/_posts/2010-08-15-ci-hudson-course.markdown b/_posts/2010-08-15-ci-hudson-course.markdown index d78c9c5e..a943e658 100644 --- a/_posts/2010-08-15-ci-hudson-course.markdown +++ b/_posts/2010-08-15-ci-hudson-course.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Hudson系列教程" wordpress_id: 1135 wordpress_url: http://www.wsria.com/?p=1135 diff --git a/_posts/2010-08-16-apache-asia-roadshow-2010-juven-maven-ppt.markdown b/_posts/2010-08-16-apache-asia-roadshow-2010-juven-maven-ppt.markdown index 0a44318f..c19246b8 100644 --- a/_posts/2010-08-16-apache-asia-roadshow-2010-juven-maven-ppt.markdown +++ b/_posts/2010-08-16-apache-asia-roadshow-2010-juven-maven-ppt.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Apache Asia Roadshow 2010 Juven Maven PPT和视频下载" wordpress_id: 1139 wordpress_url: http://www.wsria.com/?p=1139 diff --git a/_posts/2010-08-20-autosize-jqgrid-use-javascript.markdown b/_posts/2010-08-20-autosize-jqgrid-use-javascript.markdown index b7727810..b303d77c 100644 --- a/_posts/2010-08-20-autosize-jqgrid-use-javascript.markdown +++ b/_posts/2010-08-20-autosize-jqgrid-use-javascript.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "利用JavaScript获取窗口/Body的宽度和高度(让jqGrid自适应窗口大小)" wordpress_id: 1147 wordpress_url: http://www.wsria.com/?p=1147 diff --git a/_posts/2010-10-01-auto-update-lastest-chromium-in-windows.markdown b/_posts/2010-10-01-auto-update-lastest-chromium-in-windows.markdown index 90ec7a40..0813419a 100644 --- a/_posts/2010-10-01-auto-update-lastest-chromium-in-windows.markdown +++ b/_posts/2010-10-01-auto-update-lastest-chromium-in-windows.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "利用Windows的计划任务自动更新最新的Chromium" wordpress_id: 1159 wordpress_url: http://www.wsria.com/?p=1159 diff --git a/_posts/2010-10-03-file-download-use-annotation-of-struts2.markdown b/_posts/2010-10-03-file-download-use-annotation-of-struts2.markdown index f8609523..9fa7a0b7 100644 --- a/_posts/2010-10-03-file-download-use-annotation-of-struts2.markdown +++ b/_posts/2010-10-03-file-download-use-annotation-of-struts2.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Struts2 Annotation实现文件下载功能" wordpress_id: 1172 wordpress_url: http://www.wsria.com/?p=1172 diff --git a/_posts/2010-10-12-springside.markdown b/_posts/2010-10-12-springside.markdown index 2317b096..c7e06c9b 100644 --- a/_posts/2010-10-12-springside.markdown +++ b/_posts/2010-10-12-springside.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "工欲善其事必先利其器--Java Web快速开发框架--Springside" wordpress_id: 1188 wordpress_url: http://www.wsria.com/?p=1188 diff --git a/_posts/2010-10-18-jquery-plugin-area2select.markdown b/_posts/2010-10-18-jquery-plugin-area2select.markdown index f8f17b7c..4d7ee951 100644 --- a/_posts/2010-10-18-jquery-plugin-area2select.markdown +++ b/_posts/2010-10-18-jquery-plugin-area2select.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "城市级联选择插件jquery.area2select闪亮登场(前后台设计)" wordpress_id: 1237 wordpress_url: http://www.wsria.com/?p=1237 diff --git a/_posts/2010-10-25-jquery-validate-multi-rules.markdown b/_posts/2010-10-25-jquery-validate-multi-rules.markdown index 75b240d8..c55c1f97 100644 --- a/_posts/2010-10-25-jquery-validate-multi-rules.markdown +++ b/_posts/2010-10-25-jquery-validate-multi-rules.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "jquery.validate插件remote规则相同值不验证的问题解决办法" wordpress_id: 1273 wordpress_url: http://www.wsria.com/?p=1273 diff --git a/_posts/2010-10-27-maven-in-action-by-juvenxu.markdown b/_posts/2010-10-27-maven-in-action-by-juvenxu.markdown index 6e47a3ff..422a49a1 100644 --- a/_posts/2010-10-27-maven-in-action-by-juvenxu.markdown +++ b/_posts/2010-10-27-maven-in-action-by-juvenxu.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "《Maven实战》最新消息,11月初出版" wordpress_id: 1288 wordpress_url: http://www.wsria.com/?p=1288 diff --git a/_posts/2010-11-01-maven-problem-collection.markdown b/_posts/2010-11-01-maven-problem-collection.markdown index 169f7bb2..5b3738f3 100644 --- a/_posts/2010-11-01-maven-problem-collection.markdown +++ b/_posts/2010-11-01-maven-problem-collection.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Maven常见问题收集(持续更新-2010-12-15)" wordpress_id: 1314 wordpress_url: http://www.wsria.com/?p=1314 diff --git a/_posts/2010-11-03-maven-war-plugin-parameters-diff.markdown b/_posts/2010-11-03-maven-war-plugin-parameters-diff.markdown index 916a6cba..c1583772 100644 --- a/_posts/2010-11-03-maven-war-plugin-parameters-diff.markdown +++ b/_posts/2010-11-03-maven-war-plugin-parameters-diff.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "maven-war-plugin插件的warSourceExcludes和packagingExcludes参数的区别" wordpress_id: 1335 wordpress_url: http://www.wsria.com/?p=1335 diff --git a/_posts/2010-11-03-my-evernote.markdown b/_posts/2010-11-03-my-evernote.markdown index 62ff9820..8f5fc15e 100644 --- a/_posts/2010-11-03-my-evernote.markdown +++ b/_posts/2010-11-03-my-evernote.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "公布一下我的Evernote分享地址" wordpress_id: 1331 wordpress_url: http://www.wsria.com/?p=1331 diff --git a/_posts/2010-11-05-sso-cas-full-course.markdown b/_posts/2010-11-05-sso-cas-full-course.markdown index b13b9017..86961cd1 100644 --- a/_posts/2010-11-05-sso-cas-full-course.markdown +++ b/_posts/2010-11-05-sso-cas-full-course.markdown @@ -1,10 +1,9 @@ --- -layout: post title: "CAS单点登录(SSO)完整教程(2012-02-01更新)" wordpress_id: 1349 wordpress_url: http://www.wsria.com/?p=1349 date: 2010-11-05 20:25:51 +08:00 -category: sso +categories: sso tags: - cas - sso diff --git a/_posts/2010-11-11-maven-multi-modules-designe.markdown b/_posts/2010-11-11-maven-multi-modules-designe.markdown index 85b10d07..34874f7f 100644 --- a/_posts/2010-11-11-maven-multi-modules-designe.markdown +++ b/_posts/2010-11-11-maven-multi-modules-designe.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Maven多模块布局实例详解" wordpress_id: 1405 wordpress_url: http://www.wsria.com/?p=1405 diff --git a/_posts/2010-11-19-maven-in-action-published.markdown b/_posts/2010-11-19-maven-in-action-published.markdown index 024dbcae..38a31dd0 100644 --- a/_posts/2010-11-19-maven-in-action-published.markdown +++ b/_posts/2010-11-19-maven-in-action-published.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "推荐:国内第一本Maven书籍——《Maven实战》" wordpress_id: 1480 wordpress_url: http://www.wsria.com/?p=1480 diff --git a/_posts/2011-06-26-windows-server-2008-r2-x64-install-oracle-10g-r2.markdown b/_posts/2011-06-26-windows-server-2008-r2-x64-install-oracle-10g-r2.markdown index 55eeb8c1..7a1b4d57 100644 --- a/_posts/2011-06-26-windows-server-2008-r2-x64-install-oracle-10g-r2.markdown +++ b/_posts/2011-06-26-windows-server-2008-r2-x64-install-oracle-10g-r2.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Windows Server 2008 R2 X64安装Oracle 10g R2后不能创建数据库问题解决办法" wordpress_id: 1519 wordpress_url: http://www.wsria.com/?p=1519 diff --git a/_posts/2011-07-15-ubuntu-oracle-xe.markdown b/_posts/2011-07-15-ubuntu-oracle-xe.markdown index a3cbf273..ea0fcc33 100644 --- a/_posts/2011-07-15-ubuntu-oracle-xe.markdown +++ b/_posts/2011-07-15-ubuntu-oracle-xe.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Ubuntu安装ORACLE-XE" wordpress_id: 1529 wordpress_url: http://www.wsria.com/?p=1529 diff --git a/_posts/2011-07-16-ubuntu-nginx-phpmyadmin.markdown b/_posts/2011-07-16-ubuntu-nginx-phpmyadmin.markdown index 217763c1..8fd0edc4 100644 --- a/_posts/2011-07-16-ubuntu-nginx-phpmyadmin.markdown +++ b/_posts/2011-07-16-ubuntu-nginx-phpmyadmin.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Ubuntu配置ngnix+phpmyadmin" wordpress_id: 1540 wordpress_url: http://www.wsria.com/?p=1540 diff --git a/_posts/2011-07-24-use-jquery-ui-in-enterprise-summary.markdown b/_posts/2011-07-24-use-jquery-ui-in-enterprise-summary.markdown index 26cd3384..c508457a 100644 --- a/_posts/2011-07-24-use-jquery-ui-in-enterprise-summary.markdown +++ b/_posts/2011-07-24-use-jquery-ui-in-enterprise-summary.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "jQuery UI及其插件在企业环境的应用总结" wordpress_id: 1549 wordpress_url: http://www.wsria.com/?p=1549 diff --git a/_posts/2011-08-13-springside3-shell-for-linux.markdown b/_posts/2011-08-13-springside3-shell-for-linux.markdown index ffb89e43..632161f3 100644 --- a/_posts/2011-08-13-springside3-shell-for-linux.markdown +++ b/_posts/2011-08-13-springside3-shell-for-linux.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Linux下springside3快捷脚本(quick-start、generate-project)" wordpress_id: 1580 wordpress_url: http://www.wsria.com/?p=1580 diff --git a/_posts/2011-12-09-springside4-shell-for-linux.markdown b/_posts/2011-12-09-springside4-shell-for-linux.markdown index e6394fe1..e17d6d01 100644 --- a/_posts/2011-12-09-springside4-shell-for-linux.markdown +++ b/_posts/2011-12-09-springside4-shell-for-linux.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Linux下springside4快捷脚本(quick-start、generate-project)" wordpress_id: 1605 wordpress_url: http://www.wsria.com/?p=1605 diff --git a/_posts/2012-02-04-ubuntu-nginx-install-dokuwiki.markdown b/_posts/2012-02-04-ubuntu-nginx-install-dokuwiki.markdown index 24476d66..c6369607 100644 --- a/_posts/2012-02-04-ubuntu-nginx-install-dokuwiki.markdown +++ b/_posts/2012-02-04-ubuntu-nginx-install-dokuwiki.markdown @@ -1,5 +1,4 @@ --- -layout: post title: "Linux(Ubuntu)环境安装配置Nginx+Dokuwiki" wordpress_id: 1613 wordpress_url: http://www.wsria.com/?p=1613 diff --git a/_posts/2012-03-21-move-to-github.md b/_posts/2012-03-21-move-to-github.md index ef37f015..0a5407fc 100644 --- a/_posts/2012-03-21-move-to-github.md +++ b/_posts/2012-03-21-move-to-github.md @@ -1,7 +1,6 @@ --- -layout: post title: "从Wordpress迁移到Github" -category: blog +categories: blog tags: - github - wordpress diff --git a/_posts/2012-03-22-workflow-activiti-action.md b/_posts/2012-03-22-workflow-activiti-action.md index 5e1b8487..f7be14f9 100644 --- a/_posts/2012-03-22-workflow-activiti-action.md +++ b/_posts/2012-03-22-workflow-activiti-action.md @@ -1,7 +1,6 @@ --- -layout: post title: "工作流引擎Activiti使用总结" -category: activiti +categories: activiti tags: - activiti - 工作流 diff --git a/_posts/2012-03-25-oh-my-zsh.md b/_posts/2012-03-25-oh-my-zsh.md index a103e018..619f5c03 100644 --- a/_posts/2012-03-25-oh-my-zsh.md +++ b/_posts/2012-03-25-oh-my-zsh.md @@ -1,6 +1,5 @@ --- -layout: post -category: shell +categories: shell title: "我最喜爱的工具-oh-my-zsh" tags: - shell diff --git a/_posts/2012-03-27-git-submodule.md b/_posts/2012-03-27-git-submodule.md index 82147ffa..589cb29c 100644 --- a/_posts/2012-03-27-git-submodule.md +++ b/_posts/2012-03-27-git-submodule.md @@ -1,7 +1,6 @@ --- -layout: post title: "Git Submodule使用完整教程" -category: git +categories: git tags: - scm - git diff --git a/_posts/2012-04-03-jquery-plugin-qtip.md b/_posts/2012-04-03-jquery-plugin-qtip.md index 3fabc7b0..1eda9c34 100644 --- a/_posts/2012-04-03-jquery-plugin-qtip.md +++ b/_posts/2012-04-03-jquery-plugin-qtip.md @@ -1,7 +1,6 @@ --- -layout: post title: "推荐:jQuery提示插件qTip2" -category: jquery +categories: jquery tags: - jquery - plugin diff --git a/_posts/2012-04-05-install-git-1-7-10-use-tar.md b/_posts/2012-04-05-install-git-1-7-10-use-tar.md index d0767632..0dabe32c 100644 --- a/_posts/2012-04-05-install-git-1-7-10-use-tar.md +++ b/_posts/2012-04-05-install-git-1-7-10-use-tar.md @@ -1,7 +1,6 @@ --- -layout: post title: "在Ubuntu上安装Git1.7.10-rc4(中文化)" -category: git +categories: git tags: - git - 本地化 diff --git a/_posts/2012-04-10-install-lastest-git-on-ubuntu.md b/_posts/2012-04-10-install-lastest-git-on-ubuntu.md index 0ac11954..f9b42a7d 100644 --- a/_posts/2012-04-10-install-lastest-git-on-ubuntu.md +++ b/_posts/2012-04-10-install-lastest-git-on-ubuntu.md @@ -1,7 +1,6 @@ --- -layout: post title: "在Ubuntu(Debian)上安装最新版Git" -category: git +categories: git tags: - git - ubuntu diff --git a/_posts/2012-04-14-install-ajaxplorer-on-ubuntu.md b/_posts/2012-04-14-install-ajaxplorer-on-ubuntu.md index 84595543..2c7ac839 100644 --- a/_posts/2012-04-14-install-ajaxplorer-on-ubuntu.md +++ b/_posts/2012-04-14-install-ajaxplorer-on-ubuntu.md @@ -1,7 +1,6 @@ --- -layout: post title: "在Linux(Ubuntu)+Nginx安装配置AjaXplorer" -category: tools +categories: tools tags: - ajaxplorer - linux diff --git a/_posts/2012-04-23-synchronize-or-redesign-user-and-role-for-activiti.md b/_posts/2012-04-23-synchronize-or-redesign-user-and-role-for-activiti.md index 511494cc..f9e5bb8b 100644 --- a/_posts/2012-04-23-synchronize-or-redesign-user-and-role-for-activiti.md +++ b/_posts/2012-04-23-synchronize-or-redesign-user-and-role-for-activiti.md @@ -1,7 +1,6 @@ --- -layout: post title: "同步或者重构Activiti Identify用户数据的多种方案比较" -category: activiti +categories: activiti tags: - activiti - workflow diff --git a/_posts/2012-05-01-activiti-designer-5.8-to-5.9.md b/_posts/2012-05-01-activiti-designer-5.8-to-5.9.md index 11ebfad5..0490e5f1 100644 --- a/_posts/2012-05-01-activiti-designer-5.8-to-5.9.md +++ b/_posts/2012-05-01-activiti-designer-5.8-to-5.9.md @@ -1,7 +1,6 @@ --- -layout: post title: "从Activiti Designer5.8升级到5.9遇到的问题" -category: activiti +categories: activiti tags: - activiti - designer diff --git a/_posts/2012-05-18-let-activiti-record-variables-to-history.md b/_posts/2012-05-18-let-activiti-record-variables-to-history.md index 377b9ff2..6b2761cb 100644 --- a/_posts/2012-05-18-let-activiti-record-variables-to-history.md +++ b/_posts/2012-05-18-let-activiti-record-variables-to-history.md @@ -1,7 +1,6 @@ --- -layout: post title: "让Activiti记录变量历史信息" -category: activiti +categories: activiti tags: - activiti - history diff --git a/_posts/2012-05-19-how-do-i-work-on-linux.md b/_posts/2012-05-19-how-do-i-work-on-linux.md index c0e670d3..ad210d06 100644 --- a/_posts/2012-05-19-how-do-i-work-on-linux.md +++ b/_posts/2012-05-19-how-do-i-work-on-linux.md @@ -1,7 +1,6 @@ --- -layout: post title: "我是如何在Linux(Ubuntu)上工作的?" -category: linux +categories: linux tags: - Linux - Ubuntu diff --git a/_posts/2012-05-20-set-process-start-user.md b/_posts/2012-05-20-set-process-start-user.md index fed8e2c7..5a0fd0c1 100644 --- a/_posts/2012-05-20-set-process-start-user.md +++ b/_posts/2012-05-20-set-process-start-user.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti设置流程发起用户信息" -category: activiti +categories: activiti tags: - activiti - 启动 diff --git a/_posts/2012-05-26-kft-activiti-demo.md b/_posts/2012-05-26-kft-activiti-demo.md index 46439b16..b5fe76ea 100644 --- a/_posts/2012-05-26-kft-activiti-demo.md +++ b/_posts/2012-05-26-kft-activiti-demo.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti快速入门项目-kft-activiti-demo" -category: activiti +categories: activiti tags: - activiti - 入门 diff --git a/_posts/2012-06-07-how-to-build-and-run-activiti-modeler-use-signavio.md b/_posts/2012-06-07-how-to-build-and-run-activiti-modeler-use-signavio.md index cbc043a4..9ca80b10 100644 --- a/_posts/2012-06-07-how-to-build-and-run-activiti-modeler-use-signavio.md +++ b/_posts/2012-06-07-how-to-build-and-run-activiti-modeler-use-signavio.md @@ -1,7 +1,6 @@ --- -layout: post title: "如何使用Signavio打包Activiti Modeler" -category: activiti +categories: activiti tags: - activiti - signavio @@ -73,8 +72,14 @@ Signavio是通过ant构建打包的,在打包之前需要更改一下build.pro 用编辑器打开signavio-core-components/ editor/build.xml文件。 -1. 找到<target name="com.signavio.editor.js.concat">,紧随其后添加一行配置代码:<property name="charset" value="utf-8"/> 标签中的<concat destfile='${build}/oryx.debug.js'>修改为 <concat destfile='${build}/oryx.debug.js' encoding="${charset}" outputencoding="${charset}">。 - 2. 找到<target name='com.signavio.editor.js.compress代码处,更改次target内的<java dir="${build}" jar="${root}/lib/yuicompressor-**2.4.2**.jar" fork="true" failonerror="true" output='${compress.temp}'>;将其中的yuicompressor-2.4.2.jar更改为yuicompressor-**2.4.7**.jar。 - 3. signavio默认使用yuicompressor-2.4.2版本压缩javascript和css文件,为了解决编码问题我们需要使用最新版本替换**2.4.2**版本,笔者在撰稿的时候最新的yuicompressor版本为**2.4.7**,读者也可以直接下载最新版本。访问[http://yuilibrary.com/download/yuicompressor/](http://yuilibrary.com/download/yuicompressor/) 下载第一个版本的压缩包,解压提取**build/yuicompressor-2.4.7.jar**文件并复制到signavio-core-components/yuicompressor/**editor/lib**目录中。 再次执行打包命令**ant build-all-in-one-war**一切正常,截图证明。 - - ![](/files/2012/06/activiti-modeler-windows-build-success.png) \ No newline at end of file +1. 找到<target name="com.signavio.editor.js.concat">,紧随其后添加一行配置代码:<property name="charset" value="utf-8"/> +标签中的<concat destfile='${build}/oryx.debug.js'>修改为 +<concat destfile='${build}/oryx.debug.js' encoding="${charset}" outputencoding="${charset}">。 + +2. 找到<target name='com.signavio.editor.js.compress代码处,更改次target内的<java dir="${build}" jar="${root}/lib/yuicompressor-**2.4.2**.jar" fork="true" failonerror="true" output='${compress.temp}'>;将其中的yuicompressor-2.4.2.jar更改为yuicompressor-**2.4.7**.jar。 + +3. signavio默认使用yuicompressor-2.4.2版本压缩javascript和css文件,为了解决编码问题我们需要使用最新版本替换**2.4.2**版本,笔者在撰稿的时候最新的yuicompressor版本为**2.4.7**,读者也可以直接下载最新版本。访问[http://yuilibrary.com/download/yuicompressor/](http://yuilibrary.com/download/yuicompressor/) 下载第一个版本的压缩包,解压提取**build/yuicompressor-2.4.7.jar**文件并复制到signavio-core-components/yuicompressor/**editor/lib**目录中。 + +再次执行打包命令**ant build-all-in-one-war**一切正常,截图证明。 + +![](/files/2012/06/activiti-modeler-windows-build-success.png) diff --git a/_posts/2012-07-18-how-to-pack-process-resources.md b/_posts/2012-07-18-how-to-pack-process-resources.md index c8940068..a6d653dc 100644 --- a/_posts/2012-07-18-how-to-pack-process-resources.md +++ b/_posts/2012-07-18-how-to-pack-process-resources.md @@ -1,7 +1,6 @@ --- -layout: post title: "如何打包Activiti的流程资源文件(bpmn20.xml、form、png)" -category: activiti +categories: activiti tags: - activiti - 打包 diff --git a/_posts/2012-07-18-zsh-maven-complection.md b/_posts/2012-07-18-zsh-maven-complection.md index 8f2266a4..cd4b6586 100644 --- a/_posts/2012-07-18-zsh-maven-complection.md +++ b/_posts/2012-07-18-zsh-maven-complection.md @@ -1,7 +1,6 @@ --- -layout: post title: "Zsh(oh-my-zsh)的Maven自动提示插件(zsh-maven-complection)" -category: shell +categories: shell tags: - shell - zsh diff --git a/_posts/2012-08-04-resources-index-of-learn-activiti.md b/_posts/2012-08-04-resources-index-of-learn-activiti.md index e5675ec8..90a011fd 100644 --- a/_posts/2012-08-04-resources-index-of-learn-activiti.md +++ b/_posts/2012-08-04-resources-index-of-learn-activiti.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti入门,学习资源索引" -category: activiti +categories: activiti tags: - activiti - 教程 diff --git a/_posts/2012-08-05-diff-activiti-workflow-forms.md b/_posts/2012-08-05-diff-activiti-workflow-forms.md index 2707d5b1..617e6c82 100644 --- a/_posts/2012-08-05-diff-activiti-workflow-forms.md +++ b/_posts/2012-08-05-diff-activiti-workflow-forms.md @@ -1,7 +1,6 @@ --- -layout: post title: "比较Activiti中三种不同的表单及其应用" -category: activiti +categories: activiti tags: - activiti - 表单 diff --git a/_posts/2012-08-09-activiti-objects.md b/_posts/2012-08-09-activiti-objects.md index 72537b3f..48c5f9ed 100644 --- a/_posts/2012-08-09-activiti-objects.md +++ b/_posts/2012-08-09-activiti-objects.md @@ -1,7 +1,6 @@ --- -layout: post title: "谈谈Activiti中流程对象之间的关系" -category: activiti +categories: activiti tags: - activiti - 层级 diff --git a/_posts/2012-08-25-jqgrid-frozen-column-height.md b/_posts/2012-08-25-jqgrid-frozen-column-height.md index 5976bb1c..ec06847e 100644 --- a/_posts/2012-08-25-jqgrid-frozen-column-height.md +++ b/_posts/2012-08-25-jqgrid-frozen-column-height.md @@ -1,7 +1,6 @@ --- -layout: post title: "jqGrid启用列冻结之后列高度不一致问题解决办法" -category: jquery +categories: jquery tags: - jqgrid - 列冻结 diff --git a/_posts/2012-09-14-activiti-initiator.md b/_posts/2012-09-14-activiti-initiator.md index 82d27f12..7ac9b2de 100644 --- a/_posts/2012-09-14-activiti-initiator.md +++ b/_posts/2012-09-14-activiti-initiator.md @@ -1,7 +1,6 @@ --- -layout: post title: "activiti:initiator的作用及其使用" -category: activiti +categories: activiti tags: - activiti - initiator diff --git a/_posts/2012-09-30-activiti-explorer-i18n-for-chinese.md b/_posts/2012-09-30-activiti-explorer-i18n-for-chinese.md index ecca35cd..2da64248 100644 --- a/_posts/2012-09-30-activiti-explorer-i18n-for-chinese.md +++ b/_posts/2012-09-30-activiti-explorer-i18n-for-chinese.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti Explorer中文汉化" -category: activiti +categories: activiti tags: - activiti - 中文 diff --git a/_posts/2012-09-30-new-version-of-activiti-modeler.md b/_posts/2012-09-30-new-version-of-activiti-modeler.md index 8c116cb9..a5928de9 100644 --- a/_posts/2012-09-30-new-version-of-activiti-modeler.md +++ b/_posts/2012-09-30-new-version-of-activiti-modeler.md @@ -1,7 +1,6 @@ --- -layout: post title: "新版Activiti Modeler发布以及教程" -category: activiti +categories: activiti tags: - activiti - Activiti Modeler diff --git a/_posts/2012-10-22-activiti-5.10-deploy-bpmn-directly.md b/_posts/2012-10-22-activiti-5.10-deploy-bpmn-directly.md index 08f2cda5..6fdd0964 100644 --- a/_posts/2012-10-22-activiti-5.10-deploy-bpmn-directly.md +++ b/_posts/2012-10-22-activiti-5.10-deploy-bpmn-directly.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti 5.10支持直接部署扩展名为bpmn的流程文件" -category: activiti +categories: activiti tags: - activiti - 5.10 diff --git a/_posts/2012-11-22-jquery-ui-portlet.md b/_posts/2012-11-22-jquery-ui-portlet.md index 37386981..3d25e322 100644 --- a/_posts/2012-11-22-jquery-ui-portlet.md +++ b/_posts/2012-11-22-jquery-ui-portlet.md @@ -1,7 +1,6 @@ --- -layout: post title: "基于jQuery UI的Portlet插件—jQuery UI Portlet" -category: jquery +categories: jquery tags: - jquery - ui diff --git a/_posts/2012-12-05-activiti-5-11-release.md b/_posts/2012-12-05-activiti-5-11-release.md index 1279ff80..69641507 100644 --- a/_posts/2012-12-05-activiti-5-11-release.md +++ b/_posts/2012-12-05-activiti-5-11-release.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti 5.11发布" -category: activiti +categories: activiti tags: - activiti - bpmn2.0 diff --git a/_posts/2012-12-08-jquery-ui-portlet-v1.1.0-release.md b/_posts/2012-12-08-jquery-ui-portlet-v1.1.0-release.md index 2355a45d..1260a062 100644 --- a/_posts/2012-12-08-jquery-ui-portlet-v1.1.0-release.md +++ b/_posts/2012-12-08-jquery-ui-portlet-v1.1.0-release.md @@ -1,7 +1,6 @@ --- -layout: post title: "jQuery UI Portlet V1.1.0 发布" -category: jquery +categories: jquery tags: - jquery - ui diff --git a/_posts/2012-12-15-activiti-explorer-5-11-garbled.md b/_posts/2012-12-15-activiti-explorer-5-11-garbled.md index 4f7388ea..605fa7c6 100644 --- a/_posts/2012-12-15-activiti-explorer-5-11-garbled.md +++ b/_posts/2012-12-15-activiti-explorer-5-11-garbled.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti Explorer 5.11登录页面乱码解决办法" -category: activiti +categories: activiti tags: - activiti - explorer diff --git a/_posts/2012-12-15-kft-activiti-1-5-release.md b/_posts/2012-12-15-kft-activiti-1-5-release.md index 1a6fde6b..a5f89ba8 100644 --- a/_posts/2012-12-15-kft-activiti-1-5-release.md +++ b/_posts/2012-12-15-kft-activiti-1-5-release.md @@ -1,7 +1,6 @@ --- -layout: post title: "kft-activiti-demo 1.5.0 发布" -category: activiti +categories: activiti tags: - activiti - kft-activiti-demo diff --git a/_posts/2013-01-12-kft-activiti-demo-rest.md b/_posts/2013-01-12-kft-activiti-demo-rest.md index 2625072b..445dceff 100644 --- a/_posts/2013-01-12-kft-activiti-demo-rest.md +++ b/_posts/2013-01-12-kft-activiti-demo-rest.md @@ -1,7 +1,6 @@ --- -layout: post title: "如何使用Activiti Rest模块" -category: activiti +categories: activiti tags: - activiti - rest diff --git a/_posts/2013-02-14-improve-performance-for-reading-diagram.md b/_posts/2013-02-14-improve-performance-for-reading-diagram.md index e00874a3..61c16d45 100644 --- a/_posts/2013-02-14-improve-performance-for-reading-diagram.md +++ b/_posts/2013-02-14-improve-performance-for-reading-diagram.md @@ -1,7 +1,6 @@ --- -layout: post title: "利用静态服务提升读取Activiti流程图的性能" -category: activiti +categories: activiti tags: - activiti - 静态 diff --git a/_posts/2013-03-06-activiti-5-12-release.md b/_posts/2013-03-06-activiti-5-12-release.md index fbbb63bb..9e75d275 100644 --- a/_posts/2013-03-06-activiti-5-12-release.md +++ b/_posts/2013-03-06-activiti-5-12-release.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti 5.12发布" -category: activiti +categories: activiti tags: - activiti - bpmn2.0 diff --git a/_posts/2013-03-10-integrate-activiti-modeler.md b/_posts/2013-03-10-integrate-activiti-modeler.md index be9e9106..3c983750 100644 --- a/_posts/2013-03-10-integrate-activiti-modeler.md +++ b/_posts/2013-03-10-integrate-activiti-modeler.md @@ -1,7 +1,6 @@ --- -layout: post title: "整合Activiti Modeler到业务系统(或BPM平台)" -category: activiti +categories: activiti tags: - activiti - Activiti Modeler diff --git a/_posts/2013-03-10-kft-activiti-demo-release-1-7.md b/_posts/2013-03-10-kft-activiti-demo-release-1-7.md index 28b57b46..489db2df 100644 --- a/_posts/2013-03-10-kft-activiti-demo-release-1-7.md +++ b/_posts/2013-03-10-kft-activiti-demo-release-1-7.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti快速入门项目kft-activiti-demo 1.7.0版本发布" -category: activiti +categories: activiti tags: - activiti - Activiti Modeler diff --git a/_posts/2013-03-23-activiti-designer-5-12-release.md b/_posts/2013-03-23-activiti-designer-5-12-release.md index 7925f00b..93066071 100644 --- a/_posts/2013-03-23-activiti-designer-5-12-release.md +++ b/_posts/2013-03-23-activiti-designer-5-12-release.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti Designer 5.12.0 发布" -category: activiti +categories: activiti tags: - activiti - Activiti Designer diff --git a/_posts/2013-03-26-intellij-deal-chinese-disorderly-code.md b/_posts/2013-03-26-intellij-deal-chinese-disorderly-code.md index 854c443a..b75b4197 100644 --- a/_posts/2013-03-26-intellij-deal-chinese-disorderly-code.md +++ b/_posts/2013-03-26-intellij-deal-chinese-disorderly-code.md @@ -1,7 +1,6 @@ --- -layout: post title: "IntelliJ IDEA中文乱码解决办法" -category: tools +categories: tools tags: - 开发工具 - IntelliJ IDEA diff --git a/_posts/2013-04-05-activiti-5-12-x.md b/_posts/2013-04-05-activiti-5-12-x.md index e9caa089..edbebc48 100644 --- a/_posts/2013-04-05-activiti-5-12-x.md +++ b/_posts/2013-04-05-activiti-5-12-x.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti 5.12.X 衍生版本发布" -category: activiti +categories: activiti tags: - activiti - 5.12 diff --git a/_posts/2013-04-13-forum.md b/_posts/2013-04-13-forum.md index 5e75c0bc..1e83e562 100644 --- a/_posts/2013-04-13-forum.md +++ b/_posts/2013-04-13-forum.md @@ -1,7 +1,6 @@ --- -layout: post title: "博客论坛正式上线" -category: blog +categories: blog tags: - 论坛 --- diff --git a/_posts/2013-04-19-about-process-egine-and-configuration.md b/_posts/2013-04-19-about-process-egine-and-configuration.md index 14bbd8d2..f6d5c450 100644 --- a/_posts/2013-04-19-about-process-egine-and-configuration.md +++ b/_posts/2013-04-19-about-process-egine-and-configuration.md @@ -1,7 +1,6 @@ --- -layout: post title: "谈谈Activiti的引擎与引擎配置对象" -category: activiti +categories: activiti tags: - activiti - 引擎配置对象 diff --git a/_posts/2013-05-27-dynamic-process-creation-and-deployment-in-100-lines.md b/_posts/2013-05-27-dynamic-process-creation-and-deployment-in-100-lines.md index 13b6e0d2..7e786215 100644 --- a/_posts/2013-05-27-dynamic-process-creation-and-deployment-in-100-lines.md +++ b/_posts/2013-05-27-dynamic-process-creation-and-deployment-in-100-lines.md @@ -1,7 +1,6 @@ --- -layout: post title: "利用100行代码动态创建并部署流程" -category: activiti +categories: activiti tags: - activiti - 动态 diff --git a/_posts/2013-06-29-a-successful-cofiguration-file-management-solution.md b/_posts/2013-06-29-a-successful-cofiguration-file-management-solution.md index 4da423bd..cf7f9820 100644 --- a/_posts/2013-06-29-a-successful-cofiguration-file-management-solution.md +++ b/_posts/2013-06-29-a-successful-cofiguration-file-management-solution.md @@ -1,7 +1,6 @@ --- -layout: post title: "一个基于Maven的配置文件管理成功案例" -category: solution +categories: solution tags: - 配置文件 - 管理方式 diff --git a/_posts/2013-07-17-activiti-5.13.1-kft-released.md b/_posts/2013-07-17-activiti-5.13.1-kft-released.md index 84bdfc93..25ea1f0b 100644 --- a/_posts/2013-07-17-activiti-5.13.1-kft-released.md +++ b/_posts/2013-07-17-activiti-5.13.1-kft-released.md @@ -1,7 +1,6 @@ --- -layout: post title: "Activiti 5.13修复版本5.13.1-kft发布" -category: activiti +categories: activiti tags: - ACT-1731 - Activiti diff --git a/_posts/2013-08-30-using-uuid-as-primary-key-in-activiti.md b/_posts/2013-08-30-using-uuid-as-primary-key-in-activiti.md index b6cfba9e..0b39e0ae 100644 --- a/_posts/2013-08-30-using-uuid-as-primary-key-in-activiti.md +++ b/_posts/2013-08-30-using-uuid-as-primary-key-in-activiti.md @@ -1,7 +1,6 @@ --- -layout: post title: "在Activiti中使用UUID作为主键生成策略" -category: activiti +categories: activiti tags: - Activiti - UUID diff --git a/_posts/2014-01-23-analyse-activity.md b/_posts/2014-01-23-analyse-activity.md index e9c477f9..fa191bcb 100644 --- a/_posts/2014-01-23-analyse-activity.md +++ b/_posts/2014-01-23-analyse-activity.md @@ -1,7 +1,6 @@ --- -layout: post title: "剖析Activiti的Activity" -category: activiti +categories: activiti tags: - activiti - Activity @@ -20,7 +19,7 @@ tags: ## 3. 输出结果示例 -
    +```
     {taskDefinition=org.activiti.engine.impl.task.TaskDefinition@19c6e4d1, default=null, name=部门领导审批, documentation=null, type=userTask}
     {conditionText=${!deptLeaderPass}, condition=org.activiti.engine.impl.el.UelExpressionCondition@50d8628f, name=不同意, documentation=null}
     {conditionText=${deptLeaderPass}, condition=org.activiti.engine.impl.el.UelExpressionCondition@2e2ec3c0, name=同意, documentation=null}
    @@ -33,4 +32,4 @@ tags:
     {conditionText=${!reApply}, condition=org.activiti.engine.impl.el.UelExpressionCondition@3cf5dc8a, name=结束流程, documentation=null}
     {name=Start, documentation=null, type=startEvent}
     {name=End, documentation=null, type=endEvent}
    -
    \ No newline at end of file +``` \ No newline at end of file diff --git a/_posts/2014-04-18-activiti-with-jpa.md b/_posts/2014-04-18-activiti-with-jpa.md index 57c7d61d..9b894b57 100644 --- a/_posts/2014-04-18-activiti-with-jpa.md +++ b/_posts/2014-04-18-activiti-with-jpa.md @@ -1,7 +1,6 @@ --- -layout: post title: "在Activiti中集成JPA(解决动态表单生成的大量数据)" -category: activiti +categories: activiti tags: - Activiti --- diff --git a/_posts/2014-04-24-diagram-viewer.md b/_posts/2014-04-24-diagram-viewer.md index a4857976..a280e41e 100644 --- a/_posts/2014-04-24-diagram-viewer.md +++ b/_posts/2014-04-24-diagram-viewer.md @@ -1,7 +1,6 @@ --- -layout: post title: "集成Diagram Viewer跟踪流程" -category: activiti +categories: activiti tags: - Activiti - Diagram Viewer diff --git a/_posts/2015-12-27-integrate-new-activiti-modeler-and-rest.md b/_posts/2015-12-27-integrate-new-activiti-modeler-and-rest.md index 4faabf5d..279c4871 100644 --- a/_posts/2015-12-27-integrate-new-activiti-modeler-and-rest.md +++ b/_posts/2015-12-27-integrate-new-activiti-modeler-and-rest.md @@ -1,12 +1,13 @@ --- -layout: post title: "集成新版(5.17+)Activiti Modeler与Rest服务" -category: activiti +categories: activiti tags: - Activiti - Activiti Modeler --- +{% include toc title="Getting Started" %} + 这又是一片迟来的博客,上一篇博文还是2014年4月24日写的,因为很多内容都在书(《[Activiti实战](activiti-in-action.html)》)里了已经有详细的解释了,不过由于书里面使用的是**5.16.4**版本,从**5.17.0**版本后Activiti Modeler的整合方式有些变化,所以写此博问作为补充内容。 **声明**: diff --git a/_recipes/chocolate-chip-cookies.md b/_recipes/chocolate-chip-cookies.md new file mode 100644 index 00000000..ddd52d78 --- /dev/null +++ b/_recipes/chocolate-chip-cookies.md @@ -0,0 +1,31 @@ +--- +title: "Chocolate Chip Cookies" +--- + +A chocolate chip cookie is a drop cookie that originated in the United States and features chocolate chips as its distinguishing ingredient. + +The traditional recipe combines a dough composed of butter and both brown and white sugar with semi-sweet chocolate chips. Variations include recipes with other types of chocolate as well as additional ingredients such as nuts or oatmeal. + +This recipe makes 4 dozen cookies. + +## Ingredients + +* 2 1/4 cups all-purpose flour +* 1 teaspoon baking soda +* 1/2 teaspoon salt +* 1 cup butter, softened and cut to pieces +* 1 cup sugar +* 1 cup light brown sugar, packed +* 2 teaspoons vanilla extract +* 2 large eggs +* 2 cups semi-sweet chocolate chips +* 1/2 teaspoon nutmeg (optional) +* 1 cup chopped pecans or walnuts (optional) + +## Directions + +1. Preheat the oven to 350 F. +2. In a medium bowl, whisk flour with baking soda, nutmeg and salt. +3. In a large bowl, beat butter with sugar and brown sugar until creamy and light. Add vanilla and eggs, one at a time, and mix until incorporated. +4. Gradually add dry mixture into the butter-sugar wet blend, mixing with a spatula until combined. Add chocolate chips and nuts until just mixed. +5. Drop tablespoon-sized clumps onto un-greased cookie sheets. Bake for 8-12 minutes, or until pale brown. Allow to cool on the pan for a minute or three, then transfer cookies to a wire rack to finish cooling. \ No newline at end of file diff --git a/_recipes/oatmeal-cookies.md b/_recipes/oatmeal-cookies.md new file mode 100644 index 00000000..978ad4fe --- /dev/null +++ b/_recipes/oatmeal-cookies.md @@ -0,0 +1,23 @@ +--- +title: "Oatmeal Cookies" +--- + +Oatmeal cookies are a proverbial favorite with both kids and adults. This crisp and chewy cookie is loaded with oats, dried fruit, and chopped nuts. + +## Ingredients + +* 1 cup butter, softened 1 cup white sugar +* 1 cup packed brown sugar +* 2 eggs +* 1 teaspoon vanilla extract +* 2 cups all-purpose flour +* 1 teaspoon baking soda +* 1 teaspoon salt +* 1 1/2 teaspoons ground cinnamon +* 3 cups quick cooking oats + +## Directions + +1. In a medium bowl, cream together butter, white sugar, and brown sugar. Beat in eggs one at a time, then stir in vanilla. Combine flour, baking soda, salt, and cinnamon; stir into the creamed mixture. Mix in oats. Cover, and chill dough for at least one hour. +2. Preheat the oven to 375 degrees F (190 degrees C). Grease cookie sheets. Roll the dough into walnut sized balls, and place 2 inches apart on cookie sheets. Flatten each cookie with a large fork dipped in sugar. +3. Bake for 8 to 10 minutes in preheated oven. Allow cookies to cool on baking sheet for 5 minutes before transferring to a wire rack to cool completely. \ No newline at end of file diff --git a/_recipes/peanut-butter-cookies.md b/_recipes/peanut-butter-cookies.md new file mode 100644 index 00000000..b5eaae81 --- /dev/null +++ b/_recipes/peanut-butter-cookies.md @@ -0,0 +1,23 @@ +--- +title: "Peanut Butter Cookies" +--- + +A peanut butter cookie is a type of cookie that is distinguished for having peanut butter as a principal ingredient. The cookie generally originated in the United States, its development dating back to the 1910s. + +## Ingredients + +* 1 cup unsalted butter +* 1 cup crunchy peanut butter +* 1 cup white sugar +* 1 cup packed brown sugar +* 2 eggs 2 +* 1/2 cups all-purpose flour +* 1 teaspoon baking powder +* 1/2 teaspoon salt +* 1 1/2 teaspoons baking soda + +## Directions + +1. Cream butter, peanut butter, and sugars together in a bowl; beat in eggs. +2. In a separate bowl, sift flour, baking powder, baking soda, and salt; stir into butter mixture. Put dough in refrigerator for 1 hour. +3. Roll dough into 1 inch balls and put on baking sheets. Flatten each ball with a fork, making a crisscross pattern. Bake in a preheated 375 degrees F oven for about 10 minutes or until cookies begin to brown. \ No newline at end of file diff --git a/_sass/_animations.scss b/_sass/_animations.scss new file mode 100644 index 00000000..25ef77fb --- /dev/null +++ b/_sass/_animations.scss @@ -0,0 +1,21 @@ +/* ========================================================================== + ANIMATIONS + ========================================================================== */ + +@-webkit-keyframes intro { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +@keyframes intro { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} \ No newline at end of file diff --git a/_sass/_archive.scss b/_sass/_archive.scss new file mode 100644 index 00000000..0509f814 --- /dev/null +++ b/_sass/_archive.scss @@ -0,0 +1,238 @@ +/* ========================================================================== + ARCHIVE + ========================================================================== */ + +.archive { + margin-bottom: 2em; + + @include breakpoint($medium) { + @include span(12 of 12); + } + + @include breakpoint($large) { + @include span(10 of 12 last); + @include prefix(0.5 of 12); + } + + a { + color: inherit; + text-decoration: none; + } +} + +.archive__subtitle { + margin: 1.414em 0 0; + padding-bottom: 0.5em; + font-size: $type-size-5; + color: mix(#fff, $gray, 25%); + border-bottom: 1px solid $border-color; + + + .list__item .archive__item-title { + margin-top: 0.5em; + } +} + +.archive__item-title { + margin-bottom: 0.25em; + font-family: $sans-serif-narrow; + + a + a { + opacity: 0.5; + } +} + +/* remove border*/ +.page__content { + + .archive__item-title { + margin-top: 1em; + border-bottom: none; + } +} + +.archive__item-excerpt { + margin-top: 0; + font-size: $type-size-6; + + & + p { + text-indent: 0; + } +} + +.archive__item-teaser { + border-radius: $border-radius; + overflow: hidden; + img { + width: 100%; + } +} + +.archive__item:hover { + .archive__item-teaser { + box-shadow: 0 0 10px rgba(#000, 0.25); + } + + .archive__item-title { + text-decoration: underline; + } +} + + +/* + List view + ========================================================================== */ + +.list__item { + @include breakpoint($medium) { + padding-right: $right-sidebar-width-narrow; + } + + @include breakpoint($large) { + padding-right: $right-sidebar-width; + } + + @include breakpoint($x-large) { + padding-right: $right-sidebar-width-wide; + } + + .page__meta { + margin: 0 0 4px; + } +} + + +/* + Grid view + ========================================================================== */ + +.grid__item { + margin-bottom: 2em; + + .page__meta { + margin: 0 0 4px; + } + + .archive__item-title { + margin-top: 0.5em; + font-size: $type-size-5; + } + + .archive__item-excerpt { + display: none; + } + + @include breakpoint($small) { + @include gallery(5 of 10); + .archive__item-teaser { + max-height: 200px; + } + } + + @include breakpoint($medium) { + margin-left: 0; /* reset before mixin does its thing*/ + margin-right: 0; /* reset before mixin does its thing*/ + @include gallery(2.5 of 10); + + .archive__item-teaser { + max-height: 120px; + } + + .archive__item-excerpt { + display: block; + font-size: $type-size-6; + } + } +} + + +/* + Features + ========================================================================== */ + +.feature__wrapper { + @include clearfix(); + margin-bottom: 2em; + border-bottom: 1px solid $border-color; +} + +.feature__item { + margin-bottom: 2em; + font-size: 1.25rem; + + @include breakpoint($small) { + margin-bottom: 0; + @include gallery(4 of 12); + + .feature__item-teaser { + max-height: 200px; + overflow: hidden; + } + } + + &--left { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + .archive__item-teaser { + @include span(5 of 12); + } + + .archive__item-body { + @include span(7 of 12 last); + @include prefix(0.5 of 12); + @include suffix(1 of 12); + } + } + } + + &--right { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + text-align: right; + + .archive__item-teaser { + @include span(5 of 12 rtl); + } + + .archive__item-body { + @include span(7 of 12 last rtl); + @include prefix(0.5 of 12); + @include suffix(1 of 12); + } + } + } + + &--center { + @include full(); + font-size: 1.25rem; + + .archive__item-teaser { + margin-bottom: 2em; + } + + @include breakpoint($small) { + text-align: center; + + .archive__item-teaser { + margin: 0 auto; + width: span(5 of 12); + } + + .archive__item-body { + margin: 0 auto; + width: span(7 of 12); + } + } + } +} diff --git a/_sass/_base.scss b/_sass/_base.scss new file mode 100644 index 00000000..2eda44d0 --- /dev/null +++ b/_sass/_base.scss @@ -0,0 +1,309 @@ +/* ========================================================================== + BASE ELEMENTS + ========================================================================== */ + +body { + margin: 0; + padding: 0; + color: $text-color; + font-family: $global-font-family; + line-height: 1.5; + + &.overflow--hidden { + /* when primary navigation is visible, the content in the background won't scroll */ + overflow: hidden; + } +} + +h1, h2, h3, h4, h5, h6 { + margin: 2em 0 0.5em; + line-height: 1.2; + font-family: $header-font-family; + font-weight: bold; +} + +h1 { + margin-top: 0; + font-size: $type-size-3; +} + +h2 { + font-size: $type-size-4; +} + +h3 { + font-size: $type-size-5; +} + +h4 { + font-size: $type-size-6; +} + +h5 { + font-size: $type-size-6; +} + +h6 { + font-size: $type-size-6; +} + +small, .small { + font-size: $type-size-6; +} + +p { + margin-bottom: 1.3em; +} + +u, +ins { + text-decoration: none; + border-bottom: 1px solid $text-color; + a { + color: inherit; + } +} + +del a { + color: inherit; +} + +/* reduce orphans and widows when printing */ + +p, pre, blockquote, ul, ol, dl, figure, table, fieldset { + orphans: 3; + widows: 3; +} + +/* abbreviations */ + +abbr[title], +abbr[data-original-title] { + text-decoration: none; + cursor: help; + border-bottom: 1px dotted $text-color; +} + +/* blockquotes */ + +blockquote { + margin: 2em 1em 2em 0; + padding-left: 1em; + padding-right: 1em; + font-style: italic; + border-left: 0.25em solid $primary-color; + + cite { + font-style: italic; + + &:before { + content: "\2014"; + padding-right: 5px; + } + } +} + +/* links */ + +a { + &:focus { + @extend %tab-focus; + } + + &:hover, + &:active { + outline: 0; + } +} + +/* code */ + +tt, code, kbd, samp, pre { + font-family: $monospace; +} + +pre { + overflow-x: auto; /* add scrollbars to wide code blocks*/ +} + +p > code, +a > code, +li > code, +figcaption > code, +td > code { + padding-top: 0.1rem; + padding-bottom: 0.1rem; + font-size: $type-size-6; + background: $code-background-color; + border: 1px solid $lighter-gray; + border-radius: $border-radius; + box-shadow: $box-shadow; + + &:before, &:after { + letter-spacing: -0.2em; + content: "\00a0"; /* non-breaking space*/ + } +} + +/* horizontal rule */ + +hr { + display: block; + margin: 1em 0; + border: 0; + border-top: 1px solid $border-color; +} + +/* lists */ + +ul li, +ol li { + margin-bottom: 0.5em; +} + +li ul, +li ol { + margin-top: 0.5em; +} + +/* + Media and embeds + ========================================================================== */ + +/* Figures and images */ + +figure { + display: -webkit-box; + display: flex; + -webkit-box-pack: justify; + justify-content: space-between; + -webkit-box-align: start; + align-items: flex-start; + flex-wrap: wrap; + margin: 2em 0; + + img, + iframe, + .fluid-width-video-wrapper { + margin-bottom: 1em; + } + + img { + width: 100%; + border-radius: $border-radius; + -webkit-transition: $global-transition; + transition: $global-transition; + } + + > a { + display: block; + } + + &.half { + > a, + > img { + @include breakpoint($small) { + width: calc(50% - 0.5em); + } + } + + figcaption { + width: 100%; + } + } + + &.third { + > a, + > img { + @include breakpoint($small) { + width: calc(33.3333% - 0.5em); + } + } + + figcaption { + width: 100%; + } + } +} + +/* Figure captions */ + +figcaption { + margin-bottom: 0.5em; + color: mix(#fff, $text-color, 25%); + font-family: $caption-font-family; + font-size: $type-size-6; + + a { + color: inherit; + text-decoration: none; + border-bottom: 1px solid $light-gray; + -webkit-transition: $global-transition; + transition: $global-transition; + + &:hover { + color: #000; + border-bottom-color: #000; + } + } +} + + +/* Fix IE9 SVG bug */ + +svg:not(:root) { + overflow: hidden; +} + + +/* + Navigation lists + ========================================================================== */ + +/** + * Removes margins, padding, and bullet points from navigation lists + * + * Example usage: + * + */ + +nav { + ul { + margin: 0; + padding: 0; + } + + li { + list-style: none; + } + + a { + text-decoration: none; + } + + /* override white-space for nested lists */ + ul li, + ol li { + margin-bottom: 0; + } + + li ul, + li ol { + margin-top: 0; + } +} + +/* + Global animation transition + ========================================================================== */ + +b, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, tr, td, form button, input[type="submit"], .btn, .highlight, .archive__item-teaser { + -webkit-transition: $global-transition; + transition: $global-transition; +} \ No newline at end of file diff --git a/_sass/_buttons.scss b/_sass/_buttons.scss new file mode 100644 index 00000000..d6cf90ea --- /dev/null +++ b/_sass/_buttons.scss @@ -0,0 +1,153 @@ +/* ========================================================================== + BUTTONS + ========================================================================== */ + +/* + Default button + ========================================================================== */ + +.btn { + /* default button */ + display: inline-block; + margin-bottom: 0.25em; + padding: 0.5em 1em; + color: #fff !important; + font-family: $sans-serif; + font-size: $type-size-6; + font-weight: bold; + text-align: center; + text-decoration: none; + background-color: $primary-color; + border: 0 !important; + border-radius: $border-radius; + cursor: pointer; + + &:hover { + background-color: mix(white, #000, 20%); + } + + .icon { + margin-right: 0.5em; + } + + .icon + .hidden { + margin-left: -0.5em; /* override for hidden text*/ + } + + /* fills width of parent container */ + + &--block { + display: block; + width: 100%; + + + .btn--block { + margin-top: 0.25em; + } + } + + /* for dark backgrounds */ + + &--inverse { + color: $gray !important; + border: 1px solid $light-gray !important; /* override*/ + background-color: #fff; + + &:hover { + color: #fff !important; + border-color: $gray; + } + } + + /* light outline */ + + &--light-outline { + border: 1px solid #fff !important; /* override*/ + background-color: transparent; + } + + /* information */ + + &--info { + background-color: $info-color; + + &:hover { + background-color: mix(#000, $info-color, 20%); + } + } + + /* warning */ + + &--warning { + background-color: $warning-color; + + &:hover { + background-color: mix(#000, $warning-color, 20%); + } + } + + /* success */ + + &--success { + background-color: $success-color; + + &:hover { + background-color: mix(#000, $success-color, 20%); + } + } + + /* danger */ + + &--danger { + background-color: $danger-color; + + &:hover { + background-color: mix(#000, $danger-color, 20%); + } + } + + /* disabled */ + + &--disabled { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + box-shadow: none; + opacity: 0.65; + } + + /* social buttons */ + + $social: + (facebook, $facebook-color), + (twitter, $twitter-color), + (google-plus, $google-plus-color), + (linkedin, $linkedin-color); + + @each $socialnetwork, $color in $social { + &--#{$socialnetwork} { + background-color: $color; + + &:hover { + background-color: mix(#000, $color, 20%); + } + } + } + + /* extra large button */ + + &--x-large { + font-size: $type-size-4; + } + + /* large button */ + + &--large { + font-size: $type-size-5; + } + + /* small button */ + + &--small { + font-size: $type-size-7; + } +} \ No newline at end of file diff --git a/_sass/_footer.scss b/_sass/_footer.scss new file mode 100644 index 00000000..f7b7ff80 --- /dev/null +++ b/_sass/_footer.scss @@ -0,0 +1,73 @@ +/* ========================================================================== + FOOTER + ========================================================================== */ + +.page__footer { + @include full(); + @include clearfix; + margin-top: 3em; + color: mix(#fff, $gray, 25%); + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.45s; + animation-delay: 0.45s; + background-color: $lighter-gray; + border-top: 1px solid $light-gray; + + footer { + @include container; + @include clearfix; + margin-top: 2em; + padding: 0 1em 2em; + + @include breakpoint($x-large) { + max-width: $x-large; + } + } + + a { + color: inherit; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } + + .fa { + color: mix(#fff, $gray, 25%); + } +} + +.page__footer-copyright { + font-family: $global-font-family; + font-size: $type-size-7; +} + +.page__footer-follow { + + ul { + margin: 0; + padding: 0; + list-style-type: none; + } + + li { + display: inline-block; + padding-top: 5px; + padding-bottom: 5px; + font-family: $sans-serif-narrow; + font-size: $type-size-6; + text-transform: uppercase; + } + + li + li:before { + content: ""; + padding-right: 5px; + } + + a { + padding-right: 10px; + font-weight: bold; + } +} \ No newline at end of file diff --git a/_sass/_forms.scss b/_sass/_forms.scss new file mode 100644 index 00000000..a1f0f146 --- /dev/null +++ b/_sass/_forms.scss @@ -0,0 +1,391 @@ +/* ========================================================================== + Forms + ========================================================================== */ + +form { + margin: 0 0 5px 0; + + fieldset { + margin-bottom: 5px; + padding: 0; + border-width: 0; + } + + legend { + display: block; + width: 100%; + margin-bottom: 5px * 2; + *margin-left: -7px; + padding: 0; + color: $text-color; + border: 0; + border-bottom: 1px solid mix(#fff, #000, 80%); + white-space: normal; + } + + p { + margin-bottom: 5px / 2; + } + + ul { + list-style-type: none; + margin: 0 0 5px 0; + padding: 0; + } + + br { + display: none; + } +} + +label, +input, +button, +select, +textarea { + vertical-align: baseline; + *vertical-align: middle; +} + +input, +button, +select, +textarea { + box-sizing: border-box; + font-family: $sans-serif; +} + +label { + display: block; + margin-bottom: 0.25em; + color: $text-color; + cursor: pointer; + + small { + font-size: $type-size-6; + } + + input, + textarea, + select { + display: block; + } +} + +input, +textarea, +select { + display: inline-block; + width: 100%; + padding: 0.25em; + margin-bottom: 0.5em; + color: $text-color; + background-color: #fff; + border: 1px solid mix(#fff, #000, 80%); + border-radius: $border-radius; + box-shadow: $box-shadow; + + &:hover { + border-color: mix(#fff, $primary-color, 50%); + } +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +input[type="image"], +input[type="checkbox"], +input[type="radio"] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; + *margin-top: 0; + line-height: normal; + cursor: pointer; + border-radius: 0; + border: 0 \9; +} + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; + *width: 13px; + *height: 13px; +} + +input[type="image"] { + border: 0; + box-shadow: none; +} + +input[type="file"] { + width: auto; + padding: initial; + line-height: initial; + border: initial; + background-color: transparent; + background-color: initial; + box-shadow: none; +} + +input[type="button"], +input[type="reset"], +input[type="submit"] { + width: auto; + height: auto; + cursor: pointer; + *overflow: visible; +} + +select, +input[type="file"] { + *margin-top: 4px; +} + +select { + width: auto; + background-color: #fff; +} + +select[multiple], +select[size] { + height: auto; +} + +textarea { + resize: vertical; + height: auto; + overflow: auto; + vertical-align: top; +} + +input[type="hidden"] { + display: none; +} + +.form { + position: relative; +} + +.radio, +.checkbox { + padding-left: 18px; + font-weight: normal; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + + +/* + Disabled state + ========================================================================== */ + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + opacity: 0.5; + cursor: not-allowed; +} + + +/* + Focus & active state + ========================================================================== */ + +input:focus, +textarea:focus { + border-color: $primary-color; + outline: 0; + outline: thin dotted \9; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus, +select:focus { + box-shadow: none; +} + + +/* + Help text + ========================================================================== */ + +.help-block, +.help-inline { + color: $info-color; +} + +.help-block { + display: block; + margin-bottom: 1em; + line-height: 1em; +} + +.help-inline { + display: inline-block; + vertical-align: middle; + padding-left: 5px; +} + + +/* + .form-inline + ========================================================================== */ + +.form-inline input, +.form-inline textarea, +.form-inline select { + display: inline-block; + margin-bottom: 0; +} + +.form-inline label { + display: inline-block; +} + +.form-inline .radio, +.form-inline .checkbox, +.form-inline .radio { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; } + + +/* + .form-search + ========================================================================== */ + +.form-search input, +.form-search textarea, +.form-search select { + display: inline-block; + margin-bottom: 0; +} + +.form-search .search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + border-radius: 14px; +} + +.form-search label { + display: inline-block; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; +} + + +/* + .form--loading + ========================================================================== */ + +.form--loading:before { + content: ''; +} + +.form--loading .form__spinner { + display: block; +} + +.form:before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(255, 255, 255, 0.7); + z-index: 10; +} + +.form__spinner { + display: none; + position: absolute; + top: 50%; + left: 50%; + z-index: 11; +} + + + +/* + Google search form + ========================================================================== */ + +#goog-fixurl { + ul { + list-style: none; + margin-left: 0; + padding-left: 0; + li { + list-style-type: none; + } + } +} + +#goog-wm-qt { + width: auto; + margin-right: 10px; + margin-bottom: 20px; + padding: 8px 20px; + display: inline-block; + font-size: $type-size-6; + background-color: #fff; + color: #000; + border-width: 2px !important; + border-style: solid !important; + border-color: lighten(#000,50); + border-radius: $border-radius; +} + +#goog-wm-sb { + @extend .btn; +} \ No newline at end of file diff --git a/_sass/_masthead.scss b/_sass/_masthead.scss new file mode 100644 index 00000000..dec55cd1 --- /dev/null +++ b/_sass/_masthead.scss @@ -0,0 +1,53 @@ +/* ========================================================================== + MASTHEAD + ========================================================================== */ + +.masthead { + position: relative; + border-bottom: 1px solid $border-color; + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.15s; + animation-delay: 0.15s; + z-index: 20; + + &__inner-wrap { + @include container; + @include clearfix; + padding: 1em 1em 1em; + font-family: $sans-serif-narrow; + + @include breakpoint($x-large) { + max-width: $x-large; + } + + nav { + z-index: 10; + } + + a { + text-decoration: none; + } + } +} + +.masthead__menu { + + ul { + margin: 0; + padding: 0; + clear: both; + list-style-type: none; + } +} + +.masthead__menu-item { + display: block; + list-style-type: none; + white-space: nowrap; + + &--lg { + padding-right: 2em; + font-weight: 700; + } +} \ No newline at end of file diff --git a/_sass/_mixins.scss b/_sass/_mixins.scss new file mode 100644 index 00000000..14782b19 --- /dev/null +++ b/_sass/_mixins.scss @@ -0,0 +1,53 @@ +/* ========================================================================== + MIXINS + ========================================================================== */ + +%tab-focus { + /* Default*/ + outline: thin dotted $warning-color; + /* Webkit*/ + outline: 5px auto $warning-color; + outline-offset: -2px; +} + +/* + em function + ========================================================================== */ + +@function em($target, $context: $doc-font-size) { + @return ($target / $context) * 1em; +} + + +/* + Bourbon clearfix + ========================================================================== */ + +/* + * Provides an easy way to include a clearfix for containing floats. + * link http://cssmojo.com/latest_new_clearfix_so_far/ + * + * example scss - Usage + * + * .element { + * @include clearfix; + * } + * + * example css - CSS Output + * + * .element::after { + * clear: both; + * content: ""; + * display: table; + * } +*/ + +@mixin clearfix { + clear: both; + + &::after { + clear: both; + content: ""; + display: table; + } +} \ No newline at end of file diff --git a/_sass/_navigation.scss b/_sass/_navigation.scss new file mode 100644 index 00000000..d96735b8 --- /dev/null +++ b/_sass/_navigation.scss @@ -0,0 +1,432 @@ +/* ========================================================================== + NAVIGATION + ========================================================================== */ + +/* + Breadcrumb navigation links + ========================================================================== */ + +.breadcrumbs { + @include container; + @include clearfix; + margin-top: 0; + margin-bottom: 0; + padding-left: 2em; + padding-right: 2em; + font-family: $sans-serif; + -webkit-animation: intro 0.3s both; + animation: intro 0.3s both; + -webkit-animation-delay: 0.30s; + animation-delay: 0.30s; + + @include breakpoint($large) { + padding-left: 1em; + padding-right: 1em; + } + + @include breakpoint($x-large) { + max-width: $x-large; + } + + ol { + padding: 0; + list-style: none; + font-size: $type-size-6; + + @include breakpoint($large) { + @include span(10 of 12 last); + } + + @include breakpoint($x-large) { + @include prefix(0.5 of 12); + } + } + + li { + display: inline; + } + + .current { + font-weight: bold; + } +} + + +/* + Post pagination navigation links + ========================================================================== */ + +.pagination { + @include full(); + @include clearfix(); + margin-top: 1em; + padding-top: 1em; + + ul { + margin: 0; + padding: 0; + list-style-type: none; + font-family: $sans-serif; + } + + li { + display: block; + float: left; + margin-left: -1px; + + a { + margin-bottom: 0.25em; + padding: 0.5em 1em; + font-family: $sans-serif; + font-size: 14px; + font-weight: bold; + line-height: 1.5; + text-align: center; + text-decoration: none; + color: mix(#fff, $gray, 25%); + border: 1px solid $light-gray; + border-radius: 0; + + &:hover { + color: $link-color-hover; + } + + &.current { + color: #fff; + background: $primary-color; + } + + &.disabled { + color: mix(#fff, $gray, 75%); + pointer-events: none; + cursor: not-allowed; + } + } + + &:first-child { + margin-left: 0; + + a { + border-top-left-radius: $border-radius; + border-bottom-left-radius: $border-radius; + } + } + + &:last-child { + a { + border-top-right-radius: $border-radius; + border-bottom-right-radius: $border-radius; + } + } + } + + /* next/previous buttons */ + &--pager { + display: block; + padding: 1em 2em; + float: left; + width: 50%; + font-family: $sans-serif; + font-size: $type-size-5; + font-weight: bold; + text-align: center; + text-decoration: none; + color: mix(#fff, $gray, 50%); + border: 1px solid $light-gray; + border-radius: $border-radius; + + &:hover { + color: $link-color-hover; + } + + &:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + &:last-child { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + &.disabled { + color: mix(#fff, $gray, 75%); + pointer-events: none; + cursor: not-allowed; + } + } +} + +.page__content + .pagination, +.page__meta + .pagination, +.page__share + .pagination, +.page__comments + .pagination { + margin-top: 2em; + padding-top: 2em; + border-top: 1px solid $border-color; +} + + +/* + Priority plus navigation + ========================================================================== */ + +.greedy-nav { + position: relative; + min-width: 250px; + background: $background-color; + + a { + display: block; + margin: 0 1rem; + padding: 0.5rem 0; + color: $masthead-link-color; + text-decoration: none; + + &:hover { + color: $masthead-link-color-hover; + } + } + + button { + position: absolute; + height: 100%; + right: 0; + padding: 0 0.5rem; + border: 0; + outline: none; + background-color: $primary-color; + color: #fff; + cursor: pointer; + } + + .visible-links { + display: table; + + li { + display: table-cell; + vertical-align: middle; + + &:first-child { + font-weight: bold; + + a { + margin-left: 0; + } + } + + &:last-child { + a { + margin-right: 0; + } + } + } + + a { + position: relative; + + &:before { + content: ""; + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background: mix(#fff, $primary-color, 50%); + width: 100%; + -webkit-transition: $global-transition; + transition: $global-transition; + -webkit-transform: scaleX(0); + -ms-transform: scaleX(0); + transform: scaleX(0); /* hide*/ + } + + &:hover:before { + -webkit-transform: scaleX(1); + -ms-transform: scaleX(1); + transform: scaleX(1); /* reveal*/ + } + } + } + + .hidden-links { + position: absolute; + top: 100%; + right: 0; + margin-top: 15px; + padding: 5px; + border: 1px solid $border-color; + border-radius: $border-radius; + background: #fff; + box-shadow: 0 0 10px rgba(#000, 0.25); + + a { + margin: 0; + padding: 10px 20px; + font-size: $type-size-5; + + &:hover { + color: $masthead-link-color-hover; + background: mix(#fff, $primary-color, 75%); + } + } + + &:before { + content: ""; + position: absolute; + top: -11px; + right: 10px; + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: $border-color transparent; + display: block; + z-index: 0; + } + + &:after { + content: ""; + position: absolute; + top: -10px; + right: 10px; + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: #fff transparent; + display: block; + z-index: 1; + } + + li { + display: block; + border-bottom: 1px solid $border-color; + + &:last-child { + border-bottom: none; + } + } + } +} + + +/* + Navigation list + ========================================================================== */ + +.nav__list { + font-size: 1.25rem; + + ul { + margin-bottom: 1em; + } + + a { + display: block; + padding: 0.125em 0; + color: inherit; + + &:hover { + text-decoration: underline; + } + } + + .active { + margin-left: -0.5em; + padding-left: 0.5em; + padding-right: 0.5em; + color: #fff; + font-weight: bold; + background: $primary-color; + border-radius: $border-radius; + + &:hover { + color: #fff; + } + } +} + +.nav__title { + margin: 0; + padding: 0.5rem 1rem; + font-family: $sans-serif-narrow; + font-size: $type-size-5; + font-weight: bold; +} + +.nav__sub-title { + display: block; + margin: 0.5rem 0; + padding: 0.5rem 0; + font-family: $sans-serif-narrow; + font-size: $type-size-6; + font-weight: bold; + text-transform: uppercase; + border-bottom: 1px solid $border-color; +} + + +/* + Table of contents navigation + ========================================================================== */ + +.toc { + font-family: $sans-serif-narrow; + color: $gray; + text-transform: uppercase; + letter-spacing: 1px; + background-color: #fff; + border: 1px solid $border-color; + border-radius: $border-radius; + box-shadow: $box-shadow; + + .nav__title { + color: #fff; + font-size: $type-size-6; + background: $primary-color; + border-top-left-radius: $border-radius; + border-top-right-radius: $border-radius; + } +} + +.toc__menu { + margin: 0; + padding: 0; + width: 100%; + list-style: none; + font-size: 0.8rem; + + a { + display: block; + padding: 0.5rem 1rem; + color: $gray; + font-size: $type-size-7; + font-weight: bold; + line-height: 1.5; + border-bottom: 1px solid $border-color; + + &:hover { + color: #000; + background: $lighter-gray; + } + } + + > li:last-child { + a { + border-bottom: none; + } + } + + li ul > li a { + padding-left: 2rem; + font-weight: normal; + } + + /* hide sub sub links on small screens*/ + li > ul li { + display: none; + + @include breakpoint($medium) { + display: block; + } + } +} \ No newline at end of file diff --git a/_sass/_notices.scss b/_sass/_notices.scss new file mode 100644 index 00000000..26afa319 --- /dev/null +++ b/_sass/_notices.scss @@ -0,0 +1,99 @@ +/* ========================================================================== + NOTICE TEXT BLOCKS + ========================================================================== */ + +/** + * Default Kramdown usage (no indents!): + *
    + * #### Headline for the Notice + * Text for the notice + *
    + */ + +@mixin notice($notice-color) { + margin: 2em 0 !important; /* override*/ + padding: 1em; + font-family: $global-font-family; + font-size: $type-size-6 !important; + text-indent: initial; /* override*/ + background-color: mix(#fff, $notice-color, 90%); + border-radius: $border-radius; + box-shadow: 0 1px 1px rgba($notice-color, 0.25); + + h4 { + margin-top: 0 !important; /* override*/ + margin-bottom: 0.75em; + } + + @at-root .page__content #{&} h4 { + /* using at-root to override .page-content h4 font size*/ + margin-bottom: 0; + font-size: 1em; + } + + p { + &:last-child { + margin-bottom: 0 !important; /* override*/ + } + } + + h4 + p { + /* remove space above paragraphs that appear directly after notice headline*/ + margin-top: 0; + padding-top: 0; + } + + a { + color: $notice-color; + + &:hover { + color: mix(#000, $notice-color, 40%); + } + } + + code { + background-color: mix(#fff, $notice-color, 95%) + } + + ul { + &:last-child { + margin-bottom: 0; /* override*/ + } + } +} + +/* Default notice */ + +.notice { + @include notice($light-gray); +} + +/* Primary notice */ + +.notice--primary { + @include notice($primary-color); +} + +/* Info notice */ + +.notice--info { + @include notice($info-color); +} + +/* Warning notice */ + +.notice--warning { + @include notice($warning-color); +} + +/* Success notice */ + +.notice--success { + @include notice($success-color); +} + +/* Danger notice */ + +.notice--danger { + @include notice($danger-color); +} \ No newline at end of file diff --git a/_sass/_page.scss b/_sass/_page.scss new file mode 100644 index 00000000..1c822397 --- /dev/null +++ b/_sass/_page.scss @@ -0,0 +1,401 @@ +/* ========================================================================== + SINGLE PAGE/POST + ========================================================================== */ + +#main { + @include container; + @include clearfix; + margin-top: 2em; + padding-left: 1em; + padding-right: 1em; + animation: intro 0.3s both; + animation-delay: 0.35s; + + @include breakpoint($x-large) { + max-width: $x-large; + } +} + +.page { + @include breakpoint($large) { + @include span(10 of 12 last); + @include prefix(0.5 of 12); + @include suffix(2 of 12); + } + + .page__inner-wrap { + @include full(); + + .page__content, + .page__meta, + .page__share { + @include full(); + } + } +} + +.page__title { + margin-top: 0; + line-height: 1; + + & + .page__meta { + margin-top: -0.5em; + } +} + +.page__lead { + font-family: $global-font-family; + font-size: $type-size-4; +} + +.page__content { + + h2 { + padding-bottom: 0.5em; + border-bottom: 1px solid $border-color; + } + + p, li, dl { + font-size: 1em; + } + + /* paragraph indents */ + p { + margin: 0 0 $indent-var; + + /* sibling indentation*/ + @if $paragraph-indent == true { + & + p { + text-indent: $indent-var; + margin-top: -($indent-var); + } + } + } + + a { + text-decoration: none; + + &:hover { + text-decoration: underline; + + img { + box-shadow: 0 0 10px rgba(#000, 0.25); + } + } + } + + dt { + margin-top: 1em; + font-family: $sans-serif; + font-weight: bold; + } + + dd { + margin-left: 1em; + font-family: $sans-serif; + font-size: $type-size-6; + } + + .small { + font-size: $type-size-6; + } + + /* blockquote citations */ + blockquote + .small { + margin-top: -1.5em; + padding-left: 1.25rem; + } +} + +.page__hero { + position: relative; + margin-bottom: 2em; + @include clearfix; + animation: intro 0.3s both; + animation-delay: 0.25s; + + &--overlay { + position: relative; + margin-bottom: 2em; + padding: 3em 0; + @include clearfix; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + animation: intro 0.3s both; + animation-delay: 0.25s; + + a { + color: #fff; + } + + .wrapper { + padding-left: 1em; + padding-right: 1em; + + @include breakpoint($x-large) { + max-width: $x-large; + } + } + + .page__title, + .page__meta, + .page__lead, + .btn { + color: #fff; + text-shadow: 1px 1px 4px rgba(#000, 0.5); + } + + .page__lead { + max-width: $medium; + } + + .page__title { + font-size: $type-size-2; + + @include breakpoint($small) { + font-size: $type-size-1; + } + } + } +} + +.page__hero-image { + width: 100%; + height: auto; + -ms-interpolation-mode: bicubic; +} + +.page__hero-caption { + position: absolute; + bottom: 0; + right: 0; + margin: 0 auto; + padding: 2px 5px; + color: #fff; + font-family: $caption-font-family; + font-size: $type-size-7; + background: #000; + text-align: right; + z-index: 5; + opacity: 0.5; + border-radius: $border-radius 0 $border-radius 0; + + @include breakpoint($large) { + padding: 5px 10px; + } + + a { + color: #fff; + text-decoration: none; + } +} + +/* + Social sharing + ========================================================================== */ + +.page__share { + margin-top: 2em; + padding-top: 1em; + border-top: 1px solid $border-color; + + @include breakpoint(max-width $small) { + .btn span { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + } + } +} + +.page__share-title { + margin-bottom: 10px; + font-size: $type-size-6; + text-transform: uppercase; +} + + +/* + Page meta + ========================================================================== */ + +.page__meta { + margin-top: 2em; + color: mix(#fff, $gray, 25%); + font-family: $sans-serif; + font-size: $type-size-6; + + p { + margin: 0; + } + + a { + color: inherit; + } +} + +.page__meta-title { + margin-bottom: 10px; + font-size: $type-size-6; + text-transform: uppercase; +} + + +/* + Page taxonomy + ========================================================================== */ + +.page__taxonomy { + .sep { + display: none; + } + + strong { + margin-right: 10px; + } +} + +.page__taxonomy-item { + display: inline-block; + margin-right: 5px; + margin-bottom: 8px; + padding: 5px 10px; + text-decoration: none; + border: 1px solid $light-gray; + border-radius: $border-radius; + + &:hover { + text-decoration: none; + color: $link-color-hover; + } +} + + +/* + Comments + ========================================================================== */ + +.page__comments { + @include full(); +} + +.page__comments-title { + margin-top: 2rem; + margin-bottom: 10px; + padding-top: 2rem; + font-size: $type-size-6; + border-top: 1px solid $border-color; + text-transform: uppercase; +} + +.page__comments-form { + padding: 1em; + background: $lighter-gray; + transition: $global-transition; + + &.disabled { + input, + button, + textarea, + label { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + box-shadow: none; + opacity: 0.65; + } + } +} + +.comment { + @include clearfix(); + margin: 1em 0; + + &:not(:last-child) { + border-bottom: 1px solid $border-color; + } +} + +.comment__avatar-wrapper { + float: left; + width: 60px; + height: 60px; + + @include breakpoint($large) { + width: 100px; + height: 100px; + } +} + +.comment__avatar { + width: 40px; + height: 40px; + border-radius: 50%; + + @include breakpoint($large) { + width: 80px; + height: 80px; + padding: 5px; + border: 1px solid $border-color; + } +} + +.comment__content-wrapper { + float: right; + width: calc(100% - 60px); + + @include breakpoint($large) { + width: calc(100% - 100px); + } +} + +.comment__author { + margin: 0; + + a { + text-decoration: none; + } +} + +.comment__date { + @extend .page__meta; + margin: 0; + + a { + text-decoration: none; + } +} + + +/* + Related + ========================================================================== */ + +.page__related { + margin-top: 2em; + padding-top: 1em; + border-top: 1px solid $border-color; + @include clearfix(); + float: left; + + @include breakpoint($large) { + @include pre(2.5 of 12); + } + + a { + color: inherit; + text-decoration: none; + } +} + +.page__related-title { + margin-bottom: 10px; + font-size: $type-size-6; + text-transform: uppercase; +} \ No newline at end of file diff --git a/_sass/_print.scss b/_sass/_print.scss new file mode 100644 index 00000000..09bdb1d8 --- /dev/null +++ b/_sass/_print.scss @@ -0,0 +1,18 @@ +/* ========================================================================== + PRINT STYLES + ========================================================================== */ + +/* + Hide the following elements on print + ========================================================================== */ + +@media print { + .masthead, + .toc, + .page__share, + .page__related, + .ads, + .page__footer { + display: none; + } +} diff --git a/_sass/_reset.scss b/_sass/_reset.scss new file mode 100644 index 00000000..d9ae7875 --- /dev/null +++ b/_sass/_reset.scss @@ -0,0 +1,187 @@ +/* ========================================================================== + STYLE RESETS + ========================================================================== */ + +@include border-box-sizing; + +html { + /* apply a natural box layout model to all elements */ + box-sizing: border-box; + background-color: $background-color; + font-size: 16px; + + @include breakpoint($medium) { + font-size: 18px; + } + + @include breakpoint($large) { + font-size: 20px; + } + + @include breakpoint($x-large) { + font-size: 22px; + } + + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* Remove margin */ + +body { margin: 0; } + +/* Selected elements */ + +::-moz-selection { + color: #fff; + background: #000; +} + +::selection { + color: #fff; + background: #000; +} + +/* Display HTML5 elements in IE6-9 and FF3 */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} + +/* Display block in IE6-9 and FF3 */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* Prevents modern browsers from displaying 'audio' without controls */ + +audio:not([controls]) { + display: none; +} + +a { + color: $link-color; +} + +/* Apply focus state */ + +a:focus { + @extend %tab-focus; +} + +/* Remove outline from links */ + +a:hover, +a:active { + outline: 0; +} + +/* Prevent sub and sup affecting line-height in all browsers */ + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* img border in anchor's and image quality */ + +img { + /* Responsive images (ensure images don't scale beyond their parents) */ + max-width: 100%; /* part 1: Set a maximum relative to the parent*/ + width: auto\9; /* IE7-8 need help adjusting responsive images*/ + height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/ + + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +/* Prevent max-width from affecting Google Maps */ + +#map_canvas img, +.google-maps img { + max-width: none; +} + +/* Consistent form font size in all browsers, margin changes, misc */ + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; /* inner spacing ie IE6/7*/ + line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/ +} + +button::-moz-focus-inner, +input::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/ + padding: 0; + border: 0; +} + +button, +html input[type="button"], // avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/ + cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ +} + +input[type="search"] { /* Appearance in Safari/Chrome*/ + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/ +} + +textarea { + overflow: auto; /* remove vertical scrollbar in IE6-9*/ + vertical-align: top; /* readability and alignment cross-browser*/ +} diff --git a/_sass/_sidebar.scss b/_sass/_sidebar.scss new file mode 100644 index 00000000..377c6237 --- /dev/null +++ b/_sass/_sidebar.scss @@ -0,0 +1,232 @@ +/* ========================================================================== + SIDEBAR + ========================================================================== */ + +/* + Default + ========================================================================== */ + +.sidebar { + @include clearfix(); + margin-bottom: 1em; + + @include breakpoint($large) { + @include span(2 of 12); + opacity: 0.75; + -webkit-transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s ease-in-out; + + &:hover { + opacity: 1; + } + } + + @include breakpoint($x-large) { + padding-right: 0; + } + + h2, h3, h4, h5, h6 { + margin-bottom: 0; + font-family: $sans-serif-narrow; + } + + h3, h4 { + font-size: $type-size-5; + } + + p, li { + font-family: $sans-serif; + font-size: $type-size-6; + line-height: 1.5; + } + + img { + width: 100%; + } +} + +.sidebar__right { + margin-bottom: 1em; + + @include breakpoint($large) { + position: relative; + float: right; + width: $right-sidebar-width-narrow; + margin-left: span(0.5 of 12); + z-index: 10; + } + + @include breakpoint($x-large) { + width: $right-sidebar-width; + } +} + +/* + Author profile and links + ========================================================================== */ + +.author__avatar { + display: table-cell; + vertical-align: top; + width: 36px; + height: 36px; + + @include breakpoint($large) { + display: block; + width: auto; + height: auto; + } + + img { + max-width: 110px; + border-radius: 50%; + + @include breakpoint($large) { + padding: 5px; + border: 1px solid $border-color; + } + } +} + +.author__content { + display: table-cell; + vertical-align: top; + padding-left: 15px; + padding-right: 25px; + line-height: 1; + + @include breakpoint($large) { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + } +} + +.author__name { + margin: 0; + + @include breakpoint($large) { + margin-top: 10px; + margin-bottom: 10px; + } +} +.sidebar .author__name { + font-family: $sans-serif; + font-size: $type-size-5; +} + +.author__bio { + margin: 0; + + @include breakpoint($large) { + margin-top: 10px; + margin-bottom: 20px; + } +} + +.author__urls-wrapper { + position: relative; + display: table-cell; + vertical-align: middle; + font-family: $sans-serif; + z-index: 10; + position: relative; + cursor: pointer; + + li:last-child { + a { + margin-bottom: 0; + } + } + + @include breakpoint($large) { + display: block; + } + + button { + margin-bottom: 0; + + @include breakpoint($large) { + display: none; + } + } +} + +.author__urls { + display: none; + position: absolute; + right: 0; + margin-top: 15px; + padding: 10px; + list-style-type: none; + border: 1px solid $border-color; + border-radius: $border-radius; + background: #fff; + z-index: -1; + box-shadow: 0 0 10px rgba(#000, 0.25); + cursor: default; + + @include breakpoint($large) { + display: block; + position: relative; + margin: 0; + padding: 0; + border: 0; + background: transparent; + box-shadow: none; + } + + &:before { + display: block; + content: ""; + position: absolute; + top: -11px; + left: calc(50% - 10px); + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: $border-color transparent; + z-index: 0; + + @include breakpoint($large) { + display: none; + } + } + + &:after { + display: block; + content: ""; + position: absolute; + top: -10px; + left: calc(50% - 10px); + width: 0; + border-style: solid; + border-width: 0 10px 10px; + border-color: #fff transparent; + z-index: 1; + + @include breakpoint($large) { + display: none; + } + } + + li { + white-space: nowrap; + } + + a { + display: block; + margin-bottom: 5px; + padding-right: 5px; + padding-top: 2px; + padding-bottom: 2px; + color: inherit; + font-size: $type-size-5; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } +} \ No newline at end of file diff --git a/_sass/_syntax.scss b/_sass/_syntax.scss new file mode 100644 index 00000000..fb13b73a --- /dev/null +++ b/_sass/_syntax.scss @@ -0,0 +1,146 @@ +/* ========================================================================== + Syntax highlighting + ========================================================================== */ + +div.highlighter-rouge, +figure.highlight { + position: relative; + margin-bottom: 1em; + font-family: $monospace; + font-size: $type-size-7; + line-height: 1.8; + border: 1px solid $border-color; + border-radius: $border-radius; + background-color: $code-background-color; + box-shadow: $box-shadow; + + &:before { + position: absolute; + top: 0; + right: 0; + padding: 0.5em; + background-color: $lighter-gray; + content: "\f121"; + font-family: "fontawesome" !important; + line-height: 1; + text-transform: none; + speak: none; + } + + .highlight { + margin: 0; + padding: 1em; + } +} + +figure.highlight { + padding-left: 1em; + padding-right: 1em; +} + +.highlight table { + font-size: 1em; + border: 0; + + td { + padding: 5px; + border: 0; + + // line numbers + &.gutter { + padding-right: 1em; + color: $light-gray; + } + } + + pre { + margin: 0; + } +} + +.highlight pre { width: 100%; } + +/* + Solarized Light + http://ethanschoonover.com/solarized + + SOLARIZED HEX ROLE + --------- -------- ------------------------------------------ + base01 #586e75 body text / default code / primary content + base1 #93a1a1 comments / secondary content + base3 #fdf6e3 background + orange #cb4b16 constants + red #dc322f regex, special keywords + blue #22b3eb reserved keywords + cyan #2aa198 strings, numbers + green #859900 operators, other keywords + ========================================================================== */ + +.highlight .c { color: #93a1a1 } /* Comment */ +.highlight .err { color: #586e75 } /* Error */ +.highlight .g { color: #586e75 } /* Generic */ +.highlight .k { color: #859900 } /* Keyword */ +.highlight .l { color: #586e75 } /* Literal */ +.highlight .n { color: #586e75 } /* Name */ +.highlight .o { color: #859900 } /* Operator */ +.highlight .x { color: #cb4b16 } /* Other */ +.highlight .p { color: #586e75 } /* Punctuation */ +.highlight .cm { color: #93a1a1 } /* Comment.Multiline */ +.highlight .cp { color: #859900 } /* Comment.Preproc */ +.highlight .c1 { color: #93a1a1 } /* Comment.Single */ +.highlight .cs { color: #859900 } /* Comment.Special */ +.highlight .gd { color: #2aa198 } /* Generic.Deleted */ +.highlight .ge { color: #586e75; font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #dc322f } /* Generic.Error */ +.highlight .gh { color: #cb4b16 } /* Generic.Heading */ +.highlight .gi { color: #859900 } /* Generic.Inserted */ +.highlight .go { color: #586e75 } /* Generic.Output */ +.highlight .gp { color: #586e75 } /* Generic.Prompt */ +.highlight .gs { color: #586e75; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #cb4b16 } /* Generic.Subheading */ +.highlight .gt { color: #586e75 } /* Generic.Traceback */ +.highlight .kc { color: #cb4b16 } /* Keyword.Constant */ +.highlight .kd { color: #22b3eb } /* Keyword.Declaration */ +.highlight .kn { color: #859900 } /* Keyword.Namespace */ +.highlight .kp { color: #859900 } /* Keyword.Pseudo */ +.highlight .kr { color: #22b3eb } /* Keyword.Reserved */ +.highlight .kt { color: #dc322f } /* Keyword.Type */ +.highlight .ld { color: #586e75 } /* Literal.Date */ +.highlight .m { color: #2aa198 } /* Literal.Number */ +.highlight .s { color: #2aa198 } /* Literal.String */ +.highlight .na { color: #586e75 } /* Name.Attribute */ +.highlight .nb { color: #B58900 } /* Name.Builtin */ +.highlight .nc { color: #22b3eb } /* Name.Class */ +.highlight .no { color: #cb4b16 } /* Name.Constant */ +.highlight .nd { color: #22b3eb } /* Name.Decorator */ +.highlight .ni { color: #cb4b16 } /* Name.Entity */ +.highlight .ne { color: #cb4b16 } /* Name.Exception */ +.highlight .nf { color: #22b3eb } /* Name.Function */ +.highlight .nl { color: #586e75 } /* Name.Label */ +.highlight .nn { color: #586e75 } /* Name.Namespace */ +.highlight .nx { color: #586e75 } /* Name.Other */ +.highlight .py { color: #586e75 } /* Name.Property */ +.highlight .nt { color: #22b3eb } /* Name.Tag */ +.highlight .nv { color: #22b3eb } /* Name.Variable */ +.highlight .ow { color: #859900 } /* Operator.Word */ +.highlight .w { color: #586e75 } /* Text.Whitespace */ +.highlight .mf { color: #2aa198 } /* Literal.Number.Float */ +.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */ +.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */ +.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */ +.highlight .sb { color: #93a1a1 } /* Literal.String.Backtick */ +.highlight .sc { color: #2aa198 } /* Literal.String.Char */ +.highlight .sd { color: #586e75 } /* Literal.String.Doc */ +.highlight .s2 { color: #2aa198 } /* Literal.String.Double */ +.highlight .se { color: #cb4b16 } /* Literal.String.Escape */ +.highlight .sh { color: #586e75 } /* Literal.String.Heredoc */ +.highlight .si { color: #2aa198 } /* Literal.String.Interpol */ +.highlight .sx { color: #2aa198 } /* Literal.String.Other */ +.highlight .sr { color: #dc322f } /* Literal.String.Regex */ +.highlight .s1 { color: #2aa198 } /* Literal.String.Single */ +.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */ +.highlight .bp { color: #22b3eb } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #22b3eb } /* Name.Variable.Class */ +.highlight .vg { color: #22b3eb } /* Name.Variable.Global */ +.highlight .vi { color: #22b3eb } /* Name.Variable.Instance */ +.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_sass/_tables.scss b/_sass/_tables.scss new file mode 100644 index 00000000..d31dc24a --- /dev/null +++ b/_sass/_tables.scss @@ -0,0 +1,38 @@ +/* ========================================================================== + TABLES + ========================================================================== */ + +table { + margin-bottom: 1em; + width: 100%; + font-family: $global-font-family; + font-size: $type-size-6; + border-collapse: collapse; + border: 1px solid $light-gray; + + & + table { + margin-top: 1em; + } +} + +thead { + background-color: $lighter-gray; + border-bottom: 1px solid $light-gray; +} + +th { + padding: 0.5em; + font-weight: bold; + text-align: left; + border-right: 1px solid $light-gray; +} + +td { + padding: 0.5em; + border-bottom: 1px solid $light-gray; + border-right: 1px solid $light-gray; +} + +tr, td, th { + vertical-align: middle; +} \ No newline at end of file diff --git a/_sass/_utilities.scss b/_sass/_utilities.scss new file mode 100644 index 00000000..87536a45 --- /dev/null +++ b/_sass/_utilities.scss @@ -0,0 +1,470 @@ +/* ========================================================================== + UTILITY CLASSES + ========================================================================== */ + +/* + Visibility + ========================================================================== */ + +/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */ + +.hidden { + display: none; + visibility: hidden; +} + +/* for preloading images */ + +.load { + display: none; +} + +.transparent { + opacity: 0; +} + +/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */ + +.visually-hidden, +.screen-reader-text, +.screen-reader-text span, +.screen-reader-shortcut { + position: absolute !important; + clip: rect(1px, 1px, 1px, 1px); + height: 1px !important; + width: 1px !important; + border: 0 !important; + overflow: hidden; +} + +body:hover .visually-hidden a, +body:hover .visually-hidden input, +body:hover .visually-hidden button { + display: none !important; +} + +/* screen readers */ + +.screen-reader-text:focus, +.screen-reader-shortcut:focus { + clip: auto !important; + height: auto !important; + width: auto !important; + display: block; + font-size: 1em; + font-weight: bold; + padding: 15px 23px 14px; + background: #fff; + z-index: 100000; + text-decoration: none; + box-shadow: 0 0 2px 2px rgba(0,0,0,.6); +} + + +/* + Skip links + ========================================================================== */ + +.skip-link { + position: fixed; + z-index: 20; + margin: 0; + font-family: $sans-serif; + white-space: nowrap; +} + +.skip-link li { + height: 0; + width: 0; + list-style: none; +} + + +/* + Type + ========================================================================== */ + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.text-justify { + text-align: justify; +} + +.text-nowrap { + white-space: nowrap; +} + + +/* + Alignment + ========================================================================== */ + +/* clearfix */ + +.cf { clear: both; } + +.wrapper { + @include container(); +} + + +/* + Images + ========================================================================== */ + +/* image align left */ + +.align-left { + display: block; + margin-left: auto; + margin-right: auto; + + @include breakpoint($small) { + float: left; + margin-right: 1em; + } +} + +/* image align right */ + +.align-right { + display: block; + margin-left: auto; + margin-right: auto; + + @include breakpoint($small) { + float: right; + margin-left: 1em; + } +} + +/* image align center */ + +.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +/* file page content container */ + +.full { + @include breakpoint($large){ + margin-right: -1 * span(2.5 of 12) !important; + } +} + +/* + Icons + ========================================================================== */ + +.icon { + display: inline-block; + fill: currentColor; + width: 1em; + height: 1.1em; + line-height: 1; + position: relative; + top: -0.1em; + vertical-align: middle; +} + +/* social icons*/ + +.social-icons { + .fa { + color: #000; + } + + .fa-behance, + .fa-behance-square { + color: $behance-color; + } + + .fa-dribbble { + color: $dribbble-color; + } + + .fa-facebook, + .fa-facebook-square { + color: $facebook-color; + } + + .fa-flickr { + color: $flickr-color; + } + + .fa-foursquare { + color: $foursquare-color; + } + + .fa-github, + .fa-github-alt, + .fa-github-square { + color: $github-color; + } + + .fa-google-plus, + .fa-google-plus-square { + color: $google-plus-color; + } + + .fa-instagram { + color: $instagram-color; + } + + .fa-lastfm, + .fa-lastfm-square { + color: $lastfm-color; + } + + .fa-linkedin, + .fa-linkedin-square { + color: $linkedin-color; + } + + .fa-pinterest, + .fa-pinterest-p, + .fa-pinterest-square { + color: $pinterest-color; + } + + .fa-rss, + .fa-rss-square { + color: $rss-color; + } + + .fa-soundcloud { + color: $soundcloud-color; + } + + .fa-stack-exchange, + .fa-stack-overflow { + color: $stackoverflow-color; + } + + .fa-tumblr, + .fa-tumblr-square { + color: $tumblr-color; + } + + .fa-twitter, + .fa-twitter-square { + color: $twitter-color; + } + + .fa-vimeo, + .fa-vimeo-square { + color: $vimeo-color; + } + + .fa-vine { + color: $vine-color; + } + + .fa-youtube, + .fa-youtube-square, + .fa-youtube-play { + color: $youtube-color; + } + + .fa-xing, + .fa-xing-square { + color: $xing-color; + } +} + + +/* + Navicons + ========================================================================== */ + +.navicon { + position: relative; + width: $navicon-width; + height: $navicon-height; + background: #fff; + margin: auto; + -webkit-transition: 0.3s; + transition: 0.3s; + + &:before, + &:after { + content: ""; + position: absolute; + left: 0; + width: $navicon-width; + height: $navicon-height; + background: #fff; + -webkit-transition: 0.3s; + transition: 0.3s; + } + + &:before { + top: (-2 * $navicon-height); + } + + &:after { + bottom: (-2 * $navicon-height); + } +} + +.close .navicon { + /* hide the middle line*/ + background: transparent; + + /* overlay the lines by setting both their top values to 0*/ + &:before, &:after{ + -webkit-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; + top: 0; + width: $navicon-width; + } + + /* rotate the lines to form the x shape*/ + &:before{ + -webkit-transform: rotate3d(0,0,1,45deg); + transform: rotate3d(0,0,1,45deg); + } + &:after{ + -webkit-transform: rotate3d(0,0,1,-45deg); + transform: rotate3d(0,0,1,-45deg); + } +} + + +/* + Sticky, fixed to top content + ========================================================================== */ + +.sticky { + @include breakpoint($large) { + @include clearfix(); + position: -webkit-sticky; + position: sticky; + top: 2em; + + > * { + display: block; + } + } +} + + +/* + Wells + ========================================================================== */ + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: $border-radius; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + + +/* + Modals + ========================================================================== */ + +.show-modal { + overflow: hidden; + position: relative; + + &:before { + position: absolute; + content: ""; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 999; + background-color: rgba(255, 255, 255, 0.85); + } + + .modal { + display: block; + } +} + +.modal { + display: none; + position: fixed; + width: 300px; + top: 50%; + left: 50%; + margin-left: -150px; + margin-top: -150px; + min-height: 0; + z-index: 9999; + background: #fff; + border: 1px solid $border-color; + border-radius: $border-radius; + box-shadow: $box-shadow; + + &__title { + margin: 0; + padding: 0.5em 1em; + } + + &__supporting-text { + padding: 0 1em 0.5em 1em; + } + + &__actions { + padding: 0.5em 1em; + border-top: 1px solid $border-color; + } +} + + +/* + Footnotes + ========================================================================== */ + +.footnote { + color: mix(#fff, $gray, 25%); + text-decoration: none; +} + +.footnotes { + color: mix(#fff, $gray, 25%); + + ol, li, p { + margin-bottom: 0; + font-size: $type-size-6; + } +} + +a.reversefootnote { + color: $gray; + text-decoration: none; + + &:hover { + text-decoration: underline; + } +} + + +/* + Required + ========================================================================== */ + +.required { + color: $danger-color; + font-weight: bold; +} diff --git a/_sass/_variables.scss b/_sass/_variables.scss new file mode 100644 index 00000000..a9b09121 --- /dev/null +++ b/_sass/_variables.scss @@ -0,0 +1,147 @@ +/* ========================================================================== + Variables + ========================================================================== */ + +/* + Typography + ========================================================================== */ + +$doc-font-size : 16; + +/* paragraph indention */ +$paragraph-indent : false; // true, false (default) +$indent-var : 1.3em; + +/* system typefaces */ +$serif : Georgia, Times, serif; +$sans-serif : -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif; +$monospace : Monaco, Consolas, "Lucida Console", monospace; + +/* sans serif typefaces */ +$sans-serif-narrow : $sans-serif; +$helvetica : Helvetica, "Helvetica Neue", Arial, sans-serif; + +/* serif typefaces */ +$georgia : Georgia, serif; +$times : Times, serif; +$bodoni : "Bodoni MT", serif; +$calisto : "Calisto MT", serif; +$garamond : Garamond, serif; + +$global-font-family : $sans-serif; +$header-font-family : $sans-serif; +$caption-font-family : $serif; + +/* type scale */ +$type-size-1 : 2.441em; // ~39.056px +$type-size-2 : 1.953em; // ~31.248px +$type-size-3 : 1.563em; // ~25.008px +$type-size-4 : 1.25em; // ~20px +$type-size-5 : 1em; // ~16px +$type-size-6 : 0.75em; // ~12px +$type-size-7 : 0.6875em; // ~11px +$type-size-8 : 0.625em; // ~10px + + +/* + Colors + ========================================================================== */ + +$gray : #7a8288; +$dark-gray : mix(#000, $gray, 40%); +$darker-gray : mix(#000, $gray, 60%); +$light-gray : mix(#fff, $gray, 50%); +$lighter-gray : mix(#fff, $gray, 90%); + +$body-color : #fff; +$background-color : #fff; +$code-background-color : #fafafa; +$code-background-color-dark : $light-gray; +$text-color : $dark-gray; +$border-color : $lighter-gray; + +$primary-color : #7a8288; +$success-color : #62c462; +$warning-color : #f89406; +$danger-color : #ee5f5b; +$info-color : #52adc8; + +/* brands */ +$behance-color : #1769FF; +$dribbble-color : #ea4c89; +$facebook-color : #3b5998; +$flickr-color : #ff0084; +$foursquare-color : #0072b1; +$github-color : #171516; +$google-plus-color : #dd4b39; +$instagram-color : #517fa4; +$lastfm-color : #d51007; +$linkedin-color : #007bb6; +$pinterest-color : #cb2027; +$rss-color : #fa9b39; +$soundcloud-color : #ff3300; +$stackoverflow-color : #fe7a15; +$tumblr-color : #32506d; +$twitter-color : #55acee; +$vimeo-color : #1ab7ea; +$vine-color : #00bf8f; +$youtube-color : #bb0000; +$xing-color : #006567; + + +/* links */ +$link-color : $info-color; +$link-color-hover : mix(#000, $link-color, 25%); +$link-color-visited : mix(#fff, $link-color, 25%); +$masthead-link-color : $primary-color; +$masthead-link-color-hover : mix(#000, $primary-color, 25%); + + +/* + Breakpoints + ========================================================================== */ + +@include breakpoint-set("to ems", true); + +$small : 600px; +$medium : 768px; +$medium-wide : 900px; +$large : 1024px; +$x-large : 1280px; + + +/* + Grid + ========================================================================== */ + +$right-sidebar-width-narrow : 200px; +$right-sidebar-width : 300px; +$right-sidebar-width-wide : 400px; + +$susy: ( + columns: 12, + // column-width: 90px, + gutters: 1/4, + math: fluid, + output: float, + gutter-position: after, + container: $large, + global-box-sizing: border-box, + // debug: ( + // image: show, + // color: blue, + // output: overlay, + // toggle: top right, + // ), +); + + +/* + Other + ========================================================================== */ + +$border-radius : 4px; +$box-shadow : 0 1px 1px rgba(0, 0, 0, 0.125); +$navicon-width : 28px; +$navicon-height : 4px; +$global-transition : all 0.2s ease-in-out; diff --git a/_sass/vendor/breakpoint/_breakpoint.scss b/_sass/vendor/breakpoint/_breakpoint.scss new file mode 100644 index 00000000..a0528eb8 --- /dev/null +++ b/_sass/vendor/breakpoint/_breakpoint.scss @@ -0,0 +1,114 @@ +////////////////////////////// +// Default Variables +////////////////////////////// +$Breakpoint-Settings: ( + 'default media': all, + 'default feature': min-width, + 'default pair': width, + + 'force all media type': false, + 'to ems': false, + 'transform resolutions': true, + + 'no queries': false, + 'no query fallbacks': false, + + 'base font size': 16px, + + 'legacy syntax': false +); + +$breakpoint: () !default; + +////////////////////////////// +// Imports +////////////////////////////// +@import "settings"; +@import "context"; +@import "helpers"; +@import "parsers"; +@import "no-query"; + +@import "respond-to"; + +@import "legacy-settings"; + +////////////////////////////// +// Breakpoint Mixin +////////////////////////////// + +@mixin breakpoint($query, $no-query: false) { + @include legacy-settings-warning; + + // Reset contexts + @include private-breakpoint-reset-contexts(); + + $breakpoint: breakpoint($query, false); + + $query-string: map-get($breakpoint, 'query'); + $query-fallback: map-get($breakpoint, 'fallback'); + + $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global; + $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global; + + // Allow for an as-needed override or usage of no query fallback. + @if $no-query != false { + $query-fallback: $no-query; + } + + @if $query-fallback != false { + $context-setter: private-breakpoint-set-context('no-query', $query-fallback); + } + + // Print Out Query String + @if not breakpoint-get('no queries') { + @media #{$query-string} { + @content; + } + } + + @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true { + + $type: type-of(breakpoint-get('no query fallbacks')); + $print: false; + + @if ($type == 'bool') { + $print: true; + } + @else if ($type == 'string') { + @if $query-fallback == breakpoint-get('no query fallbacks') { + $print: true; + } + } + @else if ($type == 'list') { + @each $wrapper in breakpoint-get('no query fallbacks') { + @if $query-fallback == $wrapper { + $print: true; + } + } + } + + // Write Fallback + @if ($query-fallback != false) and ($print == true) { + $type-fallback: type-of($query-fallback); + + @if ($type-fallback != 'bool') { + #{$query-fallback} & { + @content; + } + } + @else { + @content; + } + } + } + + @include private-breakpoint-reset-contexts(); +} + + +@mixin mq($query, $no-query: false) { + @include breakpoint($query, $no-query) { + @content; + } +} diff --git a/_sass/vendor/breakpoint/_context.scss b/_sass/vendor/breakpoint/_context.scss new file mode 100644 index 00000000..57947f5c --- /dev/null +++ b/_sass/vendor/breakpoint/_context.scss @@ -0,0 +1,95 @@ +////////////////////////////// +// Private Breakpoint Variables +////////////////////////////// +$private-breakpoint-context-holder: (); +$private-breakpoint-query-count: 0 !default; + +////////////////////////////// +// Breakpoint Has Context +// Returns whether or not you are inside a Breakpoint query +////////////////////////////// +@function breakpoint-has-context() { + @if length($private-breakpoint-query-count) { + @return true; + } + @else { + @return false; + } +} + +////////////////////////////// +// Breakpoint Get Context +// $feature: Input feature to get it's current MQ context. Returns false if no context +////////////////////////////// +@function breakpoint-get-context($feature) { + @if map-has-key($private-breakpoint-context-holder, $feature) { + $get: map-get($private-breakpoint-context-holder, $feature); + // Special handling of no-query from get side so /false/ prepends aren't returned + @if $feature == 'no-query' { + @if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false { + $get: nth($get, length($get)); + } + } + @return $get; + } + @else { + @if breakpoint-has-context() and $feature == 'media' { + @return breakpoint-get('default media'); + } + @else { + @return false; + } + } +} + +////////////////////////////// +// Private function to set context +////////////////////////////// +@function private-breakpoint-set-context($feature, $value) { + @if $value == 'monochrome' { + $feature: 'monochrome'; + } + + $current: map-get($private-breakpoint-context-holder, $feature); + @if $current and length($current) == $private-breakpoint-query-count { + @warn "You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`"; + } + + @if not map-has-key($private-breakpoint-context-holder, $feature) { + $v-holder: (); + @for $i from 1 to $private-breakpoint-query-count { + @if $feature == 'media' { + $v-holder: append($v-holder, breakpoint-get('default media')); + } + @else { + $v-holder: append($v-holder, false); + } + } + $v-holder: append($v-holder, $value); + $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global; + } + @else { + $v-holder: map-get($private-breakpoint-context-holder, $feature); + $length: length($v-holder); + @for $i from $length to $private-breakpoint-query-count - 1 { + @if $feature == 'media' { + $v-holder: append($v-holder, breakpoint-get('default media')); + } + @else { + $v-holder: append($v-holder, false); + } + } + $v-holder: append($v-holder, $value); + $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global; + } + + @return true; +} + +////////////////////////////// +// Private function to reset context +////////////////////////////// +@mixin private-breakpoint-reset-contexts { + $private-breakpoint-context-holder: () !global; + $private-breakpoint-query-count: 0 !global; +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/_helpers.scss b/_sass/vendor/breakpoint/_helpers.scss new file mode 100644 index 00000000..97e522d1 --- /dev/null +++ b/_sass/vendor/breakpoint/_helpers.scss @@ -0,0 +1,151 @@ +////////////////////////////// +// Converts the input value to Base EMs +////////////////////////////// +@function breakpoint-to-base-em($value) { + $value-unit: unit($value); + + // Will convert relative EMs into root EMs. + @if breakpoint-get('base font size') and type-of(breakpoint-get('base font size')) == 'number' and $value-unit == 'em' { + $base-unit: unit(breakpoint-get('base font size')); + + @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' { + @return base-conversion($value) / base-conversion(breakpoint-get('base font size')) * 1em; + } + @else { + @warn '#{breakpoint-get(\'base font size\')} is not set in valid units for font size!'; + @return false; + } + } + @else { + @return base-conversion($value); + } +} + +@function base-conversion($value) { + $unit: unit($value); + + @if $unit == 'px' { + @return $value / 16px * 1em; + } + @else if $unit == '%' { + @return $value / 100% * 1em; + } + @else if $unit == 'em' { + @return $value; + } + @else if $unit == 'pt' { + @return $value / 12pt * 1em; + } + @else { + @return $value; +// @warn 'Everything is terrible! What have you done?!'; + } +} + +////////////////////////////// +// Returns whether the feature can have a min/max pair +////////////////////////////// +$breakpoint-min-max-features: 'color', + 'color-index', + 'aspect-ratio', + 'device-aspect-ratio', + 'device-height', + 'device-width', + 'height', + 'monochrome', + 'resolution', + 'width'; + +@function breakpoint-min-max($feature) { + @each $item in $breakpoint-min-max-features { + @if $feature == $item { + @return true; + } + } + @return false; +} + +////////////////////////////// +// Returns whether the feature can have a string value +////////////////////////////// +$breakpoint-string-features: 'orientation', + 'scan', + 'color', + 'aspect-ratio', + 'device-aspect-ratio', + 'pointer', + 'luminosity'; + +@function breakpoint-string-value($feature) { + @each $item in $breakpoint-string-features { + @if breakpoint-min-max($item) { + @if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' { + @return true; + } + } + @else if $feature == $item { + @return true; + } + } + @return false; +} + +////////////////////////////// +// Returns whether the feature is a media type +////////////////////////////// +$breakpoint-media-types: 'all', + 'braille', + 'embossed', + 'handheld', + 'print', + 'projection', + 'screen', + 'speech', + 'tty', + 'tv'; + +@function breakpoint-is-media($feature) { + @each $media in $breakpoint-media-types { + @if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') { + @return true; + } + } + + @return false; +} + +////////////////////////////// +// Returns whether the feature can stand alone +////////////////////////////// +$breakpoint-single-string-features: 'color', + 'color-index', + 'grid', + 'monochrome'; + +@function breakpoint-single-string($feature) { + @each $item in $breakpoint-single-string-features { + @if $feature == $item { + @return true; + } + } + @return false; +} + +////////////////////////////// +// Returns whether the feature +////////////////////////////// +@function breakpoint-is-resolution($feature) { + $resolutions: 'device-pixel-ratio', 'dpr'; + + @if breakpoint-get('transform resolutions') { + $resolutions: append($resolutions, 'resolution'); + } + + @each $reso in $resolutions { + @if index($feature, $reso) or index($feature, 'min-#{$reso}') or index($feature, 'max-#{$reso}') { + @return true; + } + } + + @return false; +} diff --git a/_sass/vendor/breakpoint/_legacy-settings.scss b/_sass/vendor/breakpoint/_legacy-settings.scss new file mode 100644 index 00000000..e060ebe3 --- /dev/null +++ b/_sass/vendor/breakpoint/_legacy-settings.scss @@ -0,0 +1,50 @@ +@mixin legacy-settings-warning { + $legacyVars: ( + 'default-media': 'default media', + 'default-feature': 'default feature', + 'force-media-all': 'force all media type', + 'to-ems': 'to ems', + 'resolutions': 'transform resolutions', + 'no-queries': 'no queries', + 'no-query-fallbacks': 'no query fallbacks', + 'base-font-size': 'base font size', + 'legacy-syntax': 'legacy syntax' + ); + + @each $legacy, $new in $legacyVars { + @if global-variable-exists('breakpoint-' + $legacy) { + @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release." + } + }; + + ////////////////////////////// + // Hand correct each setting + ////////////////////////////// + @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') { + @include breakpoint-set('default media', $breakpoint-default-media); + } + @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') { + @include breakpoint-set('default feature', $breakpoint-default-feature); + } + @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') { + @include breakpoint-set('force all media type', $breakpoint-force-media-all); + } + @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') { + @include breakpoint-set('to ems', $breakpoint-to-ems); + } + @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') { + @include breakpoint-set('transform resolutions', $breakpoint-resolutions); + } + @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') { + @include breakpoint-set('no queries', $breakpoint-no-queries); + } + @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') { + @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks); + } + @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') { + @include breakpoint-set('base font size', $breakpoint-base-font-size); + } + @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') { + @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax); + } +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/_no-query.scss b/_sass/vendor/breakpoint/_no-query.scss new file mode 100644 index 00000000..0b5a81f6 --- /dev/null +++ b/_sass/vendor/breakpoint/_no-query.scss @@ -0,0 +1,15 @@ +@function breakpoint-no-query($query) { + @if type-of($query) == 'list' { + $keyword: nth($query, 1); + + @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') { + @return nth($query, 2); + } + @else { + @return false; + } + } + @else { + @return false; + } +} diff --git a/_sass/vendor/breakpoint/_parsers.scss b/_sass/vendor/breakpoint/_parsers.scss new file mode 100644 index 00000000..f0b053fe --- /dev/null +++ b/_sass/vendor/breakpoint/_parsers.scss @@ -0,0 +1,215 @@ +////////////////////////////// +// Import Parser Pieces +////////////////////////////// +@import "parsers/query"; +@import "parsers/single"; +@import "parsers/double"; +@import "parsers/triple"; +@import "parsers/resolution"; + +$Memo-Exists: function-exists(memo-get) and function-exists(memo-set); + +////////////////////////////// +// Breakpoint Function +////////////////////////////// +@function breakpoint($query, $contexts...) { + $run: true; + $return: (); + + // Grab the Memo Output if Memoization can be a thing + @if $Memo-Exists { + $return: memo-get(breakpoint, breakpoint $query $contexts); + + @if $return != null { + $run: false; + } + } + + @if not $Memo-Exists or $run { + // Internal Variables + $query-string: ''; + $query-fallback: false; + $return: (); + + // Reserve Global Private Breakpoint Context + $holder-context: $private-breakpoint-context-holder; + $holder-query-count: $private-breakpoint-query-count; + + // Reset Global Private Breakpoint Context + $private-breakpoint-context-holder: () !global; + $private-breakpoint-query-count: 0 !global; + + + // Test to see if it's a comma-separated list + $or-list: if(list-separator($query) == 'comma', true, false); + + + @if ($or-list == false and breakpoint-get('legacy syntax') == false) { + $query-string: breakpoint-parse($query); + } + @else { + $length: length($query); + + $last: nth($query, $length); + $query-fallback: breakpoint-no-query($last); + + @if ($query-fallback != false) { + $length: $length - 1; + } + + @if (breakpoint-get('legacy syntax') == true) { + $mq: (); + + @for $i from 1 through $length { + $mq: append($mq, nth($query, $i), comma); + } + + $query-string: breakpoint-parse($mq); + } + @else { + $query-string: ''; + @for $i from 1 through $length { + $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i)); + } + } + } + + $return: ('query': $query-string, + 'fallback': $query-fallback, + 'context holder': $private-breakpoint-context-holder, + 'query count': $private-breakpoint-query-count + ); + @if length($contexts) > 0 and nth($contexts, 1) != false { + @if $query-fallback != false { + $context-setter: private-breakpoint-set-context('no-query', $query-fallback); + } + $context-map: (); + @each $context in $contexts { + $context-map: map-merge($context-map, ($context: breakpoint-get-context($context))); + } + $return: map-merge($return, (context: $context-map)); + } + + // Reset Global Private Breakpoint Context + $private-breakpoint-context-holder: () !global; + $private-breakpoint-query-count: 0 !global; + + @if $Memo-Exists { + $holder: memo-set(breakpoint, breakpoint $query $contexts, $return); + } + } + + @return $return; +} + +////////////////////////////// +// General Breakpoint Parser +////////////////////////////// +@function breakpoint-parse($query) { + // Increase number of 'and' queries + $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global; + + // Set up Media Type + $query-print: ''; + + $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all')); + $empty-media: true; + @if ($force-all == true) or (breakpoint-get('default media') != 'all') { + // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all) + $query-print: breakpoint-get('default media'); + $empty-media: false; + } + + + $query-resolution: false; + + $query-holder: breakpoint-parse-query($query); + + + + // Loop over each parsed out query and write it to $query-print + $first: true; + + @each $feature in $query-holder { + $length: length($feature); + + // Parse a single feature + @if ($length == 1) { + // Feature is currently a list, grab the actual value + $feature: nth($feature, 1); + + // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type + @if (breakpoint-is-media($feature)) { + @if ($force-all == true) or ($feature != 'all') { + // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all) + $query-print: $feature; + $empty-media: false; + + // Set Context + $context-setter: private-breakpoint-set-context(media, $query-print); + } + } + @else { + $parsed: breakpoint-parse-single($feature, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + } + } + // Parse a double feature + @else if ($length == 2) { + @if (breakpoint-is-resolution($feature) != false) { + $query-resolution: $feature; + } + @else { + $parsed: null; + // If it's a string/number pair, + // we check to see if one is a single-string value, + // then we parse it as a normal double + $alpha: nth($feature, 1); + $beta: nth($feature, 2); + @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) { + $parsed: breakpoint-parse-single($alpha, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + $parsed: breakpoint-parse-single($beta, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + } + @else { + $parsed: breakpoint-parse-double($feature, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + } + } + } + // Parse a triple feature + @else if ($length == 3) { + $parsed: breakpoint-parse-triple($feature, $empty-media, $first); + $query-print: '#{$query-print} #{$parsed}'; + $first: false; + } + + } + + @if ($query-resolution != false) { + $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first); + } + + // Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters + @each $f, $v in $private-breakpoint-context-holder { + $v-holder: $v; + $length: length($v-holder); + @if length($v-holder) < $private-breakpoint-query-count { + @for $i from $length to $private-breakpoint-query-count { + @if $f == 'media' { + $v-holder: append($v-holder, breakpoint-get('default media')); + } + @else { + $v-holder: append($v-holder, false); + } + } + } + $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global; + } + + @return $query-print; +} diff --git a/_sass/vendor/breakpoint/_respond-to.scss b/_sass/vendor/breakpoint/_respond-to.scss new file mode 100644 index 00000000..e2462c5f --- /dev/null +++ b/_sass/vendor/breakpoint/_respond-to.scss @@ -0,0 +1,82 @@ +//////////////////////// +// Default the Breakpoints variable +//////////////////////// +$breakpoints: () !default; +$BREAKPOINTS: () !default; + +//////////////////////// +// Respond-to API Mixin +//////////////////////// +@mixin respond-to($context, $no-query: false) { + @if length($breakpoints) > 0 and length($BREAKPOINTS) == 0 { + @warn "In order to avoid variable namespace collisions, we have updated the way to add breakpoints for respond-to. Please change all instances of `$breakpoints: add-breakpoint()` to `@include add-breakpoint()`. The `add-breakpoint()` function will be deprecated in a future release."; + $BREAKPOINTS: $breakpoints !global; + $breakpoints: () !global; + } + + @if type-of($BREAKPOINTS) != 'map' { + // Just in case someone writes gibberish to the $breakpoints variable. + @warn "Your breakpoints aren't a map! `respond-to` expects a map. Please check the value of $BREAKPOINTS variable."; + @content; + } + @else if map-has-key($BREAKPOINTS, $context) { + @include breakpoint(map-get($BREAKPOINTS, $context), $no-query) { + @content; + } + } + @else if not map-has-key($BREAKPOINTS, $context) { + @warn "`#{$context}` isn't a defined breakpoint! Please add it using `$breakpoints: add-breakpoint(`#{$context}`, $value);`"; + @content; + } + @else { + @warn "You haven't created any breakpoints yet! Make some already! `@include add-breakpoint($name, $bkpt)`"; + @content; + } +} + +////////////////////////////// +// Add Breakpoint to Breakpoints +// TODO: Remove function in next release +////////////////////////////// +@function add-breakpoint($name, $bkpt, $overwrite: false) { + $output: ($name: $bkpt); + + @if length($breakpoints) == 0 { + @return $output; + } + @else { + @if map-has-key($breakpoints, $name) and $overwrite != true { + @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint."; + @return $breakpoints; + } + @else if not map-has-key($breakpoints, $name) or $overwrite == true { + @return map-merge($breakpoints, $output); + } + } +} + +@mixin add-breakpoint($name, $bkpt, $overwrite: false) { + $output: ($name: $bkpt); + + @if length($BREAKPOINTS) == 0 { + $BREAKPOINTS: $output !global; + } + @else { + @if map-has-key($BREAKPOINTS, $name) and $overwrite != true { + @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint."; + $BREAKPOINTS: $BREAKPOINTS !global; + } + @else if not map-has-key($BREAKPOINTS, $name) or $overwrite == true { + $BREAKPOINTS: map-merge($BREAKPOINTS, $output) !global; + } + } +} + +@function get-breakpoint($name: false) { + @if $name == false { + @return $BREAKPOINTS; + } + @else { + @return map-get($BREAKPOINTS, $name); + } +} diff --git a/_sass/vendor/breakpoint/_settings.scss b/_sass/vendor/breakpoint/_settings.scss new file mode 100644 index 00000000..05ee6894 --- /dev/null +++ b/_sass/vendor/breakpoint/_settings.scss @@ -0,0 +1,71 @@ +////////////////////////////// +// Has Setting +////////////////////////////// +@function breakpoint-has($setting) { + @if map-has-key($breakpoint, $setting) { + @return true; + } + @else { + @return false; + } +} + +////////////////////////////// +// Get Settings +////////////////////////////// +@function breakpoint-get($setting) { + @if breakpoint-has($setting) { + @return map-get($breakpoint, $setting); + } + @else { + @return map-get($Breakpoint-Settings, $setting); + } +} + +////////////////////////////// +// Set Settings +////////////////////////////// +@function breakpoint-set($setting, $value) { + @if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null { + @warn "Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed."; + } + $breakpoint: map-merge($breakpoint, ($setting: $value)) !global; + @return true; +} + +@mixin breakpoint-change($setting, $value) { + $breakpoint-change: breakpoint-set($setting, $value); +} + +@mixin breakpoint-set($setting, $value) { + @include breakpoint-change($setting, $value); +} + +@mixin bkpt-change($setting, $value) { + @include breakpoint-change($setting, $value); +} +@mixin bkpt-set($setting, $value) { + @include breakpoint-change($setting, $value); +} + +////////////////////////////// +// Remove Setting +////////////////////////////// +@function breakpoint-reset($settings...) { + @if length($settings) == 1 { + $settings: nth($settings, 1); + } + + @each $setting in $settings { + $breakpoint: map-remove($breakpoint, $setting) !global; + } + @return true; +} + +@mixin breakpoint-reset($settings...) { + $breakpoint-reset: breakpoint-reset($settings); +} + +@mixin bkpt-reset($settings...) { + $breakpoint-reset: breakpoint-reset($settings); +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/parsers/_double.scss b/_sass/vendor/breakpoint/parsers/_double.scss new file mode 100644 index 00000000..24580c15 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_double.scss @@ -0,0 +1,33 @@ +////////////////////////////// +// Import Pieces +////////////////////////////// +@import "double/default-pair"; +@import "double/double-string"; +@import "double/default"; + +@function breakpoint-parse-double($feature, $empty-media, $first) { + $parsed: ''; + $leader: ''; + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + $first: nth($feature, 1); + $second: nth($feature, 2); + + // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number + @if type-of($first) == 'number' and type-of($second) == 'number' { + $parsed: breakpoint-parse-default-pair($first, $second); + } + // If they are both strings, we send it through the string parser + @else if type-of($first) == 'string' and type-of($second) == 'string' { + $parsed: breakpoint-parse-double-string($first, $second); + } + // If it's a string/number pair, we parse it as a normal double + @else { + $parsed: breakpoint-parse-double-default($first, $second); + } + + @return $leader + $parsed; +} diff --git a/_sass/vendor/breakpoint/parsers/_query.scss b/_sass/vendor/breakpoint/parsers/_query.scss new file mode 100644 index 00000000..b138b393 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_query.scss @@ -0,0 +1,82 @@ +@function breakpoint-parse-query($query) { + // Parse features out of an individual query + $feature-holder: (); + $query-holder: (); + $length: length($query); + + @if $length == 2 { + // If we've got a string/number, number/string, check to see if it's a valid string/number pair or two singles + @if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'number') or (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'string') { + + $number: ''; + $value: ''; + + @if type-of(nth($query, 1)) == 'string' { + $number: nth($query, 2); + $value: nth($query, 1); + } + @else { + $number: nth($query, 1); + $value: nth($query, 2); + } + + // If the string value can be a single value, check to see if the number passed in is a valid input for said single value. Fortunately, all current single-value options only accept unitless numbers, so this check is easy. + @if breakpoint-single-string($value) { + @if unitless($number) { + $feature-holder: append($value, $number, space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + } + // If the string is a media type, split the query + @if breakpoint-is-media($value) { + $query-holder: append($query-holder, nth($query, 1)); + $query-holder: append($query-holder, nth($query, 2)); + @return $query-holder; + } + // If it's not a single feature, we're just going to assume it's a proper string/value pair, and roll with it. + @else { + $feature-holder: append($value, $number, space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + + } + // If they're both numbers, we assume it's a double and roll with that + @else if (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'number') { + $feature-holder: append(nth($query, 1), nth($query, 2), space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + // If they're both strings and neither are singles, we roll with that. + @else if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'string') { + @if not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) { + $feature-holder: append(nth($query, 1), nth($query, 2), space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + } + } + @else if $length == 3 { + // If we've got three items and none is a list, we check to see + @if type-of(nth($query, 1)) != 'list' and type-of(nth($query, 2)) != 'list' and type-of(nth($query, 3)) != 'list' { + // If none of the items are single string values and none of the values are media values, we're good. + @if (not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) and not breakpoint-single-string(nth($query, 3))) and ((not breakpoint-is-media(nth($query, 1)) and not breakpoint-is-media(nth($query, 2)) and not breakpoint-is-media(nth($query, 3)))) { + $feature-holder: append(nth($query, 1), nth($query, 2), space); + $feature-holder: append($feature-holder, nth($query, 3), space); + $query-holder: append($query-holder, $feature-holder, comma); + @return $query-holder; + } + // let's check to see if the first item is a media type + @else if breakpoint-is-media(nth($query, 1)) { + $query-holder: append($query-holder, nth($query, 1)); + $feature-holder: append(nth($query, 2), nth($query, 3), space); + $query-holder: append($query-holder, $feature-holder); + @return $query-holder; + } + } + } + + // If it's a single item, or if it's not a special case double or triple, we can simply return the query. + @return $query; +} diff --git a/_sass/vendor/breakpoint/parsers/_resolution.scss b/_sass/vendor/breakpoint/parsers/_resolution.scss new file mode 100644 index 00000000..19769adf --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_resolution.scss @@ -0,0 +1,31 @@ +@import "resolution/resolution"; + +@function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) { + $leader: ''; + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + @if breakpoint-get('transform resolutions') and $query-resolution { + $resolutions: breakpoint-make-resolutions($query-resolution); + $length: length($resolutions); + $query-holder: ''; + + @for $i from 1 through $length { + $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}'; + @if $i == 1 { + $query-holder: $query; + } + @else { + $query-holder: '#{$query-holder}, #{$query}'; + } + } + + @return $query-holder; + } + @else { + // Return with attached resolution + @return $query-print; + } +} diff --git a/_sass/vendor/breakpoint/parsers/_single.scss b/_sass/vendor/breakpoint/parsers/_single.scss new file mode 100644 index 00000000..d9fd764a --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_single.scss @@ -0,0 +1,26 @@ +////////////////////////////// +// Import Pieces +////////////////////////////// +@import "single/default"; + +@function breakpoint-parse-single($feature, $empty-media, $first) { + $parsed: ''; + $leader: ''; + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + // If it's a single feature that can stand alone, we let it + @if (breakpoint-single-string($feature)) { + $parsed: $feature; + // Set Context + $context-setter: private-breakpoint-set-context($feature, $feature); + } + // If it's not a stand alone feature, we pass it off to the default handler. + @else { + $parsed: breakpoint-parse-default($feature); + } + + @return $leader + '(' + $parsed + ')'; +} diff --git a/_sass/vendor/breakpoint/parsers/_triple.scss b/_sass/vendor/breakpoint/parsers/_triple.scss new file mode 100644 index 00000000..e2732067 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/_triple.scss @@ -0,0 +1,36 @@ +////////////////////////////// +// Import Pieces +////////////////////////////// +@import "triple/default"; + +@function breakpoint-parse-triple($feature, $empty-media, $first) { + $parsed: ''; + $leader: ''; + + // If we're forcing + @if not ($empty-media) or not ($first) { + $leader: 'and '; + } + + // separate the string features from the value numbers + $string: null; + $numbers: null; + @each $val in $feature { + @if type-of($val) == string { + $string: $val; + } + @else { + @if type-of($numbers) == 'null' { + $numbers: $val; + } + @else { + $numbers: append($numbers, $val); + } + } + } + + $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2)); + + @return $leader + $parsed; + +} diff --git a/_sass/vendor/breakpoint/parsers/double/_default-pair.scss b/_sass/vendor/breakpoint/parsers/double/_default-pair.scss new file mode 100644 index 00000000..f88432cc --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/double/_default-pair.scss @@ -0,0 +1,21 @@ +@function breakpoint-parse-default-pair($first, $second) { + $default: breakpoint-get('default pair'); + $min: ''; + $max: ''; + + // Sort into min and max + $min: min($first, $second); + $max: max($first, $second); + + // Set Context + $context-setter: private-breakpoint-set-context(min-#{$default}, $min); + $context-setter: private-breakpoint-set-context(max-#{$default}, $max); + + // Make them EMs if need be + @if (breakpoint-get('to ems') == true) { + $min: breakpoint-to-base-em($min); + $max: breakpoint-to-base-em($max); + } + + @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})'; +} diff --git a/_sass/vendor/breakpoint/parsers/double/_default.scss b/_sass/vendor/breakpoint/parsers/double/_default.scss new file mode 100644 index 00000000..73190ed5 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/double/_default.scss @@ -0,0 +1,22 @@ +@function breakpoint-parse-double-default($first, $second) { + $feature: ''; + $value: ''; + + @if type-of($first) == 'string' { + $feature: $first; + $value: $second; + } + @else { + $feature: $second; + $value: $first; + } + + // Set Context + $context-setter: private-breakpoint-set-context($feature, $value); + + @if (breakpoint-get('to ems') == true) { + $value: breakpoint-to-base-em($value); + } + + @return '(#{$feature}: #{$value})' +} diff --git a/_sass/vendor/breakpoint/parsers/double/_double-string.scss b/_sass/vendor/breakpoint/parsers/double/_double-string.scss new file mode 100644 index 00000000..c6fd0cb0 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/double/_double-string.scss @@ -0,0 +1,22 @@ +@function breakpoint-parse-double-string($first, $second) { + $feature: ''; + $value: ''; + + // Test to see which is the feature and which is the value + @if (breakpoint-string-value($first) == true) { + $feature: $first; + $value: $second; + } + @else if (breakpoint-string-value($second) == true) { + $feature: $second; + $value: $first; + } + @else { + @warn "Neither #{$first} nor #{$second} is a valid media query name."; + } + + // Set Context + $context-setter: private-breakpoint-set-context($feature, $value); + + @return '(#{$feature}: #{$value})'; +} \ No newline at end of file diff --git a/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss b/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss new file mode 100644 index 00000000..36804212 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss @@ -0,0 +1,60 @@ +@function breakpoint-make-resolutions($resolution) { + $length: length($resolution); + + $output: (); + + @if $length == 2 { + $feature: ''; + $value: ''; + + // Find which is number + @if type-of(nth($resolution, 1)) == 'number' { + $value: nth($resolution, 1); + } + @else { + $value: nth($resolution, 2); + } + + // Determine min/max/standard + @if index($resolution, 'min-resolution') { + $feature: 'min-'; + } + @else if index($resolution, 'max-resolution') { + $feature: 'max-'; + } + + $standard: '(#{$feature}resolution: #{$value})'; + + // If we're not dealing with dppx, + @if unit($value) != 'dppx' { + $base: 96dpi; + @if unit($value) == 'dpcm' { + $base: 243.84dpcm; + } + // Write out feature tests + $webkit: ''; + $moz: ''; + $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})'; + $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})'; + // Append to output + $output: append($output, $standard, space); + $output: append($output, $webkit, space); + $output: append($output, $moz, space); + } + @else { + $webkit: ''; + $moz: ''; + $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})'; + $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})'; + $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})'; + // Append to output + $output: append($output, $standard, space); + $output: append($output, $webkit, space); + $output: append($output, $moz, space); + $output: append($output, $fallback, space); + } + + } + + @return $output; +} diff --git a/_sass/vendor/breakpoint/parsers/single/_default.scss b/_sass/vendor/breakpoint/parsers/single/_default.scss new file mode 100644 index 00000000..503ef427 --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/single/_default.scss @@ -0,0 +1,13 @@ +@function breakpoint-parse-default($feature) { + $default: breakpoint-get('default feature'); + + // Set Context + $context-setter: private-breakpoint-set-context($default, $feature); + + @if (breakpoint-get('to ems') == true) and (type-of($feature) == 'number') { + @return '#{$default}: #{breakpoint-to-base-em($feature)}'; + } + @else { + @return '#{$default}: #{$feature}'; + } +} diff --git a/_sass/vendor/breakpoint/parsers/triple/_default.scss b/_sass/vendor/breakpoint/parsers/triple/_default.scss new file mode 100644 index 00000000..7fa418dd --- /dev/null +++ b/_sass/vendor/breakpoint/parsers/triple/_default.scss @@ -0,0 +1,18 @@ +@function breakpoint-parse-triple-default($feature, $first, $second) { + + // Sort into min and max + $min: min($first, $second); + $max: max($first, $second); + + // Set Context + $context-setter: private-breakpoint-set-context(min-#{$feature}, $min); + $context-setter: private-breakpoint-set-context(max-#{$feature}, $max); + + // Make them EMs if need be + @if (breakpoint-get('to ems') == true) { + $min: breakpoint-to-base-em($min); + $max: breakpoint-to-base-em($max); + } + + @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})'; +} diff --git a/_sass/vendor/font-awesome/_animated.scss b/_sass/vendor/font-awesome/_animated.scss new file mode 100644 index 00000000..8a020dbf --- /dev/null +++ b/_sass/vendor/font-awesome/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/_sass/vendor/font-awesome/_bordered-pulled.scss b/_sass/vendor/font-awesome/_bordered-pulled.scss new file mode 100644 index 00000000..d4b85a02 --- /dev/null +++ b/_sass/vendor/font-awesome/_bordered-pulled.scss @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/_sass/vendor/font-awesome/_core.scss b/_sass/vendor/font-awesome/_core.scss new file mode 100644 index 00000000..7425ef85 --- /dev/null +++ b/_sass/vendor/font-awesome/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/_sass/vendor/font-awesome/_fixed-width.scss b/_sass/vendor/font-awesome/_fixed-width.scss new file mode 100644 index 00000000..b221c981 --- /dev/null +++ b/_sass/vendor/font-awesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/_sass/vendor/font-awesome/_font-awesome.scss b/_sass/vendor/font-awesome/_font-awesome.scss new file mode 100644 index 00000000..2308b14c --- /dev/null +++ b/_sass/vendor/font-awesome/_font-awesome.scss @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; +@import "screen-reader"; diff --git a/_sass/vendor/font-awesome/_icons.scss b/_sass/vendor/font-awesome/_icons.scss new file mode 100644 index 00000000..29443443 --- /dev/null +++ b/_sass/vendor/font-awesome/_icons.scss @@ -0,0 +1,733 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } diff --git a/_sass/vendor/font-awesome/_larger.scss b/_sass/vendor/font-awesome/_larger.scss new file mode 100644 index 00000000..41e9a818 --- /dev/null +++ b/_sass/vendor/font-awesome/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/_sass/vendor/font-awesome/_list.scss b/_sass/vendor/font-awesome/_list.scss new file mode 100644 index 00000000..7d1e4d54 --- /dev/null +++ b/_sass/vendor/font-awesome/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/_sass/vendor/font-awesome/_mixins.scss b/_sass/vendor/font-awesome/_mixins.scss new file mode 100644 index 00000000..c3bbd574 --- /dev/null +++ b/_sass/vendor/font-awesome/_mixins.scss @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/_sass/vendor/font-awesome/_path.scss b/_sass/vendor/font-awesome/_path.scss new file mode 100644 index 00000000..bb457c23 --- /dev/null +++ b/_sass/vendor/font-awesome/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/_sass/vendor/font-awesome/_rotated-flipped.scss b/_sass/vendor/font-awesome/_rotated-flipped.scss new file mode 100644 index 00000000..a3558fd0 --- /dev/null +++ b/_sass/vendor/font-awesome/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/_sass/vendor/font-awesome/_screen-reader.scss b/_sass/vendor/font-awesome/_screen-reader.scss new file mode 100644 index 00000000..637426f0 --- /dev/null +++ b/_sass/vendor/font-awesome/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/_sass/vendor/font-awesome/_stacked.scss b/_sass/vendor/font-awesome/_stacked.scss new file mode 100644 index 00000000..aef74036 --- /dev/null +++ b/_sass/vendor/font-awesome/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/_sass/vendor/font-awesome/_variables.scss b/_sass/vendor/font-awesome/_variables.scss new file mode 100644 index 00000000..a5a89ef9 --- /dev/null +++ b/_sass/vendor/font-awesome/_variables.scss @@ -0,0 +1,744 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.6.3/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.6.3" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: "\f26e"; +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; +$fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; +$fa-var-ban: "\f05e"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; +$fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; +$fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; +$fa-var-edit: "\f044"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; +$fa-var-eraser: "\f12d"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; +$fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map: "\f279"; +$fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; +$fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f2ae"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-safari: "\f267"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; +$fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-television: "\f26c"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpforms: "\f298"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; +$fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/_sass/vendor/magnific-popup/_magnific-popup.scss b/_sass/vendor/magnific-popup/_magnific-popup.scss new file mode 100644 index 00000000..27b27bcc --- /dev/null +++ b/_sass/vendor/magnific-popup/_magnific-popup.scss @@ -0,0 +1,649 @@ +/* Magnific Popup CSS */ + +@import "settings"; + +//////////////////////// +// +// Contents: +// +// 1. Default Settings +// 2. General styles +// - Transluscent overlay +// - Containers, wrappers +// - Cursors +// - Helper classes +// 3. Appearance +// - Preloader & text that displays error messages +// - CSS reset for buttons +// - Close icon +// - "1 of X" counter +// - Navigation (left/right) arrows +// - Iframe content type styles +// - Image content type styles +// - Media query where size of arrows is reduced +// - IE7 support +// +//////////////////////// + + + +//////////////////////// +// 1. Default Settings +//////////////////////// + +$mfp-overlay-color: #0b0b0b !default; +$mfp-overlay-opacity: 0.8 !default; +$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // shadow on image or iframe +$mfp-popup-padding-left: 8px !default; // Padding from left and from right side +$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px + +$mfp-z-index-base: 1040 !default; // Base z-index of popup +$mfp-include-arrows: true !default; // include styles for nav arrows +$mfp-controls-opacity: 0.65 !default; +$mfp-controls-color: #FFF !default; +$mfp-controls-border-color: #3F3F3F !default; +$mfp-inner-close-icon-color: #333 !default; +$mfp-controls-text-color: #CCC !default; // Color of preloader and "1 of X" indicator +$mfp-controls-text-color-hover: #FFF !default; +$mfp-IE7support: true !default; // Very basic IE7 support + +// Iframe-type options +$mfp-include-iframe-type: true !default; +$mfp-iframe-padding-top: 40px !default; +$mfp-iframe-background: #000 !default; +$mfp-iframe-max-width: 900px !default; +$mfp-iframe-ratio: 9/16 !default; + +// Image-type options +$mfp-include-image-type: true !default; +$mfp-image-background: #444 !default; +$mfp-image-padding-top: 40px !default; +$mfp-image-padding-bottom: 40px !default; +$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom + +// Image caption options +$mfp-caption-title-color: #F3F3F3 !default; +$mfp-caption-subtitle-color: #BDBDBD !default; + +// A11y +$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers + + + +//////////////////////// +// 2. General styles +//////////////////////// + +// Transluscent overlay +.mfp-bg { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: $mfp-z-index-base + 2; + overflow: hidden; + position: fixed; + + background: $mfp-overlay-color; + opacity: $mfp-overlay-opacity; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{$mfp-overlay-opacity*100})"); + } +} + +// Wrapper for popup +.mfp-wrap { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: $mfp-z-index-base + 3; + position: fixed; + outline: none !important; + -webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar +} + +// Root container +.mfp-container { + text-align: center; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + padding: 0 $mfp-popup-padding-left; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +// Vertical centerer helper +.mfp-container { + &:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; + } +} + +// Remove vertical centering when popup has class `mfp-align-top` +.mfp-align-top { + .mfp-container { + &:before { + display: none; + } + } +} + +// Popup content holder +.mfp-content { + position: relative; + display: inline-block; + vertical-align: middle; + margin: 0 auto; + text-align: left; + z-index: $mfp-z-index-base + 5; +} +.mfp-inline-holder, +.mfp-ajax-holder { + .mfp-content { + width: 100%; + cursor: auto; + } +} + +// Cursors +.mfp-ajax-cur { + cursor: progress; +} +.mfp-zoom-out-cur { + &, .mfp-image-holder .mfp-close { + cursor: -moz-zoom-out; + cursor: -webkit-zoom-out; + cursor: zoom-out; + } +} +.mfp-zoom { + cursor: pointer; + cursor: -webkit-zoom-in; + cursor: -moz-zoom-in; + cursor: zoom-in; +} +.mfp-auto-cursor { + .mfp-content { + cursor: auto; + } +} + +.mfp-close, +.mfp-arrow, +.mfp-preloader, +.mfp-counter { + -webkit-user-select:none; + -moz-user-select: none; + user-select: none; +} + +// Hide the image during the loading +.mfp-loading { + &.mfp-figure { + display: none; + } +} + +// Helper class that hides stuff +@if $mfp-use-visuallyhidden { + // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden + .mfp-hide { + border: 0 !important; + clip: rect(0 0 0 0) !important; + height: 1px !important; + margin: -1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + width: 1px !important; + } +} @else { + .mfp-hide { + display: none !important; + } +} + + +//////////////////////// +// 3. Appearance +//////////////////////// + +// Preloader and text that displays error messages +.mfp-preloader { + color: $mfp-controls-text-color; + position: absolute; + top: 50%; + width: auto; + text-align: center; + margin-top: -0.8em; + left: 8px; + right: 8px; + z-index: $mfp-z-index-base + 4; + a { + color: $mfp-controls-text-color; + &:hover { + color: $mfp-controls-text-color-hover; + } + } +} + +// Hide preloader when content successfully loaded +.mfp-s-ready { + .mfp-preloader { + display: none; + } +} + +// Hide content when it was not loaded +.mfp-s-error { + .mfp-content { + display: none; + } +} + +// CSS-reset for buttons +button { + &.mfp-close, + &.mfp-arrow { + overflow: visible; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + display: block; + outline: none; + padding: 0; + z-index: $mfp-z-index-base + 6; + -webkit-box-shadow: none; + box-shadow: none; + } + &::-moz-focus-inner { + padding: 0; + border: 0 + } +} + + +// Close icon +.mfp-close { + width: 44px; + height: 44px; + line-height: 44px; + + position: absolute; + right: 0; + top: 0; + text-decoration: none; + text-align: center; + opacity: $mfp-controls-opacity; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})"); + } + padding: 0 0 18px 10px; + color: $mfp-controls-color; + + font-style: normal; + font-size: 28px; + font-family: $serif; + + &:hover, + &:focus { + opacity: 1; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{1*100})"); + } + } + + &:active { + top: 1px; + } +} +.mfp-close-btn-in { + .mfp-close { + color: $mfp-inner-close-icon-color; + } +} +.mfp-image-holder, +.mfp-iframe-holder { + .mfp-close { + color: $mfp-controls-color; + right: -6px; + text-align: right; + padding-right: 6px; + width: 100%; + } +} + +// "1 of X" counter +.mfp-counter { + position: absolute; + top: 0; + right: 0; + color: $mfp-controls-text-color; + font-size: 12px; + line-height: 18px; +} + +// Navigation arrows +@if $mfp-include-arrows { + .mfp-arrow { + position: absolute; + opacity: $mfp-controls-opacity; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{$mfp-controls-opacity*100})"); + } + margin: 0; + top: 50%; + margin-top: -55px; + padding: 0; + width: 90px; + height: 110px; + -webkit-tap-highlight-color: rgba(0,0,0,0); + &:active { + margin-top: -54px; + } + &:hover, + &:focus { + opacity: 1; + @if $mfp-IE7support { + filter: unquote("alpha(opacity=#{1*100})"); + } + } + &:before, + &:after, + .mfp-b, + .mfp-a { + content: ''; + display: block; + width: 0; + height: 0; + position: absolute; + left: 0; + top: 0; + margin-top: 35px; + margin-left: 35px; + border: medium inset transparent; + } + + &:after, + .mfp-a { + + border-top-width: 13px; + border-bottom-width: 13px; + top:8px; + } + + &:before, + .mfp-b { + border-top-width: 21px; + border-bottom-width: 21px; + opacity: 0.7; + } + + } + + .mfp-arrow-left { + left: 0; + + &:after, + .mfp-a { + border-right: 17px solid $mfp-controls-color; + margin-left: 31px; + } + &:before, + .mfp-b { + margin-left: 25px; + border-right: 27px solid $mfp-controls-border-color; + } + } + + .mfp-arrow-right { + right: 0; + &:after, + .mfp-a { + border-left: 17px solid $mfp-controls-color; + margin-left: 39px + } + &:before, + .mfp-b { + border-left: 27px solid $mfp-controls-border-color; + } + } +} + + + +// Iframe content type +@if $mfp-include-iframe-type { + .mfp-iframe-holder { + padding-top: $mfp-iframe-padding-top; + padding-bottom: $mfp-iframe-padding-top; + .mfp-content { + line-height: 0; + width: 100%; + max-width: $mfp-iframe-max-width; + } + .mfp-close { + top: -40px; + } + } + .mfp-iframe-scaler { + width: 100%; + height: 0; + overflow: hidden; + padding-top: $mfp-iframe-ratio * 100%; + iframe { + position: absolute; + display: block; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: $mfp-shadow; + background: $mfp-iframe-background; + } + } +} + + + +// Image content type +@if $mfp-include-image-type { + + /* Main image in popup */ + img { + &.mfp-img { + width: auto; + max-width: 100%; + height: auto; + display: block; + line-height: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom; + margin: 0 auto; + } + } + + /* The shadow behind the image */ + .mfp-figure { + line-height: 0; + &:after { + content: ''; + position: absolute; + left: 0; + top: $mfp-image-padding-top; + bottom: $mfp-image-padding-bottom; + display: block; + right: 0; + width: auto; + height: auto; + z-index: -1; + box-shadow: $mfp-shadow; + background: $mfp-image-background; + } + small { + color: $mfp-caption-subtitle-color; + display: block; + font-size: 12px; + line-height: 14px; + } + figure { + margin: 0; + } + figcaption { + margin-top: 0; + margin-bottom: 0; // reset for bottom spacing + } + } + .mfp-bottom-bar { + margin-top: -$mfp-image-padding-bottom + 4; + position: absolute; + top: 100%; + left: 0; + width: 100%; + cursor: auto; + } + .mfp-title { + text-align: left; + line-height: 18px; + color: $mfp-caption-title-color; + word-wrap: break-word; + padding-right: 36px; // leave some space for counter at right side + } + + .mfp-image-holder { + .mfp-content { + max-width: 100%; + } + } + + .mfp-gallery { + .mfp-image-holder { + .mfp-figure { + cursor: pointer; + } + } + } + + + @if $mfp-include-mobile-layout-for-image { + @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) { + /** + * Remove all paddings around the image on small screen + */ + .mfp-img-mobile { + .mfp-image-holder { + padding-left: 0; + padding-right: 0; + } + img { + &.mfp-img { + padding: 0; + } + } + .mfp-figure { + // The shadow behind the image + &:after { + top: 0; + bottom: 0; + } + small { + display: inline; + margin-left: 5px; + } + } + .mfp-bottom-bar { + background: rgba(0,0,0,0.6); + bottom: 0; + margin: 0; + top: auto; + padding: 3px 5px; + position: fixed; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + &:empty { + padding: 0; + } + } + .mfp-counter { + right: 5px; + top: 3px; + } + .mfp-close { + top: 0; + right: 0; + width: 35px; + height: 35px; + line-height: 35px; + background: rgba(0, 0, 0, 0.6); + position: fixed; + text-align: center; + padding: 0; + } + } + } + } +} + + + +// Scale navigation arrows and reduce padding from sides +@media all and (max-width: 900px) { + .mfp-arrow { + -webkit-transform: scale(0.75); + transform: scale(0.75); + } + .mfp-arrow-left { + -webkit-transform-origin: 0; + transform-origin: 0; + } + .mfp-arrow-right { + -webkit-transform-origin: 100%; + transform-origin: 100%; + } + .mfp-container { + padding-left: $mfp-popup-padding-left-mobile; + padding-right: $mfp-popup-padding-left-mobile; + } +} + + + +// IE7 support +// Styles that make popup look nicier in old IE +@if $mfp-IE7support { + .mfp-ie7 { + .mfp-img { + padding: 0; + } + .mfp-bottom-bar { + width: 600px; + left: 50%; + margin-left: -300px; + margin-top: 5px; + padding-bottom: 5px; + } + .mfp-container { + padding: 0; + } + .mfp-content { + padding-top: 44px; + } + .mfp-close { + top: 0; + right: 0; + padding-top: 0; + } + } +} diff --git a/_sass/vendor/magnific-popup/_settings.scss b/_sass/vendor/magnific-popup/_settings.scss new file mode 100644 index 00000000..caaca026 --- /dev/null +++ b/_sass/vendor/magnific-popup/_settings.scss @@ -0,0 +1,46 @@ +//////////////////////// +// Settings // +//////////////////////// + +// overlay +$mfp-overlay-color: #000; // Color of overlay screen +$mfp-overlay-opacity: 0.8; // Opacity of overlay screen +$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6); // Shadow on image or iframe + +// spacing +$mfp-popup-padding-left: 8px; // Padding from left and from right side +$mfp-popup-padding-left-mobile: 6px; // Same as above, but is applied when width of window is less than 800px + +$mfp-z-index-base: 1040; // Base z-index of popup + +// controls +$mfp-include-arrows: true; // Include styles for nav arrows +$mfp-controls-opacity: 1; // Opacity of controls +$mfp-controls-color: #fff; // Color of controls +$mfp-controls-border-color: #fff; // Border color of controls +$mfp-inner-close-icon-color: #fff; // Color of close button when inside +$mfp-controls-text-color: #ccc; // Color of preloader and "1 of X" indicator +$mfp-controls-text-color-hover: #fff; // Hover color of preloader and "1 of X" indicator +$mfp-IE7support: true; // Very basic IE7 support + +// Iframe-type options +$mfp-include-iframe-type: true; // Enable Iframe-type popups +$mfp-iframe-padding-top: 40px; // Iframe padding top +$mfp-iframe-background: #000; // Background color of iframes +$mfp-iframe-max-width: 900px; // Maximum width of iframes +$mfp-iframe-ratio: 9/16; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.) + +// Image-type options +$mfp-include-image-type: true; // Enable Image-type popups +$mfp-image-background: #444 !default; +$mfp-image-padding-top: 40px; // Image padding top +$mfp-image-padding-bottom: 40px; // Image padding bottom +$mfp-include-mobile-layout-for-image: true; // Removes paddings from top and bottom + +// Image caption options +$mfp-caption-title-color: #f3f3f3; // Caption title color +$mfp-caption-subtitle-color: #bdbdbd; // Caption subtitle color +.mfp-counter { font-family: $serif; } // Caption font family + +// A11y +$mfp-use-visuallyhidden: false; diff --git a/_sass/vendor/susy/_su.scss b/_sass/vendor/susy/_su.scss new file mode 100644 index 00000000..83386adb --- /dev/null +++ b/_sass/vendor/susy/_su.scss @@ -0,0 +1,4 @@ +// Su +// == + +@import 'susy/su'; diff --git a/_sass/vendor/susy/_susy.scss b/_sass/vendor/susy/_susy.scss new file mode 100644 index 00000000..224e98ad --- /dev/null +++ b/_sass/vendor/susy/_susy.scss @@ -0,0 +1,4 @@ +// Susy +// ==== + +@import 'susy/language/susy'; diff --git a/_sass/vendor/susy/_susyone.scss b/_sass/vendor/susy/_susyone.scss new file mode 100644 index 00000000..5b934c68 --- /dev/null +++ b/_sass/vendor/susy/_susyone.scss @@ -0,0 +1,4 @@ +// Susy +// ==== + +@import 'susy/language/susyone'; diff --git a/_sass/vendor/susy/susy/_su.scss b/_sass/vendor/susy/susy/_su.scss new file mode 100644 index 00000000..a1454157 --- /dev/null +++ b/_sass/vendor/susy/susy/_su.scss @@ -0,0 +1,7 @@ +// Su +// == + +@import "su/utilities"; +@import "su/settings"; +@import "su/validation"; +@import "su/grid"; diff --git a/_sass/vendor/susy/susy/language/_susy.scss b/_sass/vendor/susy/susy/language/_susy.scss new file mode 100644 index 00000000..0ee9cae2 --- /dev/null +++ b/_sass/vendor/susy/susy/language/_susy.scss @@ -0,0 +1,24 @@ +// Susy Next Syntax +// ================ + +$susy-version: 2.1; + +@import "../su"; +@import "../output/float"; + +@import "susy/settings"; +@import "susy/validation"; +@import "susy/grids"; +@import "susy/box-sizing"; +@import "susy/context"; +@import "susy/background"; +@import "susy/container"; +@import "susy/span"; +@import "susy/gutters"; +@import "susy/isolate"; +@import "susy/gallery"; +@import "susy/rows"; +@import "susy/margins"; +@import "susy/padding"; +@import "susy/bleed"; +@import "susy/breakpoint-plugin"; diff --git a/_sass/vendor/susy/susy/language/_susyone.scss b/_sass/vendor/susy/susy/language/_susyone.scss new file mode 100644 index 00000000..a783d3a8 --- /dev/null +++ b/_sass/vendor/susy/susy/language/_susyone.scss @@ -0,0 +1,13 @@ +// --------------------------------------------------------------------------- +// Partials + +$susy-version: 1.5; + +@import "susyone/settings"; +@import "susyone/functions"; +@import "susyone/grid"; +@import "susyone/isolation"; +@import "susyone/padding"; +@import "susyone/margin"; +@import "susyone/media"; +@import "susyone/background"; diff --git a/_sass/vendor/susy/susy/language/susy/_background.scss b/_sass/vendor/susy/susy/language/susy/_background.scss new file mode 100644 index 00000000..d39dc721 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_background.scss @@ -0,0 +1,385 @@ +// Background Grid Syntax +// ====================== + +$susy-overlay-grid-head-exists: false; + + +// Show Grid/s +// ----------- +// Show grid on any element using either background or overlay. +// - [$grid] : +@mixin show-grid( + $grid: $susy +) { + $inspect: $grid; + $_output: debug-get(output, $grid); + + @include susy-inspect(show-grid, $inspect); + @if $_output == overlay and susy-get(debug image, $grid) != hide { + @include overlay-grid($grid); + } @else { + @include background-grid($grid); + } +} + +@mixin show-grids( + $grid: $susy +) { + @include show-grid($grid); +} + +// Background Grid +// --------------- +// Show a grid background on any element. +// - [$grid] : +@mixin background-grid( + $grid: $susy +) { + $inspect : $grid; + $_output : get-background($grid); + + @if length($_output) > 0 { + $_flow: susy-get(flow, $grid); + + $_image: (); + @each $name, $layer in map-get($_output, image) { + $_direction: if($name == baseline, to bottom, to to($_flow)); + $_image: append($_image, linear-gradient($_direction, $layer), comma); + } + $_output: map-merge($_output, (image: $_image)); + + @include background-grid-output($_output...); + @include susy-inspect(background-grid, $inspect); + } +} + + +// Overlay Grid +// ------------ +// Generate an icon to trigger grid-overlays on any given elements. +// $grids... : [] [, ]* +@mixin overlay-grid ( + $grid: $susy +) { + @if not($susy-overlay-grid-head-exists) { + @at-root head { @include overlay-head($grid); } + @at-root head:before { @include overlay-trigger; } + @at-root head:hover { @include overlay-trigger-hover; } + $susy-overlay-grid-head-exists: true !global; + } + + head:hover ~ &, + head:hover ~ body & { + position: relative; + &:before { + @include grid-overlay-base; + @include background-grid($grid); + } + } +} + + +// [Private] Overlay Trigger +// ------------------------- +@mixin overlay-trigger { + content: "|||"; + display: block; + padding: 5px 10px; + font: { + family: sans-serif; + size: 16px; + weight: bold; + } +} + + +// [Private] Overlay Trigger Hover +// ------------------------------- +@mixin overlay-trigger-hover { + background: rgba(white, .5); + color: red; +} + + +// [Private] Overlay Head +// ---------------------- +// styles to create grid overlay toggle +@mixin overlay-head ( + $grid: $susy +) { + $_toggle: debug-get(toggle, $grid); + $_horz: null; + $_vert: null; + + @each $side in $_toggle { + $_horz: if($side == left or $side == right, $side, $_horz); + $_vert: if($side == top or $side == bottom, $side, $_vert); + } + + display: block; + position: fixed; + #{$_horz}: 10px; + #{$_vert}: 10px; + z-index: 999; + color: #333; + background: rgba(white, .25); +} + + +// [Private] Grid Overlay Base +// --------------------------- +// Base styles for generating a grid overlay +@mixin grid-overlay-base() { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + content: " "; + z-index: 998; +} + + +// Get Symmetrical Background +// -------------------------- +// - $grid: +@function get-background-sym( + $grid +) { + $grid : parse-grid($grid); + $_gutters : susy-get(gutters, $grid); + $_column-width : susy-get(column-width, $grid); + $_math : susy-get(math, $grid); + + $_color : debug-get(color); + $_trans : transparent; + $_light : lighten($_color, 15%); + + $_end : 1 + $_gutters; + $_after : percentage(1/$_end); + $_stops : (); + $_size : span(1 $grid wide); + + @if is-inside($grid) { + $_stops: $_color, $_light; + } @else if is-split($grid) { + $_split: $_gutters/2; + $_before: percentage($_split/$_end); + $_after: percentage((1 + $_split)/$_end); + $_stops: $_trans $_before, $_color $_before, $_light $_after, $_trans $_after; + } @else { + $_stops: $_color, $_light $_after, $_trans $_after; + } + + @if $_math == static { + $_size: valid-column-math($_math, $_column-width) * $_end; + } + + $_output: ( + image: (columns: $_stops), + size: $_size, + ); + + @return $_output; +} + + +// Get Asymmetrical Inside +// ----------------------- +// - $grid: +@function get-asym-inside( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + @if $location == 1 { + $this-stop: append($this-stop, $_color, comma); + } @else { + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, $_color $start, comma); + } + + @if $location == susy-count($_columns) { + $this-stop: append($this-stop, $_light, comma); + } @else { + $_end: parse-span(1 at ($location + 1) $grid); + $_end: get-isolation($_end); + $this-stop: append($this-stop, $_light $_end, comma); + } + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Split +// ---------------------- +// - $grid: +@function get-asym-split( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, transparent $start, comma); + $this-stop: append($this-stop, $_color $start, comma); + + $_end: $start + span(1 at $location $grid); + $this-stop: append($this-stop, $_light $_end, comma); + $this-stop: append($this-stop, transparent $_end, comma); + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Outside +// ------------------------ +// - $grid: +@function get-asym-outside( + $grid +) { + $grid : parse-grid($grid); + $_columns : susy-get(columns, $grid); + + $_color : debug-get(color); + $_light : lighten($_color, 15%); + $_trans : transparent; + $_stops : (); + + @for $location from 1 through susy-count($_columns) { + $this-stop: (); + + @if $location == 1 { + $this-stop: append($this-stop, $_color, comma); + } @else { + $start: parse-span(1 at $location $grid); + $start: get-isolation($start); + $this-stop: append($this-stop, $_color $start, comma); + } + + @if $location == susy-count($_columns) { + $this-stop: append($this-stop, $_light, comma); + } @else { + $gutter: get-span-width(first $location $grid); + + $_end: parse-span(1 at ($location + 1) $grid); + $_end: get-isolation($_end); + + $gutter: $_light $gutter, $_trans $gutter, $_trans $_end; + $this-stop: join($this-stop, $gutter, comma); + } + + $_stops: join($_stops, $this-stop, comma); + } + + @return $_stops; +} + + +// Get Asymmetrical Background +// --------------------------- +// - $grid: +@function get-background-asym( + $grid +) { + $_stops: (); + + @if is-inside($grid) { + $_stops: get-asym-inside($grid); + } @else if is-split($grid) { + $_stops: get-asym-split($grid); + } @else { + $_stops: get-asym-outside($grid); + } + + @return (image: (columns: $_stops)); +} + + +// Get Background +// -------------- +// - $grid: +@function get-background( + $grid +) { + $grid : parse-grid($grid); + $_show : susy-get(debug image, $grid); + $_return : (); + + @if $_show and $_show != 'hide' { + $_columns: susy-get(columns, $grid); + + @if $_show != 'show-baseline' { + $_sym: is-symmetrical($_columns); + $_return: if($_sym, get-background-sym($grid), get-background-asym($grid)); + $_return: map-merge($_return, (clip: content-box)); + } + + @if $_show != 'show-columns' + and global-variable-exists(base-line-height) + and type-of($base-line-height) == 'number' + and not unitless($base-line-height) { + $_color: variable-exists('grid-background-baseline-color'); + $_color: if($_color, $grid-background-baseline-color, #000); + + $_image: map-get($_return, image); + $_size: map-get($_return, size); + $_baseline: (baseline: ($_color 1px, transparent 1px)); + $_baseline-size: 100% $base-line-height; + + $_return: map-merge($_return, ( + image: if($_image, map-merge($_image, $_baseline), $_baseline), + size: if($_size, ($_size, $_baseline-size), $_baseline-size), + )); + + @if $_show == 'show' { + $_clip: map-get($_return, clip); + $_return: map-merge($_return, (clip: join($_clip, border-box, comma))); + } + } @else if $_show == 'show-baseline' { + @warn 'Please provide a $base-line-height with the desired height and units'; + } + } + + @if map-get($_return, image) { + $_return: map-merge($_return, (flow: susy-get(flow, $grid))); + } + + @return $_return; +} + + +// Get Debug +// --------- +// Return the value of a debug setting +// - $key: +@function debug-get( + $key, + $grid: $susy +) { + $key: join(debug, $key, space); + @return susy-get($key, $grid); +} diff --git a/_sass/vendor/susy/susy/language/susy/_bleed.scss b/_sass/vendor/susy/susy/language/susy/_bleed.scss new file mode 100644 index 00000000..8ef59743 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_bleed.scss @@ -0,0 +1,200 @@ +// Bleed Syntax +// ============ + +// Bleed +// ----- +// Add negative margins, and equal positive padding to create bleed. +// - $bleed : +@mixin bleed( + $bleed: 0 gutter() +) { + $inspect : $bleed; + $output : get-bleed($bleed); + + @if susy-get(global-box-sizing) != content-box { + $output: map-merge((box-sizing: content-box), $output); + } + + @include susy-inspect(bleed, $inspect); + @include output($output); +} + + +// Bleed-x +// ------- +// Shortcut for horizontal bleed. +// - $bleed : +@mixin bleed-x( + $bleed: gutter() +) { + $bleed : parse-span($bleed); + $trbl : susy-get(span, $bleed); + + @if length($trbl) == 1 { + $bleed: map-merge($bleed, (span: 0 nth($trbl, 1))); + } @else if length($trbl) == 2 { + $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1))); + } @else { + @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.'; + } + + @include bleed($bleed); +} + + +// Bleed-y +// ------- +// Shortcut for vertical bleed. +// - $bleed : +@mixin bleed-y( + $bleed: if(function-exists(rhythm), rhythm(1), 1em) +) { + $bleed : parse-span($bleed); + $trbl : susy-get(span, $bleed); + + @if length($trbl) == 1 { + $bleed: map-merge($bleed, (span: nth($trbl, 1) 0)); + } @else if length($trbl) == 2 { + $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0)); + } @else { + @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.'; + } + + @include bleed($bleed); +} + + +// Get Bleed +// --------- +// Return bleed output values +// - $bleed: +@function get-bleed( + $bleed +) { + $bleed : map-merge((spread: wide), parse-span($bleed)); + $trbl : susy-get(span, $bleed); + $short : null; + $output : (); + + @for $i from 1 through length($trbl) { + $this: nth($trbl, $i); + $new: (); + $margin: null; + $padding: null; + $padding-x: null; + + @if $this > 0 { + $this: map-merge($bleed, (span: $this)); + $margin: span($this); + $padding: $margin; + $padding-x: $padding; + } + + @if $margin and $margin > 0 { + $margin: - $margin; + + @if is-inside($this) { + $gutter: gutter($this); + $join: if($gutter and comparable($padding, $gutter), true, false); + $padding-x: if($join and $padding > 0, $padding + $gutter, $padding); + } + } + + @if $i == 1 { + $new: ( + margin-top: $margin, + padding-top: $padding, + margin-right: $margin, + padding-right: $padding-x, + margin-bottom: $margin, + padding-bottom: $padding, + margin-left: $margin, + padding-left: $padding-x, + ); + } @else if $i == 2 { + $new: ( + margin-right: $margin, + padding-right: $padding-x, + margin-left: $margin, + padding-left: $padding-x, + ); + } @else if $i == 3 { + $new: ( + margin-bottom: $margin, + padding-bottom: $padding, + ); + } @else if $i == 4 { + $new: ( + margin-left: $margin, + padding-left: $padding-x, + ); + } + + $output: map-merge($output, $new); + } + + @each $prop, $value in $output { + $output: if($value == 0, map-merge($output, ($prop: null)), $output); + } + + @return bleed-shorthand($output); +} + +// Bleed Shorthand +// --------------- +// Convert bleed output into shorthand when possible. +// - $bleed: +@function bleed-shorthand( + $bleed +) { + $margin: (); + $padding: (); + $return: (); + + @each $key, $value in $bleed { + @if str-index($key, margin) { + $margin: map-merge($margin, ($key: $value)); + } @else if str-index($key, padding) > 0 { + $padding: map-merge($padding, ($key: $value)); + } + } + + $props: ( + margin: $margin, + padding: $padding, + ); + + @each $name, $map in $props { + $four: if(length(map-keys($map)) == 4, true, false); + $null: if(index(map-values($map), null), true, false); + + @if $four and not($null) { + $top: map-get($map, '#{$name}-top'); + $right: map-get($map, '#{$name}-right'); + $bottom: map-get($map, '#{$name}-bottom'); + $left: map-get($map, '#{$name}-left'); + + $tb: if($top == $bottom, $top, null); + $rl: if($right == $left, $right, null); + $all: if($tb == $rl, $tb, null); + + $new: if($all, $all, null); + + @if not($new) { + @if $tb and $rl { + $new: $tb $rl; + } @else if $rl { + $new: $top $rl $bottom; + } @else { + $new: $top $right $bottom $left; + } + } + + $return: map-merge($return, ($name: $new)); + } @else { + $return: map-merge($return, $map); + } + } + + @return $return; +} diff --git a/_sass/vendor/susy/susy/language/susy/_box-sizing.scss b/_sass/vendor/susy/susy/language/susy/_box-sizing.scss new file mode 100644 index 00000000..f551241d --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_box-sizing.scss @@ -0,0 +1,47 @@ +// Susy Box Sizing +// ================= + +// Global Box Sizing +// ----------------- +// Set a box model globally on all elements. +// - [$box]: border-box | content-box +// - [$inherit]: true | false +@mixin global-box-sizing( + $box: susy-get(global-box-sizing), + $inherit: false +) { + $inspect: $box; + + @if $inherit { + @at-root { + html { @include output((box-sizing: $box)); } + *, *:before, *:after { box-sizing: inherit; } + } + } @else { + *, *:before, *:after { @include output((box-sizing: $box)); } + } + + @include susy-inspect(global-box-sizing, $inspect); + @include update-box-model($box); +} + +// Border Box Sizing +// ----------------- +// A legacy shortcut... +// - [$inherit]: true | false +@mixin border-box-sizing( + $inherit: false +) { + @include global-box-sizing(border-box, $inherit); +} + +// Update Box Model +// ---------------- +// PRIVATE: Updates global box model setting +@mixin update-box-model( + $box +) { + @if $box != susy-get(global-box-sizing) { + @include susy-set(global-box-sizing, $box); + } +} diff --git a/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss b/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss new file mode 100644 index 00000000..30de288b --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss @@ -0,0 +1,185 @@ +// Breakpoint Integration +// ====================== + +$susy-media: () !default; +$susy-media-fallback: false !default; + +$_susy-media-context: (); + + +// Susy Breakpoint +// --------------- +// Change grids at different media query breakpoints. +// - $query : [] | | +// - $layout : +// - $no-query : | +@mixin susy-breakpoint( + $query, + $layout: false, + $no-query: $susy-media-fallback +) { + @include susy-media-router($query, $no-query) { + @if $layout { + @include with-layout($layout) { + @content; + } + } @else { + @content; + } + } +} + + +// Susy Media +// ---------- +// - $query: [] | +// - $no-query: | +@mixin susy-media( + $query, + $no-query: $susy-media-fallback +) { + $old-context: $_susy-media-context; + $name: if(map-has-key($susy-media, $query), $query, null); + $query: susy-get-media($query); + $query: susy-parse-media($query); + + @include susy-media-context($query, $name); + + @if $no-query and type-of($no-query) != string { + @content; + } @else { + @media #{susy-render-media($query)} { + @content; + } + + @if type-of($no-query) == string { + #{$no-query} & { + @content; + } + } + } + + @include susy-media-context($old-context, $clean: true); +} + + +// Media Router +// ------------ +// Rout media arguments to the correct mixin. +@mixin susy-media-router( + $query, + $no-query: $susy-media-fallback +) { + @if susy-support(breakpoint, (mixin: breakpoint), $warn: false) { + @include breakpoint($query, $no-query) { + @content; + } + } @else { + @include susy-media($query, $no-query) { + @content; + } + } +} + + +// Update Context +// ------------- +// Set the new media context +@mixin susy-media-context( + $query, + $name: null, + $clean: false +) { + $query: map-merge((name: $name), $query); + + @if $clean { + $_susy-media-context: $query !global; + } @else { + $_susy-media-context: map-merge($_susy-media-context, $query) !global; + } +} + + +// Media Context +// ------------- +// Return the full media context, or a single media property (e.g. min-width) +@function susy-media-context( + $property: false +) { + @if $property { + @return map-get($_susy-media-context, $property); + } @else { + @return $_susy-media-context; + } +} + + +// Get Media +// --------- +// Return a named media-query from $susy-media. +// - $name: +@function susy-get-media( + $name +) { + @if map-has-key($susy-media, $name) { + $map-value: map-get($susy-media, $name); + @if ($name == $map-value) { + $name: $map-value; + } @else { + $name: susy-get-media($map-value); + } + } + + @return $name; +} + + +// Render Media +// ------------ +// Build a media-query string from various media settings +@function susy-render-media( + $query +) { + $output: null; + @each $property, $value in $query { + $string: null; + + @if $property == media { + $string: $value; + } @else { + $string: '(#{$property}: #{$value})'; + } + + $output: if($output, '#{$output} and #{$string}', $string); + } + + @return $output; +} + + +// Parse Media +// ----------- +// Return parsed media-query settings based on shorthand +@function susy-parse-media( + $query +) { + $mq: null; + @if type-of($query) == map { + $mq: $query; + } @else if type-of($query) == number { + $mq: (min-width: $query); + } @else if type-of($query) == list and length($query) == 2 { + @if type-of(nth($query, 1)) == number { + $mq: ( + min-width: min($query...), + max-width: max($query...), + ); + } @else { + $mq: (nth($query, 1): nth($query, 2)); + } + } @else { + $mq: (media: '#{$query}'); + } + + @return $mq; +} diff --git a/_sass/vendor/susy/susy/language/susy/_container.scss b/_sass/vendor/susy/susy/language/susy/_container.scss new file mode 100644 index 00000000..e5f4a858 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_container.scss @@ -0,0 +1,81 @@ +// Container Syntax +// ================ + +// Container [mixin] +// ----------------- +// Set a container element +// - [$layout] : +@mixin container( + $layout: $susy +) { + $inspect : $layout; + $layout : parse-grid($layout); + + $_width : get-container-width($layout); + $_justify : parse-container-position(susy-get(container-position, $layout)); + $_property : if(susy-get(math, $layout) == static, width, max-width); + + $_box : susy-get(box-sizing, $layout); + + @if $_box { + @include output((box-sizing: $_box)); + } + + @include susy-inspect(container, $inspect); + @include float-container($_width, $_justify, $_property); + @include show-grid($layout); +} + +// Container [function] +// -------------------- +// Return container width +// - [$layout] : +@function container( + $layout: $susy +) { + $layout: parse-grid($layout); + @return get-container-width($layout); +} + +// Get Container Width +// ------------------- +// Calculate the container width +// - [$layout]: +@function get-container-width( + $layout: $susy +) { + $layout : parse-grid($layout); + $_width : susy-get(container, $layout); + $_column-width : susy-get(column-width, $layout); + $_math : susy-get(math, $layout); + + @if not($_width) or $_width == auto { + @if valid-column-math($_math, $_column-width) { + $_columns : susy-get(columns, $layout); + $_gutters : susy-get(gutters, $layout); + $_spread : if(is-split($layout), wide, narrow); + $_width : susy-sum($_columns, $_gutters, $_spread) * $_column-width; + } @else { + $_width: 100%; + } + } + + @return $_width; +} + +// Parse Container Position +// ------------------------ +// Parse the $container-position into margin values. +// - [$justify] : left | center | right | [] +@function parse-container-position( + $justify: map-get($susy-defaults, container-position) +) { + $_return: if($justify == left, 0, auto) if($justify == right, 0, auto); + + @if not(index(left right center, $justify)) { + $_return: nth($justify, 1); + $_return: $_return if(length($justify) > 1, nth($justify, 2), $_return); + } + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/language/susy/_context.scss b/_sass/vendor/susy/susy/language/susy/_context.scss new file mode 100644 index 00000000..52e12a6c --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_context.scss @@ -0,0 +1,36 @@ +// Context Syntax +// ============== + +// Nested [function] +// ----------------- +// Return a subset grid for nested context. +// - $context : +@function nested( + $context +) { + $context : parse-span($context); + $span : susy-get(span, $context); + $location : get-location($context); + $columns : susy-get(columns, $context); + + @return susy-slice($span, $location, $columns); +} + +// Nested [mixin] +// -------------- +// Use a subset grid for a nested context +// - $context : +// - @content : +@mixin nested( + $context +) { + $inspect : $context; + $context : parse-span($context); + $old : susy-get(columns); + $susy : map-merge($susy, (columns: nested($context))) !global; + + @include susy-inspect(nested, $inspect); + @content; + + $susy : map-merge($susy, (columns: $old)) !global; +} diff --git a/_sass/vendor/susy/susy/language/susy/_gallery.scss b/_sass/vendor/susy/susy/language/susy/_gallery.scss new file mode 100644 index 00000000..e59b9a0c --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_gallery.scss @@ -0,0 +1,94 @@ +// Gallery Syntax +// ============== + +// Gallery +// ------- +// Create an isolated gallery +// - $span : +// - [$selector] : child | of-type +@mixin gallery( + $span, + $selector: child +) { + $inspect : $span; + $span : parse-span($span); + $span : map-merge($span, (location: 1)); + + $n : susy-get(span, $span); + $columns : susy-get(columns, $span); + $context : susy-count($columns); + $flow : susy-get(flow, $span); + + $inside : is-inside($span); + $from : from($flow); + $line : floor($context / $n); + $symmetrical : is-symmetrical($columns); + + $output: ( + width : null, + float : from, + margin-before : null, + margin-after : null, + padding-before : null, + padding-after : null, + flow : $flow, + ); + + @if $inside { + $gutters: get-gutters($span); + $output: map-merge($output, ( + padding-before: map-get($gutters, before), + padding-after: map-get($gutters, after), + )); + } + + @if $symmetrical { + $output: map-merge($output, (width: get-span-width($span))); + } + + $box : susy-get(box-sizing, $span); + $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false); + + @include susy-inspect(gallery, $inspect); + + // Collective Output + @if $box == border-box or ($inside and not($box) and not($global-box)) { + @include output((box-sizing: border-box)); + } @else if $box == content-box { + @include output((box-sizing: content-box)); + } + + @include float-span-output($output...); + + // Individual Loop + @for $item from 1 through $line { + $nth: '#{$line}n + #{$item}'; + &:nth-#{$selector}(#{$nth}) { + // Individual Prep + $output: ( + width : if($symmetrical, null, get-span-width($span)), + float : null, + margin-before : get-isolation($span), + margin-after : -100%, + padding-before : null, + padding-after : null, + flow : $flow, + ); + + // Individual Output + @include float-span-output($output...); + + @if get-edge($span) == first { + @include break; + @include first($span); + } @else { + @include nobreak; + } + + // Individual Location Increment + $location: get-location($span) + $n; + $location: if($location > $context, 1, $location); + $span: map-merge($span, (location: $location)); + } + } +} diff --git a/_sass/vendor/susy/susy/language/susy/_grids.scss b/_sass/vendor/susy/susy/language/susy/_grids.scss new file mode 100644 index 00000000..4fa72edc --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_grids.scss @@ -0,0 +1,64 @@ +// Grid Syntax +// =========== + + +// Layout +// ------ +// Set a new layout using a shorthand +// - $layout: +// - $clean: boolean +@mixin layout( + $layout, + $clean: false +) { + $inspect : $layout; + $susy : _get-layout($layout, $clean) !global; + + @include susy-inspect(layout, $inspect); +} + + +// Use Grid +// -------- +// Use an arbitrary layout for a section of code +// - $layout: +// - $clean: boolean +@mixin with-layout( + $layout, + $clean: false +) { + $inspect : $layout; + $old : $susy; + $susy : _get-layout($layout, $clean) !global; + + @include susy-inspect(with-layout, $inspect); + + @content; + + $susy: $old !global; +} + + +// Layout +// ------ +// Return a parsed layout map based on shorthand syntax +// - $layout: +@function layout( + $layout: $susy +) { + @return parse-grid($layout); +} + + +// Get Layout +// ---------- +// Return a new layout based on current and given settings +// - $layout: +// - $clean: boolean +@function _get-layout( + $layout, + $clean: false +) { + $layout: layout($layout); + @return if($clean, $layout, _susy-deep-merge($susy, $layout)); +} diff --git a/_sass/vendor/susy/susy/language/susy/_gutters.scss b/_sass/vendor/susy/susy/language/susy/_gutters.scss new file mode 100644 index 00000000..efe7ac20 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_gutters.scss @@ -0,0 +1,154 @@ +// Gutter Syntax +// ============= + + +// Gutters +// ------- +// Set gutters on an element. +// - [$span] : +@mixin gutters( + $span: $susy +) { + $inspect : $span; + $span : parse-gutters($span); + $_gutters : get-gutters($span); + + $_output: ( + before: map-get($_gutters, before), + after: map-get($_gutters, after), + flow: susy-get(flow, $span), + ); + + @include susy-inspect(gutters, $inspect); + + @if is-inside($span) { + @include padding-output($_output...); + } @else { + @include margin-output($_output...); + } +} + +@mixin gutter( + $span: $susy +) { + @include gutters($span); +} + + +// Gutter +// ------ +// Return the width of a gutter. +// - [$span] : +@function gutter( + $span: $susy +) { + $span: parse-gutters($span); + + $_gutters: get-gutters($span); + $_gutters: map-get($_gutters, before) or map-get($_gutters, after); + + @return $_gutters; +} + +@function gutters( + $span: $susy +) { + @return gutter($span); +} + + +// Get Gutter Width +// ---------------- +// Return gutter width. +// - [$context]: +@function get-gutter-width( + $context: $susy +) { + $context : parse-gutters($context); + + $_gutters : susy-get(gutters, $context); + $_gutter : susy-get(gutter-override, $context); + + @if $_gutters and ($_gutters > 0) and not($_gutter) { + $_column-width: susy-get(column-width, $context); + $_math: gutter-math($context); + @if $_math == static { + $_gutter: $_gutters * valid-column-math($_math, $_column-width); + } @else { + $_columns : susy-get(columns, $context); + $_spread : if(is-split($context), wide, susy-get(spread, $context)); + $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread)); + } + } + + $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter); + + @return $_gutter; +} + + +// Get Gutters +// ----------- +// Return before and after gutter values. +// - [$context]: +@function get-gutters( + $context: $susy +) { + $context : parse-gutters($context); + + $_gutter-position : susy-get(gutter-position, $context); + $_gutter : get-gutter-width($context); + + $_return : (before: null, after: null); + + @if is-split($context) and $_gutter { + $_gutter: $_gutter / 2; + $_return: map-merge($_return, (before: $_gutter, after: $_gutter)); + } @else { + $_return: map-merge($_return, ($_gutter-position: $_gutter)); + } + + @return $_return; +} + + +// Is Inside +// --------- +// Returns true if gutters are inside. +// $context: +@function is-inside( + $context +) { + $_inside: inside inside-static; + $_gutter-position: susy-get(gutter-position, $context); + + @return if(index($_inside, $_gutter-position), true, false); +} + + +// Is Split +// -------- +// Returns true if gutters are split. +// $context: +@function is-split( + $context +) { + $_split: split inside inside-static; + $_gutter-position: susy-get(gutter-position, $context); + + @return if(index($_split, $_gutter-position), true, false); +} + + +// Gutter Math +// ----------- +// Return the math to use for gutter calculations +// $context: +@function gutter-math( + $context: $susy +) { + $_return : susy-get(math, $context); + $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return); + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/language/susy/_isolate.scss b/_sass/vendor/susy/susy/language/susy/_isolate.scss new file mode 100644 index 00000000..7ddfd7f5 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_isolate.scss @@ -0,0 +1,77 @@ +// Isolation Syntax +// ================ + + +// Isolate [Mixin] +// --------------- +// Set isolation as an override. +// - $location: +@mixin isolate( + $isolate: 1 +) { + $inspect: $isolate; + + $output: ( + push: isolate($isolate), + flow: susy-get(flow, $isolate), + ); + + @include susy-inspect(isolate, $inspect); + @include isolate-output($output...); +} + + +// Isolate [function] +// ------------------ +// Return an isolation offset width. +// - $location: +@function isolate( + $isolate: 1 +) { + $isolate: parse-span($isolate); + $isolation: susy-get(span, $isolate); + + @if $isolation and not(get-location($isolate)) { + $new: ( + span: null, + location: $isolation, + ); + $isolate: map-merge($isolate, $new); + } + + @return get-isolation($isolate); +} + + +// Get Isolation +// ------------- +// Return the isolation offset width +// - $input: +@function get-isolation( + $input +) { + $location : get-location($input); + $columns : susy-get(columns, $input); + $width : null; + + @if type-of($location) == number and not(unitless($location)) { + $width: $location; + } @else if $location { + $push: $location - 1; + @if $push > 0 { + $push: map-merge($input, ( + span: $push, + location: 1, + spread: wide, + )); + $width: get-span-width($push); + } + } + + @if susy-get(gutter-position, $input) == split + and susy-get(gutters, $input) > 0 { + $width: if($width == null, gutters($input), $width + gutters($input)); + } + + @return $width or 0; +} diff --git a/_sass/vendor/susy/susy/language/susy/_margins.scss b/_sass/vendor/susy/susy/language/susy/_margins.scss new file mode 100644 index 00000000..cb368399 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_margins.scss @@ -0,0 +1,94 @@ +// Margin Syntax +// ============= + +// Pre +// --- +// Add spanning-margins before an element. +// - $span : +@mixin pre( + $span +) { + $inspect: $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $gutter : gutter($span); + $span : span($span); + $width : if($split and $gutter, $span + $gutter, $span); + + @include susy-inspect(pre, $inspect); + @include margin-output($width, null, $flow); +} + +// Post +// ---- +// Add spanning-margins after an element. +// - $span : +@mixin post( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $width : if($split, span($span) + gutter($span), span($span)); + + @include susy-inspect(post, $inspect); + @include margin-output(null, $width, $flow); +} + +// Push +// ---- +// Simple synonymn for pre. +// - $span : +@mixin push( + $span +) { + @include pre($span); +} + +// Pull +// ---- +// Add negative spanning-margins before an element. +// - $span : +@mixin pull( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $split : if(susy-get(gutter-position, $span) == split, true, false); + $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); + + @include susy-inspect(pull, $inspect); + @include margin-output($width, null, $flow); +} + +// Squish +// ------ +// Add spanning-margins before and after an element. +// - $pre : +// - [$post] : +@mixin squish( + $pre, + $post: false +) { + $inspect : ($pre, $post); + $pre : map-merge((spread: wide), parse-span($pre)); + + @if $post { + $post: map-merge((spread: wide), parse-span($post)); + } @else { + $span: susy-get(span, $pre); + @if length($span) > 1 { + $pre: map-merge($pre, (span: nth($span, 1))); + $post: map-merge($pre, (span: nth($span, 2))); + } @else { + $post: $pre; + } + } + + @include susy-inspect(squish, $inspect); + @include pre($pre); + @include post($post); +} diff --git a/_sass/vendor/susy/susy/language/susy/_padding.scss b/_sass/vendor/susy/susy/language/susy/_padding.scss new file mode 100644 index 00000000..cdf75c8b --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_padding.scss @@ -0,0 +1,74 @@ +// Padding Syntax +// ============== + +// Prefix +// ------ +// Add spanning-padding before an element. +// - $span : +@mixin prefix( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $width : span($span); + + @if is-inside($span) { + $gutter: gutter($span); + $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); + } + + @include susy-inspect(prefix, $inspect); + @include padding-output($width, null, $flow); +} + +// Suffix +// ------ +// Add spanning-padding after an element. +// - $span : +@mixin suffix( + $span +) { + $inspect : $span; + $span : map-merge((spread: wide), parse-span($span)); + $flow : susy-get(flow, $span); + $width : span($span); + + @if is-inside($span) { + $gutter: gutter($span); + $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width); + } + + @include susy-inspect(suffix, $inspect); + @include padding-output(null, $width, $flow); +} + +// Pad +// --- +// Add spanning-padding before and after an element. +// - $pre : +// - [$post] : +@mixin pad( + $pre, + $post: false +) { + $inspect : ($pre, $post); + $pre : map-merge((spread: wide), parse-span($pre)); + + @if $post { + $post: map-merge((spread: wide), parse-span($post)); + } @else { + $span: susy-get(span, $pre); + @if length($span) > 1 { + $pre: map-merge($pre, (span: nth($span, 1))); + $post: map-merge($pre, (span: nth($span, 2))); + } @else { + $post: $pre; + } + } + + @include susy-inspect(pad, $inspect); + @include prefix($pre); + @include suffix($post); + +} diff --git a/_sass/vendor/susy/susy/language/susy/_rows.scss b/_sass/vendor/susy/susy/language/susy/_rows.scss new file mode 100644 index 00000000..d7264313 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_rows.scss @@ -0,0 +1,138 @@ +// Row Start & End +// =============== + +// Break +// ----- +// Apply to any element that should force a line break. +@mixin break { + @include output((clear: both)); +} + + +// NoBreak +// ------- +// Cancel the break() effect, e.g. when using media queries. +@mixin nobreak { + @include output((clear: none)); +} + + +// Full +// ---- +// - [$context]: +@mixin full( + $context: $susy +) { + $inspect : $context; + @include susy-inspect(full, $inspect); + @include span(full of parse-grid($context) break); +} + + +// First +// ----- +// - [$context]: +@mixin first( + $context: $susy +) { + $inspect : $context; + $context : parse-grid($context); + $flow : susy-get(flow, $context); + + @include susy-inspect(first, $inspect); + @if not(is-split($context)) { + @include float-first($flow); + } +} + +@mixin alpha( + $context: $susy +) { + @include first($context); +} + + +// Last +// ---- +// - [$context]: +@mixin last( + $context: $susy +) { + $inspect : $context; + $context : parse-grid($context); + + @include susy-inspect(last, $inspect); + + $output: ( + flow: susy-get(flow, $context), + last-flow: susy-get(last-flow, $context), + margin: if(is-split($context), null, 0), + ); + + @include float-last($output...); +} + +@mixin omega( + $context: $susy +) { + @include last($context); +} + + +// Get Edge +// -------- +// Calculate edge value based on location, if possible +@function get-edge( + $span +) { + $span : parse-span($span); + $edge : susy-get(edge, $span); + + @if not($edge) { + $count: susy-count(susy-get(columns, $span)); + $location: susy-get(location, $span); + $n: susy-get(span, $span); + + $number: if(type-of($location) == number, true, false); + $index: if($number and unitless($location), true, false); + + @if $n == $count { + $edge: full; + } @else if $location and $n and $index { + @if $location == 1 { + $edge: if($n == $count, full, first); + } @else if $location + $n - 1 == $count { + $edge: last; + } + } + } + + @if $edge == alpha or $edge == omega { + $edge: if($edge == alpha, first, last); + } + + @return $edge; +} + + +// Get Location +// ------------ +// Calculate location value based on edge, if possible +@function get-location( + $span +) { + $span : parse-span($span); + $location : susy-get(location, $span); + $edge : get-edge($span); + $n : susy-get(span, $span); + + @if $edge and not($location) and type-of($n) == number and unitless($n) { + @if $edge == first { + $location: 1; + } @else if $edge == last { + $location: susy-count(susy-get(columns, $span)) - $n + 1; + } + } + + @return $location +} diff --git a/_sass/vendor/susy/susy/language/susy/_settings.scss b/_sass/vendor/susy/susy/language/susy/_settings.scss new file mode 100644 index 00000000..9b5d897d --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_settings.scss @@ -0,0 +1,216 @@ +// Susy Settings +// ============= + +// Susy Language Defaults +// ---------------------- +// - PRIVATE +@include susy-defaults(( + container: auto, + math: fluid, + output: float, + container-position: center, + gutter-position: after, + global-box-sizing: content-box, + debug: ( + image: hide, + color: rgba(#66f, .25), + output: background, + toggle: top right, + ), +)); + + +// Valid Keyword Values +// -------------------- +// - PRIVATE: DONT'T TOUCH +$susy-keywords: ( + container: auto, + math: static fluid, + output: isolate float, + container-position: left center right, + flow: ltr rtl, + gutter-position: before after split inside inside-static, + box-sizing: border-box content-box, + span: full, + edge: first alpha last omega full, + spread: narrow wide wider, + gutter-override: no-gutters no-gutter, + role: nest, + clear: break nobreak, + debug image: show hide show-columns show-baseline, + debug output: background overlay, +); + + +// Parse Susy Keywords and Maps +// ---------------------------- +@function parse-settings( + $short: $susy +) { + $_return: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + @each $item in $short { + // strings + @if type-of($item) == string { + @each $key, $value in $susy-keywords { + @if index($value, $item) { + $_key-value: append($key, $item); + $_return: _susy-deep-set($_return, $_key-value...); + } + } + // maps + } @else if type-of($item) == map { + $_return: map-merge($_return, $item); + } + } + } + + @return $_return; +} + + +// Parse Columns & Gutters +// ----------------------- +@function parse-layout( + $short +) { + $_return: (); + $_columns: (); + $_gutters: null; + + @if not(unitless(nth(nth($short, 1), 1))) { + $_gutters: nth($short, 1); + } @else { + $_columns: (columns: nth($short, 1)); + $_gutters: if(length($short) > 1, nth($short, 2), $_gutters); + } + + @if type-of($_gutters) == list and length($_gutters) > 0 { + $_gutters: ( + gutters: nth($_gutters, 2) / nth($_gutters, 1), + column-width: nth($_gutters, 1), + ); + } @else { + $_gutters: if($_gutters, (gutters: $_gutters), ()); + } + + $_return: map-merge($_return, $_columns); + $_return: map-merge($_return, $_gutters); + + @return $_return; +} + + +// Parse Grid/Context +// ------------------ +@function parse-grid( + $short: $susy +) { + $_return: parse-settings($short); + $_layout: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + @each $item in $short { + // number or list + @if type-of($item) == number or type-of($item) == list { + @if type-of($item) == list or unitless($item) { + $_layout: append($_layout, $item); + } @else { + $_return: map-merge($_return, (container: $item)); + } + } + } + + $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout); + } + + @return map-merge($_return, $_layout); +} + + +// Parse Span +// ---------- +@function parse-span( + $short, + $key: span +) { + $_return: (); + + @if type-of($short) == map { + $_return: $short; + } @else { + $_at: index($short, at); + + @if $_at { + $_loci: $_at + 1; + $_location: nth($short, $_loci); + $_return: map-merge($_return, (location: $_location)); + $short: set-nth($short, $_at, null); + $short: set-nth($short, $_loci, null); + } + + $_i: 1; + $_span: (); + + @while $_i <= length($short) { + $_this: nth($short, $_i); + + @if type-of($_this) == number { + $_span: append($_span, $_this); + $short: set-nth($short, $_i, null); + } @else if $_this == of { + $short: set-nth($short, $_i, null); + $_i: length($short) + 1; + } + + $_i: $_i + 1; + } + + @if length($_span) > 0 { + $_span: if(length($_span) == 1, nth($_span, 1), $_span); + $_return: map-merge($_return, ($key: $_span)); + } + + $_return: map-merge($_return, parse-grid($short)); + } + + @return $_return; +} + + +// Parse Gutters +// ------------- +@function parse-gutters( + $short: $susy +) { + $_gutters: parse-span($short, gutter-override); + $_span: susy-get(gutter-override, $_gutters); + + @if $_span and not(map-get($_gutters, columns)) { + $_context: (); + $_new: (); + + @each $item in $_span { + @if type-of($item) == number and unitless($item) { + $_context: append($_context, $item); + } @else { + $_new: append($_new, $item); + } + } + + $_context: parse-grid($_context); + $_new: if(length($_new) == 0, null, $_new); + $_new: if(length($_new) == 1, nth($_new, 1), $_new); + $_new: (gutter-override: if($_new != $_span, $_new, $_span)); + + $_gutters: map-merge($_gutters, $_new); + $_gutters: map-merge($_gutters, $_context); + } + + @return $_gutters; +} diff --git a/_sass/vendor/susy/susy/language/susy/_span.scss b/_sass/vendor/susy/susy/language/susy/_span.scss new file mode 100644 index 00000000..86ccda91 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_span.scss @@ -0,0 +1,163 @@ +// Span Syntax +// =========== + +// Span [mixin] +// ------------ +// Set a spanning element using shorthand syntax. +// - $span : +@mixin span( + $span +) { + $inspect: $span; + $span: parse-span($span); + $output: span-math($span); + $nesting: susy-get(span, $span); + $clear: susy-get(clear, $span); + + $box: susy-get(box-sizing, $span); + $content-box: if(susy-get(global-box-sizing) != 'border-box', true, false); + $box: $box or if(is-inside($span) and $content-box, border-box, null); + + @if $clear == break { + @include break; + } @else if $clear == nobreak { + @include nobreak; + } + + @include susy-inspect(span, $inspect); + @include output((box-sizing: $box)); + @include float-span-output($output...); + + @if valid-columns($nesting, silent) { + @include nested($span) { @content; } + } @else { + @content; + } +} + +// Span [function] +// --------------- +// Return the width of a span. +// - $span : +@function span( + $span +) { + @return get-span-width($span); +} + +// Span Math +// --------- +// Get all the span results. +// - $span: +@function span-math( + $span +) { + $nest : if(susy-get(role, $span) == nest, true, false); + $split-nest : if(is-split($span) and $nest, true, false); + $edge : get-edge($span); + $location : get-location($span); + + $float : from; + $padding-before : null; + $padding-after : null; + $margin-before : null; + $margin-after : null; + + // calculate widths + $spread: index(map-values($span), spread); + $span: if($split-nest and not($spread), map-merge($span, (spread: wide)), $span); + $width: get-span-width($span); + $gutters: get-gutters($span); + + // apply gutters + @if is-inside($span) { + @if not(susy-get(role, $span)) { + $padding-before: map-get($gutters, before); + $padding-after: map-get($gutters, after); + } + } @else { + @if not($split-nest) { + $margin-before: map-get($gutters, before); + $margin-after: map-get($gutters, after); + } + } + + // special margin handling + @if susy-get(output, $span) == isolate and $location { + $margin-before: get-isolation($span); + $margin-after: -100%; + } @else if $edge { + $is-split: is-split($span); + $pos: susy-get(gutter-position, $span); + + @if $edge == last { + $float: susy-get(last-flow, $span); + } + + @if not($is-split) { + @if $edge == full or ($edge == first and $pos == before) { + $margin-before: 0; + } + @if $edge == full or ($edge == last and $pos == after) { + $margin-after: 0; + } + } + + } + + @return ( + width : $width, + float : $float, + margin-before : $margin-before, + margin-after : $margin-after, + padding-before : $padding-before, + padding-after : $padding-after, + flow : susy-get(flow, $span), + ); +} + +// Get Span Width +// -------------- +// Return span width. +// - $span: +@function get-span-width( + $span +) { + $span : parse-span($span); + + $n : susy-get(span, $span); + $location : get-location($span); + $columns : susy-get(columns, $span); + $gutters : susy-get(gutters, $span); + $spread : susy-get(spread, $span); + + $context : null; + $span-sum : null; + $width : null; + + @if $n == 'full' { + $pos: susy-get(gutter-position, $span); + $role: susy-get(role, $span); + $n: if($pos == split and $role != nest, susy-count($columns), 100%); + } + + @if type-of($n) != number { + @warn "(#{type-of($n)}) #{$n} is not a valid span."; + } @else if unitless($n) { + $context: susy-sum($columns, $gutters, if(is-split($span), wide, narrow)); + $spread: if(is-inside($span), $spread or wide, $spread); + $span-sum: susy($n, $location, $columns, $gutters, $spread); + + $_math: susy-get(math, $span); + $_column-width: susy-get(column-width, $span); + @if $_math == static { + $width: $span-sum * valid-column-math($_math, $_column-width); + } @else { + $width: percentage($span-sum / $context); + } + } @else { + $width: $n; + } + + @return $width; +} diff --git a/_sass/vendor/susy/susy/language/susy/_validation.scss b/_sass/vendor/susy/susy/language/susy/_validation.scss new file mode 100644 index 00000000..a235b176 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susy/_validation.scss @@ -0,0 +1,16 @@ +// Validation +// ========== + + +// Validate Column Math +// -------------------- +@function valid-column-math( + $math, + $column-width +) { + @if $math == static and not($column-width) { + @error 'Static math requires a valid column-width setting.'; + } + + @return $column-width; +} diff --git a/_sass/vendor/susy/susy/language/susyone/_background.scss b/_sass/vendor/susy/susy/language/susyone/_background.scss new file mode 100644 index 00000000..38c6726b --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_background.scss @@ -0,0 +1,18 @@ +// --------------------------------------------------------------------------- +// Imports + +@import "compass/layout/grid-background"; +@import "compass/css3/background-origin"; +@import "compass/css3/background-clip"; + +// --------------------------------------------------------------------------- +// Susy Grid Background +// +// A wrapper for the compass "column-grid-background" mixin +// Uses all your settings to create a grid background for a container element. +// Note: Sub-pixel rounding can lead to several pixels of variation between browsers. +@mixin susy-grid-background(){ + @include column-grid-background($total-columns, column(), gutter(), 0); + @include background-origin(content-box); + @include background-clip(content-box); +} diff --git a/_sass/vendor/susy/susy/language/susyone/_functions.scss b/_sass/vendor/susy/susy/language/susyone/_functions.scss new file mode 100644 index 00000000..68184589 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_functions.scss @@ -0,0 +1,377 @@ +// --------------------------------------------------------------------------- +// Imports + +// We need access to some basic font settings for handling media-queries. +@import "compass/typography/vertical_rhythm"; + +// For now, we also need this... +$browser-default-font-size-px : 16px; +$browser-default-font-size-percent : 100%; +$browser-default-font-size-pt : 12pt; + +$rem-with-px-fallback : true !default; + +// --------------------------------------------------------------------------- +// Sass list Functions + +// Return a list with specific items removed +// +// filter($list, $target) +// - $list : The list to filter. +// - $target : An item to be removed from the list. +@function filter($list, $target) { + $clean: compact(); + @if index($list, $target) { + @each $item in $list { + $clean: if($item == $target, $clean, append($clean, $item)); + } + } @else { $clean: $list; } + @return $clean; +} + +// --------------------------------------------------------------------------- +// Don't use static output when it will break things + +// Switch element-level output to fluid, when container-width is wrong for static +// +// fix-static-misalignment([$style, $width]) +// - $style: $container-style. +// - $width: $container-width. +@function fix-static-misalignment( + $style: $container-style, + $width: $container-width +) { + @if $container-width and $container-width != container-outer-width($width: false) { + $style: fluid; + } + @return $style; +} + +// --------------------------------------------------------------------------- +// Grid Functions + +// Returns the full width of a grid based on your grid settings. +// +// $columns : The number of columns to get width for. +@function columns-width( + $columns : $total-columns +) { + @if round($columns) != $columns { + @warn "Susy works best with integer column-spans." + + "For partial-columns, you may need to finesse the math by hand using functions directly."; + } + @return ($columns * $column-width) + (if($columns >= 1, ceil($columns - 1), 0) * $gutter-width); +} + +// Return the grid width after adding or subtracting grid padding +// +// $width : the width of the grid without padding; +// $operation : ( add | subtract ) if padding should be added or subtracted; +@function handle-grid-padding( + $width, + $operation : subtract +) { + $pad: $grid-padding*2; + + @if comparable($width, $grid-padding) { + $width: if($operation == subtract, $width - $pad, $width + $pad); + } @else { + @warn "$grid-padding must be set in units comparable to the container width."; + } + + @return $width; +} + +// Return the full outer width of a Container element. +// +// $columns : The number of columns in the Grid Layout. +@function container-outer-width( + $columns : $total-columns, + $width : $container-width +) { + $outerwidth: if($width, $width, columns-width($columns)); + + @if $width { + @if not($border-box-sizing) { $outerwidth: handle-grid-padding($outerwidth, subtract); } + } @else { + @if $border-box-sizing { $outerwidth: handle-grid-padding($outerwidth, add); } + } + + @return $outerwidth; +} + +// Return the percentage width of a single column in a given 'context'. +// +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function column( + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, $column-width, relative-width($column-width, $context)); +} + +// Return the percentage width of multiple 'columns' in a given 'context'. +// +// $columns : The number of columns to get relative width for. +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function columns( + $columns, + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, columns-width($columns), relative-width(columns-width($columns), $context)); +} + +// Return the percentage width of a single gutter in a given 'context'. +// +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function gutter( + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return if($style == static, $gutter-width, relative-width($gutter-width, $context)); +} + +// Return the percentage width of a given value in a given 'context'. +// +// $width : Any given width value. +// $context : The grid context in columns, if nested. +@function relative-width( + $width, + $context : $total-columns +) { + @return percentage($width / columns-width($context)); +} + +// Return the total space occupied by multiple columns and associated gutters. +// Useful for adding padding or margins (prefix, suffix, push, pull, etc.) +// +// $columns : The number of columns to get relative space for. +// $context : The grid context in columns, if nested. +// $style : The container style to use. +@function space( + $columns, + $context : $total-columns, + $style : fix-static-misalignment() +) { + @return columns($columns, $context, $style) + if($columns >= 1, gutter($context, $style), 0); +} + +// Accept a list including column-count and (optional) position. +// Return either the column count or the position alone. +// +// $columns : the list to split and interprate. +// $request : The value to return, either 'columns' or 'position'. +@function split-columns-value( + $columns, + $request : columns +) { + $pos : false; + $cols : false; + + @each $var in $columns { + @if (type-of($var) == 'string') { + $pos: $var; + } @else { + @if (type-of($var) == 'number') and (unitless($var)) { + $cols: $var; + } @else { + @warn '"#{$var}" is not a valid part of "$columns: #{$columns}" in the columns() mixin.'; + } + } + } + + @if $request == 'columns' { + @return $cols; + } @else { + @if $request == 'position' { + @return $pos; + } @else { + @warn '"#{$request}" is not a valid value for $request'; + } + } +} + +// Accept nth-selector variables, and format them as a valid CSS3 selector. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +@function format-nth( + $n : last, + $selector : child +) { + @if ($n == 'last') or ($n =='first') or ($n =='only') { + $selector: '#{$n}-#{$selector}'; + } @else { + $selector: 'nth-#{$selector}(#{$n})'; + } + @return $selector; +} + +// --------------------------------------------------------------------------- +// Media Functions + +// Return an em value adjusted to match the browser default font size. +// Note: This only works if actual sizes are set relative to browser defaults. +// +// $ems : The initial value to be converted. +// $font-size : The current font-size in. +@function base-ems( + $ems, + $font-size: $base-font-size +){ + $font-size : if(unit($ems) == 'rem', $base-font-size, $font-size); + $unit : unit($font-size); + $mult : $ems / ($ems * 0 + 1); + + @if $unit == 'px' { + @return $font-size / $browser-default-font-size-px * $mult * 1em; + } + @else if $unit == '%' { + @return $font-size / $browser-default-font-size-percent * $mult * 1em; + } + @else if $unit == 'em' { + @return $font-size / 1em * $mult * 1em; + } + @else if $unit == 'pt' { + @return $font-size / $browser-default-font-size-pt * $mult * 1em; + } + @else { + @warn 'Variable $base-font-size does not have a valid font unit. Valid units for fonts in CSS are px, pt, em, and %.'; + } +} + +// This name will be deprecated... +@function absolute-ems( + $ems, + $font-size: $base-font-size +){ + @return base-ems( $ems, $font-size); + } + +// Return a length, after any em-values have been sent through absolute-ems(). +// +// $length : The length value to be checked and adjusted if necessary. +// $font-size : The current font-size in px. +@function fix-ems( + $length, + $font-size: $base-font-size +){ + @if $length { + @if (unit($length) == 'em') or (unit($length) == 'rem') { + $length: absolute-ems($length,$font-size); + } + } + @return $length; +} + +// Sort a list of arguments into "$min $layout $max $ie" order, and return the list. +// +// $media-layout : a list of values [$min $layout $max $ie] including... +// : - one unitless number (columns in a layout) +// : - two optional lengths (min and max-width media-query breakpoints). +// : - one optional boolean or string to trigger fallback support for IE. +// $font-size : [optional] The base font-size of your layout, if you are using ems. +// : - defaults to $base-font-size +@function medialayout( + $media-layout, + $font-size: $base-font-size +) { + $media : false; + $min : false; + $layout : false; + $max : false; + $ie : false; + $has-layout : false; + + @each $val in $media-layout { + @if (type-of($val) == "number") { + @if unitless($val) { + $layout : $val; + $has-layout : true; + } @else { + @if ($has-layout) and not($media) { + $max: $val; + } @else { + @if $media { + $media: join($media,$val); + } @else { + $media: $val; + } + } + } + } @else { + $ie: $val; + } + } + @if (length($media) > 0) { + @if (length($media) == 1) { + $min: nth($media,1); + } @else { + $min: nth($media,1); + $max: nth($media,2); + @if comparable($min, $max) { + @if ($min > $max) { + $max: nth($media,1); + $min: nth($media,2); + } + } @else { + @warn "Can't compare incompatible units." + + "Using #{$min} for min-width, and #{$max} for max-width"; + } + @if (length($media) > 2) { + @warn "You can only send two lengths: a min-width and an (optional) max-width." + + "You sent #{length($media)}: #{$media}"; + } + } + } + + // media-queries must be set in ems relative to the browser default + // rather than the font-size set in CSS. + $min: fix-ems($min,$font-size); + $max: fix-ems($max,$font-size); + + @return $min $layout $max $ie; +} + +// Return the nearest layout (column-count) above a given breakpoint. +// +// $min : The min-width media-query breakpoint above which to establish a new layout. +@function get-layout( + $min +) { + $min : fix-ems($min); + $return : false; + + @if comparable($min, $column-width) { + $return : ceil(($min + $gutter-width) / ($column-width + $gutter-width)); + } @else { + @warn "Can't determine a layout, becuse #{$min} and #{$column-width} are not comparable."; + } + + @return $return; +} + +// Check to see if a given $media-layout list is simply the default. +// +// $media-layout : a list of values including - +// : One unitless number (columns in a layout) +// : Two optional lengths (min and max-width media-query breakpoints). +// : One optional boolean or string to trigger fallback support for IE. +@function is-default-layout( + $media-layout +) { + $media-layout : medialayout($media-layout); + $min : nth($media-layout,1); + $layout-cols : nth($media-layout,2); + $max : nth($media-layout,3); + + @if $min or $max { + @return false; + } @else { + @return if($layout-cols == $total-columns,true,false); + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_grid.scss b/_sass/vendor/susy/susy/language/susyone/_grid.scss new file mode 100644 index 00000000..491c6229 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_grid.scss @@ -0,0 +1,312 @@ +// --------------------------------------------------------------------------- +// Imports + +@import "compass/utilities/general/clearfix"; +@import "compass/css3/box-sizing"; + +// --------------------------------------------------------------------------- +// Border-Box Sizing + +// Apply the border-box sizing model to all elements +// and adjust the grid math appropriately. +@mixin border-box-sizing { + $border-box-sizing: true !global; + * { @include box-sizing(border-box); } +} + +// --------------------------------------------------------------------------- +// Container + +// Set the width of a container +// +// $columns : The number of columns in the Grid Layout. +@mixin set-container-width( + $columns : $total-columns, + $style : $container-style, + $px-vals : $pixel-values-only +){ + $width: container-outer-width($columns); + + @if $style == 'static' { + @if $px-vals == true { + width: round(convert-length($width, px)); + } @else { + @include rem(width, $width); + } + } @else { + @if $style == 'fluid' { + @if unit($width) == '%' { + @if $px-vals == true { + width: round(convert-length($width, px)); + } @else { + @include rem(width, $width); + } + } + } @else { + @if $px-vals == true { + max-width: round(convert-length($width, px)); + } @else { + @include rem(max-width, $width); + } + + @include for-legacy-browser(ie,"6") { + @if unit($width) == 'rem' { + _width: round(convert-length($width, px)); + } @else { + _width: $width; + } + } + } + } +} + +// Set the outer grid-containing element(s). +// +// $columns : The number of columns in the container. +@mixin apply-container( + $columns : $total-columns, + $px-vals : $pixel-values-only +){ + @include pie-clearfix; + @include set-container-width($columns); + @if $px-vals == true { + padding-left: round(convert-length($grid-padding, px)); + padding-right: round(convert-length($grid-padding, px)); + } @else { + @include rem(padding-left, $grid-padding); + @include rem(padding-right, $grid-padding); + } + margin: { left: auto; right: auto; } +} + +// Set one or more layouts on a grid-containing element at any number of media-query breakpoints. +// +// $media-layout-1 : [default:$total-columns] A list of values including - +// : One unitless number (representing columns in a layout) +// : Two optional lengths (representing min and max-width media-query breakpoints). +// $media-layout-2 ...-10 : [optional] Same as $media-layout-1 +@mixin container( + $media-layouts... +){ + $media-layouts: if(length($media-layouts) > 0, $media-layouts, $total-columns); + + @each $ml in $media-layouts { + @if is-default-layout($ml) { + @include apply-container; + } @else { + @include at-breakpoint($ml) { + @include apply-container; + } + } + } +} + +// --------------------------------------------------------------------------- +// Columns + +// Create a grid element spanning any number of 'columns' in a grid 'context'. +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $padding : [optional] Padding applied to the inside of individual grid columns. +// : Padding is only output if one or two values are specified (e.g. 1em or 10px 20px) +// : Padding values are applied only on the horizontal axis in from-to order +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin span-columns( + $columns, + $context : $total-columns, + $padding : false, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + $pos : split-columns-value($columns,position); + $cols : split-columns-value($columns,columns); + $pad-from : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); + $pad-to : if($style == static, 0 * $gutter-width, relative-width(0 * $gutter-width, $context)); + + @if $padding != false { + $pad-from : nth($padding, 1); + + @if length($padding) > 1 { + $pad-to: nth($padding, 2); + } @else { + $pad-to: $pad-from; + } + + $pad-from : if($style == static, $pad-from, relative-width($pad-from, $context)); + $pad-to : if($style == static, $pad-to, relative-width($pad-to, $context)); + + padding-#{$from}: $pad-from; + padding-#{$to}: $pad-to; + } + + width: columns($cols, $context, $style) - if($border-box-sizing, 0, $pad-to + $pad-from); + + @if ($pos == 'omega') { + @include omega($from); + } @else { + float: $from; + margin-#{$to}: gutter($context, $style); + @include for-legacy-browser(ie, "6") { + display: inline; + } + } +} + +// Apply to elements spanning the last column, to account for the page edge. +// Only needed as an override. Normally 'omega' can just be called by `columns`. +// +// $from : The start-direction for your document. +@mixin omega( + $from : $from-direction +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: $omega-float; + margin-#{$to}: 0; + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: - $gutter-width; + @include for-legacy-browser(ie, "6") { + display: inline; + } + } +} + +// Shortcut to apply omega to a specific subset of elements. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +// $from : The start-direction for your document. +@mixin nth-omega( + $n : last, + $selector : child, + $from : $from-direction +) { + $from : unquote($from); + + &:#{format-nth($n,$selector)} { + @if $n == "first" { + @include omega($from); + } @else { + @include with-browser-ranges(css-sel3) { + @include omega($from); + } + } + } +} + + + +// --------------------------------------------------------------------------- +// Resets + +// Reset a '+columns' grid element to default block behavior +// +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin reset-columns( + $from: $from-direction +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: none; + width: auto; + margin-#{$to}: auto; + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: auto; + @include for-legacy-browser(ie, "6") { + display: block; + } + } +} + +// Apply to elements previously set as omega. +// This will return floats and margins back to non-omega settigns. +// +// $context : [optional] The context (columns spanned by parent). +// $from : The start-direction for your document. +// $style : The container style to use. +@mixin remove-omega( + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + $hack : opposite-position($omega-float); + + float: $from; + margin-#{$to}: gutter($context, $style); + + @include for-legacy-browser(ie, "6", "7") { + *margin-#{$hack}: auto; + } +} + +// Shortcut to apply remove-omega to a specific subset of elements. +// +// $n : [first | only | last | ] +// $selector : [child | last-child | of-type | last-of-type ] +// $context : [optional] The context (columns spanned by parent). +// $from : The start-direction for your document. +// $style : The container style to use. +@mixin remove-nth-omega( + $n : last, + $selector : child, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + + &:#{format-nth($n,$selector)} { + @if $n == "first" { + @include remove-omega($context, $from, $style); + } @else { + @include with-browser-ranges(css-sel3) { + @include remove-omega($context, $from, $style); + } + } + } +} + + +// --------------------------------------------------------------------------- +// Change Settings + +@mixin with-grid-settings( + $columns: $total-columns, + $width: $column-width, + $gutter: $gutter-width, + $padding: $grid-padding +) { + // keep the defaults around + $default-columns: $total-columns; + $default-width: $column-width; + $default-gutter: $gutter-width; + $default-padding: $grid-padding; + + // use the new settings + $total-columns: $columns !global; + $column-width: $width !global; + $gutter-width: $gutter !global; + $grid-padding: $padding !global; + + // apply to contents + @content; + + // re-instate the defaults + $total-columns: $default-columns !global; + $column-width: $default-width !global; + $gutter-width: $default-gutter !global; + $grid-padding: $default-padding !global; +} diff --git a/_sass/vendor/susy/susy/language/susyone/_isolation.scss b/_sass/vendor/susy/susy/language/susyone/_isolation.scss new file mode 100644 index 00000000..2b70038b --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_isolation.scss @@ -0,0 +1,51 @@ +// --------------------------------------------------------------------------- +// Isolation + +// Isolate the position of a grid element (use in addition to span-columns) +// +// $location : The grid column to isolate in, relative to the container; +// $context : [optional] The context (columns spanned by parent). +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin isolate( + $location, + $context: $total-columns, + $from: $from-direction, + $style: fix-static-misalignment() +) { + $to: opposite-position($from); + margin-#{$to}: -100%; + margin-#{$from}: space($location - 1, $context, $style); +} + +// Isolate a group of elements in a grid, using nth-child selectors +// +// $columns : The column-width of each item on the grid; +// $context : [optional] The context (columns spanned by parent). +// $selector : [child | of-type | last-of-type ] (default is 'child') +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +@mixin isolate-grid( + $columns, + $context: $total-columns, + $selector: 'child', + $from: $from-direction, + $style: fix-static-misalignment() +) { + $to: opposite-position($from); + $location: 1; + $line: floor($context / $columns); + + @include span-columns($columns, $context, $from: $from, $style: $style); + margin-#{$to}: -100%; + + @for $item from 1 through $line { + $nth: '#{$line}n + #{$item}'; + &:#{format-nth($nth,$selector)} { + margin-#{$from}: space($location - 1, $context, $style); + @if $location == 1 { clear: $from; } + @else { clear: none; } + + $location: $location + $columns; + @if $location > $context { $location: 1; } + } + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_margin.scss b/_sass/vendor/susy/susy/language/susyone/_margin.scss new file mode 100644 index 00000000..accbbe65 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_margin.scss @@ -0,0 +1,93 @@ +// --------------------------------------------------------------------------- +// Margin Mixins + +// Apply 'columns' margin before an element to push it along the grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pre( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + margin-#{$from}: space($columns, $context, $style); +} + +// 'push' is a synonymn for 'pre' +@mixin push( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @include pre($columns, $context, $from, $style); +} + +// Apply negative 'columns' margin before an element to pull it along the grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pull( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + margin-#{$from}: 0 - space($columns, $context, $style); +} + +// Apply 'columns' margin after an element to contain it in a grid. +// +// $columns : The number of columns to span. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin post( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + margin-#{$to}: space($columns, $context, $style); +} + +// Apply 'columns' before and/or after an element to contain it on a grid. +// +// $pre : The number of columns to add as margin before. +// $post : The number of columns to add as margin after. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin squish( + $pre : false, + $post : false, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @if $pre { + @include pre($pre, $context, $from, $style) + } + @if $post { + @include post($post, $context, $from, $style) + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_media.scss b/_sass/vendor/susy/susy/language/susyone/_media.scss new file mode 100644 index 00000000..ca860fc9 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_media.scss @@ -0,0 +1,105 @@ +// --------------------------------------------------------------------------- +// Media Mixins + +// Create a new layout context for (@content) descendants. +// +// $layout-cols : a (unitless) number of columns to use for this layout. +@mixin layout( + $layout-cols +) { + // store default $total-columns setting for later, then change it. + $default-layout : $total-columns; + $total-columns : $layout-cols !global; + + // apply children in this new layout context. + @content; + + // return to default $total-columns setting. + $total-columns : $default-layout !global; +} + +// Nest a block of code inside a new media-query and layout context. +// +// $media-layout : a list of values [$min $layout $max $ie] including... +// : - one unitless number (columns in a layout) +// : - two optional lengths (min and max-width media-query breakpoints). +// : - one optional boolean or string to trigger fallback support for IE. +// $font-size : [optional] The base font-size of your layout, if you are using ems. +// : - defaults to $base-font-size +@mixin at-breakpoint( + $media-layout, + $font-size: $base-font-size +) { + $media-layout : medialayout($media-layout,$font-size); + $min : nth($media-layout,1); + $layout : nth($media-layout,2); + $max : nth($media-layout,3); + $ie : nth($media-layout,4); + + @if not($breakpoint-media-output) and not($breakpoint-ie-output) and not($breakpoint-raw-output) { + @warn "Either $breakpoint-media-output, $breakpoint-ie-output, or $breakpoint-raw-output must be true for at-breakpoint to work."; + } + + // We need to have either a min-width breakpoint or a layout in order to proceed. + @if $min or $layout or $max { + + // If we don't have a layout, we create one based on the min-width. + @if not($layout) { + $layout: get-layout($min); + } + + // If we still don't have a layout, we have a problem. + @if $layout { + // Set our new layout context. + @include layout($layout) { + @if $breakpoint-media-output { + @include with-browser-ranges(css-mediaqueries) { + @if $min and $max { + // Both $min and $max + @media (min-width: $min) and (max-width: $max) { + @content; + } + } @else { + @if not($min) and not($max) { + // Neither $min nor $max: + // We can create a breakpoint based on the number of columns in the layout. + $min: fix-ems(container-outer-width($width: false)); + } + @if $min { + // Min only: + @media (min-width: $min) { + @content; + } + } @else { + // Max only: + @media (max-width: $max) { + @content; + } + } + } + } + } + // Set an IE fallback + @if $ie and $breakpoint-ie-output { + @if (type-of($ie) == 'bool') { + $ie: 'lt-ie9'; + } + .#{$ie} & { + @content; + } + } + + @if $breakpoint-raw-output { + @content; + } + } + } @else { + @warn "We were unable to determine a layout for your breakpoint."; + } + + } @else { + @warn "You need to provide either a valid layout (number of columns)" + + "or a valid media-query min-width breakpoint (length)."; + } + +} diff --git a/_sass/vendor/susy/susy/language/susyone/_padding.scss b/_sass/vendor/susy/susy/language/susyone/_padding.scss new file mode 100644 index 00000000..8e6394a4 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_padding.scss @@ -0,0 +1,92 @@ +// --------------------------------------------------------------------------- +// Padding Mixins + +// add empty colums as padding before an element. +// $columns : The number of columns to prefix. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin prefix( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + padding-#{$from}: space($columns, $context, $style); +} + +// add empty colums as padding after an element. +// $columns : The number of columns to suffix. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin suffix( + $columns, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + $to : opposite-position($from); + padding-#{$to}: space($columns, $context, $style); +} + +// add empty colums as padding before and after an element. +// $columns : The number of columns to pad. +// $context : [optional] The context (columns spanned by parent). +// : Context is required on any nested elements. +// : Context MUST NOT be declared on a root element. +// $from : The start direction of your layout (e.g. 'left' for ltr languages) +// $style : The container style to use. +@mixin pad( + $prefix : false, + $suffix : false, + $context : $total-columns, + $from : $from-direction, + $style : fix-static-misalignment() +) { + $from : unquote($from); + @if $prefix { + @include prefix($prefix, $context, $from, $style); + } + @if $suffix { + @include suffix($suffix, $context, $from, $style); + } +} + +// Bleed into colums with margin/padding on any side of an element. +// $width : The side of the bleed. +// : Any unit-length will be used directly. +// : Any unitless number will be used as a column-count. +// : Use "2 of 6" format to represent 2 cals in a 6-col nested context. +// $sides : One or more sides to bleed [ top | right | bottom | left | all ]. +// $style : The container style to use. +@mixin bleed( + $width: $grid-padding, + $sides: left right, + $style: fix-static-misalignment() +) { + @if $border-box-sizing { @include box-sizing(content-box) } + + @if type-of($width) == 'list' { + $width: filter($width, of); + $width: space(nth($width,1), nth($width,2), $style); + } @else if unitless($width) { + $width: space($width, $style: $style); + } + + @if $sides == 'all' { + margin: - $width; + padding: $width; + } @else { + @each $side in $sides { + margin-#{$side}: - $width; + padding-#{$side}: $width; + } + } +} diff --git a/_sass/vendor/susy/susy/language/susyone/_settings.scss b/_sass/vendor/susy/susy/language/susyone/_settings.scss new file mode 100644 index 00000000..e8ff9c84 --- /dev/null +++ b/_sass/vendor/susy/susy/language/susyone/_settings.scss @@ -0,0 +1,60 @@ +// --------------------------------------------------------------------------- +// Susy Settings + +// The total number of columns in the grid +$total-columns : 12 !default; + +// The width of columns and gutters. +// These must all be set with the comparable units. +$column-width : 4em !default; +$gutter-width : 1em !default; + +// Padding on the left and right of a Grid Container. +$grid-padding : $gutter-width !default; + +// --------------------------------------------------------------------------- +// Advanced Settings + +// From Direction: +// Controls for right-to-left or bi-directional sites. +$from-direction : left !default; + +// Omega Float Direction: +// The direction that +omega elements are floated by deafult. +$omega-float : opposite-position($from-direction) !default; + +// Container Width: +// Override the total width of your grid, using any length (50em, 75%, etc.) +$container-width : false !default; + +// Container Style: +// 'magic' - Static (fixed or elastic) when there's enough space, +// fluid when there isn't. This is the SUSY MAGIC SAUCE(TM). +// 'static' - Forces the grid container to remain static at all times. +// 'fluid' - Forces the grid to remain fluid at all times. +// (this will overrule any static $container-width settings) +$container-style : magic !default; + +// Border-Box Sizing +// Adjust the grid math appropriately for box-sizing: border-box; +// Warning: This does not actually apply the new box model! +// In most cases you can ignore this setting, +// and simply apply the border-box-sizing mixin. +$border-box-sizing : false !default; + +// Pixel Values only: +// Make sure only pixel values are set for the container width. +$pixel-values-only : false !default; + +// --------------------------------------------------------------------------- +// IE Settings + +// When you are using a seperate IE stylesheet, +// you can use these settings to control the output of at-breakpoint. +// By default, at-breakpoint will output media-queries as well as +// any defined ie-fallback classes. +$breakpoint-media-output : true !default; +$breakpoint-ie-output : true !default; + +// Danger Zone! Only set as 'true' in IE-specific style sheets. +$breakpoint-raw-output : false !default; diff --git a/_sass/vendor/susy/susy/output/_float.scss b/_sass/vendor/susy/susy/output/_float.scss new file mode 100644 index 00000000..9c24051c --- /dev/null +++ b/_sass/vendor/susy/susy/output/_float.scss @@ -0,0 +1,9 @@ +// Float API +// ========= + +@import "shared"; + +@import "float/container"; +@import "float/span"; +@import "float/end"; +@import "float/isolate"; diff --git a/_sass/vendor/susy/susy/output/_shared.scss b/_sass/vendor/susy/susy/output/_shared.scss new file mode 100644 index 00000000..dd9df4ed --- /dev/null +++ b/_sass/vendor/susy/susy/output/_shared.scss @@ -0,0 +1,15 @@ +// Shared API +// ========== + +@import "support"; + +@import "shared/inspect"; +@import "shared/output"; +@import "shared/direction"; +@import "shared/background"; +@import "shared/container"; +@import "shared/margins"; +@import "shared/padding"; + + + diff --git a/_sass/vendor/susy/susy/output/_support.scss b/_sass/vendor/susy/susy/output/_support.scss new file mode 100644 index 00000000..53dbc9c3 --- /dev/null +++ b/_sass/vendor/susy/susy/output/_support.scss @@ -0,0 +1,9 @@ +// Susy Browser Support +// ==================== + +@import "support/support"; +@import "support/prefix"; +@import "support/background"; +@import "support/box-sizing"; +@import "support/rem"; +@import "support/clearfix"; diff --git a/_sass/vendor/susy/susy/output/float/_container.scss b/_sass/vendor/susy/susy/output/float/_container.scss new file mode 100644 index 00000000..121eb11a --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_container.scss @@ -0,0 +1,16 @@ +// Float Container API +// =================== + +// Float Container +// --------------- +// - [$width] : +// - [$justify] : left | center | right +// - [$math] : fluid | static +@mixin float-container( + $width, + $justify: auto auto, + $property: max-width +) { + @include susy-clearfix; + @include container-output($width, $justify, $property); +} diff --git a/_sass/vendor/susy/susy/output/float/_end.scss b/_sass/vendor/susy/susy/output/float/_end.scss new file mode 100644 index 00000000..3369997f --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_end.scss @@ -0,0 +1,40 @@ +// Float Ends API +// ============== + +// Susy End Defaults +// ----------------- +// - PRIVATE +@include susy-defaults(( + last-flow: to, +)); + +// Float Last +// ---------- +// - [$flow] : ltr | rtl +@mixin float-last( + $flow: map-get($susy-defaults, flow), + $last-flow: map-get($susy-defaults, last-flow), + $margin: 0 +) { + $to: to($flow); + + $output: ( + float: if($last-flow == to, $to, null), + margin-#{$to}: $margin, + ); + + @include output($output); +} + +// Float First +// ----------- +// - [$flow] : ltr | rtl +@mixin float-first( + $flow: map-get($susy-defaults, flow) +) { + $output: ( + margin-#{from($flow)}: 0, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/float/_isolate.scss b/_sass/vendor/susy/susy/output/float/_isolate.scss new file mode 100644 index 00000000..4dd3c230 --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_isolate.scss @@ -0,0 +1,22 @@ +// Float Isolation API +// =================== + +// Isolate Output +// -------------- +// - $push : +// - [$flow] : ltr | rtl +@mixin isolate-output( + $push, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + float: $from, + margin-#{$from}: $push, + margin-#{$to}: -100%, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/float/_span.scss b/_sass/vendor/susy/susy/output/float/_span.scss new file mode 100644 index 00000000..5b732ccb --- /dev/null +++ b/_sass/vendor/susy/susy/output/float/_span.scss @@ -0,0 +1,35 @@ +// Float Span API +// ============== + +// Float Span Output +// ----------------- +// - $width : +// - [$float] : from | to +// - [$margin-before] : +// - [$margin-after] : +// - [$padding-before] : +// - [$padding-after] : +// - [$flow] : ltr | rtl +@mixin float-span-output( + $width, + $float : from, + $margin-before : null, + $margin-after : null, + $padding-before : null, + $padding-after : null, + $flow : map-get($susy-defaults, flow) +) { + $to : to($flow); + $from : from($flow); + + $output: ( + width: $width, + float: if($float == to, $to, null) or if($float == from, $from, null), + margin-#{$from}: $margin-before, + margin-#{$to}: $margin-after, + padding-#{$from}: $padding-before, + padding-#{$to}: $padding-after, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_background.scss b/_sass/vendor/susy/susy/output/shared/_background.scss new file mode 100644 index 00000000..c230f613 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_background.scss @@ -0,0 +1,26 @@ +// Grid Background API +// =================== +// - Sub-pixel rounding can lead to several pixels variation between browsers. + +// Grid Background Output +// ---------------------- +// - $image: background-image +// - $size: background-size +// - $clip: background-clip +// - [$flow]: ltr | rtl +@mixin background-grid-output ( + $image, + $size: null, + $clip: null, + $flow: map-get($susy-defaults, flow) +) { + $output: ( + background-image: $image, + background-size: $size, + background-origin: $clip, + background-clip: $clip, + background-position: from($flow) top, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_container.scss b/_sass/vendor/susy/susy/output/shared/_container.scss new file mode 100644 index 00000000..7c7d4f17 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_container.scss @@ -0,0 +1,21 @@ +// Shared Container API +// ==================== + +// Container Output +// ---------------- +// - [$width] : +// - [$justify] : left | center | right +// - [$math] : fluid | static +@mixin container-output( + $width, + $justify: auto auto, + $property: max-width +) { + $output: ( + #{$property}: $width or 100%, + margin-left: nth($justify, 1), + margin-right: nth($justify, 2), + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_direction.scss b/_sass/vendor/susy/susy/output/shared/_direction.scss new file mode 100644 index 00000000..abb9c36f --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_direction.scss @@ -0,0 +1,42 @@ +// Direction Helpers +// ================= + +// Susy Flow Defaults +// ------------------ +// - PRIVATE +@include susy-defaults(( + flow: ltr, +)); + +// Get Direction +// ------------- +// Return the 'from' or 'to' direction of a ltr or rtl flow. +// - [$flow] : ltr | rtl +// - [$key] : from | to +@function get-direction( + $flow: map-get($susy-defaults, flow), + $key: from +) { + $return: if($flow == rtl, (from: right, to: left), (from: left, to: right)); + @return map-get($return, $key); +} + +// To +// -- +// Return the 'to' direction of a flow +// - [$flow] : ltr | rtl +@function to( + $flow: map-get($susy-defaults, flow) +) { + @return get-direction($flow, to); +} + +// From +// ---- +// Return the 'from' direction of a flow +// - [$flow] : ltr | rtl +@function from( + $flow: map-get($susy-defaults, flow) +) { + @return get-direction($flow, from); +} diff --git a/_sass/vendor/susy/susy/output/shared/_inspect.scss b/_sass/vendor/susy/susy/output/shared/_inspect.scss new file mode 100644 index 00000000..b0af9b6d --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_inspect.scss @@ -0,0 +1,25 @@ +// Debugging +// ========= + +// Susy Inspect +// ------------ +// Output arguments passed to a inspect. +// - $mixin : +// - $inspec : + +@mixin susy-inspect( + $mixin, + $inspect +) { + $show: false; + + @each $item in $inspect { + @if index($item, inspect) { + $show: true; + } + } + + @if $show or susy-get(debug inspect) { + -susy-#{$mixin}: inspect($inspect); + } +} diff --git a/_sass/vendor/susy/susy/output/shared/_margins.scss b/_sass/vendor/susy/susy/output/shared/_margins.scss new file mode 100644 index 00000000..cd73e8cf --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_margins.scss @@ -0,0 +1,23 @@ +// Margins API +// =========== + +// Margin Output +// ------------- +// - $before : +// - $after : +// - [$flow] : ltr | rtl +@mixin margin-output( + $before, + $after, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + margin-#{$from}: $before, + margin-#{$to}: $after, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/shared/_output.scss b/_sass/vendor/susy/susy/output/shared/_output.scss new file mode 100644 index 00000000..20fc2d61 --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_output.scss @@ -0,0 +1,14 @@ +// Output +// ====== + +// Output +// ------ +// Output CSS with proper browser support. +// - $styles : +@mixin output( + $styles +) { + @each $prop, $val in $styles { + @include susy-support($prop, $val); + } +} diff --git a/_sass/vendor/susy/susy/output/shared/_padding.scss b/_sass/vendor/susy/susy/output/shared/_padding.scss new file mode 100644 index 00000000..5069d0cb --- /dev/null +++ b/_sass/vendor/susy/susy/output/shared/_padding.scss @@ -0,0 +1,23 @@ +// Padding API +// =========== + +// Padding Output +// -------------- +// - $before : +// - $after : +// - [$flow] : ltr | rtl +@mixin padding-output( + $before, + $after, + $flow: map-get($susy-defaults, flow) +) { + $to: to($flow); + $from: from($flow); + + $output: ( + padding-#{$from}: $before, + padding-#{$to}: $after, + ); + + @include output($output); +} diff --git a/_sass/vendor/susy/susy/output/support/_background.scss b/_sass/vendor/susy/susy/output/support/_background.scss new file mode 100644 index 00000000..b1415028 --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_background.scss @@ -0,0 +1,58 @@ +// Background Properties +// ===================== + +// Susy Background Image +// --------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-image( + $image +) { + @if susy-support(background-image, (mixin: background-image), $warn: false) { + @include background-image($image...); + } @else { + background-image: $image; + } +} + +// Susy Background Size +// --------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-size( + $size +) { + @if susy-support(background-options, (mixin: background-size)) { + @include background-size($size); + } @else { + background-size: $size; + } +} + +// Susy Background Origin +// ---------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-origin( + $origin +) { + @if susy-support(background-options, (mixin: background-origin)) { + @include background-origin($origin); + } @else { + background-origin: $origin; + } +} + +// Susy Background Clip +// -------------------- +// Check for an existing support mixin, or provide a simple fallback. +// - $image: +@mixin susy-background-clip( + $clip +) { + @if susy-support(background-options, (mixin: background-clip)) { + @include background-clip($clip); + } @else { + background-clip: $clip; + } +} diff --git a/_sass/vendor/susy/susy/output/support/_box-sizing.scss b/_sass/vendor/susy/susy/output/support/_box-sizing.scss new file mode 100644 index 00000000..bf50bbc9 --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_box-sizing.scss @@ -0,0 +1,19 @@ +// Box Sizing +// ========== + +// Box Sizing +// ---------- +// Check for an existing support mixin, or provide a simple fallback. +// - $model: +@mixin susy-box-sizing( + $model: content-box +) { + @if $model { + @if susy-support(box-sizing, (mixin: box-sizing), $warn: false) { + @include box-sizing($model); + } @else { + $prefix: (moz, webkit, official); + @include susy-prefix(box-sizing, $model, $prefix); + } + } +} diff --git a/_sass/vendor/susy/susy/output/support/_clearfix.scss b/_sass/vendor/susy/susy/output/support/_clearfix.scss new file mode 100644 index 00000000..48c6e7b7 --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_clearfix.scss @@ -0,0 +1,18 @@ +// Susy Fallback Clearfix +// ====================== + + +// Clearfix +// -------- +// Check for an existing support mixin, or provide a simple fallback. +@mixin susy-clearfix { + @if susy-support(clearfix, (mixin: clearfix)) { + @include clearfix; + } @else { + &:after { + content: " "; + display: block; + clear: both; + } + } +} diff --git a/_sass/vendor/susy/susy/output/support/_prefix.scss b/_sass/vendor/susy/susy/output/support/_prefix.scss new file mode 100644 index 00000000..f4e26ecc --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_prefix.scss @@ -0,0 +1,19 @@ +// Susy Prefix +// =========== + +// Prefix +// ------ +// Output simple prefixed properties. +// - $prop : +// - $val : +// - [$prefix] : +@mixin susy-prefix( + $prop, + $val, + $prefix: official +) { + @each $fix in $prefix { + $fix: if($fix == official or not($fix), $prop, '-#{$fix}-#{$prop}'); + @include susy-rem($fix, $val); + } +} diff --git a/_sass/vendor/susy/susy/output/support/_rem.scss b/_sass/vendor/susy/susy/output/support/_rem.scss new file mode 100644 index 00000000..0a807f79 --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_rem.scss @@ -0,0 +1,22 @@ +// rem Support +// =========== + +// rem +// --- +// Check for an existing support mixin, or output directly. +// - $prop : +// - $val : +@mixin susy-rem( + $prop, + $val +) { + $_reqs: ( + variable: rhythm-unit rem-with-px-fallback, + mixin: rem, + ); + @if susy-support(rem, $_reqs, $warn: false) and $rhythm-unit == rem { + @include rem($prop, $val); + } @else { + #{$prop}: $val; + } +} diff --git a/_sass/vendor/susy/susy/output/support/_support.scss b/_sass/vendor/susy/susy/output/support/_support.scss new file mode 100644 index 00000000..96991135 --- /dev/null +++ b/_sass/vendor/susy/susy/output/support/_support.scss @@ -0,0 +1,85 @@ +// Browser Support +// =============== + +// Susy Support Defaults +// --------------------- +@include susy-defaults(( + use-custom: ( + clearfix: false, + background-image: true, + background-options: false, + breakpoint: true, + box-sizing: true, + rem: true, + ), +)); + + +// Susy Support [mixin] +// -------------------- +// Send property-value pairs to the proper support modules. +// - $prop : +// - $val : +@mixin susy-support( + $prop, + $val +) { + // Background Support + @if $prop == background-image { + @include susy-background-image($val); + } @else if $prop == background-size { + @include susy-background-size($val); + } @else if $prop == background-origin { + @include susy-background-origin($val); + } @else if $prop == background-clip { + @include susy-background-clip($val); + } + + // Box-Sizing Support + @else if $prop == box-sizing { + @include susy-box-sizing($val); + } + + // Rem Support + @else { + @include susy-rem($prop, $val); + } +} + + +// Susy Support [function] +// ----------------------- +// Check for support of a feature. +// - $feature : +// - e.g "rem" or "box-sizing" +// - $requirements : +// - e.g (variable: rem-with-px-fallback, mixin: rem) +// - $warn : +@function susy-support( + $feature, + $requirements: (), + $warn: true +) { + $_support: susy-get(use-custom $feature); + + @if $_support { + $_fail: false; + + @each $_type, $_req in $requirements { + @each $_i in $_req { + $_pass: call(unquote("#{$_type}-exists"), $_i); + + @if not($_pass) { + $_fail: true; + @if $warn { + @warn "You requested custom support of #{$feature}, but the #{$_i} #{$_type} is not available."; + } + } + } + } + + $_support: if($_fail, false, $_support); + } + + @return $_support; +} diff --git a/_sass/vendor/susy/susy/su/_grid.scss b/_sass/vendor/susy/susy/su/_grid.scss new file mode 100644 index 00000000..7fe2a02d --- /dev/null +++ b/_sass/vendor/susy/susy/su/_grid.scss @@ -0,0 +1,103 @@ +// Column math +// =========== + + +// Is Symmetrical +// -------------- +// Returns true if a grid is symmetrical. +// - [$columns] : | +@function is-symmetrical( + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + @return if(type-of($columns) == number, $columns, null); +} + + +// Susy Count +// ---------- +// Find the number of columns in a given layout +// - [$columns] : | +@function susy-count( + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + @return is-symmetrical($columns) or length($columns); +} + + +// Susy Sum +// -------- +// Find the total sum of column-units in a layout +// - [$columns] : | +// - [$gutters] : +// - [$spread] : false/narrow | wide | wider +@function susy-sum( + $columns : susy-get(columns), + $gutters : susy-get(gutters), + $spread : false +) { + $columns: valid-columns($columns); + $gutters: valid-gutters($gutters); + + $spread: if($spread == wide, 0, if($spread == wider, 1, -1)); + $gutter-sum: (susy-count($columns) + $spread) * $gutters; + $column-sum: is-symmetrical($columns); + + @if not($column-sum) { + @each $column in $columns { + $column-sum: ($column-sum or 0) + $column; + } + } + + @return $column-sum + $gutter-sum; +} + + +// Susy Slice +// ---------- +// Return a subset of columns at a given location. +// - $span : +// - $location : +// - [$columns] : | +@function susy-slice( + $span, + $location, + $columns: susy-get(columns) +) { + $columns: valid-columns($columns); + $sub-columns: $span; + + @if not(is-symmetrical($columns)) { + $location: $location or 1; + $sub-columns: (); + @for $i from $location to ($location + $span) { + $sub-columns: append($sub-columns, nth($columns, $i)); + } + } + + @return $sub-columns; +} + + +// Susy +// ---- +// Find the sum of a column-span. +// - $span : +// - $location : +// - [$columns] : | +// - [$gutters] : +// - [$spread] : false/narrow | wide | wider +@function susy( + $span, + $location : false, + $columns : susy-get(columns), + $gutters : susy-get(gutters), + $spread : false +) { + $columns: valid-columns($columns); + $gutters: valid-gutters($gutters); + $span: susy-slice($span, $location, $columns); + + @return susy-sum($span, $gutters, $spread); +} diff --git a/_sass/vendor/susy/susy/su/_settings.scss b/_sass/vendor/susy/susy/su/_settings.scss new file mode 100644 index 00000000..8b439aaa --- /dev/null +++ b/_sass/vendor/susy/susy/su/_settings.scss @@ -0,0 +1,73 @@ +// Settings +// ======== + +// Version +// ------- +$su-version: 1.1; + + +// Default Settings +// ---------------- +// PRIVATE: The basic settings +$susy-defaults: ( + columns: 4, + gutters: .25, +); + + +// User Settings +// ------------- +// - Define the $susy variable with a map of your own settings. +// - Set EITHER $column-width OR $container +// - Use $column-width for static layouts +$susy: () !default; + + +// Susy Defaults +// ------------- +// PRIVATE: Add defaults to Susy +@mixin susy-defaults( + $defaults +) { + $susy-defaults: map-merge($susy-defaults, $defaults) !global; +} + + +// Susy Set +// -------- +// Change one setting +// - $key : setting name +// - $value : setting value +@mixin susy-set( + $key-value... +) { + $susy: _susy-deep-set($susy, $key-value...) !global; +} + + +// Susy Get +// -------- +// Return one setting from a grid +// - $key : +// - $layout : +@function susy-get( + $key, + $layout: map-merge($susy-defaults, $susy) +) { + $layout: parse-grid($layout); + $_options: $layout $susy $susy-defaults; + $_break: false; + $_return: null; + + @each $opt in $_options { + @if type-of($opt) == map and not($_break) { + $_keyset: _susy-deep-has-key($opt, $key...); + @if $_keyset { + $_return: _susy-deep-get($opt, $key...); + $_break: true; + } + } + } + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/su/_utilities.scss b/_sass/vendor/susy/susy/su/_utilities.scss new file mode 100644 index 00000000..b737f212 --- /dev/null +++ b/_sass/vendor/susy/susy/su/_utilities.scss @@ -0,0 +1,111 @@ +// Map Functions +// ============= + + +// Truncate List +// ------------- +// - Return a list, truncated to a given length +@function _susy-truncate-list( + $list, + $length +) { + $_return: (); + + @for $i from 1 through length($list) { + $_return: if($i <= $length, append($_return, nth($list, $i)), $_return); + } + + @return $_return; +} + + +// Deep Get +// -------- +// - Return a value deep in nested maps +@function _susy-deep-get( + $map, + $keys... +) { + $_return: $map; + + @each $key in $keys { + @if type-of($_return) == map { + $_return: map-get($_return, $key); + } + } + + @return $_return; +} + + +// Deep Set +// -------- +// - Set a value deep in nested maps +@function _susy-deep-set( + $map, + $keys-value... +) { + $_value: nth($keys-value, -1); + $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1); + $_length: length($_keys); + $_return: (); + + @for $i from 1 through $_length { + $_n: 0 - $i; + $_level: _susy-truncate-list($_keys, $_length + $_n); + $_level: _susy-deep-get($map, $_level...); + $_merge: nth($_keys, $_n); + $_merge: ($_merge: $_value); + $_return: if($_level, map-merge($_level, $_merge), $_merge); + $_value: $_return; + } + + @return $_return; +} + + +// Deep Merge +// ---------- +// Return 2 objects of any depth, merged +@function _susy-deep-merge( + $map1, + $map2 +) { + + @if type-of($map1) != map or type-of($map2) != map { + $map1: $map2; + } @else { + @each $key, $value in $map2 { + $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value)); + $map1: map-merge($map1, $_new); + } + } + + @return $map1; +} + + +// Deep Has-Key +// ------------ +// - Return true if a deep key exists +@function _susy-deep-has-key( + $map, + $keys... +) { + $_return: null; + $_stop: false; + + @each $key in $keys { + @if not($_stop) { + $_return: map-has-key($map, $key); + } + + @if $_return { + $map: map-get($map, $key); + } @else { + $_stop: true; + } + } + + @return $_return; +} diff --git a/_sass/vendor/susy/susy/su/_validation.scss b/_sass/vendor/susy/susy/su/_validation.scss new file mode 100644 index 00000000..4c6ab8da --- /dev/null +++ b/_sass/vendor/susy/susy/su/_validation.scss @@ -0,0 +1,57 @@ +// Math Validation +// =============== + + +// Valid Columns +// ------------- +// Check that a column setting is valid. +@function valid-columns( + $columns, + $silent: false +) { + $type: type-of($columns); + $return: null; + + @if $type == number and unitless($columns) { + $return: $columns; + } @else if $type == list { + $fail: null; + @each $col in $columns { + @if type-of($col) == number { + $fail: $fail or if(unitless($col), null, true); + } @else { + $fail: true; + } + } + $return: if($fail, $return, $columns); + } + + @if $return != $columns and not($silent) { + $return: null; + $warn: '$columns must be a unitless number or list of unitless numbers.'; + @warn $warn + ' Current value [#{$type}]: #{$columns}'; + } + + @return $return; +} + + +// Valid Gutters +// ------------- +// Check that a gutter setting is valid. +@function valid-gutters( + $gutters, + $silent: false +) { + $type: type-of($gutters); + $return: null; + + @if $type == number and unitless($gutters) { + $return: $gutters; + } @else if not($silent) { + $warn: '$gutters must be a unitless number.'; + @warn $warn + ' Current value [#{$type}]: #{$gutters}'; + } + + @return $return; +} diff --git a/activiti-in-action_en.md b/activiti-in-action_en.md deleted file mode 100644 index 41aefe51..00000000 --- a/activiti-in-action_en.md +++ /dev/null @@ -1,422 +0,0 @@ ---- -layout: master -title: 《Activiti in Action》- Wrote by Henry Yan China ---- - -### Part I Ready -
    Chapter 1. Activiti -
      -
    • 1.1 What's the Activiti
    • -
    • 1.2 Workflow Foundation
    • -
    • 1.2.1 What's the BPM
    • -
    • 1.2.2 BPM lifecycle
    • -
    • 1.2.3 What's the BPMN
    • -
    • 1.3 Features in Activiti
    • -
    • 1.4 Activiti in Application
    • -
    • 1. 在系统集成方面应用
    • -2. 在其他产品中应用 -
    • 1.5 Activiti's
    • -
    • 1.6 Compare with jBPM5
    • -
    • 1.7 Summary
    • -
    -
    - -
    Chapter 2. Set up Activiti develop environment -
      -
    • 2.1 Download Activiti
    • -
    • 2.1.1 Directory Structure
    • -
    • 2.1.2 Javadoc
    • -
    • 2.2 Environment and check
    • -
    • 2.2.1 Check and install JDK
    • -
    • 2.2.2 Check and install Ant
    • -
    • 2.2.3 Check and install Maven
    • -
    • 2.3 Introduced Configuration files
    • -
    • 2.3.1 Activiti's configuration file
    • -
    • 2.3.2 Maven configuration file
    • -
    • 2.4 Hello World
    • -
    • 2.4.1 Simple process definition
    • -
    • 2.4.2 Crate unit test class
    • -
    • 2.4.3 Run Hello World
    • -
    • 2.4.4 Add business nodes
    • -
    • 2.5 Activiti Explorer
    • -
    • 2.5.1 Config and run Activiti Explorer
    • -
    • 2.5.2 Use Activiti Explorer
    • -
    • 2.6 Summary
    • -
    -
    -### Part II -
    Chapter 3. Process design tools -
      -
    • 3.1 B/S architecture process designer -- Activiti Modeler
    • -
    • 3.1.1 Features of Activiti Modeler
    • -
    • 3.1.2 Download Signavio-core-components
    • -
    • 3.1.3 Package and run
    • -
    • 3.1.4 Windows
    • -
    • 3.1.5 Design leave process
    • -
    • 3.1.6 Export bpmn2.0.xml
    • -
    • 3.2 Use Activiti Modeler in Activiti Explorer
    • -
    • 3.3 Eclipse plugin - Activiti Designer
    • -
    • 3.3.1 Features of Acvititi Designer
    • -
    • 3.3.2 Install Activiti Designer
    • -
    • 3.3.3 Design process
    • -
    • 3.3.4 Automatic
    • -
    • 3.3.5 Upgrade old processes
    • -
    • 3.3.6 Import from Activiti Modeler
    • -
    • 3.3.7 Pool and lane
    • -
    • 3.3.8 Design pool and lane in Activiti Designer
    • -
    • 3.4 Summary
    • -
    -
    - -
    Chapter 4. Activiti and BPMN2.0 -
      -
    • 4.1. Start and end event
    • -
    • 4.1.1. Start Event
    • -
    • 4.1.2. End Event
    • -
    • 4.2. Sequence Flow
    • -
    • 4.2.1. Default Sequence Flow
    • -
    • 4.2.2. Condition Sequence Flow
    • -
    • 4.3. Tasks
    • -
    • 4.3.1. User Task
    • -
    • 4.3.2. Script Task
    • -
    • 4.3.3. Java Service Task
    • -
    • 4.3.4. Web Service Task
    • -
    • 4.3.5. Business Rule Task
    • -
    • 4.3.6. Mail Task
    • -
    • 4.3.7. Camel Task
    • -
    • 4.3.8. Mule Task
    • -
    • 4.3.9. Manual Task
    • -
    • 4.3.10. Recive Task
    • -
    • 4.3.11. Shell Task
    • -
    • 4.3.12. Multi instance
    • -
    • 4.4. Gateway
    • -
    • 4.4.1. Exclusive Gateway
    • -
    • 4.4.2. Parallel Gateway
    • -
    • 4.4.3. Inclusive Gateway
    • -
    • 4.4.4. Event-based Gateway
    • -
    • 4.5. Sub-processes and Call Activities
    • -
    • 4.5.1. subprocess
    • -
    • 4.5.2. call activities
    • -
    • 4.5.3. Event sub-processes
    • -
    • 4.5.4. Transaction subprocess
    • -
    • 4.6. Boundary events and Intermediate events
    • -
    • 4.6.1. Boundary events
    • -
    • 4.6.2. Intermediate Catching Events
    • -
    • 4.6.3. Intermediate Throwing Event
    • -
    • 4.7. Listeners
    • -
    • 4.7.1. Execution Listeners
    • -
    • 4.7.2. Task Listeners
    • -
    • 4.8. Summary
    • -
    -
    -### Part III Action -
    Chapter 5. Identity and Deployment -
      -
    • 5.1. Users and Groups
    • -
    • 5.1.1. User
    • -
    • 5.1.2. Group
    • -
    • 5.1.3. Membership
    • -
    • 5.1.4. Users and groups in User Task
    • -
    • 5.2. Deployment
    • -
    • 5.2.1. Deploy use Classath
    • -
    • 5.2.2. Deploy use InputStream
    • -
    • 5.2.3. Deploy use String
    • -
    • 5.2.4. Package Zip/Bar
    • -
    • 5.3. Deployment and read resources
    • -
    • 5.3.1. Get process definitions
    • -
    • 5.3.2. Deploy from client
    • -
    • 5.3.3. Read xml of process definition
    • -
    • 5.3.4. Resolve invalid text in Chinese
    • -
    • 5.3.5. Delete deployments
    • -
    • 5.4. Summary
    • -
    -
    - -
    Chapter 6. Form -
      -
    • 6.1. Dynamic form
    • -
    • 6.1.1. Process Definition
    • -
    • 6.1.2. Unit test
    • -
    • 6.1.3. Run process in Activiti Explorer
    • -
    • 6.2. Design your Activiti Explorer
    • -
    • 6.2.1. 完善身份验证功能
    • -
    • 6.2.2. Start form
    • -
    • 6.2.3. Claim and handle tasks
    • -
    • 6.2.4. Custome form types
    • -
    • 6.3. Form Key
    • -
    • 6.3.1. Process Definition
    • -
    • 6.3.2. Unit test
    • -
    • 6.3.3. Custome form engine
    • -
    • 6.3.4. Get start form key
    • -
    • 6.3.5. Claim and handle tasks
    • -
    • 6.4. Summary
    • -
    -
    - -
    Chapter 7. integrate Activiti with other containers -
      -
    • 7.1. Process engine factory
    • -
    • 7.1.1. Init process engine mode
    • -
    • 7.1.2. Config ProcessEngineFactoryBean
    • -
    • 7.2. Auto deploy processes
    • -
    • 7.3. Expression
    • -
    • 7.3.1. Expression based
    • -
    • 7.3.2. Expression examples
    • -
    • 7.3.3. Manage variables use spring
    • -
    • 7.4. Listeners
    • -
    • 7.5. Use Spring engine in application
    • -
    • 7.5.1. Model
    • -
    • 7.5.2. Start process
    • -
    • 7.5.3. Get tasks
    • -
    • 7.5.4. Handle tasks
    • -
    • 7.6. Init process engine use annotations of spring
    • -
    • 7.6.1. Use @EnableActiviti
    • -
    • 7.6.2. Init process engine use Spring Boot
    • -
    • 7.7. CDI module
    • -
    • 7.7.1. Start with CDI
    • -
    • 7.7.2. Config engine and process definitions
    • -
    • 7.7.3. Start process
    • -
    • 7.7.4. Handle and complete tasks
    • -
    • 7.7.5. Event listeners
    • -
    • 7.8. Summary
    • -
    -
    - -
    Chapter 8. Mail service -
      -
    • 8.1. Configration and test
    • -
    • 8.1.1. Setup mail system
    • -
    • 8.1.2. Send mail by mail task of Activiti
    • -
    • 8.1.3. Send mail by Gmail
    • -
    • 8.2. Integration with business
    • -
    • 8.2.1. Send mail immediately
    • -
    • 8.2.2. Send mail regularly
    • -
    • 8.3. Summary
    • -
    -
    - -
    Chater 9. Multi instance -
      -
    • 9.1. Multi instance in non-user tasks
    • -
    • 9.2. Multi instance in user tasks
    • -
    • 9.2.1. Sequential
    • -
    • 9.2.2. Concurrent
    • -
    • 9.2.3. Set complete conditions
    • -
    • 9.3. Example - leave countersign
    • -
    • 9.3.1. Process definition
    • -
    • 9.3.2. Handle tasks
    • -
    • 9.4. Audit comments
    • -
    • 9.5. Summary
    • -
    -
    - -
    Chapter 10. Sub-process and Call Activity -
      -
    • 10.1. Sub-process
    • -
    • 10.1.1. Process definition
    • -
    • 10.1.2. Handle processes
    • -
    • 10.1.3. Analyze process datas
    • -
    • 10.2. Call Activity
    • -
    • 10.2.1. Process definition
    • -
    • 10.2.2. Unit test
    • -
    • 10.2.3. Handle processes
    • -
    • 10.2.4. Analyze process datas
    • -
    • 10.3. Event sub-process
    • -
    • 10.3.1. Process definition
    • -
    • 10.3.2. Unit test
    • -
    • 10.4. Multi instance in sub-process and call activitiy
    • -
    • 10.5. Summary
    • -
    -
    - -
    Chapter 11. Events -
      -
    • 11.1 Start events
    • -
    • 11.1.1 Timer start event
    • -
    • 11.1.2 Message start event
    • -
    • 11.2 End events
    • -
    • 11.2.1 Termination end event
    • -
    • 11.2.2 Message end event
    • -
    • 11.3 Boundary events
    • -
    • 11.3.1 Error boundary event
    • -
    • 11.3.2 Message boundary event
    • -
    • 11.3.3 Signal boundary event
    • -
    • 11.4 Intermediate events
    • -
    • 11.5 Summary
    • -
    -
    - -
    Chapter 12. Tasks and attachments -
      -
    • 12.1. User Task
    • -
    • 12.1.1 Improvment task list
    • -
    • 12.1.2 Improvment task forms
    • -
    • 12.1.3 Tasks related to personnel
    • -
    • 12.1.4 Unclaim task
    • -
    • 12.1.5 Candidate users and Candidate groups
    • -
    • 12.1.6 Improvment task query
    • -
    • 12.2. Sub task
    • -
    • 12.3. Manual task
    • -
    • 12.4. Attachment
    • -
    • 12.5. Improvment comment list
    • -
    • 12.6. Delegate task
    • -
    • 12.6.1 Unit test
    • -
    • 12.6.2 Delegate task in task form
    • -
    • 12.7. Summary
    • -
    -
    - -
    Chapter 13. Query and Trace -
      -
    • 13.1. Introduce Query API
    • -
    • 13.2. Runtime queries
    • -
    • 13.2.1. Task query
    • -
    • 13.2.2. Query processes involved
    • -
    • 13.3. Trace processes
    • -
    • 13.4. Query history datas
    • -
    • 13.4.1. History activities and form query
    • -
    • 13.4.2. Query finished processes
    • -
    • 13.5. Query by Mybatis's
    • -
    • 13.6. Summary
    • -
    -
    - -
    Chapter 14. Management -
      -
    • 14.1. Status
    • -
    • 14.1.1 Status of process definitions
    • -
    • 14.1.2 Job Query
    • -
    • 14.1.3 Status of process instances
    • -
    • 14.2. Manage Job
    • -
    • 14.2.1 Principle of job
    • -
    • 14.2.2 Exception of job
    • -
    • 14.2.3 Exclusive and asynchronous
    • -
    • 14.3. Delete process instances
    • -
    • 14.4. Authority of process defenitions
    • -
    • 14.4.1 Filters of authority
    • -
    • 14.4.2 Set candidate user and candidate groups of process definitions
    • -
    • 14.4.3 Read filterable process definitions
    • -
    • 14.5. Get properties of process engine
    • -
    • 14.6. Query tables data of engine
    • -
    • 14.7. Manage users and groups
    • -
    • 14.8. Summary
    • -
    -
    -### Part IV. Advanced -
    Chapter 15. WebService in Activiti -
      -
    • 15.1. Publish WebService
    • -
    • 15.2. WebService task in process definition
    • -
    • 15.3. Execute WebService in process
    • -
    • 15.4. Summary
    • -
    -
    - -
    Chapter 16. Business Rule -
      -
    • 16.1. Design process and business rules
    • -
    • 16.1.1. Deploy rule files
    • -
    • 16.1.2. Unit test
    • -
    • 16.2. Summary
    • -
    -
    - -
    Chapter 17. JPA -
      -
    • 17.1. Config JPA
    • -
    • 17.1.1 Standalone mode
    • -
    • 17.1.2 Spring mode
    • -
    • 17.2. JPA version of the process
    • -
    • 17.2.1 Persistence entities when starting process
    • -
    • 17.2.2 Change entity properties
    • -
    • 17.2.3 Clean history datas
    • -
    • 17.3. Summary
    • -
    -
    - -
    Chapter 18. ESB -
      -
    • 18.1 Introduce Camel
    • -
    • 18.2 Camel quick start
    • -
    • 18.3 Hello World
    • -
    • 18.4 Add Camel dependencies
    • -
    • 18.5 Integration with business
    • -
    • 18.5.1 Design process definition
    • -
    • 18.5.2 Design Camel Flow
    • -
    • 18.5.3 Start Camel Flow
    • -
    • 18.5.4 Unit test
    • -
    • 18.6 Introduce ESB
    • -
    • 18.7 Mule quick start
    • -
    • 18.8 Hello World
    • -
    • 18.9 Add Mule dependencies
    • -
    • 18.10 Integration with business
    • -
    • 18.10.1 Design process definition
    • -
    • 18.10.2 Design Mule Flow
    • -
    • 18.10.3 Start Mule Flow
    • -
    • 18.10.4 Unit test
    • -
    • 18.11 Summary
    • -
    -
    - -
    Chapter 19. Unified identity -
      -
    • 19.1. A typical identity system
    • -
    • 19.2. Synchronous data by interfaces
    • -
    • 19.2.1 Use IdentityService
    • -
    • 19.2.2 Custom SessionFactory
    • -
    • 19.3. Use views instead of tables
    • -
    • 19.4. LDAP
    • -
    • 19.5. Summary
    • -
    -
    - -
    Chapter 20. REST API -
      -
    • 20.1. Introduction of communication protocols
    • -
    • 20.2. Introduce REST API
    • -
    • 20.2.1. REST API authentication mechanism
    • -
    • 20.3. Publish REST API
    • -
    • 20.3.1. Access service by browser
    • -
    • 20.3.2. Access service by Http Client
    • -
    • 20.3.3. Access service by Restlet
    • -
    • 20.3.4. Access service by Apache CXF
    • -
    • 20.4. Integration REST API
    • -
    • 20.4.1. Dependencies and configration files
    • -
    • 20.4.2. Access service by Ajax
    • -
    • 20.5. Example
    • -
    • 20.5.1. Deploy processes
    • -
    • 20.5.2. Query deployments
    • -
    • 20.5.3. Query process definitions
    • -
    • 20.5.4. Start process
    • -
    • 20.5.5. Get variables of process instances
    • -
    • 20.5.6. Qyer tasks
    • -
    • 20.5.7. Claim tasks
    • -
    • 20.5.8. Complete task
    • -
    • 20.5.9. Query history datas
    • -
    • 20.6. Summary
    • -
    -
    - -
    Chapter 21. Invade Activiti -
      -
    • 21.1 Parse BPMN file
    • -
    • 21.1.1. Converte BpmnModel and XML
    • -
    • 21.1.2. Create process dynamic
    • -
    • 21.1.3. BPMN parse handlers
    • -
    • 21.2 Event handler
    • -
    • 21.2.1. Config event handler
    • -
    • 21.2.2. Catch and handle events
    • -
    • 21.2.3. Handle expcetion in events
    • -
    • 21.2.4. Register event handlers runtime
    • -
    • 21.2.5. Task auto redirect
    • -
    • 21.3 Command and interceptor
    • -
    • 21.3.1. Command and interceptor mechanism
    • -
    • 21.3.2. Custom commands
    • -
    • 21.3.3. Interceptors of command
    • -
    • 21.4 PVM
    • -
    • 21.4.1. Introduce PVM
    • -
    • 21.4.2. Hello PVM
    • -
    • 21.4.3. Advance of PVM
    • -
    • 21.5 Summary
    • -
    -
    \ No newline at end of file diff --git a/activiti/readme.html b/activiti/readme.html deleted file mode 100644 index 49721dff..00000000 --- a/activiti/readme.html +++ /dev/null @@ -1,2362 +0,0 @@ - - - - - Activiti Readme - - - - - -

    License

    -

    All the software included in this distribution is distributed under Apache license V2 - unless for these exceptions: -

    -
      -
    • We are including slightly modified source code of the Apache Licensed JUEL 2.2.1, created by Odysseus Software GmbH.
    • -
    - -

    Documentation

    - - -

    Links for demo setup

    -

    After installing the Activiti distribution, - you can open the Activiti Explorer -

    - -

    Other Links

    - - A more elaborate collection of Activiti-links can be found on the - Activiti Community page - -

    Activiti Release Notes

    - -

    Release Notes - Activiti - Version 5.11

    - -

    Highlights

    -
      -
    • Added Activiti Modeler to the Activiti Explorer web application
    • -
    • Removed buggy demo script and replaced with simpler distribution
    • -
    • Support for doing queries that are not out-of-the-box possible with the query api (called 'native queries')
    • -
    • Enhanced ability to query for history variable values
    • -
    • Improved functionality to suspend and activate process definitions and instances
    • -
    • Improved Activiti QA and added DB2 and MSSQL servers
    • -
    • Added support for using a service call in aJava delegates (see here for more details)
    • -
    • Lots of bug fixes
    • -
    - -

    Important upgrade note

    -

    In 5.11 we introduce a new history table for process variables. There is an optional migration database script - that you can run to generate historic variables for existing process instances. This is optional because - the engine will just create those records upon update of the variable if they don't exist. -

    -

    The files can be found in the database directory of the Activiti distribution - org/activiti/db/upgrade/optional. -

    - -

    API Change

    -

    The functionality of the repositoryService.suspendProcessDefinitionByXXX has been slightly altered. - Previously, calling this method would stop the execution of jobs related to this process definition. - Now, calling this method will not do this, but rather make sure a process instance - cannot be created from this process definition. We've added a new method with an additional - parameter 'suspendProcessInstances' which can be used to get the same behavior: when set to 'true', - all the associated process instances will be suspended. This will avoid process instance continuation, - including the execution of jobs related to the process instance.

    - -

    Bug fixes and various smaller improvements

    -

    Check out the Release notes for more details

    - -

    Sub-task -

    -
      -
    • [ACT-1406] - Extend Activiti BPMN XML Schema -
    • -
    • [ACT-1407] - Marshall ID to BPMN when saving -
    • -
    • [ACT-1408] - Read and use ID when parsing BPMN model -
    • -
    - -

    Bug -

    -
      -
    • [ACT-234] - CompetingJobAcquisitionTest does not work on windows -
    • -
    • [ACT-454] - Variables not being escaped when mail is sent as HTML -
    • -
    • [ACT-700] - Bug in DB2 supporting. -
    • -
    • [ACT-734] - Schema creation in mssql 2005 -
    • -
    • [ACT-785] - User Task Assignments are not handled correctly if the value of an expression holds more than one group-id or user-id -
    • -
    • [ACT-820] - Serializable values altered in scriptTask aren't persisted to DB -
    • -
    • [ACT-847] - activiti:field not injected for tasklistener on event="create" -
    • -
    • [ACT-865] - timeCycle requires seconds to be in the startDate -
    • -
    • [ACT-866] - couldn't deduct database type from database product name 'DB2/LINUXX8664' -
    • -
    • [ACT-870] - Multiple documentation elements not supported -
    • -
    • [ACT-876] - Activiti Designer creates NPE when dragging tab to second window -
    • -
    • [ACT-920] - ActivityException thrown on ProcessEngineConfiguration.buildProcessEngine() -
    • -
    • [ACT-927] - nullpointer on empty sourceref in datainputassociation -
    • -
    • [ACT-934] - Inconsistent procvar behaviour -
    • -
    • [ACT-940] - When starting the demo, support Windows 7 for "explorer.browser.open" -
    • -
    • [ACT-1002] - The Database Specific Statement is not applied in some cases -
    • -
    • [ACT-1057] - Custom tasks in Designer with only BOOLEAN_CHOICE do not write proper XML -
    • -
    • [ACT-1063] - Typo in org.activiti.engine.impl.jobexecutor.TimerDeclarationType#caledarName -
    • -
    • [ACT-1070] - activiti explorer shows mistakenly non-activiti tables if their name starts with 'ACT*' -
    • -
    • [ACT-1083] - Variables stored inside a subprocess are not linked to activity-id's. -
    • -
    • [ACT-1090] - There is not async attribute in activiti XML schema -
    • -
    • [ACT-1102] - Beans specified in activiti.cfg.xml not available in expressions -
    • -
    • [ACT-1130] - Removing identity link does not remove owner in task entity. -
    • -
    • [ACT-1147] - Posting a comment to a task causes an exception (Bad value for type long) (After updating from 5.8 to 5.9) -
    • -
    • [ACT-1174] - historyLevel property not found when creating tables manually -
    • -
    • [ACT-1180] - Add version fixing after running activiti.postgres.upgradestep.58.to.59.engine.sql to avoid the application try to autoupdate schema at restart -
    • -
    • [ACT-1187] - Default image for CustomServiceTasks is not loaded correctly -
    • -
    • [ACT-1189] - displayHelpLong of a custom property is not displayed -
    • -
    • [ACT-1239] - Exclusive gateway: Condition on default flow is not ignored -
    • -
    • [ACT-1251] - Manual upgrade throwing ActivitiWrongDbException -
    • -
    • [ACT-1252] - Signal Events and None intermediate event not rendered during Diagram Generation -
    • -
    • [ACT-1259] - Finishing last task (or signal last receive-task) of process doesn't do optimistic locking -
    • -
    • [ACT-1295] - Error BoundaryEvent in multiInstance call activity does not work as intended -
    • -
    • [ACT-1304] - EnumFormType always returns null when converting model value to form value -
    • -
    • [ACT-1316] - org.activiti.spring.SpringTransactionContext#addTransactionListener, TransactionState.ROLLED_BACK registers listener that is also invoked for successful commit -
    • -
    • [ACT-1320] - Start Timer is executed for suspended process definitions -
    • -
    • [ACT-1321] - Add NOT NULL constraint to PROCDEF table -
    • -
    • [ACT-1328] - Typo : "evalutaing" in JuelExpression -
    • -
    • [ACT-1329] - Add NOT NULL constraint on VERSION_ in PROCDEF table -
    • -
    • [ACT-1331] - RuntimeService.getVariables(String, Collection) retrieves more than the specified variables -
    • -
    • [ACT-1338] - SetProcessDefinitionVersionCmd should update TaskEntity.processDefinitionId as well -
    • -
    • [ACT-1340] - BusinessProcess.isAssociated throws NPE if no execution is associated -
    • -
    • [ACT-1341] - Activiti engine drop statement for MSSQL misses a foreign key constraint -
    • -
    • [ACT-1342] - Suspending a process with active timer can cause AcquireJobsRunnable to get into a loop that causes heavy load on database -
    • -
    • [ACT-1353] - do not generates eventBasedGateway with ProcessDiagramGenerator.generateDiagram -
    • -
    • [ACT-1361] - Broken Build: Activiti webapp REST uses junit but does not declare dependency using maven -
    • -
    • [ACT-1370] - DB2 upgrade failed from 5.9 to 5.10 because missing NOT NULL -
    • -
    • [ACT-1375] - Remove workspace with examples from distribution (maybe replace with website) -
    • -
    • [ACT-1380] - Engine should throw exception when flow out of XOR-Gateway neither has condition nor is default flow -
    • -
    • [ACT-1381] - Add support for SQL pagination in DB2 & MSSQL -
    • -
    • [ACT-1390] - Activiti incorrectly logs SEVERE level messages for expected lock collisions -
    • -
    • [ACT-1391] - Deploying a process with illegal expression doesn't cause deployment to fail -
    • -
    • [ACT-1394] - NullPointerException in UserTaskAssignmentHandler -
    • -
    • [ACT-1402] - Interrupting boundary events don't cancel all parallel sub-process instances in case sub-process is multi-instance -
    • -
    • [ACT-1410] - Executing the TaskService.deleteAttachments(String attachmentId) does not remove the file data from ACT_GE_BYTEARRAY table -
    • -
    • [ACT-1415] - TimeCycle expression is not evaluated on timer-start event -
    • -
    • [ACT-1416] - RepositoryService startableByUser() method not identity-implementation agnostic, using ACT_ID_MEMBERSHIP -
    • -
    • [ACT-1421] - Error Boundary Event - execution not closed properly -
    • -
    • [ACT-1423] - BusinessRuleTask are not converted/exported in between Activiti Modeler and Activiti Engine -
    • -
    • [ACT-1424] - Job timestamp defaults to current date when set to null (MySQL) -
    • -
    • [ACT-1429] - Remaining flowNodeRef when deleting BPMN elements within lanes -
    • -
    • [ACT-1431] - Invalid warning with exception thrown when di information is missing -
    • -
    • [ACT-1434] - Rest call contains incorrect mimetype for resource service -
    • -
    • [ACT-1435] - Exception for Expressions with 2 params in BusinessRule ruleVariablesInput -
    • -
    • [ACT-1436] - Activiti-Rest : Binding error with form properties -
    • -
    • [ACT-1440] - Activiti Explorer : Null Pointer Exception for Users with a Picture -
    • -
    • [ACT-1441] - Eclipse Plugin : Missing a parentheses on a text label. -
    • -
    • [ACT-1442] - EventBasedGateway not drawn in diagram -
    • -
    • [ACT-1444] - Race condition in CallActivityBehavior -
    • -
    • [ACT-1449] - Boundary events in designer are not deleted properly -
    • -
    • [ACT-1455] - Add support to filter on HistoricVariables values on HistoricProcessInstanceQuery -
    • -
    • [ACT-1456] - Add support for processVariableValueEquals(value) -
    • -
    • [ACT-1459] - Add support for filtering queries based on string variable values, ignoring case -
    • -
    • [ACT-1461] - The startableByUser method on the ProcessDefinitionQuery object does not return process definitions records for "candidate starter groups" when a custom session factory has been implemented -
    • -
    • [ACT-1468] - Task query: can't query by process id with ordering by due date -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-716] - Add log guards to org.activiti.engine.impl.interceptor.LogInterceptor -
    • -
    • [ACT-721] - Usage of Collections.synchronizedMap might cause performance degradation or java deadlock in DbSqlSessionFactory -
    • -
    • [ACT-877] - Allowing expressions in properties of CustomServiceTask -
    • -
    • [ACT-900] - TaskService.deleteTask should allow a reason to be specified -
    • -
    • [ACT-969] - Add description of JavaDelegate implementation for CustomServiceTasks to the user guide -
    • -
    • [ACT-998] - Add a ScripTaskListener -
    • -
    • [ACT-1015] - Process formKey as an expression -
    • -
    • [ACT-1023] - random order in enum fields -
    • -
    • [ACT-1064] - Remove 'selectNextJobsToExecute_mysql' and remove duplicate criterion where clause -
    • -
    • [ACT-1067] - Make BpmnDeployer#addTimerDeclarations and BpmnDeployer#removeObsoleteTimers protected -
    • -
    • [ACT-1112] - Ease integration of Activit Explorer / Split up explorer into a JAR and a WAR example application -
    • -
    • [ACT-1122] - databaseSchemaUpdate should not downgrade, it leads to inconsistent databases -
    • -
    • [ACT-1134] - Reduce number of compensate event subscription queries when a subprocess is completed -
    • -
    • [ACT-1138] - Optimize job acquisition (exclusive jobs / maxJobsPerAcquisition) -
    • -
    • [ACT-1162] - activiti-spring pom.xml contains dependencies that should have scope 'test' -
    • -
    • [ACT-1169] - Redundant RETRIES predicate in 'selectExclusiveJobsToExecute' -
    • -
    • [ACT-1206] - GroupManager.findGroupsByUser called twice -
    • -
    • [ACT-1224] - Remove Eclipse IDE Artifacts (.classpath,...) from SVN -
    • -
    • [ACT-1273] - In the TaskService it is possible to removing variables -
    • -
    • [ACT-1279] - Add foreign key to PROC_DEF_ID_ on ACT_RU_EXECUTION -
    • -
    • [ACT-1291] - Allow subtask filtering -
    • -
    • [ACT-1301] - Refactoring BpmnParse class -
    • -
    • [ACT-1327] - activiti-osgi add blueprint context EL resolver -
    • -
    • [ACT-1336] - Support start authorization in Designer -
    • -
    • [ACT-1350] - Can not send mail use gmail smtp with ssl -
    • -
    • [ACT-1352] - Reduce the log level when a job could not found due to cancelActiviti -
    • -
    • [ACT-1383] - Enable specialization of BusinessProcess bean by moving producer methods into separate bean -
    • -
    • [ACT-1392] - Activities rendered by DiagramGenerator should show task-names on multiple lines, if too big for single line. -
    • -
    • [ACT-1405] - CustomServiceTask ID is not stored in model -
    • -
    • [ACT-1430] - Add faster and more convenient methods for retrieving form keys -
    • -
    • [ACT-1443] - Use the standard Activiti classloading mechanism for resolving serialized classes -
    • -
    • [ACT-1445] - Improve documentation for creating Designer Extensions -
    • -
    • [ACT-1447] - in Designer, The cancelActivity should not be shown for errorEventDefinition and cancelEventDefinition -
    • -
    • [ACT-1450] - Modification on ProcessInstanceResource to insert taskDefinitionKey in results -
    • -
    • [ACT-1451] - Rest API to see startableByUser process definitions -
    • -
    • [ACT-1453] - Rest API to list groups -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-933] - orderByDueDate for HistoricTaskInstanceQuery -
    • -
    • [ACT-936] - Provide custom navigator for Activiti projects -
    • -
    • [ACT-1020] - Get Process Documentation -
    • -
    • [ACT-1293] - Add SQL Query extensions -
    • -
    • [ACT-1300] - Add own History table for HistoricProcessVariable -
    • -
    • [ACT-1302] - Add more information to HistoricActivityInstance -
    • -
    • [ACT-1322] - Interrupting Message Event Sub-Process -
    • -
    • [ACT-1330] - Imporve History Queries -
    • -
    • [ACT-1374] - Add "processVariableValueEquals" to ExecutionQuery -
    • -
    • [ACT-1378] - Change behavior with HistoricProcessVariable -
    • -
    • [ACT-1379] - Add field injection to delegateExpression -
    • -
    • [ACT-1387] - Allow service invocation in a JavaDelegate/ActivityBehavior -
    • -
    • [ACT-1457] - Suspend/Activate a process instance -
    • -
    • [ACT-1458] - Allow to suspend/activate a process definition at a given date -
    • -
    - -

    Task -

    -
      -
    • [ACT-840] - Userguide refers to JPAVariableTest, but isn't present in examples anymore -
    • -
    • [ACT-1332] - Remove servlet api jar from activiti-explorer -
    • -
    • [ACT-1333] - Fix upgrade script -
    • -
    • [ACT-1334] - ad hoc task has 2 owners -
    • -
    • [ACT-1347] - Clean up cycle references -
    • -
    • [ACT-1355] - Clean up jira issues -
    • -
    • [ACT-1369] - Fix docs on starting h2 test console -
    • -
    • [ACT-1425] - Add category to deployment -
    • -
    - - -

    Release Notes - Activiti - Version 5.10

    - -

    Highlights

    -
      -
    • Drastic performance improvements: See Joram's blog The Activiti performance showdown for the amazing details
    • -
    • Tijs' book Activiti in Action published by Manning came out!
    • -
    • Added support voor bpmn message start event
    • -
    • Added capability for clients to validate a user's rights to start a process
    • -
    • Added support for nested sub-processes and embedded subprocesses in designer
    • -
    • Added support for catching intermediate and boundary message events
    • -
    • Bug fixes and various smaller improvements. Check out the Release notes for more details
    • -
    - -

    Bug -

    -
      -
    • [ACT-674] - ClaimTaskCmd should verify userId -
    • -
    • [ACT-697] - Exception thrown when bpmndi:BPMNPlane elements does not reference a process id -
    • -
    • [ACT-714] - Multi-threaded usage of non thread safe java.util.HashMap in ClassNameUtil -
    • -
    • [ACT-733] - Potential Problem with ${empty someProcessVariable} or ${someProcessVariable != null} -
    • -
    • [ACT-832] - Infinite loop in ErrorEndEventActivitiBehavior if errorEndEvent defined in a call-activity sub process and no matching boundary event -
    • -
    • [ACT-873] - typo: TaskQuery.taskUnnassigned() -
    • -
    • [ACT-886] - Process Definition Query Using CategoryLike Is Missing 'like' Clause -
    • -
    • [ACT-955] - Integrity constraint ACT_FK_VAR_EXE violated - child record found -
    • -
    • [ACT-958] - using a jobquery with processInstanceId AND executable filter fails with an SQLException -
    • -
    • [ACT-962] - Failed Testcases because of Equal Check on Exception Messages -
    • -
    • [ACT-984] - Activiti Designer: NullPointerException when saving arbitrary XML file -
    • -
    • [ACT-1000] - [Eclipse] Diagram modifications removes data in XML file -
    • -
    • [ACT-1016] - Eclipse freezes when opening xhtml page AND Activiti Designer -
    • -
    • [ACT-1019] - REST-API, getting process instance diagram error -
    • -
    • [ACT-1039] - Broken Round Trip bpmn20.xml-.activiti in Designer -
    • -
    • [ACT-1048] - HistoricalActivityInstance missing for parallel GW -
    • -
    • [ACT-1059] - Delegation state of task's not saved in database -
    • -
    • [ACT-1071] - Process Instance Diagram has wrong content-type -
    • -
    • [ACT-1075] - getting process variables through rest does not work -
    • -
    • [ACT-1077] - Wrong URL for "Delete Deployments" in the User Guide REST API Documentation -
    • -
    • [ACT-1113] - Remove deprecated cycle tables -
    • -
    • [ACT-1115] - Parsing of process definition files with several pools and DI information (for graphical represenation) fails -
    • -
    • [ACT-1116] - Can't browse database tables with activiti-explorer when using Postgresql-9.1 -
    • -
    • [ACT-1125] - Missing "import java.util.Date" in HumanTimeTest causes build to fail -
    • -
    • [ACT-1129] - BooleanFormPropertyRenderer: java.lang.IllegalArgumentException: CheckBox only accepts Boolean values -
    • -
    • [ACT-1131] - Asynchronous Servicetasks with DB2 -
    • -
    • [ACT-1132] - Regression: Process Diagram generation not possible in headless mode anymore -
    • -
    • [ACT-1137] - BusinessProcess#getExecutionId() does not participate in current command -
    • -
    • [ACT-1143] - Activiti Update from 5.8 to 5.9 (using PostgreSQL) -
    • -
    • [ACT-1144] - "isExpanded" attribute missing in DI for sub processes -
    • -
    • [ACT-1146] - Class cast while saving changes - before closing editor -
    • -
    • [ACT-1150] - NullPointerException during application startup with autodeployment set to true -
    • -
    • [ACT-1154] - Missing pictures in the user guide -
    • -
    • [ACT-1156] - Callactivity with Expression always use value of first evaluation -
    • -
    • [ACT-1160] - Parsing results in Exception when using textannotation on association -
    • -
    • [ACT-1170] - 'selectExclusiveJobsToExecute' does not work for DB2 and MSSQL -
    • -
    • [ACT-1172] - activiti.mssql.create.engine.sql does not drop table ACT_RU_JOB -
    • -
    • [ACT-1176] - Parsing Collaboration Tag fails because of DI reference -
    • -
    • [ACT-1179] - Fix binary value on activiti.postgres.upgradestep.58.to.59.engine.sql -
    • -
    • [ACT-1182] - REST: Error when trying to get process variables with null value. -
    • -
    • [ACT-1183] - TimerCatchingEvent not showing up when re-opening bpmn file -
    • -
    • [ACT-1185] - When using a multi-instance subprocess, the execution is ended after first loop -
    • -
    • [ACT-1188] - JtaProcessEngineConfiguration does not use proper JTA Synchronizations -
    • -
    • [ACT-1191] - Bug: NullPointerException in FailedJobListener -
    • -
    • [ACT-1193] - REST-webapp: unable to get process instance diagram -
    • -
    • [ACT-1200] - Location of labels of sequence flows move after reopening process definition -
    • -
    • [ACT-1202] - History: tracking of multiple end events reached -
    • -
    • [ACT-1209] - Mybatis pagination does not scale on MySQL & H2 -
    • -
    • [ACT-1216] - When receycling execution it is not activated correctly -
    • -
    • [ACT-1222] - Receycling the root execution leads to stuck process instance when using call activities -
    • -
    • [ACT-1223] - Activiti Designer creates pom.xml with dependency to Activiti 5.8 -
    • -
    • [ACT-1237] - SubProcesses within pool -
    • -
    • [ACT-1238] - SignalBoundaryEvent not displayed when inside subprocess that has another subprocess as fault handler -
    • -
    • [ACT-1242] - Designer removes "Input variables" attribute of BusinessRuleTask -
    • -
    • [ACT-1245] - Diagram resource generation should only be triggered when deployment is new -
    • -
    • [ACT-1249] - ORA-00918 when processUnfinished() and orderByHistoricTaskInstanceEndTime() called on HTIQ -
    • -
    • [ACT-1253] - JobQuery 'selectJobByQueryCriteria.withExceptions' doesn't find all jobs with failures -
    • -
    • [ACT-1257] - CDI Injection for process variables does not work correctly in call stacks including other processes -
    • -
    • [ACT-1258] - ThreadpoolExecutor injection point is depending on actual class instead of Executor Interface -
    • -
    • [ACT-1260] - REST: JSON field values have to be null instead of "null" -
    • -
    • [ACT-1277] - activiti-engine-5.9.pom file has invalid URL for repository -
    • -
    • [ACT-1278] - List<HistoricProcessInstance> is not serializable -
    • -
    • [ACT-1286] - REST: Starting a process instance does not handle StartEvent property datatypes correctly -
    • -
    • [ACT-1287] - HistoricTaskInstanceQuery orderByTaskDefinitionKey() does not work -
    • -
    • [ACT-1298] - Deploying two processes with same id breaks engine -
    • -
    • [ACT-1305] - Parsing call-activity may lead to NullPointerException -
    • -
    • [ACT-1308] - Null-Pointer Exception in ProcessInstanceResource.java -
    • -
    • [ACT-1309] - NullPointerException in SignalEventHandler -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-380] - Add method getCandidates() to interface DelegateTask -
    • -
    • [ACT-656] - Add support for schema prefixes for table names -
    • -
    • [ACT-897] - Make JuelFormEngine.getFormTemplateString(FormData) protected -
    • -
    • [ACT-923] - HistoricProcessInstance should hold the super processInstanceId -
    • -
    • [ACT-946] - Category in ProcessDefinition REST Response -
    • -
    • [ACT-974] - Don't register Activiti XML editor as default XML editor in Eclipse -
    • -
    • [ACT-991] - improve exception thrown by taskservice.claim() -
    • -
    • [ACT-1056] - Contention in mybatis due to dynamic query creation in ExecutionEntity.remove() -
    • -
    • [ACT-1133] - Reduce number of task / event subscription queries when execution is removed -
    • -
    • [ACT-1140] - Add RuntimeService.startProcessInstanceByMessage(String, String) Method -
    • -
    • [ACT-1145] - Selecting the Activity's name from the DelegateExecution could be a convenience method -
    • -
    • [ACT-1246] - FormService returns null instead of exception if no form is defined -
    • -
    • [ACT-1276] - SetProcessDefinitionVersionCmd should work with CallActivities as well -
    • -
    • [ACT-1280] - Add unique index to process-definitions on KEY and VERSION -
    • -
    • [ACT-1284] - Improve error message if process definition with Message Start Events gets started by "startProcessInstanceByKey" -
    • -
    • [ACT-1294] - Upgrade Spring dependency to 3.1.2.RELEASE -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-638] - Implement non interrupting boundaryEvent (cancelActivity="false") -
    • -
    • [ACT-740] - Mechanism of management rights on the start of process. -
    • -
    • [ACT-892] - Support nested sub-processes in designer -
    • -
    • [ACT-932] - Support embedded subprocesses in Designer -
    • -
    • [ACT-959] - Retrieve process diagram through rest interface by processDefinitionId -
    • -
    • [ACT-960] - Retrieve active task list from processInstanceId -
    • -
    • [ACT-1020] - Get Process Documentation -
    • -
    • [ACT-1028] - Support default values for form properties -
    • -
    • [ACT-1046] - Allow engine to configure a delay between retries and the amount of retries. -
    • -
    • [ACT-1117] - Add support for suffix ".bpmn" instead only ".bpmn20.xml" -
    • -
    • [ACT-1136] - Add support for catching intermediate and boundary message events -
    • -
    • [ACT-1139] - Add startProcessInstanceByMessage* methods to BusinessProcess bean -
    • -
    • [ACT-1159] - BpmnError should be handled in expression based ServiceTasks. -
    • -
    • [ACT-1164] - Add possibility to hook in own implementation of BusinessRuleTask -
    • -
    • [ACT-1167] - Start and End event should be able to have Execution Listeners as well -
    • -
    • [ACT-1181] - Group provisioning & group assignment missing in REST -
    • -
    • [ACT-1190] - Add possibility to hook in own MyBatis Queries -
    • -
    • [ACT-1213] - Add "processVariableValueNotEquals" to TaskQuery -
    • -
    • [ACT-1225] - Provide infrastructure for mock testing -
    • -
    • [ACT-1282] - Add method TaskQuery#taskDelegationState(DelegationState) -
    • -
    • [ACT-1288] - Timer due date configured by expression can take java.util.Date directly - not only String with ISO 8601 -
    • -
    - -

    Task -

    -
      -
    • [ACT-1161] - Remove experimental Webservices from activiti-cxf project -
    • -
    - -

    Wish -

    -
      -
    • [ACT-1197] - Spring based configuration with user specified expression manager -
    • -
    • [ACT-1247] - Could u supply a WF graph with highlighted active node -
    • -
    - - - -

    Release Notes - Activiti - Version 5.9

    - -

    Highlights

    -
      -
    • Support for Exclusive Jobs and Plugability of the Job Executor Infrastructure
    • -
    • Persistent event subscriptions (infrastructure)
    • -
    • Intermediate signal throw / catch
    • -
    • Event based gateway
    • -
    • BPMN transaction (cancel end event & cancel boundary event)
    • -
    • BPMN compensation (compensation catch & compensation throw)
    • -
    • Interrupting error event subprocesses
    • -
    • (Multiple) message start events (not implemented yet, should be a quick win)
    • -
    • Various bug fixes
    • -
    - -

    Bug -

    -
      -
    • [ACT-583] - Processes are not found in the bar file, if they are below root -
    • -
    • [ACT-736] - SpringAutoDeployment deploymentsDiffer incorrect (results in unnecessary deployment each application restart) -
    • -
    • [ACT-834] - JavaDelegate instances should not be cached -
    • -
    • [ACT-848] - Delete Reason not saved in database -
    • -
    • [ACT-861] - Statement-Leak in Mybatis -
    • -
    • [ACT-862] - VariableScopeImpl#getVariableNames does not take parent scopes into account -
    • -
    • [ACT-907] - Timer start event triggers twice -
    • -
    • [ACT-930] - startUserId missing in REST v2 /process-instances -
    • -
    • [ACT-944] - Activiti 5.7 "Create deployment artifacts" in Eclipse creates unusable .jar file -
    • -
    • [ACT-953] - Error catching boundary event that catches ALL errors doesn't work -
    • -
    • [ACT-954] - REST webapp doesn't set the authenticated user on the Authentication object -
    • -
    • [ACT-981] - ActivitiOptimisticLockingException thrown on CallActivity with Async serviceTask and Multi-Instance construct. -
    • -
    • [ACT-983] - Only test in Activiti Explorer fails -
    • -
    • [ACT-990] - Activiti-cdi: CdiActivitiTestCase troubles Jboss AS7 classloader -
    • -
    • [ACT-1001] - Activiti-cdi: taskService.claim() does not work -
    • -
    • [ACT-1003] - Exceptions thrown on a multi instance sub process with asynchronous property -
    • -
    • [ACT-1027] - Activiti engine bundle has optional dependencies declared as mandatory in OSGi manifest -
    • -
    • [ACT-1035] - Calling interrupt() on thread that access the database closes db connection and causes ConnectionClosed exceptions (H2 and Derby) -
    • -
    • [ACT-1047] - Possible infinite loop with log flooding in JobAcquisitionThread -
    • -
    • [ACT-1050] - AtomicOperationProcessEnd does not propagate caught Exceptions -
    • -
    • [ACT-1053] - Activiti cdi: Remove CommandExecutor bean -
    • -
    • [ACT-1061] - Process Image is cut off in "My instances" instead of scrolling -
    • -
    • [ACT-1062] - Database table generation fails on Oracle if multiple activiti engine schematas are visible to the database user -
    • -
    • [ACT-1087] - Add missing "parseReceiveTask" to BpmnParseListener -
    • -
    • [ACT-1097] - Execution.takeAll() takes transitions with executions which have been deleted -
    • -
    • [ACT-1098] - RuntimeService.deleteProcessInstance loses deleteReason -
    • -
    • [ACT-1099] - Parsing results in exception when using text annotation connected with association -
    • -
    • [ACT-1114] - Timer throw exception. -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-249] - Need a way to skip process where isExecutable='false' -
    • -
    • [ACT-326] - Store current authenticated user Id into HistoricDetail -
    • -
    • [ACT-702] - All tests should also run with full history configuration on all DB's -
    • -
    • [ACT-831] - CallActiviti to select subprocess based upon an expression evaluated at runtime. -
    • -
    • [ACT-889] - Typo error in User guide -
    • -
    • [ACT-948] - Database in activiti.cfg.xml in REST is hardcoded to H2 -
    • -
    • [ACT-964] - Also catch and handle Errors when generating diagram -
    • -
    • [ACT-1005] - Activiti jpa integration does not merge detached entities -
    • -
    • [ACT-1012] - REST - Get form properties from startform -
    • -
    • [ACT-1036] - Check for isActive flag before going to sleep in JobAcqusitionThread -
    • -
    • [ACT-1038] - Improve JobAcqusitionThread -
    • -
    • [ACT-1045] - Finding a better way for executing task rejected by ThreadPoolExecutor. -
    • -
    • [ACT-1052] - Activiti-cdi: Upgrade Jboss Weld to resolve Issue with BeforeShutdown event in ActivitiExtension -
    • -
    • [ACT-1055] - Activiti cdi: Change ProcessEngineLookup into a java.util.ServiceLoader like SPI -
    • -
    • [ACT-1072] - Execution gets stuck after nested Sub-Process with no outgoing Sequence Flows -
    • -
    • [ACT-1079] - TimerEntity#getPersistentState() should include duedate field -
    • -
    • [ACT-1104] - Overload method to pass in process variables to RuntimeService.signal -
    • -
    • [ACT-1105] - Activiti -cdi: use signal method to pass in process variables to execution -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-441] - Allow historic queries for a specific date range -
    • -
    • [ACT-456] - Sending mails with Activiti with TLS (eg using Gmail as SMTP) -
    • -
    • [ACT-461] - Activity type for executing OS commands -
    • -
    • [ACT-846] - Add Scrollbars to Process image in Explorer2 -
    • -
    • [ACT-883] - Variable query support for HistoricProcessInstances -
    • -
    • [ACT-903] - RuntimeService.signal should be able to take signalName -
    • -
    • [ACT-945] - Enable creating new users through rest interface -
    • -
    • [ACT-947] - Retrieve process variables through REST interface -
    • -
    • [ACT-985] - Support activiti:priority userTask extension at run-time -
    • -
    • [ACT-989] - Implement exclusive jobs -
    • -
    • [ACT-1004] - There is no ability to sort process instances by 'start time' in Activiti-API. Good if it would be... -
    • -
    • [ACT-1021] - Trigger BPMN Error Events from Java Delegate -
    • -
    • [ACT-1028] - Support default values for form properties -
    • -
    • [ACT-1034] - Fix synchronization on isActive and isJobAdded fields in JobAcquisitionThread -
    • -
    • [ACT-1068] - Error Event Sub-Process -
    • -
    • [ACT-1074] - Support suspension of JobExecution for particular ProcessDefinitions and ProcessInstances -
    • -
    • [ACT-1086] - Add "businessKey" query capabilities to TaskQuery and ExecutionQuery -
    • -
    • [ACT-1091] - Add support for persistent event subscriptions -
    • -
    • [ACT-1092] - Add support for bpmn20 signal throw and catch in engine -
    • -
    • [ACT-1093] - Add support for bpmn20 event based gateway in engine -
    • -
    • [ACT-1094] - Add support for bpmn20 compensation in engine -
    • -
    • [ACT-1095] - Add support for bpmn20 transactions in engine -
    • -
    • [ACT-1103] - Add support for bpmn20 message start event in engine -
    • -
    • [ACT-1107] - Implement None Intermediate Throw Event -
    • -
    - -

    Task -

    -
      -
    • [ACT-34] - Refactor JobExecutor threading -
    • -
    • [ACT-994] - Get contributor agreement from Thilo -
    • -
    - - -

    Release Notes - Activiti - Version 5.8

    - -

    Highlights

    -
      -
    • Asynchronous continations (tech preview)
    • -
    • Added BPMN inclusive gateway
    • -
    • Improved Spring support
    • -
    • CDI integration improvements
    • -
    • Bug fixes
    • -
    - -

    Bug -

    -
      -
    • [ACT-908] - Designer .activiti file won't compile and generate a BPMN 2.0 xml file -
    • -
    • [ACT-910] - duplication of flownodes when nodes are out of order -
    • -
    • [ACT-919] - Activiti-cdi: make interceptors serializable -
    • -
    • [ACT-922] - Activiti-cdi: make sure to use the right BeanManager in ProgrammaticLookups -
    • -
    • [ACT-924] - BPMN Export fails for Sequence Flows under IBM JDK because of wrong namespace definition in SequenceFlowExport.java -
    • -
    • [ACT-937] - Desiger form property editor flips ID and Name fields -
    • -
    • [ACT-939] - Mime-type and extension of uploaded attachments isn't handled correctly -
    • -
    • [ACT-943] - ReceiveTask with TimerBoundaryEvent not working as expected ! -
    • -
    • [ACT-957] - Unable to add 2 timerBoundaryEvents in sub process -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-288] - Variable with authenticated user for be used inside form -
    • -
    • [ACT-909] - Null-check for process name in explorer2 ui -
    • -
    • [ACT-918] - Activiti-cdi: revisit process variable handling and interceptor -
    • -
    • [ACT-926] - Add method that is called when root-element of BPMN is parsed to BPMNParseListener -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-126] - Asynchronous continuations -
    • -
    • [ACT-890] - Add Inclusive Gateway Support -
    • -
    • [ACT-916] - Activiti-cdi: add thread context for thread-scoped associations -
    • -
    • [ACT-917] - Activiti-cdi: add execution-based associations. -
    • -
    - - -

    Release Notes - Activiti - Version 5.7

    - -

    Highlights

    -
      -
    • A new Activiti Explorer application completely rewritten in Vaadin
    • -
    • The REST services have been rewritten to Restlet
    • -
    - -

    Important

    - -

    - A couple of add-on applications have spun off from the Activiti download and - started life on their own. Activiti Modeler continues as a Google code project - called Signavio Core Components. - Activiti Cycle now lives on as Camunda Fox. - An evolved version of Activiti KickStart will become part of a new Alfresco cloud case management - solution. -

    - -

    - Activiti Explorer has acquired Activiti Probe for an undisclosed amount :-) The resulting - Activiti Explorer has been restyled and includes more dynamic task management features. -

    - -

    - The REST services were rewritten with the Restlet framework with backwards compatibility, so the REST interfaces haven't changed. - The previous versions of Activiti included a REST services web application that used the Spring Surf and Webscripts framework. - To implement a new or revised REST service you had to learn these frameworks. With moving to Restlet implementing new or revised REST services has become really simple. -

    - -

    - The demo setup has been limited to H2 database only, as many people struggled with getting - the demo setup to run on their databases. The demo setup is a quick way to get familiar - with Activiti and its tools, but it is by no means meant for production purposes. - A section 'Changing the database' has been added to the userguide and is intended for advanced users - who want to run the Activiti tools on their servers and databases. -

    - - -

    Sub-task -

    -
      -
    • [ACT-705] - Enable opening a call activity's process if it exists in the workspace -
    • -
    - -

    Bug -

    -
      -
    • [ACT-481] - Replacing MailTask with ServiceTask by reconnecting connections renders different type of connection after deletion of MailTask -
    • -
    • [ACT-629] - BPMN waypoints are not created accurately -
    • -
    • [ACT-768] - JtaTransactionInterceptor should not rollback existing JTA transactions but use setRollbackOnly instead -
    • -
    • [ACT-803] - Activiti-Designer creates activiti:field for empty field-values which causes an error on deployment of bar on activiti-probe -
    • -
    • [ACT-842] - Activiti explorer pretty-time label tooltip doesn't show time, only date -
    • -
    • [ACT-856] - Error format xml in parameters of Call-Activity -
    • -
    • [ACT-867] - Login page of activiti explorer 2 is not showing in ie -
    • -
    • [ACT-879] - Designer plugin creates multiple extensionElements Nodes in a serviceTask Node -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-730] - Easier way to retrieve businessKey from task listeners -
    • -
    • [ACT-833] - [PATCH] make new explorer SSO friendly -
    • -
    • [ACT-835] - Make commands serializable -
    • -
    • [ACT-841] - Designer changes timer start event to none start event -
    • -
    • [ACT-843] - Rendering variable values in process-instance view should be made pluggable -
    • -
    • [ACT-860] - Ability to set targetNamespace /process definition category -
    • -
    • [ACT-880] - Add query capbility to search for historic process instances based on the parent process instance id -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-450] - Use a Activiti XSD for the XML editor -
    • -
    • [ACT-708] - Allow dragging a shape and connector directly from the context buttons -
    • -
    • [ACT-846] - Add Scrollbars to Process image in Explorer2 -
    • -
    • [ACT-852] - Support timer start event -
    • -
    - -

    Task -

    -
      -
    • [ACT-436] - Create retry interceptor -
    • -
    • [ACT-773] - Define strategy for classloading -
    • -
    • [ACT-787] - Enable probe functionality subset in the new webapp -
    • -
    • [ACT-836] - Cleaning obsolete modules from codebase -
    • -
    • [ACT-839] - Remove impl from the public javadocs -
    • -
    • [ACT-849] - Integrate explorer 2 in demo setup -
    • -
    • [ACT-857] - Limit demo setup to H2 -
    • -
    • [ACT-864] - Add support for MS SQL bootstrap -
    • -
    - - -

    Release Notes - Activiti - Version 5.6

    -

    Highlights

    -
      -
    • Added direct Mule and Camel integration
    • -
    • Easier way to retrieve businessKey from task listeners
    • -
    • Improved support for Alfresco processes
    • -
    • Added support for delegateExpressions in tasklistener
    • -
    • Added support for BPMN multi instance in the eclipse designer
    • -
    • Extended length of all user defined text columns to 4000
    • -
    - -

    Known upgrade limitation

    -

    In the DB schema creation scripts, we've enlarged the max size of certain varchar columns from 255 to 4000. - See ACT-236. These schema updates are not part of the - automatic upgrade procedure. -

    - -

    Max length of following columns has been set to 4000: -

    - -
      -
    • ACT_RU_JOB.EXCEPTION_MSG_
    • -
    • ACT_RU_JOB.HANDLER_CFG_
    • -
    • ACT_RE_PROCDEF.RESOURCE_NAME_
    • -
    • ACT_RE_PROCDEF.DGRM_RESOURCE_NAME_
    • -
    • ACT_RU_TASK.DESCRIPTION_
    • -
    • ACT_RU_VARIABLE.TEXT_
    • -
    • ACT_RU_VARIABLE.TEXT2_
    • -
    • ACT_HI_TASKINST.DESCRIPTION_
    • -
    • ACT_HI_TASKINST.DELETE_REASON_
    • -
    • ACT_HI_DETAIL.TEXT_
    • -
    • ACT_HI_DETAIL.TEXT2_
    • -
    • ACT_HI_COMMENT.MESSAGE_
    • -
    • ACT_HI_ATTACHMENT.DESCRIPTION_
    • -
    • ACT_HI_ATTACHMENT.URL_
    • -
    - -

    If you want to perform these changes, you can do that manually. Check your database capabilities for the - easiest way on changing the type of columns from varchar(255) to varchar(4000). As a fall back, - for each table affected, you can: -

    -
      -
    1. create a new temporary table
    2. -
    3. copy the contents from the original to the temporary table
    4. -
    5. delete the original table
    6. -
    7. recreate the original table using the new create script with the proper lengths
    8. -
    9. copy the contents from the temporary table back to the new original table
    10. -
    11. drop the temporary table
    12. -
    - -

    Bug -

    -
      -
    • [ACT-665] - Activiti Designer 0.8.0 can not delete by keyboard -
    • -
    • [ACT-691] - Cannot see property changes when clicking on new tasks (Activiti Engine) -
    • -
    • [ACT-786] - NPE on default sequenceFlow without id -
    • -
    • [ACT-803] - Activiti-Designer creates activiti:field for empty field-values which causes an error on deployment of bar on activiti-probe -
    • -
    • [ACT-806] - Bug: multi instance service task with collection doesnt inject collection element -
    • -
    • [ACT-808] - Support for default sequence flow in Activiti Designer -
    • -
    • [ACT-809] - Deploying Webservice -
    • -
    • [ACT-813] - deleting task cascading problem for new variable instances -
    • -
    • [ACT-826] - Rules Filter in Business Rules Task -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-730] - Easier way to retrieve businessKey from task listeners -
    • -
    • [ACT-795] - Refactor BPMN 2.0 validation to worker list -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-236] - Introduce new variable type text -
    • -
    • [ACT-781] - Allow to set charset when sending email -
    • -
    • [ACT-797] - Set a userTask priority on the bpmn20.xml -
    • -
    • [ACT-799] - Implement support for specifying timer event definitions other than timeDuration -
    • -
    • [ACT-805] - Add Ant view to Activiti perspective -
    • -
    • [ACT-807] - support definition of delegateExpressions in tasklistener -
    • -
    • [ACT-811] - Support BPMN Multi-instance -
    • -
    - -

    Task -

    -
      -
    • [ACT-703] - Complement palette -
    • -
    • [ACT-780] - Enhancing the create task input field -
    • -
    • [ACT-788] - Enable Alfresco user repository integration in the new webapp -
    • -
    - -

    Release Notes - Activiti - Version 5.5

    - -

    Highlights

    -
      -
    • Added CDI support
    • -
    • Added dynamic sub task capabilities
    • -
    • Added support for event/activity streams
    • -
    • In the eclipse process designer,added support for default value for CustomServiceTask fields
    • -
    • Simplified persistence
    • -
    • Performance improvements
    • -
    • Many bug fixes
    • -
    - -

    Bug -

    -
      -
    • [ACT-477] - Creating new diagram using wizard with existing name overwrites without warning -
    • -
    • [ACT-718] - Ternary operator not working in Listener field expression -
    • -
    • [ACT-757] - calledElement missing from call activity in generated bpmn -
    • -
    • [ACT-764] - MultiInstance doesn't work for serviceTask -
    • -
    • [ACT-765] - Initial priority from task is not stored on HistoricTaskInstanceEntity -
    • -
    • [ACT-766] - Querying tasks causes HistoricTaskInstanceEntity to be loaded for each result -
    • -
    • [ACT-782] - Javadoc of org.activiti.engine.test.Deployment is inconsistent with its implementation -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-653] - When folders src/test/java and src/test/resources are missing my unittests are not generated -
    • -
    • [ACT-725] - Expose task query criteria for priority >= and <= in addition to = -
    • -
    • [ACT-728] - When creating a process model not in src/main/resources (e.g. test), the activiti file is created in the src/main/resources anyway -
    • -
    • [ACT-732] - Upgrade to iBatis 3.04 -
    • -
    • [ACT-735] - Task owner is not stored on the HistoricTaskInstance -
    • -
    • [ACT-742] - Use spring to wire explorer 2 application -
    • -
    • [ACT-744] - Management pages should only be visible for admins -
    • -
    • [ACT-750] - Refactor task-lists in explorer 2 -
    • -
    • [ACT-752] - Add more demo-data to explorer 2 -
    • -
    • [ACT-753] - Navigate to task URL for task where user is not involved should be forbidden -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-559] - Allow default value for CustomServiceTask fields -
    • -
    • [ACT-644] - Add support for dynamic subtasks -
    • -
    • [ACT-743] - Add screen to edit user profile -
    • -
    • [ACT-746] - Add people involvement in task UI -
    • -
    • [ACT-747] - Add support for dynamic tasks in explorer UI -
    • -
    • [ACT-748] - Add support for showing/adding subtasks in UI -
    • -
    • [ACT-751] - Show event-stream in new explorer -
    • -
    • [ACT-755] - Add/remove related URL to task -
    • -
    • [ACT-759] - Allow user assignable Id for process elements. -
    • -
    • [ACT-760] - Add Skype buttons -
    • -
    - -

    Task -

    -
      -
    • [ACT-741] - Refactoring persistence -
    • -
    • [ACT-754] - Apply styling to vaadin-components -
    • -
    • [ACT-767] - Add support for Events -
    • -
    • [ACT-790] - Look at cycle persistence -
    • -
    - -

    Test -

    -
      -
    • [ACT-745] - Incorporate user/group administration into explorer 2 -
    • -
    - -

    Release Notes - Activiti - Version 5.4

    - -

    Compatibility note

    -

    After releasing 5.3, we discovered that - execution listeners and task listeners and expressions were still in non-public api. Those classes were in subpackages - of org.activiti.engine.impl..., which has impl in it). - org.activiti.engine.impl.pvm.delegate.ExecutionListener, - org.activiti.engine.impl.pvm.delegate.TaskListener and - org.activiti.engine.impl.pvm.el.Expression - have been deprecated. From now on, you should use org.activiti.engine.delegate.ExecutionListener, - org.activiti.engine.delegate.TaskListener and org.activiti.engine.delegate.Expression. - In the new publicly available API, access to - ExecutionListenerExecution.getEventSource() has been removed. Apart from the deprecation - compiler warning, the existing code should run fine. But consider switching to the new public - API interfaces (without .impl. in the package name). -

    - -

    Highlights

    -
      -
    • Added first version of BPM-Roundtrip with Activiti Cycle (see this Screencast)
    • -
    • Started building case management features in the engine: Added dynamic comments, attachments and due dates to tasks in Activiti Engine
    • -
    • IMAP folder scanning for new tasks
    • -
    • Added accounts to users in Activiti Engine
    • -
    • Provided support to specify form properties in Activiti Designer Eclipse plugin
    • -
    • Many bug fixes
    • -
    - -

    Sub-task -

    -
      -
    • [ACT-692] - Activiti Designer 0.8.0 can not show diagram with callActivity tasks -
    • -
    - -

    Bug -

    -
      -
    • [ACT-607] - Developer Friendly BPMN doesn't remove Pools/Lanes in DI -
    • -
    • [ACT-634] - Generated Jar file is invalid -
    • -
    • [ACT-666] - Activiti 5.3 demo setup does not work on JDK 5 -
    • -
    • [ACT-667] - Diagram is cut off in some cases -
    • -
    • [ACT-668] - Mail task doesnt leave activity -
    • -
    • [ACT-670] - Designer 0.8.0 generates wrong bpmnElement references for subprocess elements -
    • -
    • [ACT-681] - Db autodiscovery for DB2 does not work on all installations of DB2 -
    • -
    • [ACT-685] - Executing processes can cause StackOverflows -
    • -
    • [ACT-695] - Exception when using HistoricVariables of type ByteArray on Postgres -
    • -
    • [ACT-731] - Webservice invocation doesnt continue process execution -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-655] - Throw better exception when form is not found -
    • -
    • [ACT-669] - FormService.submitStartFormData should provide a way to specify businessKey for process instance -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-459] - Query for tasks for a specific process definition -
    • -
    • [ACT-564] - Add dueDate to tasks -
    • -
    • [ACT-661] - Parse process definition documentation -
    • -
    • [ACT-663] - Provide support to specify form properties -
    • -
    • [ACT-672] - Allow querying task based on process-instance variable -
    • -
    • [ACT-673] - Extend HistoricTaskInstanceQuery sorting: assignee, taskId -
    • -
    • [ACT-675] - Allow querying HistoricTaskInstances based on the state of historic process-instance (running/completed) -
    • -
    • [ACT-676] - Allow querying HistoricTaskInstances based on the value of the last variable-update for a certain task-variable -
    • -
    • [ACT-677] - Query HistoricTaskInstances based on the process definition key, id and name -
    • -
    • [ACT-688] - Add comments to tasks and process instances -
    • -
    • [ACT-712] - Create feature that scans a IMAP-folder and creates task for each email in it. -
    • -
    - -

    Task -

    -
      -
    • [ACT-628] - Resolve publicly exposed implementation classes -
    • -
    • [ACT-648] - Fix activiti-cycle-maven-template.zip -
    • -
    • [ACT-649] - Document process instance visualization in Probe & REST -
    • -
    • [ACT-650] - Verify links to jdk, eclipse and ant in userguide -
    • -
    • [ACT-652] - Ensure docs on how to deploy from designer to engine -
    • -
    • [ACT-679] - Add attachments to tasks and to process instances -
    • -
    • [ACT-687] - Add owner property to tasks -
    • -
    • [ACT-690] - Verify activiti dependency versions against the ones used in Alfresco -
    • -
    • [ACT-694] - Add photo, skypeid and other account data to identities -
    • -
    • [ACT-696] - Prototype new Explorer UI -
    • -
    - - -

    Release Notes - Activiti - Version 5.3

    - -

    Highlights

    -
      -
    • Added BPMN multi instance (==foreach) support
    • -
    • Added BPMN intermediate timer catch event
    • -
    • Added business rule task with Drools integration
    • -
    • Improved Spring integrations: added possibility to limit visibility of beans and also exposed spring beans in scripts
    • -
    • Added administrator console to manage users and groups
    • -
    • Added automatic DB type discovery
    • -
    • Various bug fixes
    • -
    - -

    Bug -

    -
      -
    • [ACT-485] - Fields in HistoricTaskInstance aren't updated when corresponding Task fields are updated using API -
    • -
    • [ACT-568] - Deleting an gateway does not delete the associated sequence flows -
    • -
    • [ACT-575] - Name of node in diagram not updated in specific case -
    • -
    • [ACT-589] - Kickstart does not display properly on 1024x768 -
    • -
    • [ACT-592] - Nullpointer when trying to set variables on process-instance which is waiting in a Task with a timer on it, when history-level is FULL -
    • -
    • [ACT-598] - Bug in drawing of process diagrams: sequence flow out of gateways can't have conditional markers -
    • -
    • [ACT-599] - BPMN20ExportMarshaller generates wrong id for startEvent and endEvent elements of subProcesses -
    • -
    • [ACT-603] - docs for generated processdefinition id not correct -
    • -
    • [ACT-604] - Cannot add variables to standalone task when history level is 'full' -
    • -
    • [ACT-610] - ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE does not work with Oracle -
    • -
    • [ACT-611] - It's not possible to delete sequenceFlows -
    • -
    • [ACT-612] - ServiceTask: Switching the type from class to expression doesn't update BPMN2.0.xml -
    • -
    • [ACT-618] - Call of setter before null check in file BpmnParse -
    • -
    • [ACT-621] - When creating HistoricFormPropertyEntity query for HistoricActivityInstance isn't limited to the active one -
    • -
    • [ACT-625] - Task form just displays a Failure error when deployed from Eclipse Designer -
    • -
    • [ACT-627] - Subprocess Start and End event ids incorrectly generated -
    • -
    • [ACT-629] - BPMN waypoints are not created accurately -
    • -
    • [ACT-631] - Investigate potential concurrency bug -
    • -
    • [ACT-637] - Using a call activity with activiti: in extension for variable passing results in null pointer when history level set to "full" -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-429] - Allow to use expressions in timer duration -
    • -
    • [ACT-484] - Add task priority to HistoricTaskInstance -
    • -
    • [ACT-529] - Processimage name does not follow conventions used by explorer/API to show or get image -
    • -
    • [ACT-530] - Deployment doesn't export process image -
    • -
    • [ACT-549] - Need brief documentation of working with Eclipse Designer Sources -
    • -
    • [ACT-584] - Add ability to delete IdentityLinks using API and DelegateTask -
    • -
    • [ACT-585] - Limiting/disabling spring-beans in expressions should be possible -
    • -
    • [ACT-587] - FieldInjection should try public setter first and revert to setting private field -
    • -
    • [ACT-600] - Review and improve 10 minute tutorial -
    • -
    • [ACT-601] - Review and improve Designer section in userguide -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-469] - Add support for specifying a Form key for StartEvent in Designer -
    • -
    • [ACT-483] - Support for specifying a form (form key) on a StartEvent -
    • -
    • [ACT-506] - For each support (Multi instance) -
    • -
    • [ACT-527] - Implement a Business Rule Task with Drools integration -
    • -
    • [ACT-581] - CallActivity with in/out parameters: Add sourceExpression and documentation to User Guide -
    • -
    • [ACT-582] - Add deleteHistoricProcessInstance() to HistoryService -
    • -
    • [ACT-588] - Extend TaskQuery to add variableValue querying similar to the ProcessInstanceQuery -
    • -
    • [ACT-593] - Allow firing of custom events to the active node on a given execution -
    • -
    • [ACT-596] - Result DTO of KickstartService.findKickstartWorkflowById() is missing Task-ID's -
    • -
    • [ACT-606] - Open existing BPMN XML directly in the project with the Designer -
    • -
    • [ACT-641] - Implement intermediate timer catch event -
    • -
    - -

    Task -

    -
      -
    • [ACT-97] - Expose spring beans in Scripts -
    • -
    • [ACT-416] - Document how to open mgr of the in memory db -
    • -
    • [ACT-422] - Make spring parsing dependency optional -
    • -
    • [ACT-442] - expose root cause for class not found exceptions -
    • -
    • [ACT-526] - Provide Money tasks example code from userguide in repository -
    • -
    • [ACT-540] - Distill db name from the datasource -
    • -
    • [ACT-571] - Upgrade KickStart to Vaadin 6.5.0 -
    • -
    • [ACT-574] - Rename service task resultVariableName to resultVariable -
    • -
    • [ACT-623] - Simplify access to process engine configuration through Context -
    • -
    • [ACT-632] - Update repo link -
    • -
    • [ACT-642] - Include MIT license file in the activiti-modeler.war distribution file -
    • -
    • [ACT-645] - Merge Administrator branch into trunk -
    • -
    - - - -

    Release Notes - Activiti - Version 5.2

    - -

    Highlights

    -
      -
    • First version of the jBPM-Activiti migration
    • -
    • Visualization of the current activity in Activiti Probe
    • -
    • Added support for BPMN error event in Activiti Engine
    • -
    • Added support for BPMN 2.0 import in Activiti Designer
    • -
    • Improved form datatypes
    • -
    • Automated in container testing
    • -
    • Various bug fixes
    • -
    - -

    Sub-task -

    -
      -
    • [ACT-512] - Add Checkbox control -
    • -
    • [ACT-513] - Add static dropdown control -
    • -
    • [ACT-514] - Add radio control -
    • -
    • [ACT-515] - Add datepicker control -
    • -
    - -

    Bug -

    -
      -
    • [ACT-428] - It is not possible to use function with more then 1 argument as custom assignment handler for candidateGroups -
    • -
    • [ACT-473] - ProcessEngineFactoryBean fails to register created process engine properly -
    • -
    • [ACT-474] - Activiti Designer doesn't support multiple end events -
    • -
    • [ACT-479] - Vacation Request form example code in user guide is not correct -
    • -
    • [ACT-505] - Process definition cache not in sync when redeploying process definition with same generated id -
    • -
    • [ACT-509] - Reported progress for ExportMarshallers and ProcessValidators is incorrect -
    • -
    • [ACT-533] - In Eclipse the export process to bpmn20.xml fails in some attributes of "UserTask" -
    • -
    • [ACT-557] - Field TASK_DEF_KEY_ is not populated on ACT_HI_TASK and not exposed on HistoricTaskInstance -
    • -
    • [ACT-572] - Maven "check" profile states successful build when there are test-failures -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-467] - Invalid small icon path throws unclear exception -
    • -
    • [ACT-492] - Incorrect icon paths result in exceptions for CustomServiceTasks -
    • -
    • [ACT-498] - Include active activity instance id on HistoricVariableUpdate when variable is updated -
    • -
    • [ACT-499] - Start- and end-event should also be include as HistoricActivityInstance when history-level is at FULL -
    • -
    • [ACT-534] - The BPMN validator should not fail validation if CustomServiceTasks are included -
    • -
    • [ACT-567] - Allow assignee of a task to be set to null -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-15] - Implement BPMN boundary error event -
    • -
    • [ACT-281] - BPMN default sequence flow -
    • -
    • [ACT-354] - Add data mapping capabilities in call activity -
    • -
    • [ACT-446] - Add support for execution and task listener configuration -
    • -
    • [ACT-447] - Add support for a receive task -
    • -
    • [ACT-511] - Add support for simple controls in CustomServiceTasks -
    • -
    • [ACT-543] - Capture initiator in KickStart -
    • -
    • [ACT-554] - Return deploymentId when deploying process in AdhocWorkflowService (KickStart) -
    • -
    • [ACT-555] - Rename AdhocWorkflowService to KickstartService -
    • -
    • [ACT-560] - Improve CallActivity for independant subprocess to support parameters -
    • -
    • [ACT-563] - Start JBPM Migration -
    • -
    • [ACT-569] - Visualize current activities of process instances in probe -
    • -
    - -

    Task -

    -
      -
    • [ACT-108] - Create server script for continuous integration -
    • -
    • [ACT-457] - Support the documentation element -
    • -
    • [ACT-486] - User library is not present by default -
    • -
    • [ACT-494] - Refactor deployments -
    • -
    • [ACT-496] - Change action icons to links -
    • -
    • [ACT-504] - Document exception handling in service task -
    • -
    • [ACT-510] - Check export for each PropertyType to BPMN -
    • -
    • [ACT-544] - Fix oracle metadata problem -
    • -
    - -

    Wish -

    -
      -
    • [ACT-188] - Source jar files are not published on maven repository -
    • -
    • [ACT-476] - document the activiti database tables -
    • -
    - - -

    Release Notes - Activiti - Version 5.1

    - -

    Warning

    -

    The automatic upgrade does not have enough coverage to have full confidence. - For more info, see the user guide, section Database upgrade. -

    - -

    Changes

    -
      -
    • In attribute <serviceTask delegateExpression="..."> previously always performed a leave after - calling the delegate that was obtained by evaluating the expression. Which means that it's always an automatic - activity. Now the leave is only performed only when the delegate object implements JavaDelegate. In case the - delegate object implements ActivityBehavior the leave will not be called. In that case, the ActivityBehavior is - responsible for calling leave if it wants to be an automatic activity. -
    • -
    - -

    Highlights

    -
      -
    • Added Activiti KickStart making the creation of new BPMN process models as easy as 1, 2, 3
    • -
    • Added automatic upgrade of the DB schema from 5.0 to 5.1
    • -
    • Added generation of process definition diagram based on DI information
    • -
    • Added display of process definition diagram
    • -
    • Added historic task instances
    • -
    • Added Comments to artifacts in Cycle
    • -
    • Improved Cycle Plug-In Infrastructure (now using Annotations)
    • -
    • Fixed various bugs
    • -
    - -

    Sub-task -

    -
      -
    • [ACT-386] - Split the BPMN 2.0 marshalling into marshalling and validation parts -
    • -
    - -

    Bug -

    -
      -
    • [ACT-418] - Missing groovy dependency in demo setup -
    • -
    • [ACT-419] - Remove automatic leave when using delegateExpression in serviceTask -
    • -
    • [ACT-424] - BPMN Export differs between manual and automatic and causes unnecessary exceptions -
    • -
    • [ACT-430] - SequenceFlows are only deleted for Task elements -
    • -
    • [ACT-434] - SaveHandler is only invoked from key combination -
    • -
    • [ACT-443] - HistoricDetail doesn't use activitiyInstanceId -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-18] - Show process definition diagram -
    • -
    • [ACT-226] - Retrieve the expression from the PvmTransition -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-336] - Create email service task node -
    • -
    • [ACT-385] - Create extension point to validate diagrams -
    • -
    • [ACT-408] - Allow usage of lists as property of CustomServiceTask -
    • -
    • [ACT-413] - Allow parametrization of PropertyTypes -
    • -
    • [ACT-421] - Introduce task-local variables -
    • -
    • [ACT-455] - Make parselisteners configurable on ProcessEngineConfiguration -
    • -
    • [ACT-464] - Introduce HistoricTaskInstance -
    • -
    • [ACT-470] - Create and include Activiti KickStart in the distribution -
    • -
    - -

    Task -

    -
      -
    • [ACT-293] - Refactor variable map -
    • -
    • [ACT-420] - Automatic upgrade -
    • -
    • [ACT-439] - Extract image generation in code in module activiti-engine -
    • -
    • [ACT-440] - Add process image generation to bpmn deployer -
    • -
    • [ACT-444] - Add task query criteria for taskDefinitionKey and -Like -
    • -
    • [ACT-458] - Check if seperate selectTaskByQueryCriteria is needed for MySQL in task.mapping.xml -
    • -
    • [ACT-471] - Add taskId ref to HistoricDetail -
    • -
    - -

    Release Notes - Activiti - Version 5.0

    - -

    Highlights

    -
      -
    • Various bug fixes
    • -
    • Activiti Engine: Added more configuration options and synced standalone with Spring configuration
    • -
    • Activiti Engine: Added task listeners
    • -
    • Activiti Probe: Deployment through file upload
    • -
    • Activiti Cycle: Loads of improvements for the GUI, tagging and linking, new connectors for SVN and SFTP, Maven project generation
    • -
    • Activiti Designer: Possibility to add your own developed nodes to the Designer with the Designer extension functionality
    • -
    • Activiti Designer: BPMN 2.0 XML editor with content assist
    • -
    • Activiti Designer: Deployment editor with support to generate a BAR file
    • -
    • Activiti Designer: Support for e-mail and manual tasks
    • -
    • Activiti Designer: Field extensions editor for the Service task and support for expressions
    • -
    • Activiti Designer: Support for Formkey attribute for User tasks
    • -
    • Activiti Designer: Automatic generation of the BPMN 2.0 XML and a process image after each save of the editor diagram (no need to for an explicit export).
    • -
    - -

    Bug -

    -
      -
    • [ACT-194] - Business model is not persisted when reconnecting SequenceFlow -
    • -
    • [ACT-215] - TaskEntity does not populate processInstanceId -
    • -
    • [ACT-217] - Review documentation -
    • -
    • [ACT-225] - Cannot see database view in Probe -
    • -
    • [ACT-255] - Access via url to Explorer lose url after authentication. -
    • -
    • [ACT-295] - Sorting processes on name doesn't work -
    • -
    • [ACT-297] - Error when creating link in activiti-cycle on postgres DB -
    • -
    • [ACT-306] - Nullpointer exception when sequence flow has invalid destination -
    • -
    • [ACT-308] - Review DeployBarTask handling when no ProcessEngine is found -
    • -
    • [ACT-314] - REST-call task get doesn't return valid JSON -
    • -
    • [ACT-318] - Cannot open PNG picture in Activiti-Cycle if the model name has whitespaces in the name -
    • -
    • [ACT-320] - Replace of JAVA_OPTS in demo setup not working on Windows -
    • -
    • [ACT-323] - Business key not persisted in HistoricProcessInstance -
    • -
    • [ACT-329] - HistoricProcessInstance startActivityId() and endActivityId() is always null -
    • -
    • [ACT-334] - Remove check whether user/group exists when claim/addCandidateXX/etc. -
    • -
    • [ACT-338] - Pagination Links in Processes List in Activiti Explorer doesn't work -
    • -
    • [ACT-347] - Fix Spring bean usage in ServiceTask -
    • -
    • [ACT-351] - Possible illegal query results when querying ProcessInstances by date/long variable value -
    • -
    • [ACT-352] - HistoricVariableUpdate of type byteArray/serializable throws NPE when calling getValue() -
    • -
    • [ACT-353] - Boolean variables are stored as bytearray -
    • -
    • [ACT-366] - Problems with Umlauts in Modeler -
    • -
    • [ACT-369] - Modeler requires Java 6 to run -
    • -
    • [ACT-371] - Latest SVG API doesn't work with Activiti Modeler examples -
    • -
    • [ACT-377] - Empty diagrams have no Process entity by default -
    • -
    • [ACT-379] - Methode getLabels() is missing in Shape -
    • -
    • [ACT-391] - Exception with BPMN 2.0 XML Export of examples in Modeler. -
    • -
    • [ACT-403] - Cycle in demo-setup throws exception when opening 'Activiti Modeler' node in tree -
    • -
    • [ACT-405] - Cycle create-scripts for oracle contain errors -
    • -
    • [ACT-409] - Task form properties not persisted on history level audit -
    • -
    - -

    Improvement -

    -
      -
    • [ACT-162] - Simplify extensibility of identity component -
    • -
    • [ACT-212] - Prefix foreign keys with FK_ACT_* instead of FK_* -
    • -
    • [ACT-252] - Typo in warning message is misleading: "XPath currently not supported as typeLanguage" -
    • -
    • [ACT-274] - Switch to Spring Surf/Webscripts 1.0 for all web applications & rest api (and use its new abstract authenticator base class) -
    • -
    • [ACT-292] - Stop making default event being bookmarked -
    • -
    • [ACT-327] - Add finished() to the HistoricActivityInstanceQuery to be able find all completed activities -
    • -
    • [ACT-328] - add getId() into HisctoricActivitiInstance and add search by id into HistoricActivitiInstanceQuery -
    • -
    • [ACT-359] - Invoke export to BPMN 2.0 automatically via ExportMarshaller extension point -
    • -
    - -

    New Feature -

    -
      -
    • [ACT-211] - BPMN: assignment handler -
    • -
    • [ACT-222] - Make activiti jars valid OSGi bundles -
    • -
    • [ACT-235] - Add an OSGi extender to deploy activiti processes as osgi bundles along with the needed URL handlers and fileinstall deployers -
    • -
    • [ACT-278] - Add support for extending designer's functionality with custom service tasks -
    • -
    • [ACT-290] - SVG API should not peform access to Signavio Academic Version in the Internet -
    • -
    • [ACT-300] - Deploy business archive with Activiti Probe -
    • -
    • [ACT-301] - Expose getFormService() for ActivitiRule -
    • -
    • [ACT-360] - Provide an osgi web bundle for the rest api -
    • -
    • [ACT-363] - Bug with relative paths in Modler Backend -
    • -
    • [ACT-364] - The BPMN 2.0 serialization isn't the latest version -
    • -
    • [ACT-365] - The BPMN 2.0 DI is still the early draft, not the spec version -
    • -
    • [ACT-367] - Release a new Maven version of the Signavio core components and upload them to the alfresco repository -
    • -
    • [ACT-396] - activiti.cfg.jar should go in webapps\activiti-rest\WEB-INF\lib as well -
    • -
    - -

    Task -

    -
      -
    • [ACT-123] - Review the user guide for experimental features -
    • -
    • [ACT-163] - Investigate if smaller groovy jar is sufficient -
    • -
    • [ACT-171] - Remove model repository workaround in demo.setup -
    • -
    • [ACT-180] - Fix forced downloads in mule build -
    • -
    • [ACT-205] - Create Ant script to assemble update site -
    • -
    • [ACT-256] - Changed config param dbSchemaStrategy to databaseSchemaUpdate -
    • -
    • [ACT-296] - Fix date picker in safari -
    • -
    • [ACT-299] - Fix JobQuery test -
    • -
    • [ACT-311] - Rename JavaDelegation to JavaDelegate -
    • -
    • [ACT-315] - fix wsdl importer parsing -
    • -
    • [ACT-317] - Improve lib dependency management in distribution -
    • -
    • [ACT-321] - Add orderByCreateTime() to TaskQuery -
    • -
    • [ACT-332] - Make variable types configurable -
    • -
    • [ACT-335] - Move modeler patching from demo setup to a dedicated build -
    • -
    • [ACT-337] - Refactor distribution to remove maven and include the libs in the distro -
    • -
    • [ACT-340] - Add process definition diagram resource property -
    • -
    • [ACT-342] - Make sessions configurable -
    • -
    • [ACT-348] - Make handling of process definition resource name and other resource names consistent -
    • -
    • [ACT-349] - Delete rest 2 webapp -
    • -
    • [ACT-355] - Test java delegations in demo setup after distro refactoring -
    • -
    • [ACT-358] - Lazy initialization of delegation classes -
    • -
    • [ACT-378] - Unify and simplify configuration -
    • -
    • [ACT-381] - Verify history level configuration -
    • -
    • [ACT-383] - Fix exception message -
    • -
    • [ACT-393] - Create build file for example projects to deploy business archives and classes -
    • -
    • [ACT-394] - Review setup target cfg.create -
    • -
    • [ACT-395] - Doc URIEncoding for Activiti Modeler -
    • -
    • [ACT-399] - Check driver jars and setup demo.start with other dbs -
    • -
    • [ACT-400] - Add release notes to the readme.html -
    • -
    • [ACT-401] - Add cxf module to the checkmule profile -
    • -
    • [ACT-402] - Add version number to userguide title -
    • -
    - -

    5.0.rc1 (November 1, 2010)

    - -

    Highlights

    - -
      -
    • Activiti Probe added Job and Deployment management
    • -
    • Event listeners
    • -
    • Query for process instances based on variable values
    • -
    • Parameterized method expressions
    • -
    • History details and audit capabilities
    • -
    • Extracted FormService and improved flexible form handling
    • -
    • Activiti config file from properties to xml
    • -
    • PostgreSQL en Oracle support
    • -
    • Improved DB performance by fine tuning indexes
    • -
    - -

    Known limitations

    -
      -
    • [ACT-294] - Currently the forms as worked out in Activiti Explorer - do not yet use the submitStartFormData and submitTaskFormData. - So the form properties are not yet archived when using the forms in Activity Explorer. -
    • -
    - -

    Sub-tasks

    -
      -
    • [ACT-191] - Documentation Mistake in ProcessEngineFactoryBean section of User Guide -
    • -
    - -

    Bug

    -
      -
    • [ACT-144] - Canot start process instance when sorted on version first -
    • -
    • [ACT-192] - Table "ACT_ID_GROUP" not found for dbSchemaStrategy = "create-drop" -
    • -
    • [ACT-194] - Business model is not persisted when reconnecting SequenceFlow -
    • -
    • [ACT-195] - UpdateConnectionFlowElementFeature is not invoked for SequenceFlows -
    • -
    • [ACT-206] - Cannot unclaim a task -
    • -
    • [ACT-233] - Connection pool of Ibatis is not used in standalone usage -
    • -
    • [ACT-287] - Starting process instance in explorer doesn't show 'Start form' anymore when the process has a startform -
    • -
    - -

    Improvement

    -
      -
    • [ACT-21] - Manage list of deployments -
    • -
    • [ACT-22] - Manage list of jobs -
    • -
    • [ACT-23] - Add no-wrap to task list menu navigation -
    • -
    • [ACT-129] - Make connection pool of MyBatis configurable -
    • -
    • [ACT-138] - Create REST API for Manage list of jobs -
    • -
    • [ACT-139] - REST API for Manage list of deployments -
    • -
    • [ACT-179] - Fix css code so its consistent with the rest of the app -
    • -
    • [ACT-189] - Engine should be able to resolve parameterised method expressions -
    • -
    • [ACT-196] - Process and subprocess diagram should have default content -
    • -
    • [ACT-197] - SequenceFlow arrowheads are mispositioned and too large -
    • -
    • [ACT-209] - Expose Task start time in interface and query API -
    • -
    • [ACT-210] - Rename ActivitiRule.getHistoricDataService() to ActivitiRule.getHistoryService() -
    • -
    • [ACT-213] - Verify all basic indices exist on supported databases -
    • -
    • [ACT-214] - Clarify documentation demo setup -
    • -
    • [ACT-216] - ServiceTaskMethodExpressionActivityBehavior / ServiceTaskValueExpressionActivityBehavior should support storing service task return value in process variable -
    • -
    • [ACT-219] - Update Userguide with latest UI changes -
    • -
    • [ACT-224] - Allow parsing of document element for all activity types -
    • -
    • [ACT-230] - Change BpmnParse: instead of throwing an exception, use the addProblem() method -
    • -
    • [ACT-238] - Extract common methods from Query API to single Interface -
    • -
    • [ACT-241] - Handle closing of inputstreams in a consistent way -
    • -
    • [ACT-246] - Missing warning when process has a construct which is unsupported. -
    • -
    • [ACT-257] - Define a order for group list (left panel) -
    • -
    • [ACT-259] - Make method naming in Query API consistent -
    • -
    • [ACT-260] - Make namespace prefix consistent activiti: -
    • -
    • [ACT-261] - Change dashes in xml-entities to camelCase -
    • -
    • [ACT-265] - Always use ReflectUtil to do classloader-related operations -
    • -
    • [ACT-272] - Only use 'Expression' instead of making distinction between value/method -
    • -
    - -

    New Feature

    -
      -
    • [ACT-120] - Audit tracking -
    • -
    • [ACT-125] - BPMN: add event listeners -
    • -
    • [ACT-145] - Add Task.getTaskDefinitionKey() -
    • -
    • [ACT-148] - Make Activiti "offline runnable" -
    • -
    • [ACT-152] - Introduce business key -
    • -
    • [ACT-190] - Query for process instances based on variable values -
    • -
    • [ACT-208] - Cannot remove a variable -
    • -
    • [ACT-220] - Allow for parameter injection in method-expr on service-task -
    • -
    • [ACT-242] - Expose process definition model for introspection -
    • -
    • [ACT-258] - Introduce form instances -
    • -
    • [ACT-273] - Allow user to customize preference of automatically adding labels to sequence flows -
    • -
    - -

    Task

    -
      -
    • [ACT-134] - Revisit configuration -
    • -
    • [ACT-137] - Add oracle support -
    • -
    • [ACT-174] - Document link to Signavio community in our wiki -
    • -
    • [ACT-183] - Remove 'about' tabs in the webapps -
    • -
    • [ACT-186] - Improve exception analysis when no tables are present -
    • -
    • [ACT-193] - Bring CYCLE_CONFIG in sync with rest of table naming conventions -
    • -
    • [ACT-243] - Expose Execution.getProcessInstanceId -
    • -
    • [ACT-245] - review variable in ByteArrayEntity -
    • -
    • [ACT-247] - Clean unused table columns -
    • -
    • [ACT-248] - Verify HistoricProcessInstance query filtering -
    • -
    • [ACT-251] - Add task audit to history -
    • -
    • [ACT-262] - Check docs about bar file classloading -
    • -
    • [ACT-263] - Use a correct versioning scheme for activiti-juel module -
    • -
    • [ACT-264] - Remove eclipse/idea files from trunk -
    • -
    • [ACT-266] - Make demo-setup run on Postgres -
    • -
    • [ACT-267] - Merge pvm and juel modules into engine -
    • -
    • [ACT-282] - Transform BpmnJavaDelegation class to JavaDelegation interface -
    • -
    • [ACT-283] - rename activiti bpmn extensions namespace -
    • -
    - -

    Test

    -
      -
    • [ACT-221] - Add an integration test for the webservice task solely based on CXF -
    • -
    - - -

    5.0.beta2 (October 1, 2010)

    - -

    Highlights

    - -
      -
    • Added Activiti Designer, an eclipse plugin for process authoring targetted for developers -
        -
      • Design BPMN processes grafically: start event, end event, sequence flow, parallel gateway, exclusive gateway, embedded subprocess, script task, user task and service task.
      • -
      • Generate JUnit test case by right click on the process in the package explorer
      • -
      • Run the JUnit test with an embedded h2 database
      • -
      • Configure Java class for a service task
      • -
      • Configure assignee or candidate for a user task
      • -
      • Configure script with a script task
      • -
      -
    • -
    • Added DB support for MySQL and PostgreSQL
    • -
    • Activiti Modeler and Activiti Engine are now synced on the final BPMN 2.0 specification
    • -
    • New improved version of Activiti Modeler
    • -
    • Loads of Activiti Cycle improvements
    • -
    • Added JDK 5 compatibility
    • -
    • Added history activity instances
    • -
    • Added unit testing support
    • -
    • Added email support and receive activity
    • -
    • Added optimistic locking for out-of-the-box clustering support
    • -
    • Added more query APIs
    • -
    • Minor API cleanup
    • -
    - -

    Bug

    - -
      -
    • [ACT-1] - Change init servlet into context listener -
    • -
    • [ACT-56] - Activiti Modeler is bound to localhost instead of the actual servername -
    • -
    • [ACT-57] - Condition on sequence flow is not saved to bpmn20.xml file after reopening an existing process -
    • -
    • [ACT-71] - Activiti Modeler doesn't work if not installed by demo setup -
    • -
    • [ACT-76] - JSON Response contains unescaped control caharcters -
    • -
    • [ACT-94] - java.util.logging.ErrorManager/ NullPointerException in catalina.out at startup of tomcat -
    • -
    • [ACT-113] - Modeler "Save" does not regenerate bpmn20.xml file -
    • -
    • [ACT-114] - Unable to save newly created diagram twice -
    • -
    • [ACT-115] - Table ACT_GE_PROPERTY cannot be created on MySQL with UTF-8 encoding due to limitation of key index length -
    • -
    • [ACT-142] - Logo is linked to Signavio jBpm page -
    • -
    • [ACT-181] - Automatic deployment on resource change doesn't work -
    • -
    - -

    Improvement

    -
      -
    • [ACT-7] - Move logging.properties process activiti-engines-init to tomcat installation -
    • -
    • [ACT-23] - Add no-wrap to task list menu navigation -
    • -
    • [ACT-64] - Configure Tomcat in demo setup to have more memory -
    • -
    • [ACT-66] - Make task form rendering consistent in API -
    • -
    • [ACT-68] - Make demo.setup run on MySQL -
    • -
    • [ACT-69] - Add ant target to start up h4 console -
    • -
    • [ACT-70] - Review API and build systematic test coverage -
    • -
    • [ACT-73] - Document usage of activiti prefix -
    • -
    • [ACT-104] - Replace findXxx methods returning lists with query API -
    • -
    • [ACT-140] - REST API for Show process definition diagram -
    • -
    • [ACT-158] - ScriptTaskActivity should support storing script execution result in a process variable with configurable name -
    • -
    • [ACT-182] - Add internal support for create-if-necessary db schema stragegy -
    • -
    - -

    New Feature

    -
      -
    • [ACT-35] - Provide external URL for navigating task forms -
    • -
    • [ACT-83] - Capture the initiator -
    • -
    • [ACT-109] - BPMN: document receive task -
    • -
    • [ACT-146] - Add Activiti FavIcon to webapp -
    • -
    • [ACT-168] - Introduce identityLink in API -
    • -
    - -

    Task

    -
      -
    • [ACT-30] - Finish the basic history data model -
    • -
    • [ACT-44] - Verify exception and rollback behavior in Spring context -
    • -
    • [ACT-49] - make activiti compatible with jdk 5 -
    • -
    • [ACT-52] - Remove BPMN 2.0 Beta compatibility -
    • -
    • [ACT-67] - Rename modules activiti-probe to activiti-webapp-probe, similar for activiti-explorer -
    • -
    • [ACT-78] - move sortorder out of the interface package -
    • -
    • [ACT-84] - move parsing of value expression to bpmn parser -
    • -
    • [ACT-87] - Fill exception field when job fails -
    • -
    • [ACT-89] - Review test support -
    • -
    • [ACT-95] - fix testTwoNestedSubProcessesInParallelWithTimer -
    • -
    • [ACT-103] - Consider removing Page from engine interface -
    • -
    • [ACT-105] - Add auto redirect to Activiti Modeler -
    • -
    • [ACT-106] - Add testing for optimistic locking -
    • -
    • [ACT-110] - Move Chapter 11. Running QA tests to wiki -
    • -
    • [ACT-124] - Document library dependencies -
    • -
    • [ACT-127] - Restructure modules -
    • -
    • [ACT-130] - Reupload Maven artifacts due to checksum error -
    • -
    • [ACT-131] - Switch to new repository/build for Ativiti Modeler -
    • -
    • [ACT-133] - Refactor start process instance -
    • -
    • [ACT-135] - Cleanup unused task properties -
    • -
    • [ACT-136] - Verify MySQL -
    • -
    • [ACT-153] - Replace DbSchemaStrategy enum with String -
    • -
    • [ACT-155] - Create Junit @Rule test with ActivitiRule and document it -
    • -
    • [ACT-156] - Revise Java service task: introduce BpmnJavaDelegation and field injection -
    • -
    • [ACT-157] - Create mail activity -
    • -
    • [ACT-159] - Remove expressionLanguage and typeLanguage in examples -
    • -
    • [ACT-167] - fix excluded test RepositoryConnectorConfigurationManagerImplTest -
    • -
    • [ACT-177] - Document configuration file properties -
    • -
    - - -

    5.0.beta1 (September 1, 2010)

    - -

    Known limitations

    -
      -
    • Optimistic locking isn't tested yet [ACT-106]
    • -
    • History only contains HistoricProcessInstances, no HistoricActivityInstances yet [ACT-30]
    • -
    • Some API changes are still expected [ACT-104]
    • -
    -

    New Features

    -
      -
    • [ACT-55] - Introduce first version of Activiti-Cycle -
    • [ACT-91] - Expand serviceTask with method and value expressions -
    • -
    -

    Bugs

    -
      -
    • [ACT-39] - fix ProcessEngineInitializationTest -
    • -
    • [ACT-98] - REST API errors -
    • -
    • [ACT-99] - Table records don't show -
    • -
    -

    Improvements

    -
      -
    • [ACT-2] - Clean up API -
    • -
    • [ACT-6] - Rename DbProcessEngineBuilder to ProcessEngineBuilder -
    • -
    • [ACT-60] - pvm refactoring -
    • -
    • [ACT-79] - Please add a ELResolver that automatically resolves any bean in the Spring BeanFactory in which the ELResolver resides -
    • -
    • [ACT-80] - Extend service task to SignallableActivityBehavior -
    • -
    • [ACT-82] - Expose form attribute from Task object -
    • -
    -

    Tasks

    -
      -
    • [ACT-48] - Add Grails plugin link to docs or website -
    • -
    • [ACT-59] - define table/column naming strategy -
    • -
    • [ACT-61] - Introduce query API for deployments and resources -
    • -
    • [ACT-75] - document maven repo in the website community page -
    • -
    • [ACT-85] - Improve error message when db driver is not found -
    • -
    • [ACT-86] - Fix classpath in setup script for other dbs -
    • -
    • [ACT-90] - Add Spring integration examples and documentation -
    • -
    • [ACT-96] - Cycle demo build creates 2 files in codebase -
    • -
    • [ACT-101] - Add sorting of the table names in Probe -
    • -
    - -

    5.0.alpha4 (August 1, 2010)

    -

    Improvements

    -
      -
    • MySQL support
    • -
    • Support for method expressions on sequence flow
    • -
    • Revised ActivityExecution API
    • -
    • Added ConcurrencyController API
    • -
    • Process Event Bus
    • -
    • Taskforms: added date and date picker support
    • -
    • Explorer: changed process definition drop down list to a separate page
    • -
    - -

    New features

    -
      -
    • BPMN parallel gateway
    • -
    • BPMN manual task
    • -
    • BPMN (embedded) subprocess
    • -
    • BPMN call activity (subprocess)
    • -
    • BPMN Java service task
    • -
    • Spring integration (experimental, no docs yet)
    • -
    - -

    Bugfixes

    -
      -
    • Made engine compatible with BPMN 2.0 beta process models
    • -
    • Fixed exception on windows and linux when using boundary timer event
    • -
    • Expression cannot have whitespaces
    • -
    - -

    5.0.alpha3 (July 1, 2010)

    -

    Improvements

    -
      -
    • Switch from iBatis to MyBatis
    • -
    • JobExecutor
    • -
    • BPMN Timers
    • -
    • BPMN JSR 223 script support.
    • -
    • Updated to a newer version of BPMN xsd
    • -
    • Query API
    • -
    • Switched JUnit usage from 3-style inheritance to 4-style annotations
    • -
    - -

    5.0.alpha2 (June 1, 2010)

    -

    Improvements

    -
      -
    • Task forms in Activiti Explorer
    • -
    • Database table content viewer in Activiti Probe
    • -
    • Exclusive gateway
    • -
    • Unified Expression Language support
    • -
    • Reduced download size
    • -
    -

    Known limitations

    -
      -
    • No history in Activiti Engine
    • -
    • Only single DB: H2
    • -
    • Only one tx demarcation tech: standalone JDBC
    • -
    • No process concurrency
    • -
    -

    5.0.alpha1 (May 17, 2010)

    -

    Known limitations

    -
      -
    • No history in Activiti Engine
    • -
    • Only single DB: H2
    • -
    • Only one tx demarcation tech: standalone JDBC
    • -
    • No task forms
    • -
    • No process concurrency
    • -
    • No Activiti Cycle
    • -
    - - - diff --git a/assets/css/main.scss b/assets/css/main.scss new file mode 100644 index 00000000..fbc2a31c --- /dev/null +++ b/assets/css/main.scss @@ -0,0 +1,39 @@ +--- +--- + +/* + * Minimal Mistakes Jekyll Theme + * + * - Michael Rose + * - mademistakes.com + * - https://twitter.com/mmistakes + * +*/ + +@import "vendor/breakpoint/breakpoint"; // media query mixins +@import "variables"; +@import "mixins"; +@import "vendor/susy/susy"; + +@import "reset"; +@import "base"; + +@import "utilities"; +@import "animations"; +@import "tables"; +@import "buttons"; +@import "notices"; +@import "masthead"; +@import "navigation"; +@import "footer"; +@import "syntax"; + +@import "forms"; + +@import "page"; +@import "archive"; +@import "sidebar"; + +@import "vendor/font-awesome/font-awesome"; +@import "vendor/magnific-popup/magnific-popup"; +@import "print"; \ No newline at end of file diff --git a/assets/fonts/FontAwesome.otf b/assets/fonts/FontAwesome.otf new file mode 100644 index 00000000..d4de13e8 Binary files /dev/null and b/assets/fonts/FontAwesome.otf differ diff --git a/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..c7b00d2b Binary files /dev/null and b/assets/fonts/fontawesome-webfont.eot differ diff --git a/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..8b66187f --- /dev/null +++ b/assets/fonts/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..f221e50a Binary files /dev/null and b/assets/fonts/fontawesome-webfont.ttf differ diff --git a/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..6e7483cf Binary files /dev/null and b/assets/fonts/fontawesome-webfont.woff differ diff --git a/assets/fonts/fontawesome-webfont.woff2 b/assets/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..7eb74fd1 Binary files /dev/null and b/assets/fonts/fontawesome-webfont.woff2 differ diff --git a/assets/js/_main.js b/assets/js/_main.js new file mode 100644 index 00000000..e67a317e --- /dev/null +++ b/assets/js/_main.js @@ -0,0 +1,82 @@ +/* ========================================================================== + jQuery plugin settings and other scripts + ========================================================================== */ + +$(document).ready(function(){ + + // FitVids init + $("#main").fitVids(); + + // init sticky sidebar + $(".sticky").Stickyfill(); + + var stickySideBar = function(){ + var show = $(".author__urls-wrapper button").length === 0 ? $(window).width() > 1024 : !$(".author__urls-wrapper button").is(":visible"); + // console.log("has button: " + $(".author__urls-wrapper button").length === 0); + // console.log("Window Width: " + windowWidth); + // console.log("show: " + show); + //old code was if($(window).width() > 1024) + if (show) { + // fix + Stickyfill.rebuild(); + Stickyfill.init(); + $(".author__urls").show(); + } else { + // unfix + Stickyfill.stop(); + $(".author__urls").hide(); + } + }; + + stickySideBar(); + + $(window).resize(function(){ + stickySideBar(); + }); + + // Follow menu drop down + + $(".author__urls-wrapper button").on("click", function() { + $(".author__urls").fadeToggle("fast", function() {}); + $(".author__urls-wrapper button").toggleClass("open"); + }); + + // init smooth scroll + $("a").smoothScroll({offset: -20}); + + // add lightbox class to all image links + $("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"); + + // Magnific-Popup options + $(".image-popup").magnificPopup({ + // disableOn: function() { + // if( $(window).width() < 500 ) { + // return false; + // } + // return true; + // }, + type: 'image', + tLoading: 'Loading image #%curr%...', + gallery: { + enabled: true, + navigateByImgClick: true, + preload: [0,1] // Will preload 0 - before current, and 1 after the current image + }, + image: { + tError: 'Image #%curr% could not be loaded.', + }, + removalDelay: 500, // Delay in milliseconds before popup is removed + // Class that is added to body when popup is open. + // make it unique to apply your CSS animations just to this exact popup + mainClass: 'mfp-zoom-in', + callbacks: { + beforeOpen: function() { + // just a hack that adds mfp-anim class to markup + this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim'); + } + }, + closeOnContentClick: true, + midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source. + }); + +}); diff --git a/assets/js/main.min.js b/assets/js/main.min.js new file mode 100644 index 00000000..e44be7f2 --- /dev/null +++ b/assets/js/main.min.js @@ -0,0 +1,5 @@ +function updateNav(){var e=$btn.hasClass("hidden")?$nav.width():$nav.width()-$btn.width()-30;$vlinks.width()>e?(breaks.push($vlinks.width()),$vlinks.children().last().prependTo($hlinks),$btn.hasClass("hidden")&&$btn.removeClass("hidden")):(e>breaks[breaks.length-1]&&($hlinks.children().first().appendTo($vlinks),breaks.pop()),breaks.length<1&&($btn.addClass("hidden"),$hlinks.addClass("hidden"))),$btn.attr("count",breaks.length),$vlinks.width()>e&&updateNav()}!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Te.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function r(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(Ae)||[],function(e,n){t[n]=!0}),t}function a(){ie.addEventListener?(ie.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(ie.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(ie.addEventListener||"load"===e.event.type||"complete"===ie.readyState)&&(a(),pe.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var i="data-"+t.replace(He,"-$1").toLowerCase();if(n=e.getAttribute(i),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Ie.test(n)?pe.parseJSON(n):n)}catch(e){}pe.data(e,t,n)}else n=void 0}return n}function u(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,i){if(De(e)){var r,o,a=pe.expando,s=e.nodeType,l=s?pe.cache:e,u=s?e[a]:e[a]&&a;if(u&&l[u]&&(i||l[u].data)||void 0!==n||"string"!=typeof t)return u||(u=s?e[a]=ne.pop()||pe.guid++:a),l[u]||(l[u]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(i?l[u]=pe.extend(l[u],t):l[u].data=pe.extend(l[u].data,t)),o=l[u],i||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(r=o[t],null==r&&(r=o[pe.camelCase(t)])):r=o,r}}function d(e,t,n){if(De(e)){var i,r,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(i=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in i?t=[t]:(t=pe.camelCase(t),t=t in i?[t]:t.split(" ")),r=t.length;for(;r--;)delete i[t[r]];if(n?!u(i):!pe.isEmptyObject(i))return}(n||(delete a[s].data,u(a[s])))&&(o?pe.cleanData([e],!0):de.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function f(e,t,n,i){var r,o=1,a=20,s=i?function(){return i.cur()}:function(){return pe.css(e,t,"")},l=s(),u=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==u&&+l)&&Me.exec(pe.css(e,t));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do o=o||".5",c/=o,pe.style(e,t,c+u);while(o!==(o=s()/l)&&1!==o&&--a)}return n&&(c=+c||+l||0,r=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=r)),r}function p(e){var t=We.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,i,r=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(i=n[r]);r++)!t||pe.nodeName(i,t)?o.push(i):pe.merge(o,h(i,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function m(e,t){for(var n,i=0;null!=(n=e[i]);i++)pe._data(n,"globalEval",!t||pe._data(t[i],"globalEval"))}function g(e){qe.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t,n,i,r){for(var o,a,s,l,u,c,d,f=e.length,v=p(t),y=[],b=0;f>b;b++)if(a=e[b],a||0===a)if("object"===pe.type(a))pe.merge(y,a.nodeType?[a]:a);else if(Ye.test(a)){for(l=l||v.appendChild(t.createElement("div")),u=($e.exec(a)||["",""])[1].toLowerCase(),d=Xe[u]||Xe._default,l.innerHTML=d[1]+pe.htmlPrefilter(a)+d[2],o=d[0];o--;)l=l.lastChild;if(!de.leadingWhitespace&&Re.test(a)&&y.push(t.createTextNode(Re.exec(a)[0])),!de.tbody)for(a="table"!==u||Ue.test(a)?""!==d[1]||Ue.test(a)?0:l:l.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(y,l.childNodes),l.textContent="";l.firstChild;)l.removeChild(l.firstChild);l=v.lastChild}else y.push(t.createTextNode(a));for(l&&v.removeChild(l),de.appendChecked||pe.grep(h(y,"input"),g),b=0;a=y[b++];)if(i&&pe.inArray(a,i)>-1)r&&r.push(a);else if(s=pe.contains(a.ownerDocument,a),l=h(v.appendChild(a),"script"),s&&m(l),n)for(o=0;a=l[o++];)ze.test(a.type||"")&&n.push(a);return l=null,v}function y(){return!0}function b(){return!1}function x(){try{return ie.activeElement}catch(e){}}function w(e,t,n,i,r,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(i=i||n,n=void 0);for(s in t)w(e,s,n,i,t[s],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),r===!1)r=b;else if(!r)return e;return 1===o&&(a=r,r=function(e){return pe().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,r,i,n)})}function C(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function T(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function k(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function E(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,i,r,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(i=0,r=s[n].length;r>i;i++)pe.event.add(t,n,s[n][i])}a.data&&(a.data=pe.extend({},a.data))}}function S(e,t){var n,i,r;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!de.noCloneEvent&&t[pe.expando]){r=pe._data(t);for(i in r.events)pe.removeEvent(t,i,r.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(T(t).text=e.text,k(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),de.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&qe.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function N(e,t,n,i){t=oe.apply([],t);var r,o,a,s,l,u,c=0,d=e.length,f=d-1,p=t[0],m=pe.isFunction(p);if(m||d>1&&"string"==typeof p&&!de.checkClone&&it.test(p))return e.each(function(r){var o=e.eq(r);m&&(t[0]=p.call(this,r,o.html())),N(o,t,n,i)});if(d&&(u=v(t,e[0].ownerDocument,!1,e,i),r=u.firstChild,1===u.childNodes.length&&(u=r),r||i)){for(s=pe.map(h(u,"script"),T),a=s.length;d>c;c++)o=u,c!==f&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(l=s[s.length-1].ownerDocument,pe.map(s,k),c=0;a>c;c++)o=s[c],ze.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(l,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(ot,"")));u=r=null}return e}function L(e,t,n){for(var i,r=t?pe.filter(t,e):e,o=0;null!=(i=r[o]);o++)n||1!==i.nodeType||pe.cleanData(h(i)),i.parentNode&&(n&&pe.contains(i.ownerDocument,i)&&m(h(i,"script")),i.parentNode.removeChild(i));return e}function A(e,t){var n=pe(t.createElement(e)).appendTo(t.body),i=pe.css(n[0],"display");return n.detach(),i}function j(e){var t=ie,n=ut[e];return n||(n=A(e,t),"none"!==n&&n||(lt=(lt||pe("',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(z),T("BeforeChange",function(e,t,n){t!==n&&(t===z?W():n===z&&W(!0))}),T(l+"."+z,function(){W()})},getIframe:function(n,i){var r=n.src,o=t.st.iframe;e.each(o.patterns,function(){if(r.indexOf(this.index)>-1)return this.id&&(r="string"==typeof this.id?r.substr(r.lastIndexOf(this.id)+this.id.length,r.length):this.id.call(this,r)),r=this.src.replace("%id%",r),!1});var a={};return o.srcAction&&(a[o.srcAction]=r),t._parseMarkup(i,a,n),t.updateStatus("ready"),i}}});var X=function(e){var n=t.items.length;return e>n-1?e-n:e<0?n+e:e},Y=function(e,t,n){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,n)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var n=t.st.gallery,i=".mfp-gallery",o=Boolean(e.fn.mfpFastClick);return t.direction=!0,!(!n||!n.enabled)&&(a+=" mfp-gallery",T(p+i,function(){n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function(){if(t.items.length>1)return t.next(),!1}),r.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),T("UpdateStatus"+i,function(e,n){n.text&&(n.text=Y(n.text,t.currItem.index,t.items.length))}),T(f+i,function(e,i,r,o){var a=t.items.length;r.counter=a>1?Y(n.tCounter,o.index,a):""}),T("BuildControls"+i,function(){if(t.items.length>1&&n.arrows&&!t.arrowLeft){var i=n.arrowMarkup,r=t.arrowLeft=e(i.replace(/%title%/gi,n.tPrev).replace(/%dir%/gi,"left")).addClass(b),a=t.arrowRight=e(i.replace(/%title%/gi,n.tNext).replace(/%dir%/gi,"right")).addClass(b),s=o?"mfpFastClick":"click";r[s](function(){t.prev()}),a[s](function(){t.next()}),t.isIE7&&(k("b",r[0],!1,!0),k("a",r[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(r.add(a))}}),T(h+i,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),void T(l+i,function(){r.off(i),t.wrap.off("click"+i),t.arrowLeft&&o&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null}))},next:function(){t.direction=!0,t.index=X(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=X(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),r=Math.min(n[1],t.items.length);for(e=1;e<=(t.direction?r:i);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?i:r);e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=X(n),!t.items[n].preloaded){var i=t.items[n];i.parsed||(i=t.parseEl(n)),E("LazyLoad",i),"image"===i.type&&(i.img=e('').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,E("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var U="retina";e.magnificPopup.registerModule(U,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,n=e.ratio;n=isNaN(n)?n():n,n>1&&(T("ImageHasSize."+U,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),T("ElementParse."+U,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function(){var t=1e3,n="ontouchstart"in window,i=function(){C.off("touchmove"+o+" touchend"+o)},r="mfpFastClick",o="."+r;e.fn.mfpFastClick=function(r){return e(this).each(function(){var a,s=e(this);if(n){var l,u,c,d,f,p;s.on("touchstart"+o,function(e){d=!1,p=1,f=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],u=f.clientX,c=f.clientY,C.on("touchmove"+o,function(e){f=e.originalEvent?e.originalEvent.touches:e.touches,p=f.length,f=f[0],(Math.abs(f.clientX-u)>10||Math.abs(f.clientY-c)>10)&&(d=!0,i())}).on("touchend"+o,function(e){i(),d||p>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){a=!1},t),r())})})}s.on("click"+o,function(){a||r()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+o+" click"+o),n&&C.off("touchmove"+o+" touchend"+o)}}(),N()}(window.jQuery||window.Zepto),!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(e){var t="1.7.2",n={},i={exclude:[],excludeWithin:[],offset:0,direction:"top",delegateSelector:null,scrollElement:null,scrollTarget:null,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficient:2,preventDefault:!0},r=function(t){var n=[],i=!1,r=t.dir&&"left"===t.dir?"scrollLeft":"scrollTop";return this.each(function(){var t=e(this);if(this!==document&&this!==window)return!document.scrollingElement||this!==document.documentElement&&this!==document.body?void(t[r]()>0?n.push(this):(t[r](1),i=t[r]()>0,i&&n.push(this),t[r](0))):(n.push(document.scrollingElement),!1)}),n.length||this.each(function(){this===document.documentElement&&"smooth"===e(this).css("scrollBehavior")&&(n=[this]),n.length||"BODY"!==this.nodeName||(n=[this])}),"first"===t.el&&n.length>1&&(n=[n[0]]),n};e.fn.extend({scrollable:function(e){var t=r.call(this,{dir:e});return this.pushStack(t)},firstScrollable:function(e){var t=r.call(this,{el:"first",dir:e});return this.pushStack(t)},smoothScroll:function(t,n){if(t=t||{},"options"===t)return n?this.each(function(){var t=e(this),i=e.extend(t.data("ssOpts")||{},n);e(this).data("ssOpts",i)}):this.first().data("ssOpts");var i=e.extend({},e.fn.smoothScroll.defaults,t),r=function(t){var n=function(e){return e.replace(/(:|\.|\/)/g,"\\$1")},r=this,o=e(this),a=e.extend({},i,o.data("ssOpts")||{}),s=i.exclude,l=a.excludeWithin,u=0,c=0,d=!0,f={},p=e.smoothScroll.filterPath(location.pathname),h=e.smoothScroll.filterPath(r.pathname),m=location.hostname===r.hostname||!r.hostname,g=a.scrollTarget||h===p,v=n(r.hash);if(v&&!e(v).length&&(d=!1),a.scrollTarget||m&&g&&v){for(;d&&u=0;e--)u(I[e])}function u(e){if(e.inited){var t=_.top<=e.limit.start?0:_.top>=e.limit.end?2:1;e.mode!=t&&m(e,t)}}function c(){for(var e=I.length-1;e>=0;e--)if(I[e].inited){var t=Math.abs(b(I[e].clone)-I[e].docOffsetTop),n=Math.abs(I[e].parent.node.offsetHeight-I[e].parent.height);if(t>=2||n>=2)return!1}return!0}function d(e){isNaN(parseFloat(e.computed.top))||e.isCell||"none"==e.computed.display||(e.inited=!0,e.clone||g(e),"absolute"!=e.parent.computed.position&&"relative"!=e.parent.computed.position&&(e.parent.node.style.position="relative"),u(e),e.parent.height=e.parent.node.offsetHeight,e.docOffsetTop=b(e.clone))}function f(e){var t=!0;e.clone&&v(e),i(e.node.style,e.css);for(var n=I.length-1;n>=0;n--)if(I[n].node!==e.node&&I[n].parent.node===e.parent.node){t=!1;break}t&&(e.parent.node.style.position=e.parent.css.position),e.mode=-1}function p(){for(var e=I.length-1;e>=0;e--)d(I[e])}function h(){for(var e=I.length-1;e>=0;e--)f(I[e])}function m(e,t){var n=e.node.style;switch(t){case 0:n.position="absolute",n.left=e.offset.left+"px",n.right=e.offset.right+"px",n.top=e.offset.top+"px",n.bottom="auto",n.width="auto",n.marginLeft=0,n.marginRight=0,n.marginTop=0;break;case 1:n.position="fixed",n.left=e.box.left+"px",n.right=e.box.right+"px",n.top=e.css.top,n.bottom="auto",n.width="auto",n.marginLeft=0,n.marginRight=0,n.marginTop=0;break;case 2:n.position="absolute",n.left=e.offset.left+"px",n.right=e.offset.right+"px",n.top="auto",n.bottom=0,n.width="auto",n.marginLeft=0,n.marginRight=0}e.mode=t}function g(e){e.clone=document.createElement("div");var t=e.node.nextSibling||e.node,n=e.clone.style;n.height=e.height+"px",n.width=e.width+"px",n.marginTop=e.computed.marginTop,n.marginBottom=e.computed.marginBottom,n.marginLeft=e.computed.marginLeft,n.marginRight=e.computed.marginRight,n.padding=n.border=n.borderSpacing=0,n.fontSize="1em",n.position="static",n.cssFloat=e.computed.cssFloat,e.node.parentNode.insertBefore(e.clone,t)}function v(e){e.clone.parentNode.removeChild(e.clone),e.clone=void 0}function y(e){var t=getComputedStyle(e),n=e.parentNode,i=getComputedStyle(n),o=e.style.position;e.style.position="relative";var a={top:t.top,marginTop:t.marginTop,marginBottom:t.marginBottom,marginLeft:t.marginLeft,marginRight:t.marginRight,cssFloat:t.cssFloat,display:t.display},s={top:r(t.top),marginBottom:r(t.marginBottom),paddingLeft:r(t.paddingLeft),paddingRight:r(t.paddingRight),borderLeftWidth:r(t.borderLeftWidth),borderRightWidth:r(t.borderRightWidth)};e.style.position=o;var l={position:e.style.position,top:e.style.top,bottom:e.style.bottom,left:e.style.left,right:e.style.right,width:e.style.width,marginTop:e.style.marginTop,marginLeft:e.style.marginLeft,marginRight:e.style.marginRight},u=x(e),c=x(n),d={node:n,css:{position:n.style.position},computed:{position:i.position},numeric:{borderLeftWidth:r(i.borderLeftWidth),borderRightWidth:r(i.borderRightWidth),borderTopWidth:r(i.borderTopWidth),borderBottomWidth:r(i.borderBottomWidth)}},f={node:e,box:{left:u.win.left,right:O.clientWidth-u.win.right},offset:{top:u.win.top-c.win.top-d.numeric.borderTopWidth,left:u.win.left-c.win.left-d.numeric.borderLeftWidth,right:-u.win.right+c.win.right-d.numeric.borderRightWidth},css:l,isCell:"table-cell"==t.display,computed:a, +numeric:s,width:u.win.right-u.win.left,height:u.win.bottom-u.win.top,mode:-1,inited:!1,parent:d,limit:{start:u.doc.top-s.top,end:c.doc.top+n.offsetHeight-d.numeric.borderBottomWidth-e.offsetHeight-s.top-s.marginBottom}};return f}function b(e){for(var t=0;e;)t+=e.offsetTop,e=e.offsetParent;return t}function x(e){var n=e.getBoundingClientRect();return{doc:{top:n.top+t.pageYOffset,left:n.left+t.pageXOffset},win:n}}function w(){D=setInterval(function(){!c()&&E()},500)}function C(){clearInterval(D)}function T(){H&&(document[P]?C():w())}function k(){H||(o(),p(),t.addEventListener("scroll",a),t.addEventListener("wheel",s),t.addEventListener("resize",E),t.addEventListener("orientationchange",E),e.addEventListener(B,T),w(),H=!0)}function E(){if(H){h();for(var e=I.length-1;e>=0;e--)I[e]=y(I[e].node);p()}}function S(){t.removeEventListener("scroll",a),t.removeEventListener("wheel",s),t.removeEventListener("resize",E),t.removeEventListener("orientationchange",E),e.removeEventListener(B,T),C(),H=!1}function N(){S(),h()}function L(){for(N();I.length;)I.pop()}function A(e){for(var t=I.length-1;t>=0;t--)if(I[t].node===e)return;var n=y(e);I.push(n),H?d(n):k()}function j(e){for(var t=I.length-1;t>=0;t--)I[t].node===e&&(f(I[t]),I.splice(t,1))}var _,D,I=[],H=!1,O=e.documentElement,M=function(){},P="hidden",B="visibilitychange";void 0!==e.webkitHidden&&(P="webkitHidden",B="webkitvisibilitychange"),t.getComputedStyle||n();for(var F=["","-webkit-","-moz-","-ms-"],q=document.createElement("div"),$=F.length-1;$>=0;$--){try{q.style.position=F[$]+"sticky"}catch(e){}""!=q.style.position&&n()}o(),t.Stickyfill={stickies:I,add:A,remove:j,init:k,rebuild:E,pause:S,stop:N,kill:L}}(document,window),window.jQuery&&!function(e){e.fn.Stickyfill=function(e){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery),$(document).ready(function(){$("#main").fitVids(),$(".sticky").Stickyfill();var e=function(){var e=0===$(".author__urls-wrapper button").length?$(window).width()>1024:!$(".author__urls-wrapper button").is(":visible");e?(Stickyfill.rebuild(),Stickyfill.init(),$(".author__urls").show()):(Stickyfill.stop(),$(".author__urls").hide())};e(),$(window).resize(function(){e()}),$(".author__urls-wrapper button").on("click",function(){$(".author__urls").fadeToggle("fast",function(){}),$(".author__urls-wrapper button").toggleClass("open")}),$("a").smoothScroll({offset:-20}),$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0})}); \ No newline at end of file diff --git a/assets/js/plugins/jquery.fitvids.js b/assets/js/plugins/jquery.fitvids.js new file mode 100644 index 00000000..5c2f85c9 --- /dev/null +++ b/assets/js/plugins/jquery.fitvids.js @@ -0,0 +1,82 @@ +/*jshint browser:true */ +/*! +* FitVids 1.1 +* +* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com +* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ +* Released under the WTFPL license - http://sam.zoy.org/wtfpl/ +* +*/ + +;(function( $ ){ + + 'use strict'; + + $.fn.fitVids = function( options ) { + var settings = { + customSelector: null, + ignore: null + }; + + if(!document.getElementById('fit-vids-style')) { + // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js + var head = document.head || document.getElementsByTagName('head')[0]; + var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}'; + var div = document.createElement("div"); + div.innerHTML = '

    x

    '; + head.appendChild(div.childNodes[1]); + } + + if ( options ) { + $.extend( settings, options ); + } + + return this.each(function(){ + var selectors = [ + 'iframe[src*="player.vimeo.com"]', + 'iframe[src*="youtube.com"]', + 'iframe[src*="youtube-nocookie.com"]', + 'iframe[src*="kickstarter.com"][src*="video.html"]', + 'object', + 'embed' + ]; + + if (settings.customSelector) { + selectors.push(settings.customSelector); + } + + var ignoreList = '.fitvidsignore'; + + if(settings.ignore) { + ignoreList = ignoreList + ', ' + settings.ignore; + } + + var $allVideos = $(this).find(selectors.join(',')); + $allVideos = $allVideos.not('object object'); // SwfObj conflict patch + $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. + + $allVideos.each(function(count){ + var $this = $(this); + if($this.parents(ignoreList).length > 0) { + return; // Disable FitVids on this video. + } + if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } + if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) + { + $this.attr('height', 9); + $this.attr('width', 16); + } + var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), + width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), + aspectRatio = height / width; + if(!$this.attr('id')){ + var videoID = 'fitvid' + count; + $this.attr('id', videoID); + } + $this.wrap('
    ').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); + $this.removeAttr('height').removeAttr('width'); + }); + }); + }; +// Works with either jQuery or Zepto +})( window.jQuery || window.Zepto ); \ No newline at end of file diff --git a/assets/js/plugins/jquery.greedy-navigation.js b/assets/js/plugins/jquery.greedy-navigation.js new file mode 100644 index 00000000..3f6c5415 --- /dev/null +++ b/assets/js/plugins/jquery.greedy-navigation.js @@ -0,0 +1,72 @@ +/* +* Greedy Navigation +* +* http://codepen.io/lukejacksonn/pen/PwmwWV +* +*/ + +var $nav = $('#site-nav'); +var $btn = $('#site-nav button'); +var $vlinks = $('#site-nav .visible-links'); +var $hlinks = $('#site-nav .hidden-links'); + +var breaks = []; + +function updateNav() { + + var availableSpace = $btn.hasClass('hidden') ? $nav.width() : $nav.width() - $btn.width() - 30; + + // The visible list is overflowing the nav + if($vlinks.width() > availableSpace) { + + // Record the width of the list + breaks.push($vlinks.width()); + + // Move item to the hidden list + $vlinks.children().last().prependTo($hlinks); + + // Show the dropdown btn + if($btn.hasClass('hidden')) { + $btn.removeClass('hidden'); + } + + // The visible list is not overflowing + } else { + + // There is space for another item in the nav + if(availableSpace > breaks[breaks.length-1]) { + + // Move the item to the visible list + $hlinks.children().first().appendTo($vlinks); + breaks.pop(); + } + + // Hide the dropdown btn if hidden list is empty + if(breaks.length < 1) { + $btn.addClass('hidden'); + $hlinks.addClass('hidden'); + } + } + + // Keep counter updated + $btn.attr("count", breaks.length); + + // Recur if the visible list is still overflowing the nav + if($vlinks.width() > availableSpace) { + updateNav(); + } + +} + +// Window listeners + +$(window).resize(function() { + updateNav(); +}); + +$btn.on('click', function() { + $hlinks.toggleClass('hidden'); + $(this).toggleClass('close'); +}); + +updateNav(); \ No newline at end of file diff --git a/assets/js/plugins/jquery.magnific-popup.js b/assets/js/plugins/jquery.magnific-popup.js new file mode 100644 index 00000000..27fce06b --- /dev/null +++ b/assets/js/plugins/jquery.magnific-popup.js @@ -0,0 +1,2049 @@ +/*! Magnific Popup - v0.9.9 - 2013-12-27 +* http://dimsemenov.com/plugins/magnific-popup/ +* Copyright (c) 2013 Dmitry Semenov; */ +;(function($) { + +/*>>core*/ +/** + * + * Magnific Popup Core JS file + * + */ + + +/** + * Private static constants + */ +var CLOSE_EVENT = 'Close', + BEFORE_CLOSE_EVENT = 'BeforeClose', + AFTER_CLOSE_EVENT = 'AfterClose', + BEFORE_APPEND_EVENT = 'BeforeAppend', + MARKUP_PARSE_EVENT = 'MarkupParse', + OPEN_EVENT = 'Open', + CHANGE_EVENT = 'Change', + NS = 'mfp', + EVENT_NS = '.' + NS, + READY_CLASS = 'mfp-ready', + REMOVING_CLASS = 'mfp-removing', + PREVENT_CLOSE_CLASS = 'mfp-prevent-close'; + + +/** + * Private vars + */ +var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this' + MagnificPopup = function(){}, + _isJQ = !!(window.jQuery), + _prevStatus, + _window = $(window), + _body, + _document, + _prevContentType, + _wrapClasses, + _currPopupType; + + +/** + * Private functions + */ +var _mfpOn = function(name, f) { + mfp.ev.on(NS + name + EVENT_NS, f); + }, + _getEl = function(className, appendTo, html, raw) { + var el = document.createElement('div'); + el.className = 'mfp-'+className; + if(html) { + el.innerHTML = html; + } + if(!raw) { + el = $(el); + if(appendTo) { + el.appendTo(appendTo); + } + } else if(appendTo) { + appendTo.appendChild(el); + } + return el; + }, + _mfpTrigger = function(e, data) { + mfp.ev.triggerHandler(NS + e, data); + + if(mfp.st.callbacks) { + // converts "mfpEventName" to "eventName" callback and triggers it if it's present + e = e.charAt(0).toLowerCase() + e.slice(1); + if(mfp.st.callbacks[e]) { + mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]); + } + } + }, + _getCloseBtn = function(type) { + if(type !== _currPopupType || !mfp.currTemplate.closeBtn) { + mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) ); + _currPopupType = type; + } + return mfp.currTemplate.closeBtn; + }, + // Initialize Magnific Popup only when called at least once + _checkInstance = function() { + if(!$.magnificPopup.instance) { + mfp = new MagnificPopup(); + mfp.init(); + $.magnificPopup.instance = mfp; + } + }, + // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr + supportsTransitions = function() { + var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist + v = ['ms','O','Moz','Webkit']; // 'v' for vendor + + if( s['transition'] !== undefined ) { + return true; + } + + while( v.length ) { + if( v.pop() + 'Transition' in s ) { + return true; + } + } + + return false; + }; + + + +/** + * Public functions + */ +MagnificPopup.prototype = { + + constructor: MagnificPopup, + + /** + * Initializes Magnific Popup plugin. + * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed + */ + init: function() { + var appVersion = navigator.appVersion; + mfp.isIE7 = appVersion.indexOf("MSIE 7.") !== -1; + mfp.isIE8 = appVersion.indexOf("MSIE 8.") !== -1; + mfp.isLowIE = mfp.isIE7 || mfp.isIE8; + mfp.isAndroid = (/android/gi).test(appVersion); + mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion); + mfp.supportsTransition = supportsTransitions(); + + // We disable fixed positioned lightbox on devices that don't handle it nicely. + // If you know a better way of detecting this - let me know. + mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) ); + _document = $(document); + + mfp.popupsCache = {}; + }, + + /** + * Opens popup + * @param data [description] + */ + open: function(data) { + + if(!_body) { + _body = $(document.body); + } + + var i; + + if(data.isObj === false) { + // convert jQuery collection to array to avoid conflicts later + mfp.items = data.items.toArray(); + + mfp.index = 0; + var items = data.items, + item; + for(i = 0; i < items.length; i++) { + item = items[i]; + if(item.parsed) { + item = item.el[0]; + } + if(item === data.el[0]) { + mfp.index = i; + break; + } + } + } else { + mfp.items = $.isArray(data.items) ? data.items : [data.items]; + mfp.index = data.index || 0; + } + + // if popup is already opened - we just update the content + if(mfp.isOpen) { + mfp.updateItemHTML(); + return; + } + + mfp.types = []; + _wrapClasses = ''; + if(data.mainEl && data.mainEl.length) { + mfp.ev = data.mainEl.eq(0); + } else { + mfp.ev = _document; + } + + if(data.key) { + if(!mfp.popupsCache[data.key]) { + mfp.popupsCache[data.key] = {}; + } + mfp.currTemplate = mfp.popupsCache[data.key]; + } else { + mfp.currTemplate = {}; + } + + + + mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); + mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos; + + if(mfp.st.modal) { + mfp.st.closeOnContentClick = false; + mfp.st.closeOnBgClick = false; + mfp.st.showCloseBtn = false; + mfp.st.enableEscapeKey = false; + } + + + // Building markup + // main containers are created only once + if(!mfp.bgOverlay) { + + // Dark overlay + mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() { + mfp.close(); + }); + + mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) { + if(mfp._checkIfClose(e.target)) { + mfp.close(); + } + }); + + mfp.container = _getEl('container', mfp.wrap); + } + + mfp.contentContainer = _getEl('content'); + if(mfp.st.preloader) { + mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading); + } + + + // Initializing modules + var modules = $.magnificPopup.modules; + for(i = 0; i < modules.length; i++) { + var n = modules[i]; + n = n.charAt(0).toUpperCase() + n.slice(1); + mfp['init'+n].call(mfp); + } + _mfpTrigger('BeforeOpen'); + + + if(mfp.st.showCloseBtn) { + // Close button + if(!mfp.st.closeBtnInside) { + mfp.wrap.append( _getCloseBtn() ); + } else { + _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) { + values.close_replaceWith = _getCloseBtn(item.type); + }); + _wrapClasses += ' mfp-close-btn-in'; + } + } + + if(mfp.st.alignTop) { + _wrapClasses += ' mfp-align-top'; + } + + + + if(mfp.fixedContentPos) { + mfp.wrap.css({ + overflow: mfp.st.overflowY, + overflowX: 'hidden', + overflowY: mfp.st.overflowY + }); + } else { + mfp.wrap.css({ + top: _window.scrollTop(), + position: 'absolute' + }); + } + if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) { + mfp.bgOverlay.css({ + height: _document.height(), + position: 'absolute' + }); + } + + + + if(mfp.st.enableEscapeKey) { + // Close on ESC key + _document.on('keyup' + EVENT_NS, function(e) { + if(e.keyCode === 27) { + mfp.close(); + } + }); + } + + _window.on('resize' + EVENT_NS, function() { + mfp.updateSize(); + }); + + + if(!mfp.st.closeOnContentClick) { + _wrapClasses += ' mfp-auto-cursor'; + } + + if(_wrapClasses) + mfp.wrap.addClass(_wrapClasses); + + + // this triggers recalculation of layout, so we get it once to not to trigger twice + var windowHeight = mfp.wH = _window.height(); + + + var windowStyles = {}; + + if( mfp.fixedContentPos ) { + if(mfp._hasScrollBar(windowHeight)){ + var s = mfp._getScrollbarSize(); + if(s) { + windowStyles.marginRight = s; + } + } + } + + if(mfp.fixedContentPos) { + if(!mfp.isIE7) { + windowStyles.overflow = 'hidden'; + } else { + // ie7 double-scroll bug + $('body, html').css('overflow', 'hidden'); + } + } + + + + var classesToadd = mfp.st.mainClass; + if(mfp.isIE7) { + classesToadd += ' mfp-ie7'; + } + if(classesToadd) { + mfp._addClassToMFP( classesToadd ); + } + + // add content + mfp.updateItemHTML(); + + _mfpTrigger('BuildControls'); + + // remove scrollbar, add margin e.t.c + $('html').css(windowStyles); + + // add everything to DOM + mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || _body ); + + // Save last focused element + mfp._lastFocusedEl = document.activeElement; + + // Wait for next cycle to allow CSS transition + setTimeout(function() { + + if(mfp.content) { + mfp._addClassToMFP(READY_CLASS); + mfp._setFocus(); + } else { + // if content is not defined (not loaded e.t.c) we add class only for BG + mfp.bgOverlay.addClass(READY_CLASS); + } + + // Trap the focus in popup + _document.on('focusin' + EVENT_NS, mfp._onFocusIn); + + }, 16); + + mfp.isOpen = true; + mfp.updateSize(windowHeight); + _mfpTrigger(OPEN_EVENT); + + return data; + }, + + /** + * Closes the popup + */ + close: function() { + if(!mfp.isOpen) return; + _mfpTrigger(BEFORE_CLOSE_EVENT); + + mfp.isOpen = false; + // for CSS3 animation + if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) { + mfp._addClassToMFP(REMOVING_CLASS); + setTimeout(function() { + mfp._close(); + }, mfp.st.removalDelay); + } else { + mfp._close(); + } + }, + + /** + * Helper for close() function + */ + _close: function() { + _mfpTrigger(CLOSE_EVENT); + + var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' '; + + mfp.bgOverlay.detach(); + mfp.wrap.detach(); + mfp.container.empty(); + + if(mfp.st.mainClass) { + classesToRemove += mfp.st.mainClass + ' '; + } + + mfp._removeClassFromMFP(classesToRemove); + + if(mfp.fixedContentPos) { + var windowStyles = {marginRight: ''}; + if(mfp.isIE7) { + $('body, html').css('overflow', ''); + } else { + windowStyles.overflow = ''; + } + $('html').css(windowStyles); + } + + _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS); + mfp.ev.off(EVENT_NS); + + // clean up DOM elements that aren't removed + mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style'); + mfp.bgOverlay.attr('class', 'mfp-bg'); + mfp.container.attr('class', 'mfp-container'); + + // remove close button from target element + if(mfp.st.showCloseBtn && + (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) { + if(mfp.currTemplate.closeBtn) + mfp.currTemplate.closeBtn.detach(); + } + + + if(mfp._lastFocusedEl) { + $(mfp._lastFocusedEl).focus(); // put tab focus back + } + mfp.currItem = null; + mfp.content = null; + mfp.currTemplate = null; + mfp.prevHeight = 0; + + _mfpTrigger(AFTER_CLOSE_EVENT); + }, + + updateSize: function(winHeight) { + + if(mfp.isIOS) { + // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2 + var zoomLevel = document.documentElement.clientWidth / window.innerWidth; + var height = window.innerHeight * zoomLevel; + mfp.wrap.css('height', height); + mfp.wH = height; + } else { + mfp.wH = winHeight || _window.height(); + } + // Fixes #84: popup incorrectly positioned with position:relative on body + if(!mfp.fixedContentPos) { + mfp.wrap.css('height', mfp.wH); + } + + _mfpTrigger('Resize'); + + }, + + /** + * Set content of popup based on current index + */ + updateItemHTML: function() { + var item = mfp.items[mfp.index]; + + // Detach and perform modifications + mfp.contentContainer.detach(); + + if(mfp.content) + mfp.content.detach(); + + if(!item.parsed) { + item = mfp.parseEl( mfp.index ); + } + + var type = item.type; + + _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]); + // BeforeChange event works like so: + // _mfpOn('BeforeChange', function(e, prevType, newType) { }); + + mfp.currItem = item; + + + + + + if(!mfp.currTemplate[type]) { + var markup = mfp.st[type] ? mfp.st[type].markup : false; + + // allows to modify markup + _mfpTrigger('FirstMarkupParse', markup); + + if(markup) { + mfp.currTemplate[type] = $(markup); + } else { + // if there is no markup found we just define that template is parsed + mfp.currTemplate[type] = true; + } + } + + if(_prevContentType && _prevContentType !== item.type) { + mfp.container.removeClass('mfp-'+_prevContentType+'-holder'); + } + + var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]); + mfp.appendContent(newContent, type); + + item.preloaded = true; + + _mfpTrigger(CHANGE_EVENT, item); + _prevContentType = item.type; + + // Append container back after its content changed + mfp.container.prepend(mfp.contentContainer); + + _mfpTrigger('AfterChange'); + }, + + + /** + * Set HTML content of popup + */ + appendContent: function(newContent, type) { + mfp.content = newContent; + + if(newContent) { + if(mfp.st.showCloseBtn && mfp.st.closeBtnInside && + mfp.currTemplate[type] === true) { + // if there is no markup, we just append close button element inside + if(!mfp.content.find('.mfp-close').length) { + mfp.content.append(_getCloseBtn()); + } + } else { + mfp.content = newContent; + } + } else { + mfp.content = ''; + } + + _mfpTrigger(BEFORE_APPEND_EVENT); + mfp.container.addClass('mfp-'+type+'-holder'); + + mfp.contentContainer.append(mfp.content); + }, + + + + + /** + * Creates Magnific Popup data object based on given data + * @param {int} index Index of item to parse + */ + parseEl: function(index) { + var item = mfp.items[index], + type; + + if(item.tagName) { + item = { el: $(item) }; + } else { + type = item.type; + item = { data: item, src: item.src }; + } + + if(item.el) { + var types = mfp.types; + + // check for 'mfp-TYPE' class + for(var i = 0; i < types.length; i++) { + if( item.el.hasClass('mfp-'+types[i]) ) { + type = types[i]; + break; + } + } + + item.src = item.el.attr('data-mfp-src'); + if(!item.src) { + item.src = item.el.attr('href'); + } + } + + item.type = type || mfp.st.type || 'inline'; + item.index = index; + item.parsed = true; + mfp.items[index] = item; + _mfpTrigger('ElementParse', item); + + return mfp.items[index]; + }, + + + /** + * Initializes single popup or a group of popups + */ + addGroup: function(el, options) { + var eHandler = function(e) { + e.mfpEl = this; + mfp._openClick(e, el, options); + }; + + if(!options) { + options = {}; + } + + var eName = 'click.magnificPopup'; + options.mainEl = el; + + if(options.items) { + options.isObj = true; + el.off(eName).on(eName, eHandler); + } else { + options.isObj = false; + if(options.delegate) { + el.off(eName).on(eName, options.delegate , eHandler); + } else { + options.items = el; + el.off(eName).on(eName, eHandler); + } + } + }, + _openClick: function(e, el, options) { + var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick; + + + if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey ) ) { + return; + } + + var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn; + + if(disableOn) { + if($.isFunction(disableOn)) { + if( !disableOn.call(mfp) ) { + return true; + } + } else { // else it's number + if( _window.width() < disableOn ) { + return true; + } + } + } + + if(e.type) { + e.preventDefault(); + + // This will prevent popup from closing if element is inside and popup is already opened + if(mfp.isOpen) { + e.stopPropagation(); + } + } + + + options.el = $(e.mfpEl); + if(options.delegate) { + options.items = el.find(options.delegate); + } + mfp.open(options); + }, + + + /** + * Updates text on preloader + */ + updateStatus: function(status, text) { + + if(mfp.preloader) { + if(_prevStatus !== status) { + mfp.container.removeClass('mfp-s-'+_prevStatus); + } + + if(!text && status === 'loading') { + text = mfp.st.tLoading; + } + + var data = { + status: status, + text: text + }; + // allows to modify status + _mfpTrigger('UpdateStatus', data); + + status = data.status; + text = data.text; + + mfp.preloader.html(text); + + mfp.preloader.find('a').on('click', function(e) { + e.stopImmediatePropagation(); + }); + + mfp.container.addClass('mfp-s-'+status); + _prevStatus = status; + } + }, + + + /* + "Private" helpers that aren't private at all + */ + // Check to close popup or not + // "target" is an element that was clicked + _checkIfClose: function(target) { + + if($(target).hasClass(PREVENT_CLOSE_CLASS)) { + return; + } + + var closeOnContent = mfp.st.closeOnContentClick; + var closeOnBg = mfp.st.closeOnBgClick; + + if(closeOnContent && closeOnBg) { + return true; + } else { + + // We close the popup if click is on close button or on preloader. Or if there is no content. + if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) { + return true; + } + + // if click is outside the content + if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) { + if(closeOnBg) { + // last check, if the clicked element is in DOM, (in case it's removed onclick) + if( $.contains(document, target) ) { + return true; + } + } + } else if(closeOnContent) { + return true; + } + + } + return false; + }, + _addClassToMFP: function(cName) { + mfp.bgOverlay.addClass(cName); + mfp.wrap.addClass(cName); + }, + _removeClassFromMFP: function(cName) { + this.bgOverlay.removeClass(cName); + mfp.wrap.removeClass(cName); + }, + _hasScrollBar: function(winHeight) { + return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) ); + }, + _setFocus: function() { + (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus(); + }, + _onFocusIn: function(e) { + if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) { + mfp._setFocus(); + return false; + } + }, + _parseMarkup: function(template, values, item) { + var arr; + if(item.data) { + values = $.extend(item.data, values); + } + _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] ); + + $.each(values, function(key, value) { + if(value === undefined || value === false) { + return true; + } + arr = key.split('_'); + if(arr.length > 1) { + var el = template.find(EVENT_NS + '-'+arr[0]); + + if(el.length > 0) { + var attr = arr[1]; + if(attr === 'replaceWith') { + if(el[0] !== value[0]) { + el.replaceWith(value); + } + } else if(attr === 'img') { + if(el.is('img')) { + el.attr('src', value); + } else { + el.replaceWith( '' ); + } + } else { + el.attr(arr[1], value); + } + } + + } else { + template.find(EVENT_NS + '-'+key).html(value); + } + }); + }, + + _getScrollbarSize: function() { + // thx David + if(mfp.scrollbarSize === undefined) { + var scrollDiv = document.createElement("div"); + scrollDiv.id = "mfp-sbm"; + scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;'; + document.body.appendChild(scrollDiv); + mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + } + return mfp.scrollbarSize; + } + +}; /* MagnificPopup core prototype end */ + + + + +/** + * Public static functions + */ +$.magnificPopup = { + instance: null, + proto: MagnificPopup.prototype, + modules: [], + + open: function(options, index) { + _checkInstance(); + + if(!options) { + options = {}; + } else { + options = $.extend(true, {}, options); + } + + + options.isObj = true; + options.index = index || 0; + return this.instance.open(options); + }, + + close: function() { + return $.magnificPopup.instance && $.magnificPopup.instance.close(); + }, + + registerModule: function(name, module) { + if(module.options) { + $.magnificPopup.defaults[name] = module.options; + } + $.extend(this.proto, module.proto); + this.modules.push(name); + }, + + defaults: { + + // Info about options is in docs: + // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options + + disableOn: 0, + + key: null, + + midClick: false, + + mainClass: '', + + preloader: true, + + focus: '', // CSS selector of input to focus after popup is opened + + closeOnContentClick: false, + + closeOnBgClick: true, + + closeBtnInside: true, + + showCloseBtn: true, + + enableEscapeKey: true, + + modal: false, + + alignTop: false, + + removalDelay: 0, + + prependTo: null, + + fixedContentPos: 'auto', + + fixedBgPos: 'auto', + + overflowY: 'auto', + + closeMarkup: '', + + tClose: 'Close (Esc)', + + tLoading: 'Loading...' + + } +}; + + + +$.fn.magnificPopup = function(options) { + _checkInstance(); + + var jqEl = $(this); + + // We call some API method of first param is a string + if (typeof options === "string" ) { + + if(options === 'open') { + var items, + itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup, + index = parseInt(arguments[1], 10) || 0; + + if(itemOpts.items) { + items = itemOpts.items[index]; + } else { + items = jqEl; + if(itemOpts.delegate) { + items = items.find(itemOpts.delegate); + } + items = items.eq( index ); + } + mfp._openClick({mfpEl:items}, jqEl, itemOpts); + } else { + if(mfp.isOpen) + mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1)); + } + + } else { + // clone options obj + options = $.extend(true, {}, options); + + /* + * As Zepto doesn't support .data() method for objects + * and it works only in normal browsers + * we assign "options" object directly to the DOM element. FTW! + */ + if(_isJQ) { + jqEl.data('magnificPopup', options); + } else { + jqEl[0].magnificPopup = options; + } + + mfp.addGroup(jqEl, options); + + } + return jqEl; +}; + + +//Quick benchmark +/* +var start = performance.now(), + i, + rounds = 1000; + +for(i = 0; i < rounds; i++) { + +} +console.log('Test #1:', performance.now() - start); + +start = performance.now(); +for(i = 0; i < rounds; i++) { + +} +console.log('Test #2:', performance.now() - start); +*/ + + +/*>>core*/ + +/*>>inline*/ + +var INLINE_NS = 'inline', + _hiddenClass, + _inlinePlaceholder, + _lastInlineElement, + _putInlineElementsBack = function() { + if(_lastInlineElement) { + _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach(); + _lastInlineElement = null; + } + }; + +$.magnificPopup.registerModule(INLINE_NS, { + options: { + hiddenClass: 'hide', // will be appended with `mfp-` prefix + markup: '', + tNotFound: 'Content not found' + }, + proto: { + + initInline: function() { + mfp.types.push(INLINE_NS); + + _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() { + _putInlineElementsBack(); + }); + }, + + getInline: function(item, template) { + + _putInlineElementsBack(); + + if(item.src) { + var inlineSt = mfp.st.inline, + el = $(item.src); + + if(el.length) { + + // If target element has parent - we replace it with placeholder and put it back after popup is closed + var parent = el[0].parentNode; + if(parent && parent.tagName) { + if(!_inlinePlaceholder) { + _hiddenClass = inlineSt.hiddenClass; + _inlinePlaceholder = _getEl(_hiddenClass); + _hiddenClass = 'mfp-'+_hiddenClass; + } + // replace target inline element with placeholder + _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass); + } + + mfp.updateStatus('ready'); + } else { + mfp.updateStatus('error', inlineSt.tNotFound); + el = $('
    '); + } + + item.inlineElement = el; + return el; + } + + mfp.updateStatus('ready'); + mfp._parseMarkup(template, {}, item); + return template; + } + } +}); + +/*>>inline*/ + +/*>>ajax*/ +var AJAX_NS = 'ajax', + _ajaxCur, + _removeAjaxCursor = function() { + if(_ajaxCur) { + _body.removeClass(_ajaxCur); + } + }, + _destroyAjaxRequest = function() { + _removeAjaxCursor(); + if(mfp.req) { + mfp.req.abort(); + } + }; + +$.magnificPopup.registerModule(AJAX_NS, { + + options: { + settings: null, + cursor: 'mfp-ajax-cur', + tError: 'The content could not be loaded.' + }, + + proto: { + initAjax: function() { + mfp.types.push(AJAX_NS); + _ajaxCur = mfp.st.ajax.cursor; + + _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest); + _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest); + }, + getAjax: function(item) { + + if(_ajaxCur) + _body.addClass(_ajaxCur); + + mfp.updateStatus('loading'); + + var opts = $.extend({ + url: item.src, + success: function(data, textStatus, jqXHR) { + var temp = { + data:data, + xhr:jqXHR + }; + + _mfpTrigger('ParseAjax', temp); + + mfp.appendContent( $(temp.data), AJAX_NS ); + + item.finished = true; + + _removeAjaxCursor(); + + mfp._setFocus(); + + setTimeout(function() { + mfp.wrap.addClass(READY_CLASS); + }, 16); + + mfp.updateStatus('ready'); + + _mfpTrigger('AjaxContentAdded'); + }, + error: function() { + _removeAjaxCursor(); + item.finished = item.loadError = true; + mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src)); + } + }, mfp.st.ajax.settings); + + mfp.req = $.ajax(opts); + + return ''; + } + } +}); + + + + + + + +/*>>ajax*/ + +/*>>image*/ +var _imgInterval, + _getTitle = function(item) { + if(item.data && item.data.title !== undefined) + return item.data.title; + + var src = mfp.st.image.titleSrc; + + if(src) { + if($.isFunction(src)) { + return src.call(mfp, item); + } else if(item.el) { + return item.el.attr(src) || ''; + } + } + return ''; + }; + +$.magnificPopup.registerModule('image', { + + options: { + markup: '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    ', + cursor: 'mfp-zoom-out-cur', + titleSrc: 'title', + verticalFit: true, + tError: 'The image could not be loaded.' + }, + + proto: { + initImage: function() { + var imgSt = mfp.st.image, + ns = '.image'; + + mfp.types.push('image'); + + _mfpOn(OPEN_EVENT+ns, function() { + if(mfp.currItem.type === 'image' && imgSt.cursor) { + _body.addClass(imgSt.cursor); + } + }); + + _mfpOn(CLOSE_EVENT+ns, function() { + if(imgSt.cursor) { + _body.removeClass(imgSt.cursor); + } + _window.off('resize' + EVENT_NS); + }); + + _mfpOn('Resize'+ns, mfp.resizeImage); + if(mfp.isLowIE) { + _mfpOn('AfterChange', mfp.resizeImage); + } + }, + resizeImage: function() { + var item = mfp.currItem; + if(!item || !item.img) return; + + if(mfp.st.image.verticalFit) { + var decr = 0; + // fix box-sizing in ie7/8 + if(mfp.isLowIE) { + decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10); + } + item.img.css('max-height', mfp.wH-decr); + } + }, + _onImageHasSize: function(item) { + if(item.img) { + + item.hasSize = true; + + if(_imgInterval) { + clearInterval(_imgInterval); + } + + item.isCheckingImgSize = false; + + _mfpTrigger('ImageHasSize', item); + + if(item.imgHidden) { + if(mfp.content) + mfp.content.removeClass('mfp-loading'); + + item.imgHidden = false; + } + + } + }, + + /** + * Function that loops until the image has size to display elements that rely on it asap + */ + findImageSize: function(item) { + + var counter = 0, + img = item.img[0], + mfpSetInterval = function(delay) { + + if(_imgInterval) { + clearInterval(_imgInterval); + } + // decelerating interval that checks for size of an image + _imgInterval = setInterval(function() { + if(img.naturalWidth > 0) { + mfp._onImageHasSize(item); + return; + } + + if(counter > 200) { + clearInterval(_imgInterval); + } + + counter++; + if(counter === 3) { + mfpSetInterval(10); + } else if(counter === 40) { + mfpSetInterval(50); + } else if(counter === 100) { + mfpSetInterval(500); + } + }, delay); + }; + + mfpSetInterval(1); + }, + + getImage: function(item, template) { + + var guard = 0, + + // image load complete handler + onLoadComplete = function() { + if(item) { + if (item.img[0].complete) { + item.img.off('.mfploader'); + + if(item === mfp.currItem){ + mfp._onImageHasSize(item); + + mfp.updateStatus('ready'); + } + + item.hasSize = true; + item.loaded = true; + + _mfpTrigger('ImageLoadComplete'); + + } + else { + // if image complete check fails 200 times (20 sec), we assume that there was an error. + guard++; + if(guard < 200) { + setTimeout(onLoadComplete,100); + } else { + onLoadError(); + } + } + } + }, + + // image error handler + onLoadError = function() { + if(item) { + item.img.off('.mfploader'); + if(item === mfp.currItem){ + mfp._onImageHasSize(item); + mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) ); + } + + item.hasSize = true; + item.loaded = true; + item.loadError = true; + } + }, + imgSt = mfp.st.image; + + + var el = template.find('.mfp-img'); + if(el.length) { + var img = document.createElement('img'); + img.className = 'mfp-img'; + item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError); + img.src = item.src; + + // without clone() "error" event is not firing when IMG is replaced by new IMG + // TODO: find a way to avoid such cloning + if(el.is('img')) { + item.img = item.img.clone(); + } + + img = item.img[0]; + if(img.naturalWidth > 0) { + item.hasSize = true; + } else if(!img.width) { + item.hasSize = false; + } + } + + mfp._parseMarkup(template, { + title: _getTitle(item), + img_replaceWith: item.img + }, item); + + mfp.resizeImage(); + + if(item.hasSize) { + if(_imgInterval) clearInterval(_imgInterval); + + if(item.loadError) { + template.addClass('mfp-loading'); + mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) ); + } else { + template.removeClass('mfp-loading'); + mfp.updateStatus('ready'); + } + return template; + } + + mfp.updateStatus('loading'); + item.loading = true; + + if(!item.hasSize) { + item.imgHidden = true; + template.addClass('mfp-loading'); + mfp.findImageSize(item); + } + + return template; + } + } +}); + + + +/*>>image*/ + +/*>>zoom*/ +var hasMozTransform, + getHasMozTransform = function() { + if(hasMozTransform === undefined) { + hasMozTransform = document.createElement('p').style.MozTransform !== undefined; + } + return hasMozTransform; + }; + +$.magnificPopup.registerModule('zoom', { + + options: { + enabled: false, + easing: 'ease-in-out', + duration: 300, + opener: function(element) { + return element.is('img') ? element : element.find('img'); + } + }, + + proto: { + + initZoom: function() { + var zoomSt = mfp.st.zoom, + ns = '.zoom', + image; + + if(!zoomSt.enabled || !mfp.supportsTransition) { + return; + } + + var duration = zoomSt.duration, + getElToAnimate = function(image) { + var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'), + transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing, + cssObj = { + position: 'fixed', + zIndex: 9999, + left: 0, + top: 0, + '-webkit-backface-visibility': 'hidden' + }, + t = 'transition'; + + cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition; + + newImg.css(cssObj); + return newImg; + }, + showMainContent = function() { + mfp.content.css('visibility', 'visible'); + }, + openTimeout, + animatedImg; + + _mfpOn('BuildControls'+ns, function() { + if(mfp._allowZoom()) { + + clearTimeout(openTimeout); + mfp.content.css('visibility', 'hidden'); + + // Basically, all code below does is clones existing image, puts in on top of the current one and animated it + + image = mfp._getItemToZoom(); + + if(!image) { + showMainContent(); + return; + } + + animatedImg = getElToAnimate(image); + + animatedImg.css( mfp._getOffset() ); + + mfp.wrap.append(animatedImg); + + openTimeout = setTimeout(function() { + animatedImg.css( mfp._getOffset( true ) ); + openTimeout = setTimeout(function() { + + showMainContent(); + + setTimeout(function() { + animatedImg.remove(); + image = animatedImg = null; + _mfpTrigger('ZoomAnimationEnded'); + }, 16); // avoid blink when switching images + + }, duration); // this timeout equals animation duration + + }, 16); // by adding this timeout we avoid short glitch at the beginning of animation + + + // Lots of timeouts... + } + }); + _mfpOn(BEFORE_CLOSE_EVENT+ns, function() { + if(mfp._allowZoom()) { + + clearTimeout(openTimeout); + + mfp.st.removalDelay = duration; + + if(!image) { + image = mfp._getItemToZoom(); + if(!image) { + return; + } + animatedImg = getElToAnimate(image); + } + + + animatedImg.css( mfp._getOffset(true) ); + mfp.wrap.append(animatedImg); + mfp.content.css('visibility', 'hidden'); + + setTimeout(function() { + animatedImg.css( mfp._getOffset() ); + }, 16); + } + + }); + + _mfpOn(CLOSE_EVENT+ns, function() { + if(mfp._allowZoom()) { + showMainContent(); + if(animatedImg) { + animatedImg.remove(); + } + image = null; + } + }); + }, + + _allowZoom: function() { + return mfp.currItem.type === 'image'; + }, + + _getItemToZoom: function() { + if(mfp.currItem.hasSize) { + return mfp.currItem.img; + } else { + return false; + } + }, + + // Get element postion relative to viewport + _getOffset: function(isLarge) { + var el; + if(isLarge) { + el = mfp.currItem.img; + } else { + el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem); + } + + var offset = el.offset(); + var paddingTop = parseInt(el.css('padding-top'),10); + var paddingBottom = parseInt(el.css('padding-bottom'),10); + offset.top -= ( $(window).scrollTop() - paddingTop ); + + + /* + + Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa. + + */ + var obj = { + width: el.width(), + // fix Zepto height+padding issue + height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop + }; + + // I hate to do this, but there is no another option + if( getHasMozTransform() ) { + obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)'; + } else { + obj.left = offset.left; + obj.top = offset.top; + } + return obj; + } + + } +}); + + + +/*>>zoom*/ + +/*>>iframe*/ + +var IFRAME_NS = 'iframe', + _emptyPage = '//about:blank', + + _fixIframeBugs = function(isShowing) { + if(mfp.currTemplate[IFRAME_NS]) { + var el = mfp.currTemplate[IFRAME_NS].find('iframe'); + if(el.length) { + // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug + if(!isShowing) { + el[0].src = _emptyPage; + } + + // IE8 black screen bug fix + if(mfp.isIE8) { + el.css('display', isShowing ? 'block' : 'none'); + } + } + } + }; + +$.magnificPopup.registerModule(IFRAME_NS, { + + options: { + markup: '
    '+ + '
    '+ + ''+ + '
    ', + + srcAction: 'iframe_src', + + // we don't care and support only one default type of URL by default + patterns: { + youtube: { + index: 'youtube.com', + id: 'v=', + src: '//www.youtube.com/embed/%id%?autoplay=1' + }, + vimeo: { + index: 'vimeo.com/', + id: '/', + src: '//player.vimeo.com/video/%id%?autoplay=1' + }, + gmaps: { + index: '//maps.google.', + src: '%id%&output=embed' + } + } + }, + + proto: { + initIframe: function() { + mfp.types.push(IFRAME_NS); + + _mfpOn('BeforeChange', function(e, prevType, newType) { + if(prevType !== newType) { + if(prevType === IFRAME_NS) { + _fixIframeBugs(); // iframe if removed + } else if(newType === IFRAME_NS) { + _fixIframeBugs(true); // iframe is showing + } + }// else { + // iframe source is switched, don't do anything + //} + }); + + _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() { + _fixIframeBugs(); + }); + }, + + getIframe: function(item, template) { + var embedSrc = item.src; + var iframeSt = mfp.st.iframe; + + $.each(iframeSt.patterns, function() { + if(embedSrc.indexOf( this.index ) > -1) { + if(this.id) { + if(typeof this.id === 'string') { + embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length); + } else { + embedSrc = this.id.call( this, embedSrc ); + } + } + embedSrc = this.src.replace('%id%', embedSrc ); + return false; // break; + } + }); + + var dataObj = {}; + if(iframeSt.srcAction) { + dataObj[iframeSt.srcAction] = embedSrc; + } + mfp._parseMarkup(template, dataObj, item); + + mfp.updateStatus('ready'); + + return template; + } + } +}); + + + +/*>>iframe*/ + +/*>>gallery*/ +/** + * Get looped index depending on number of slides + */ +var _getLoopedId = function(index) { + var numSlides = mfp.items.length; + if(index > numSlides - 1) { + return index - numSlides; + } else if(index < 0) { + return numSlides + index; + } + return index; + }, + _replaceCurrTotal = function(text, curr, total) { + return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total); + }; + +$.magnificPopup.registerModule('gallery', { + + options: { + enabled: false, + arrowMarkup: '', + preload: [0,2], + navigateByImgClick: true, + arrows: true, + + tPrev: 'Previous (Left arrow key)', + tNext: 'Next (Right arrow key)', + tCounter: '%curr% of %total%' + }, + + proto: { + initGallery: function() { + + var gSt = mfp.st.gallery, + ns = '.mfp-gallery', + supportsFastClick = Boolean($.fn.mfpFastClick); + + mfp.direction = true; // true - next, false - prev + + if(!gSt || !gSt.enabled ) return false; + + _wrapClasses += ' mfp-gallery'; + + _mfpOn(OPEN_EVENT+ns, function() { + + if(gSt.navigateByImgClick) { + mfp.wrap.on('click'+ns, '.mfp-img', function() { + if(mfp.items.length > 1) { + mfp.next(); + return false; + } + }); + } + + _document.on('keydown'+ns, function(e) { + if (e.keyCode === 37) { + mfp.prev(); + } else if (e.keyCode === 39) { + mfp.next(); + } + }); + }); + + _mfpOn('UpdateStatus'+ns, function(e, data) { + if(data.text) { + data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length); + } + }); + + _mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) { + var l = mfp.items.length; + values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : ''; + }); + + _mfpOn('BuildControls' + ns, function() { + if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) { + var markup = gSt.arrowMarkup, + arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS), + arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS); + + var eName = supportsFastClick ? 'mfpFastClick' : 'click'; + arrowLeft[eName](function() { + mfp.prev(); + }); + arrowRight[eName](function() { + mfp.next(); + }); + + // Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b) + if(mfp.isIE7) { + _getEl('b', arrowLeft[0], false, true); + _getEl('a', arrowLeft[0], false, true); + _getEl('b', arrowRight[0], false, true); + _getEl('a', arrowRight[0], false, true); + } + + mfp.container.append(arrowLeft.add(arrowRight)); + } + }); + + _mfpOn(CHANGE_EVENT+ns, function() { + if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout); + + mfp._preloadTimeout = setTimeout(function() { + mfp.preloadNearbyImages(); + mfp._preloadTimeout = null; + }, 16); + }); + + + _mfpOn(CLOSE_EVENT+ns, function() { + _document.off(ns); + mfp.wrap.off('click'+ns); + + if(mfp.arrowLeft && supportsFastClick) { + mfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick(); + } + mfp.arrowRight = mfp.arrowLeft = null; + }); + + }, + next: function() { + mfp.direction = true; + mfp.index = _getLoopedId(mfp.index + 1); + mfp.updateItemHTML(); + }, + prev: function() { + mfp.direction = false; + mfp.index = _getLoopedId(mfp.index - 1); + mfp.updateItemHTML(); + }, + goTo: function(newIndex) { + mfp.direction = (newIndex >= mfp.index); + mfp.index = newIndex; + mfp.updateItemHTML(); + }, + preloadNearbyImages: function() { + var p = mfp.st.gallery.preload, + preloadBefore = Math.min(p[0], mfp.items.length), + preloadAfter = Math.min(p[1], mfp.items.length), + i; + + for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) { + mfp._preloadItem(mfp.index+i); + } + for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) { + mfp._preloadItem(mfp.index-i); + } + }, + _preloadItem: function(index) { + index = _getLoopedId(index); + + if(mfp.items[index].preloaded) { + return; + } + + var item = mfp.items[index]; + if(!item.parsed) { + item = mfp.parseEl( index ); + } + + _mfpTrigger('LazyLoad', item); + + if(item.type === 'image') { + item.img = $('').on('load.mfploader', function() { + item.hasSize = true; + }).on('error.mfploader', function() { + item.hasSize = true; + item.loadError = true; + _mfpTrigger('LazyLoadError', item); + }).attr('src', item.src); + } + + + item.preloaded = true; + } + } +}); + +/* +Touch Support that might be implemented some day + +addSwipeGesture: function() { + var startX, + moved, + multipleTouches; + + return; + + var namespace = '.mfp', + addEventNames = function(pref, down, move, up, cancel) { + mfp._tStart = pref + down + namespace; + mfp._tMove = pref + move + namespace; + mfp._tEnd = pref + up + namespace; + mfp._tCancel = pref + cancel + namespace; + }; + + if(window.navigator.msPointerEnabled) { + addEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel'); + } else if('ontouchstart' in window) { + addEventNames('touch', 'start', 'move', 'end', 'cancel'); + } else { + return; + } + _window.on(mfp._tStart, function(e) { + var oE = e.originalEvent; + multipleTouches = moved = false; + startX = oE.pageX || oE.changedTouches[0].pageX; + }).on(mfp._tMove, function(e) { + if(e.originalEvent.touches.length > 1) { + multipleTouches = e.originalEvent.touches.length; + } else { + //e.preventDefault(); + moved = true; + } + }).on(mfp._tEnd + ' ' + mfp._tCancel, function(e) { + if(moved && !multipleTouches) { + var oE = e.originalEvent, + diff = startX - (oE.pageX || oE.changedTouches[0].pageX); + + if(diff > 20) { + mfp.next(); + } else if(diff < -20) { + mfp.prev(); + } + } + }); +}, +*/ + + +/*>>gallery*/ + +/*>>retina*/ + +var RETINA_NS = 'retina'; + +$.magnificPopup.registerModule(RETINA_NS, { + options: { + replaceSrc: function(item) { + return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; }); + }, + ratio: 1 // Function or number. Set to 1 to disable. + }, + proto: { + initRetina: function() { + if(window.devicePixelRatio > 1) { + + var st = mfp.st.retina, + ratio = st.ratio; + + ratio = !isNaN(ratio) ? ratio : ratio(); + + if(ratio > 1) { + _mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) { + item.img.css({ + 'max-width': item.img[0].naturalWidth / ratio, + 'width': '100%' + }); + }); + _mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) { + item.src = st.replaceSrc(item, ratio); + }); + } + } + + } + } +}); + +/*>>retina*/ + +/*>>fastclick*/ +/** + * FastClick event implementation. (removes 300ms delay on touch devices) + * Based on https://developers.google.com/mobile/articles/fast_buttons + * + * You may use it outside the Magnific Popup by calling just: + * + * $('.your-el').mfpFastClick(function() { + * console.log('Clicked!'); + * }); + * + * To unbind: + * $('.your-el').destroyMfpFastClick(); + * + * + * Note that it's a very basic and simple implementation, it blocks ghost click on the same element where it was bound. + * If you need something more advanced, use plugin by FT Labs https://github.com/ftlabs/fastclick + * + */ + +(function() { + var ghostClickDelay = 1000, + supportsTouch = 'ontouchstart' in window, + unbindTouchMove = function() { + _window.off('touchmove'+ns+' touchend'+ns); + }, + eName = 'mfpFastClick', + ns = '.'+eName; + + + // As Zepto.js doesn't have an easy way to add custom events (like jQuery), so we implement it in this way + $.fn.mfpFastClick = function(callback) { + + return $(this).each(function() { + + var elem = $(this), + lock; + + if( supportsTouch ) { + + var timeout, + startX, + startY, + pointerMoved, + point, + numPointers; + + elem.on('touchstart' + ns, function(e) { + pointerMoved = false; + numPointers = 1; + + point = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0]; + startX = point.clientX; + startY = point.clientY; + + _window.on('touchmove'+ns, function(e) { + point = e.originalEvent ? e.originalEvent.touches : e.touches; + numPointers = point.length; + point = point[0]; + if (Math.abs(point.clientX - startX) > 10 || + Math.abs(point.clientY - startY) > 10) { + pointerMoved = true; + unbindTouchMove(); + } + }).on('touchend'+ns, function(e) { + unbindTouchMove(); + if(pointerMoved || numPointers > 1) { + return; + } + lock = true; + e.preventDefault(); + clearTimeout(timeout); + timeout = setTimeout(function() { + lock = false; + }, ghostClickDelay); + callback(); + }); + }); + + } + + elem.on('click' + ns, function() { + if(!lock) { + callback(); + } + }); + }); + }; + + $.fn.destroyMfpFastClick = function() { + $(this).off('touchstart' + ns + ' click' + ns); + if(supportsTouch) _window.off('touchmove'+ns+' touchend'+ns); + }; +})(); + +/*>>fastclick*/ + _checkInstance(); })(window.jQuery || window.Zepto); diff --git a/assets/js/plugins/jquery.smooth-scroll.min.js b/assets/js/plugins/jquery.smooth-scroll.min.js new file mode 100644 index 00000000..3576b049 --- /dev/null +++ b/assets/js/plugins/jquery.smooth-scroll.min.js @@ -0,0 +1,8 @@ +/*! + * jQuery Smooth Scroll - v1.7.2 - 2016-01-23 + * https://github.com/kswedberg/jquery-smooth-scroll + * Copyright (c) 2016 Karl Swedberg + * Licensed MIT + */ + +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(a){var b="1.7.2",c={},d={exclude:[],excludeWithin:[],offset:0,direction:"top",delegateSelector:null,scrollElement:null,scrollTarget:null,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficient:2,preventDefault:!0},e=function(b){var c=[],d=!1,e=b.dir&&"left"===b.dir?"scrollLeft":"scrollTop";return this.each(function(){var b=a(this);if(this!==document&&this!==window)return!document.scrollingElement||this!==document.documentElement&&this!==document.body?void(b[e]()>0?c.push(this):(b[e](1),d=b[e]()>0,d&&c.push(this),b[e](0))):(c.push(document.scrollingElement),!1)}),c.length||this.each(function(){this===document.documentElement&&"smooth"===a(this).css("scrollBehavior")&&(c=[this]),c.length||"BODY"!==this.nodeName||(c=[this])}),"first"===b.el&&c.length>1&&(c=[c[0]]),c};a.fn.extend({scrollable:function(a){var b=e.call(this,{dir:a});return this.pushStack(b)},firstScrollable:function(a){var b=e.call(this,{el:"first",dir:a});return this.pushStack(b)},smoothScroll:function(b,c){if(b=b||{},"options"===b)return c?this.each(function(){var b=a(this),d=a.extend(b.data("ssOpts")||{},c);a(this).data("ssOpts",d)}):this.first().data("ssOpts");var d=a.extend({},a.fn.smoothScroll.defaults,b),e=function(b){var c=function(a){return a.replace(/(:|\.|\/)/g,"\\$1")},e=this,f=a(this),g=a.extend({},d,f.data("ssOpts")||{}),h=d.exclude,i=g.excludeWithin,j=0,k=0,l=!0,m={},n=a.smoothScroll.filterPath(location.pathname),o=a.smoothScroll.filterPath(e.pathname),p=location.hostname===e.hostname||!e.hostname,q=g.scrollTarget||o===n,r=c(e.hash);if(r&&!a(r).length&&(l=!1),g.scrollTarget||p&&q&&r){for(;l&&j=0;a--)j(H[a])}function j(a){if(a.inited){var b=F.top<=a.limit.start?0:F.top>=a.limit.end?2:1;a.mode!=b&&p(a,b)}}function k(){for(var a=H.length-1;a>=0;a--)if(H[a].inited){var b=Math.abs(t(H[a].clone)-H[a].docOffsetTop),c=Math.abs(H[a].parent.node.offsetHeight-H[a].parent.height);if(b>=2||c>=2)return!1}return!0}function l(a){isNaN(parseFloat(a.computed.top))||a.isCell||"none"==a.computed.display||(a.inited=!0,a.clone||q(a),"absolute"!=a.parent.computed.position&&"relative"!=a.parent.computed.position&&(a.parent.node.style.position="relative"),j(a),a.parent.height=a.parent.node.offsetHeight,a.docOffsetTop=t(a.clone))}function m(a){var b=!0;a.clone&&r(a),d(a.node.style,a.css);for(var c=H.length-1;c>=0;c--)if(H[c].node!==a.node&&H[c].parent.node===a.parent.node){b=!1;break}b&&(a.parent.node.style.position=a.parent.css.position),a.mode=-1}function n(){for(var a=H.length-1;a>=0;a--)l(H[a])}function o(){for(var a=H.length-1;a>=0;a--)m(H[a])}function p(a,b){var c=a.node.style;switch(b){case 0:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top=a.offset.top+"px",c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 1:c.position="fixed",c.left=a.box.left+"px",c.right=a.box.right+"px",c.top=a.css.top,c.bottom="auto",c.width="auto",c.marginLeft=0,c.marginRight=0,c.marginTop=0;break;case 2:c.position="absolute",c.left=a.offset.left+"px",c.right=a.offset.right+"px",c.top="auto",c.bottom=0,c.width="auto",c.marginLeft=0,c.marginRight=0}a.mode=b}function q(a){a.clone=document.createElement("div");var b=a.node.nextSibling||a.node,c=a.clone.style;c.height=a.height+"px",c.width=a.width+"px",c.marginTop=a.computed.marginTop,c.marginBottom=a.computed.marginBottom,c.marginLeft=a.computed.marginLeft,c.marginRight=a.computed.marginRight,c.padding=c.border=c.borderSpacing=0,c.fontSize="1em",c.position="static",c.cssFloat=a.computed.cssFloat,a.node.parentNode.insertBefore(a.clone,b)}function r(a){a.clone.parentNode.removeChild(a.clone),a.clone=void 0}function s(a){var b=getComputedStyle(a),c=a.parentNode,d=getComputedStyle(c),f=a.style.position;a.style.position="relative";var g={top:b.top,marginTop:b.marginTop,marginBottom:b.marginBottom,marginLeft:b.marginLeft,marginRight:b.marginRight,cssFloat:b.cssFloat,display:b.display},h={top:e(b.top),marginBottom:e(b.marginBottom),paddingLeft:e(b.paddingLeft),paddingRight:e(b.paddingRight),borderLeftWidth:e(b.borderLeftWidth),borderRightWidth:e(b.borderRightWidth)};a.style.position=f;var i={position:a.style.position,top:a.style.top,bottom:a.style.bottom,left:a.style.left,right:a.style.right,width:a.style.width,marginTop:a.style.marginTop,marginLeft:a.style.marginLeft,marginRight:a.style.marginRight},j=u(a),k=u(c),l={node:c,css:{position:c.style.position},computed:{position:d.position},numeric:{borderLeftWidth:e(d.borderLeftWidth),borderRightWidth:e(d.borderRightWidth),borderTopWidth:e(d.borderTopWidth),borderBottomWidth:e(d.borderBottomWidth)}},m={node:a,box:{left:j.win.left,right:J.clientWidth-j.win.right},offset:{top:j.win.top-k.win.top-l.numeric.borderTopWidth,left:j.win.left-k.win.left-l.numeric.borderLeftWidth,right:-j.win.right+k.win.right-l.numeric.borderRightWidth},css:i,isCell:"table-cell"==b.display,computed:g,numeric:h,width:j.win.right-j.win.left,height:j.win.bottom-j.win.top,mode:-1,inited:!1,parent:l,limit:{start:j.doc.top-h.top,end:k.doc.top+c.offsetHeight-l.numeric.borderBottomWidth-a.offsetHeight-h.top-h.marginBottom}};return m}function t(a){for(var b=0;a;)b+=a.offsetTop,a=a.offsetParent;return b}function u(a){var c=a.getBoundingClientRect();return{doc:{top:c.top+b.pageYOffset,left:c.left+b.pageXOffset},win:c}}function v(){G=setInterval(function(){!k()&&z()},500)}function w(){clearInterval(G)}function x(){I&&(document[L]?w():v())}function y(){I||(f(),n(),b.addEventListener("scroll",g),b.addEventListener("wheel",h),b.addEventListener("resize",z),b.addEventListener("orientationchange",z),a.addEventListener(M,x),v(),I=!0)}function z(){if(I){o();for(var a=H.length-1;a>=0;a--)H[a]=s(H[a].node);n()}}function A(){b.removeEventListener("scroll",g),b.removeEventListener("wheel",h),b.removeEventListener("resize",z),b.removeEventListener("orientationchange",z),a.removeEventListener(M,x),w(),I=!1}function B(){A(),o()}function C(){for(B();H.length;)H.pop()}function D(a){for(var b=H.length-1;b>=0;b--)if(H[b].node===a)return;var c=s(a);H.push(c),I?l(c):y()}function E(a){for(var b=H.length-1;b>=0;b--)H[b].node===a&&(m(H[b]),H.splice(b,1))}var F,G,H=[],I=!1,J=a.documentElement,K=function(){},L="hidden",M="visibilitychange";void 0!==a.webkitHidden&&(L="webkitHidden",M="webkitvisibilitychange"),b.getComputedStyle||c();for(var N=["","-webkit-","-moz-","-ms-"],O=document.createElement("div"),P=N.length-1;P>=0;P--){try{O.style.position=N[P]+"sticky"}catch(Q){}""!=O.style.position&&c()}f(),b.Stickyfill={stickies:H,add:D,remove:E,init:y,rebuild:z,pause:A,stop:B,kill:C}}(document,window),window.jQuery&&!function($){$.fn.Stickyfill=function(a){return this.each(function(){Stickyfill.add(this)}),this}}(window.jQuery); \ No newline at end of file diff --git a/assets/js/vendor/jquery/jquery-1.12.4.min.js b/assets/js/vendor/jquery/jquery-1.12.4.min.js new file mode 100644 index 00000000..b0ecadde --- /dev/null +++ b/assets/js/vendor/jquery/jquery-1.12.4.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML="
    a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:l.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("'); - self.onopen(); - self.show(); - self.focus(); - } else { - self.setContent(self._content); - self.show(); - self.focus(); - self.onopen(); - } - } - } - //初始化弹窗事件 - this.initEvent = function() { - self.dh.find(".dialog-close, .dialog-cancel, .dialog-ok").unbind('click').click(function(){self.close()}); - if (typeof(self.options.onok) == "function") { - self.dh.find(".dialog-ok").unbind('click').click(function(){self.options.onok(self)}); - } - if (typeof(self.options.oncancel) == "function") { - self.dh.find(".dialog-cancel").unbind('click').click(function(){self.options.oncancel(self)}); - } - if (self.options.timeout>0) { - window.setTimeout(self.close, (self.options.timeout * 1000)); - } - this.drag(); - } - //设置onok事件 - this.setOnok = function(fn) { - self.dh.find(".dialog-ok").unbind('click'); - if (typeof(fn)=="function") self.dh.find(".dialog-ok").click(function(){fn(self)}); - } - //设置onOncancel事件 - this.setOncancel = function(fn) { - self.dh.find(".dialog-cancel").unbind('click'); - if (typeof(fn)=="function") self.dh.find(".dialog-cancel").click(function(){fn(self)}); - } - //设置onOnclose事件 - this.setOnclose = function(fn) { - self.options.onclose = fn; - } - //弹窗拖拽 - this.drag = function() { - if (self.options.draggable && self.options.showTitle) { - self.dh.find('.dialog-header').mousedown(function(event){ - var h = this; - var o = document; - var ox = self.dh.position().left; - var oy = self.dh.position().top; - var mx = event.clientX; - var my = event.clientY; - var width = self.dh.width(); - var height = self.dh.height(); - var bwidth = self.bwidth(); - var bheight = self.bheight(); - if(h.setCapture) { - h.setCapture(); - } - $(document).mousemove(function(event){ - if (window.getSelection) { - window.getSelection().removeAllRanges(); - } else { - document.selection.empty(); - } - //TODO - var left = Math.max(ox+event.clientX-mx, 0); - var top = Math.max(oy+event.clientY-my, 0); - var left = Math.min(left, bwidth-width); - var top = Math.min(top, bheight-height); - self.dh.css({left: left, top: top}); - }).mouseup(function(){ - if(h.releaseCapture) { - h.releaseCapture(); - } - $(document).unbind('mousemove'); - $(document).unbind('mouseup'); - }); - }); - } - } - //打开前的回弹函数 - this.onopen = function() { - if (typeof(self.options.onopen) == "function") { - self.options.onopen(self); - } - } - //增加一个按钮 - this.addButton = function(opt) { - opt = opt || {}; - opt.title = opt.title || 'OK'; - opt.bclass = opt.bclass || 'dialog-btn1'; - opt.fn = opt.fn || null; - opt.index = opt.index || 0; - var btn = $('').click(function(){ - if (typeof opt.fn == "function") opt.fn(self); - }); - if (opt.index < self.db.find('input').length) { - self.db.find('input:eq('+opt.index+')').before(btn); - } else { - self.db.append(opt); - } - } - //显示弹窗 - this.show = function() { - if (self.options.showButton) { - self.dh.find('.dialog-button').show(); - } - if (self.options.position == 'center') { - self.setCenterPosition(); - } else { - self.setElementPosition(); - } - if (typeof self.options.showAnimate == "string") { - self.dh.show(self.options.animate); - } else { - self.dh.animate(self.options.showAnimate.animate, self.options.showAnimate.speed); - } - if (self.mh) { - self.mh.show(); - } - } - this.hide = function(fn) { - if (typeof self.options.hideAnimate == "string") { - self.dh.hide(self.options.animate, fn); - } else { - self.dh.animate(self.options.hideAnimate.animate, self.options.hideAnimate.speed, "", fn); - } - } - //设置弹窗焦点 - this.focus = function() { - if (self.options.focus) { - self.dh.find(self.options.focus).focus();//TODO IE中要两次 - self.dh.find(self.options.focus).focus(); - } else { - self.dh.find('.dialog-cancel').focus(); - } - } - //在弹窗内查找元素 - this.find = function(selector) { - return self.dh.find(selector); - } - //设置加载加状态 - this.setLoading = function() { - self.setContent('
    '); - self.dh.find(".dialog-button").hide(); - if (self.dc.height()<90) { - self.dc.height(Math.max(90, self.options.height)); - } - if (self.dh.width()<200) { - self.dh.width(Math.max(200, self.options.width)); - } - } - this.setWidth = function(width) { - self.dh.width(width); - } - //设置标题 - this.setTitle = function(title) { - self.dt.html(title); - } - //取得标题 - this.getTitle = function() { - return self.dt.html(); - } - //设置内容 - this.setContent = function(content) { - self.dc.html(content); - if (self.options.height>0) { - self.dc.css('height', self.options.height); - } else { - self.dc.css('height',''); - } - if (self.options.width>0) { - self.dh.css('width', self.options.width); - } else { - self.dh.css('width',''); - } - if (self.options.showButton) { - self.dh.find(".dialog-button").show(); - } - } - //取得内容 - this.getContent = function() { - return self.dc.html(); - } - //使能按钮 - this.disabledButton = function(btname, state) { - self.dh.find('.dialog-'+btname).attr("disabled", state); - } - //隐藏按钮 - this.hideButton = function(btname) { - self.dh.find('.dialog-'+btname).hide(); - } - //显示按钮 - this.showButton = function(btname) { - self.dh.find('.dialog-'+btname).show(); - } - //设置按钮标题 - this.setButtonTitle = function(btname, title) { - self.dh.find('.dialog-'+btname).val(title); - } - //操作完成 - this.next = function(opt) { - opt = opt || {}; - opt.title = opt.title || self.getTitle(); - opt.content = opt.content || ""; - opt.okname = opt.okname || "确定"; - opt.width = opt.width || 260; - opt.onok = opt.onok || self.close; - opt.onclose = opt.onclose || null; - opt.oncancel = opt.oncancel || null; - opt.hideCancel = opt.hideCancel || true; - self.setTitle(opt.title); - self.setButtonTitle("ok", okname); - self.setWidth(width); - self.setOnok(opt.onok); - if (opt.content != "") self.setContent(opt.content); - if (opt.hideCancel) self.hideButton("cancel"); - if (typeof(opt.onclose) == "function") self.setOnclose(opt.onclose); - if (typeof(opt.oncancel) == "function") self.setOncancel(opt.oncancel); - self.show(); - } - //关闭弹窗 - this.close = function(n) { - if (typeof(self.options.onclose) == "function") { - self.options.onclose(self); - } - if (self.options.contentType == 'selector') { - if (self.options.contentChange) { - //if have checkbox do - var cs = self.find(':checkbox'); - $(self.selector).html(self.getContent()); - if (cs.length > 0) { - $(self.selector).find(':checkbox').each(function(i){ - this.checked = cs[i].checked; - }); - } - } else { - $(self.selector).html(self._content); - } - } - //设置关闭后的焦点 - if (self.options.blur) { - $(self.options.blur).focus(); - } - //从数组中删除 - for(i=0;i docRight) { - left = docRight - self.dh.width() - 1; - } - if (adjust && top + self.dh.height() > docBottom) { - top = docBottom - self.dh.height() - 1; - } - left = Math.max(left+refleft, 0); - top = Math.max(top+reftop, 0); - self.dh.css({top: top, left: left}); - } - this.initOptions(); - this.initMask(); - this.initBox(); - this.initContent(); - this.initEvent(); - } - - var weeboxs = function() { - var self = this; - this._onbox = false; - this._opening = false; - this.zIndex = 999; - this.length = function() { - return arrweebox.length; - } - this.open = function(content, options) { - self._opening = true; - if (typeof(options) == "undefined") { - options = {}; - } - if (options.boxid) { - for(var i=0; i0) { - return arrweebox[arrweebox.length-1]; - } else { - return false; - } - } - $(window).scroll(function() { - if (arrweebox.length > 0) { - for(i=0;i 0) { - var box = self.getTopBox(); - if (box.options.position == "center") { - box.setCenterPosition(); - } - if (box.mh) { - box.mh.css({ - width: box.bwidth(), - height: box.bheight() - }); - } - } - }); - $(document).click(function(event) { - if (event.button==2) return true; - if (arrweebox.length>0) { - var box = self.getTopBox(); - if(!self._opening && !self._onbox && box.options.clickClose) { - box.close(); - } - } - self._opening = false; - self._onbox = false; - }); - } - $.extend({weeboxs: new weeboxs()}); -})(jQuery); \ No newline at end of file diff --git a/demo/dialogtree/css/tree/tree.css b/demo/dialogtree/css/tree/tree.css deleted file mode 100755 index bf1e198b..00000000 --- a/demo/dialogtree/css/tree/tree.css +++ /dev/null @@ -1,177 +0,0 @@ -.simpleTree { - overflow: auto; - margin: 0; - padding: 0; - /* - width: 250px; - height:350px; - overflow:auto; - border: 1px solid #444444; - */ -} - -.simpleTree li { - list-style: none; - margin: 0; - padding: 0 0 0 34px; - line-height: 14px; -} - -.simpleTree li span { - display: inline; - clear: left; - white-space: nowrap; -} - -.simpleTree ul { - margin: 0; - padding: 0; -} - -.simpleTree .root { - margin-left: -16px; - background: url(../../images/group.png) no-repeat 16px 0 #ffffff; -} - -.simpleTree .line { - margin: 0 0 0 -16px; - padding: 0; - line-height: 3px; - height: 3px; - font-size: 3px; - background: url(../../images/tree/line_bg.gif) 0 0 no-repeat transparent; -} - -.simpleTree .line-last { - margin: 0 0 0 -16px; - padding: 0; - line-height: 3px; - height: 3px; - font-size: 3px; - background: url(../../images/tree/spacer.gif) 0 0 no-repeat transparent; -} - -.simpleTree .line-over { - margin: 0 0 0 -16px; - padding: 0; - line-height: 3px; - height: 3px; - font-size: 3px; - background: url(../../images/tree/line_bg_over.gif) 0 0 no-repeat transparent; -} - -.simpleTree .line-over-last { - margin: 0 0 0 -16px; - padding: 0; - line-height: 3px; - height: 3px; - font-size: 3px; - background: url(../../images/tree/line_bg_over_last.gif) 0 0 no-repeat transparent; -} - -.simpleTree .folder-open { - margin-left: -16px; - background: url(../../images/tree/collapsable.gif) 0 -2px no-repeat #fff; -} - -.simpleTree .folder-open-last { - margin-left: -16px; - background: url(../../images/tree/collapsable-last.gif) 0 -2px no-repeat #fff; -} - -.simpleTree .folder-close { - margin-left: -16px; - background: url(../../images/tree/expandable.gif) 0 -2px no-repeat #fff; -} - -.simpleTree .folder-close-last { - margin-left: -16px; - background: url(../../images/tree/expandable-last.gif) 0 -2px no-repeat #fff; -} - -.simpleTree .doc { - margin-left: -16px; - background: url(../../images/tree/leaf.gif) 0 -1px no-repeat #fff; -} - -.simpleTree .doc-last { - margin-left: -16px; - background: url(../../images/tree/leaf-last.gif) 0 -1px no-repeat #fff; -} - -.simpleTree .ajax { - background: url(../../images/tree/spinner.gif) no-repeat 0 0 #ffffff; - height: 16px; - display: none; -} - -.simpleTree .ajax li { - display: none; - margin: 0; - padding: 0; -} - -.simpleTree .trigger { - display: inline; - margin-left: -32px; - width: 28px; - height: 11px; - cursor: pointer; -} - -.simpleTree .text { - cursor: default; -} - -.simpleTree .active { - cursor: default; - background-color: #F7BE77; - padding: 0px 2px; - border: 1px dashed #444; -} - -.simpleTree .treeTip { - padding-left: 10px; - padding-right: 10px; - text-align: center; - background-color: #FFF1A8; - font-family: ; -} - -#drag_container { - background: #ffffff; - color: #000; - font: normal 11px arial, tahoma, helvetica, sans-serif; - border: 1px dashed #767676; -} - -#drag_container ul { - list-style: none; - padding: 0; - margin: 0; -} - -#drag_container li { - list-style: none; - background-color: #ffffff; - line-height: 18px; - white-space: nowrap; - padding: 1px 1px 0px 16px; - margin: 0; -} - -#drag_container li span { - padding: 0; -} - -#drag_container li.doc,#drag_container li.doc-last { - background: url(../../images/tree/leaf.gif) no-repeat -17px 0 #ffffff; -} - -#drag_container .folder-close,#drag_container .folder-close-last { - background: url(../../images/tree/expandable.gif) no-repeat -17px 0 #ffffff; -} - -#drag_container .folder-open,#drag_container .folder-open-last { - background: url(../../images/tree/collapsable.gif) no-repeat -17px 0 #ffffff; -} \ No newline at end of file diff --git a/demo/dialogtree/css/weebox/weebox.css b/demo/dialogtree/css/weebox/weebox.css deleted file mode 100755 index 811c3d7e..00000000 --- a/demo/dialogtree/css/weebox/weebox.css +++ /dev/null @@ -1,50 +0,0 @@ -/** - * weebox.css - * - * @category javascript - * @package jquery - * @author Jack - * @version - */ - -.dialog-loading {background:url(../../images/weebox/common_loading.gif) no-repeat center; width:100%; height:100%} -.dialog-mask{border:0px; background:#000; margin:0px; padding:0px; position:absolute; top:0px; left:0px;background:url(../../images/weebox/dialog_bg.png); _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_bg.png"); _background:none;} -.dialog-button{clear: both;} -.dialog-button input{overflow:visible; overflow-y:hidden;} -.dialog-btn1,.dialog-ok{border:1px solid #33621D; background:url(../../images/weebox/common_btn_ok.gif) top #88B674; height:24px; line-height:24px; color:#fff;cursor:pointer; padding:0px;padding-left:5px; padding-right:5px; margin:0px;} -.dialog-btn2,.dialog-cancel{border:1px solid #999; background:url(../../images/weebox/common_btn_cancel.gif) top;height:24px; line-height:24px; color:#666;cursor:pointer;padding:0px;padding-left:5px; padding-right:5px; margin:0px;} -.dialog-btn1,.dialog-btn2{margin-right:10px} -.dialog-content{text-align:left; clear:both; overflow:auto;} - -.weedialog{width:300px; color:#444;} -.weedialog a:link,weedialog a:visited {color: #005EAC; text-decoration:none;} -.weedialog a:hover {color:#ff6600; text-decoration:underline;} -.weedialog .dialog-header{height:40px; position:relative; cursor:move;} -.weedialog .dialog-tc{margin-left:11px; margin-right:11px; width:auto; height:40px;font-weight:bold;} -.weedialog .dialog-tc2{height:34px; line-height:34px; font-size:14px; width:100%; clear:both;background:url(../../images/weebox/dialog_tc2.gif) top; text-align:left;} -.weedialog .dialog-tc1{height:6px; overflow:hidden; background:url(../../images/weebox/dialog_tc1.png) repeat-x; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_tc1.png"); _background:none;} -.weedialog .dialog-tl{position:absolute; left:0px; top:0px;width:11px; height:40px; background:url(../../images/weebox/dialog_tl.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_tl.png"); _background:none;} -.weedialog .dialog-tr{position:absolute; right:0px;top:0px;width:11px; height:40px; background:url(../../images/weebox/dialog_tr.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_tr.png"); _background:none;} -.weedialog .dialog-close{float:right;cursor:pointer;margin:8px 3px 0 0; height:14px; width:14px; background:url(../../images/weebox/dialog_close1.png) no-repeat; /*_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_close1.png"); _background:none;*/} -.weedialog .dialog-close:hover{background:url(../../images/weebox/dialog_close2.png) no-repeat; /*_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_close2.png"); _background:none;*/} -.weedialog .dialog-content{clear:both; line-height:20px; padding:5px; background:#fff; text-align:left; overflow-y:auto; overflow-x:hidden;} -.weedialog .dialog-button{clear:both; background:#fff;} -.weedialog .dialog-cl{width:6px;background:url(../../images/weebox/dialog_con_lc.png); _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_con_lc.png"); _background:none;} -.weedialog .dialog-cr{width:6px;background:url(../../images/weebox/dialog_con_rc.png); _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_con_rc.png"); _background:none;} -.weedialog .dialog-button{text-align:right; font-size:12px; padding-right:6px; _padding-right:2px;} -.weedialog .dialog-ok{border:1px solid #33621D; background:url(../../images/weebox/btn_ok.gif) top #88B674; height:24px; line-height:24px; color:#fff;cursor:pointer; padding:0 5px; margin:0px; margin-right:3px;} -.weedialog .dialog-cancel{border:1px solid #999; background:url(../../images/weebox/btn_cancel.gif) top; height:24px; line-height:24px; color:#666;cursor:pointer; padding:0 5px; margin:0px;} -.weedialog .dialog-button-disabled{overflow:visible; overflow-y:hidden; border:1px solid #999; background:url(../../images/weebox/btn_cancel.gif) top; height:24px; line-height:24px; color:#666;cursor:pointer; padding:0 5px; margin:0px;} -.weedialog .dialog-bot{clear:both; height:11px; position:relative; font-size:0px;} -.weedialog .dialog-bl{position:absolute; left:0px; top:0px; width:11px; height:11px; background:url(../../images/weebox/dialog_bl.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_bl.png"); _background:none;} -.weedialog .dialog-bc{margin-left:11px; margin-right:11px; width:auto; height:11px; background:url(../../images/weebox/dialog_bc.png) repeat-x; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_bc.png"); _background:none;} -.weedialog .dialog-br{position:absolute; right:0px; top:0px; width:11px; height:11px; background:url(../../images/weebox/dialog_br.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/weebox/src/../../images/weebox/dialog_br.png"); _background:none;} - -.weealert .dialog-cancel{display:none;} - -.weeselect li{float:left; width:120px;} -.weeselect .wsearch{width:100%;text-align:right;} - -.weesuggest{width:160px;background:#ccc;} -.weesuggest .dialog-content{padding:5px;} -.weesuggest li{padding:0px;margin:0px;line-height:20px;cursor:pointer;border-bottom:1px dotted #bbb;} \ No newline at end of file diff --git a/demo/dialogtree/css/weebox/weebox.css- b/demo/dialogtree/css/weebox/weebox.css- deleted file mode 100755 index d5f17cd8..00000000 --- a/demo/dialogtree/css/weebox/weebox.css- +++ /dev/null @@ -1,56 +0,0 @@ -/** - * weebox.css - * - * weebox style - * - * @category javascript - * @package jquery - * @author Jack - * @copyright Copyright (c) 2006-2008 9wee Com. (http://www.9wee.com) - * @license http://www.9wee.com/license/ - * @version - */ -.dialog-loading {background:url(../../images/weebox/loading.gif) no-repeat center; width:100%; height:100%} -.dialog-mask{border:0px; background:#ccc; margin:0px; padding:0px; position:absolute; top:0px; left:0px;} - -.dialog-box {background:#fff; width:300px;} -.dialog-box .dialog-header {padding:3px 6px 7px; height:14px; cursor:move;} -.dialog-box .dialog-title {float:left; text-align:left; font-size:14px; font-weight:bold; } -.dialog-box .dialog-close {float:right; cursor:pointer; margin:3px 3px 0 0; height:11px; width:11px; background:url(../../images/weebox/close.gif) no-repeat;} -.dialog-box .dialog-content {clear:both; margin:0px; padding:6px; color:#666666; font-size:13px; overflow-y:auto;} -.dialog-box .dialog-button {clear:both; border-top: 1px solid #4f6d81; text-align:center; margin:0px; padding-top:5px;} - -.errorbox {border:1px solid #924949;} -.errorbox .dialog-content {background:#fff url(../../images/weebox/e_bg.jpg) bottom right no-repeat;} -.errorbox .dialog-header {background:url(../../images/weebox/e_hd.gif) repeat-x; color:#6f2c2c;} -.warningbox {border:1px solid #c5a524;} -.warningbox .dialog-content {background:#fff url(../../images/weebox/w_bg.jpg) bottom right no-repeat;} -.warningbox .dialog-header {background:url(../../images/weebox/w_hd.gif) repeat-x; color:#957c17;} -.successbox {border:1px solid #60a174;} -.successbox .dialog-content {background:#fff url(../../images/weebox/s_bg.jpg) bottom right no-repeat;} -.successbox .dialog-header {background:url(../../images/weebox/s_hd.gif) repeat-x; color:#3c7f51;} -.promptbox {border:1px solid #4f6d81;} -.promptbox .dialog-content {background:#fff url(../../images/weebox/p_bg.jpg) bottom right no-repeat;} -.promptbox .dialog-header {background:url(../../images/weebox/p_hd.gif) repeat-x; color:#355468;} -.dialogbox {border:1px solid #4f6d81;} -.dialogbox .dialog-content {background:#fff;} -.dialogbox .dialog-header {background:url(../../images/weebox/p_hd.gif) repeat-x; color:#355468;} -.boxbox {border:1px solid #4f6d81;} -.boxbox .dialog-content {background:#fff;} -.boxbox .dialog-header {background:url(../../images/weebox/p_hd.gif) repeat-x; color:#355468;} - -.weedialog {} -.weedialog .dialog-header{height:27px; position:relative; cursor:move;} -.weedialog .dialog-tl{position:absolute; left:0px; top:0px; width:12px; height:27px; background:url(../../images/weebox/dialog_tl.png) no-repeat;} -.weedialog .dialog-title{text-align:left; margin-left:12px; margin-right:35px; width:auto; height:17px; padding-top:10px; padding-top:7px; background:url(../../images/weebox/dialog_tc.png) repeat-x; font-weight:bold;} -.weedialog .dialog-tr{position:absolute; right:0px; top:0px; width:35px; height:27px; background:url(../../images/weebox/dialog_tr.png) no-repeat;} -.weedialog .dialog-close{margin:10px 0px 0px 10px;} -.weedialog .dialog-close a{ width:16px; height:16px; display:block;} -.weedialog .dialog-con{background:url(../../images/weebox/dialog_cl.png) repeat-y left ; padding-left:4px;} -.weedialog .dialog-con2{background:url(../../images/weebox/dialog_cr.png) repeat-y right; padding-right:4px;} -.weedialog .dialog-content{clear:both; line-height:20px; padding:5px 5px 0px 5px; background:#fff; overflow-y:auto; overflow-x:hidden;} -.weedialog .dialog-button{clear:both; text-align:center; padding:5px 5px 0px 5px; background:#fff;} -.weedialog .dialog-button input{width:40px;}.weedialog .dialog-bot{clear:both; height:9px; position:relative; font-size:0px;} -.weedialog .dialog-bl{position:absolute; left:0px; top:0px;width:12px; height:9px;background:url(../../images/weebox/dialog_bl.png) no-repeat;} -.weedialog .dialog-bc{margin-left:12px; margin-right:12px; width:auto; height:9px; background:url(../../images/weebox/dialog_bc.png) repeat-x;} -.weedialog .dialog-br{position:absolute; right:0px; top:0px; width:12px; height:9px; background:url(../../images/weebox/dialog_br.png) no-repeat;} \ No newline at end of file diff --git a/demo/dialogtree/css/weebox/weebox_ie6.css b/demo/dialogtree/css/weebox/weebox_ie6.css deleted file mode 100755 index dac2e570..00000000 --- a/demo/dialogtree/css/weebox/weebox_ie6.css +++ /dev/null @@ -1,50 +0,0 @@ -/** - * weebox.css - * - * @category javascript - * @package jquery - * @author Jack - * @version - */ - -.dialog-loading {background:url(/demo/dialogtree/images/weebox/common_loading.gif) no-repeat center; width:100%; height:100%} -.dialog-mask{border:0px; background:#000; margin:0px; padding:0px; position:absolute; top:0px; left:0px;background:url(/demo/dialogtree/images/weebox/dialog_bg.png); _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_bg.png"); _background:none;} -.dialog-button{clear: both;} -.dialog-button input{overflow:visible; overflow-y:hidden;} -.dialog-btn1,.dialog-ok{border:1px solid #33621D; background:url(/demo/dialogtree/images/weebox/common_btn_ok.gif) top #88B674; height:24px; line-height:24px; color:#fff;cursor:pointer; padding:0px;padding-left:5px; padding-right:5px; margin:0px;} -.dialog-btn2,.dialog-cancel{border:1px solid #999; background:url(/demo/dialogtree/images/weebox/common_btn_cancel.gif) top;height:24px; line-height:24px; color:#666;cursor:pointer;padding:0px;padding-left:5px; padding-right:5px; margin:0px;} -.dialog-btn1,.dialog-btn2{margin-right:10px} -.dialog-content{text-align:left; clear:both; overflow:auto;} - -.weedialog{width:300px; color:#444;} -.weedialog a:link,weedialog a:visited {color: #005EAC; text-decoration:none;} -.weedialog a:hover {color:#ff6600; text-decoration:underline;} -.weedialog .dialog-header{height:40px; position:relative; cursor:move;} -.weedialog .dialog-tc{margin-left:11px; margin-right:11px; width:auto; height:40px;font-weight:bold;} -.weedialog .dialog-tc2{height:34px; line-height:34px; font-size:14px; width:100%; clear:both;background:url(/demo/dialogtree/images/weebox/dialog_tc2.gif) top; text-align:left;} -.weedialog .dialog-tc1{height:6px; overflow:hidden; background:url(/demo/dialogtree/images/weebox/dialog_tc1.png) repeat-x; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_tc1.png"); _background:none;} -.weedialog .dialog-tl{position:absolute; left:0px; top:0px;width:11px; height:40px; background:url(/demo/dialogtree/images/weebox/dialog_tl.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_tl.png"); _background:none;} -.weedialog .dialog-tr{position:absolute; right:0px;top:0px;width:11px; height:40px; background:url(/demo/dialogtree/images/weebox/dialog_tr.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_tr.png"); _background:none;} -.weedialog .dialog-close{float:right;cursor:pointer;margin:8px 3px 0 0; height:14px; width:14px; background:url(/demo/dialogtree/images/weebox/dialog_close1.png) no-repeat; /*_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_close1.png"); _background:none;*/} -.weedialog .dialog-close:hover{background:url(/demo/dialogtree/images/weebox/dialog_close2.png) no-repeat; /*_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_close2.png"); _background:none;*/} -.weedialog .dialog-content{clear:both; line-height:20px; padding:5px; background:#fff; text-align:left; overflow-y:auto; overflow-x:hidden;} -.weedialog .dialog-button{clear:both; background:#fff;} -.weedialog .dialog-cl{width:6px;background:url(/demo/dialogtree/images/weebox/dialog_con_lc.png); _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_con_lc.png"); _background:none;} -.weedialog .dialog-cr{width:6px;background:url(/demo/dialogtree/images/weebox/dialog_con_rc.png); _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_con_rc.png"); _background:none;} -.weedialog .dialog-button{text-align:right; font-size:12px; padding-right:6px; _padding-right:2px;} -.weedialog .dialog-ok{border:1px solid #33621D; background:url(/demo/dialogtree/images/weebox/btn_ok.gif) top #88B674; height:24px; line-height:24px; color:#fff;cursor:pointer; padding:0 5px; margin:0px; margin-right:3px;} -.weedialog .dialog-cancel{border:1px solid #999; background:url(/demo/dialogtree/images/weebox/btn_cancel.gif) top; height:24px; line-height:24px; color:#666;cursor:pointer; padding:0 5px; margin:0px;} -.weedialog .dialog-button-disabled{overflow:visible; overflow-y:hidden; border:1px solid #999; background:url(/demo/dialogtree/images/weebox/btn_cancel.gif) top; height:24px; line-height:24px; color:#666;cursor:pointer; padding:0 5px; margin:0px;} -.weedialog .dialog-bot{clear:both; height:11px; position:relative; font-size:0px;} -.weedialog .dialog-bl{position:absolute; left:0px; top:0px; width:11px; height:11px; background:url(/demo/dialogtree/images/weebox/dialog_bl.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_bl.png"); _background:none;} -.weedialog .dialog-bc{margin-left:11px; margin-right:11px; width:auto; height:11px; background:url(/demo/dialogtree/images/weebox/dialog_bc.png) repeat-x; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_bc.png"); _background:none;} -.weedialog .dialog-br{position:absolute; right:0px; top:0px; width:11px; height:11px; background:url(/demo/dialogtree/images/weebox/dialog_br.png) no-repeat; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale", src="/demo/dialogtree/images/weebox/dialog_br.png"); _background:none;} - -.weealert .dialog-cancel{display:none;} - -.weeselect li{float:left; width:120px;} -.weeselect .wsearch{width:100%;text-align:right;} - -.weesuggest{width:160px;background:#ccc;} -.weesuggest .dialog-content{padding:5px;} -.weesuggest li{padding:0px;margin:0px;line-height:20px;cursor:pointer;border-bottom:1px dotted #bbb;} \ No newline at end of file diff --git a/demo/dialogtree/data.html b/demo/dialogtree/data.html deleted file mode 100755 index 50af7771..00000000 --- a/demo/dialogtree/data.html +++ /dev/null @@ -1,23 +0,0 @@ -
  • - 洗涤产品 -
      -
    • - 洗衣粉 -
    • -
    • - 香皂 -
    • -
    -
  • - -
  • - 电器产品 -
      -
    • - 洗衣机 -
    • -
    • - 冰箱 -
    • -
    -
  • diff --git a/demo/dialogtree/demo.js b/demo/dialogtree/demo.js deleted file mode 100755 index 36f6a9a1..00000000 --- a/demo/dialogtree/demo.js +++ /dev/null @@ -1,33 +0,0 @@ -$(function() { - var tree1 = new DialogTree({ - templatePath : 'productTemplate.html', - ajaxPath : 'data.html', - selectType : '0', - onselected : function(treeObj) {} - }); - - $('#showTree1').click(function(){ - tree1.registeTree({ - title : '选择[产品1]', - id : '#demo1 #productId', - name : '#demo1 #productName' - }); - }); - - var tree2 = new DialogTree({ - templatePath : 'productTemplate.html', - ajaxPath : 'data.html', - selectType : '0', - weebox : {width: 700}, - simpletree : {autoclose: true}, - onselected : function(treeObj) {} - }); - - $('#showTree2').click(function(){ - tree2.registeTree({ - title : '选择[产品2]', - id : '#demo2 #productId', - name : '#demo2 #productName' - }); - }); -}); \ No newline at end of file diff --git a/demo/dialogtree/images/group.png b/demo/dialogtree/images/group.png deleted file mode 100755 index 7fb4e1f1..00000000 Binary files a/demo/dialogtree/images/group.png and /dev/null differ diff --git a/demo/dialogtree/images/tree/collapsable-last.gif b/demo/dialogtree/images/tree/collapsable-last.gif deleted file mode 100755 index 5d1ea601..00000000 Binary files a/demo/dialogtree/images/tree/collapsable-last.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/collapsable.gif b/demo/dialogtree/images/tree/collapsable.gif deleted file mode 100755 index 20dbdad2..00000000 Binary files a/demo/dialogtree/images/tree/collapsable.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/expandable-last.gif b/demo/dialogtree/images/tree/expandable-last.gif deleted file mode 100755 index fb468bc3..00000000 Binary files a/demo/dialogtree/images/tree/expandable-last.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/expandable.gif b/demo/dialogtree/images/tree/expandable.gif deleted file mode 100755 index 451f6a30..00000000 Binary files a/demo/dialogtree/images/tree/expandable.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/leaf-last.gif b/demo/dialogtree/images/tree/leaf-last.gif deleted file mode 100755 index e5d301db..00000000 Binary files a/demo/dialogtree/images/tree/leaf-last.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/leaf.gif b/demo/dialogtree/images/tree/leaf.gif deleted file mode 100755 index 2f5c2ef1..00000000 Binary files a/demo/dialogtree/images/tree/leaf.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/line_bg.gif b/demo/dialogtree/images/tree/line_bg.gif deleted file mode 100755 index 3189f90b..00000000 Binary files a/demo/dialogtree/images/tree/line_bg.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/line_bg_over.gif b/demo/dialogtree/images/tree/line_bg_over.gif deleted file mode 100755 index 421883d7..00000000 Binary files a/demo/dialogtree/images/tree/line_bg_over.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/line_bg_over_last.gif b/demo/dialogtree/images/tree/line_bg_over_last.gif deleted file mode 100755 index b43d2b60..00000000 Binary files a/demo/dialogtree/images/tree/line_bg_over_last.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/minus.gif b/demo/dialogtree/images/tree/minus.gif deleted file mode 100755 index e4f90c27..00000000 Binary files a/demo/dialogtree/images/tree/minus.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/plus.gif b/demo/dialogtree/images/tree/plus.gif deleted file mode 100755 index c253770d..00000000 Binary files a/demo/dialogtree/images/tree/plus.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/root.gif b/demo/dialogtree/images/tree/root.gif deleted file mode 100755 index 27012fbd..00000000 Binary files a/demo/dialogtree/images/tree/root.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/spacer.gif b/demo/dialogtree/images/tree/spacer.gif deleted file mode 100755 index 1d11fa9a..00000000 Binary files a/demo/dialogtree/images/tree/spacer.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/spinner.gif b/demo/dialogtree/images/tree/spinner.gif deleted file mode 100755 index 085ccaec..00000000 Binary files a/demo/dialogtree/images/tree/spinner.gif and /dev/null differ diff --git a/demo/dialogtree/images/tree/tree_line.gif b/demo/dialogtree/images/tree/tree_line.gif deleted file mode 100755 index 2d6fa89c..00000000 Binary files a/demo/dialogtree/images/tree/tree_line.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/close.gif b/demo/dialogtree/images/weebox/close.gif deleted file mode 100755 index 31292f8e..00000000 Binary files a/demo/dialogtree/images/weebox/close.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/common_btn_cancel.gif b/demo/dialogtree/images/weebox/common_btn_cancel.gif deleted file mode 100755 index 32ed3282..00000000 Binary files a/demo/dialogtree/images/weebox/common_btn_cancel.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/common_btn_ok.gif b/demo/dialogtree/images/weebox/common_btn_ok.gif deleted file mode 100755 index 72c56697..00000000 Binary files a/demo/dialogtree/images/weebox/common_btn_ok.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/common_loading.gif b/demo/dialogtree/images/weebox/common_loading.gif deleted file mode 100755 index 92c5c30c..00000000 Binary files a/demo/dialogtree/images/weebox/common_loading.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_bc.png b/demo/dialogtree/images/weebox/dialog_bc.png deleted file mode 100755 index b13f1c54..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_bc.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_bg.png b/demo/dialogtree/images/weebox/dialog_bg.png deleted file mode 100755 index bb4a07fb..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_bg.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_bl.png b/demo/dialogtree/images/weebox/dialog_bl.png deleted file mode 100755 index f24a79cb..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_bl.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_border.png b/demo/dialogtree/images/weebox/dialog_border.png deleted file mode 100755 index f380bc24..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_border.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_br.png b/demo/dialogtree/images/weebox/dialog_br.png deleted file mode 100755 index db02c22c..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_br.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_btn_cancel.gif b/demo/dialogtree/images/weebox/dialog_btn_cancel.gif deleted file mode 100755 index 32ed3282..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_btn_cancel.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_btn_ok.gif b/demo/dialogtree/images/weebox/dialog_btn_ok.gif deleted file mode 100755 index 72c56697..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_btn_ok.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_cl.png b/demo/dialogtree/images/weebox/dialog_cl.png deleted file mode 100755 index 16be4a19..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_cl.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_close1.png b/demo/dialogtree/images/weebox/dialog_close1.png deleted file mode 100755 index 42179a48..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_close1.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_close2.png b/demo/dialogtree/images/weebox/dialog_close2.png deleted file mode 100755 index 1ee6785c..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_close2.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_con_lc.png b/demo/dialogtree/images/weebox/dialog_con_lc.png deleted file mode 100755 index e66596f3..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_con_lc.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_con_rc.png b/demo/dialogtree/images/weebox/dialog_con_rc.png deleted file mode 100755 index e66596f3..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_con_rc.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_cr.png b/demo/dialogtree/images/weebox/dialog_cr.png deleted file mode 100755 index 16be4a19..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_cr.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_tc.png b/demo/dialogtree/images/weebox/dialog_tc.png deleted file mode 100755 index c77d043d..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_tc.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_tc1.png b/demo/dialogtree/images/weebox/dialog_tc1.png deleted file mode 100755 index 010708fa..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_tc1.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_tc2.gif b/demo/dialogtree/images/weebox/dialog_tc2.gif deleted file mode 100755 index b7e95071..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_tc2.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_tc2.png b/demo/dialogtree/images/weebox/dialog_tc2.png deleted file mode 100755 index 2574d4ba..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_tc2.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_tl.png b/demo/dialogtree/images/weebox/dialog_tl.png deleted file mode 100755 index be5758f5..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_tl.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/dialog_tr.png b/demo/dialogtree/images/weebox/dialog_tr.png deleted file mode 100755 index 419b146c..00000000 Binary files a/demo/dialogtree/images/weebox/dialog_tr.png and /dev/null differ diff --git a/demo/dialogtree/images/weebox/e_bg.jpg b/demo/dialogtree/images/weebox/e_bg.jpg deleted file mode 100755 index 8e8e0b9d..00000000 Binary files a/demo/dialogtree/images/weebox/e_bg.jpg and /dev/null differ diff --git a/demo/dialogtree/images/weebox/e_hd.gif b/demo/dialogtree/images/weebox/e_hd.gif deleted file mode 100755 index b9d14795..00000000 Binary files a/demo/dialogtree/images/weebox/e_hd.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/loading.gif b/demo/dialogtree/images/weebox/loading.gif deleted file mode 100755 index 92c5c30c..00000000 Binary files a/demo/dialogtree/images/weebox/loading.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/p_bg.jpg b/demo/dialogtree/images/weebox/p_bg.jpg deleted file mode 100755 index d80e9164..00000000 Binary files a/demo/dialogtree/images/weebox/p_bg.jpg and /dev/null differ diff --git a/demo/dialogtree/images/weebox/p_hd.gif b/demo/dialogtree/images/weebox/p_hd.gif deleted file mode 100755 index 2709af8f..00000000 Binary files a/demo/dialogtree/images/weebox/p_hd.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/s_bg.jpg b/demo/dialogtree/images/weebox/s_bg.jpg deleted file mode 100755 index af6f0731..00000000 Binary files a/demo/dialogtree/images/weebox/s_bg.jpg and /dev/null differ diff --git a/demo/dialogtree/images/weebox/s_hd.gif b/demo/dialogtree/images/weebox/s_hd.gif deleted file mode 100755 index 4d7d911d..00000000 Binary files a/demo/dialogtree/images/weebox/s_hd.gif and /dev/null differ diff --git a/demo/dialogtree/images/weebox/w_bg.jpg b/demo/dialogtree/images/weebox/w_bg.jpg deleted file mode 100755 index 379e2b89..00000000 Binary files a/demo/dialogtree/images/weebox/w_bg.jpg and /dev/null differ diff --git a/demo/dialogtree/images/weebox/w_hd.gif b/demo/dialogtree/images/weebox/w_hd.gif deleted file mode 100755 index 887d0b83..00000000 Binary files a/demo/dialogtree/images/weebox/w_hd.gif and /dev/null differ diff --git a/demo/dialogtree/index-ie6.html b/demo/dialogtree/index-ie6.html deleted file mode 100755 index 02f53305..00000000 --- a/demo/dialogtree/index-ie6.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - dialogtree下拉树演示 - - - - - - - - - - - - - -
    -

    效果一(默认)

    - 产品ID: 产品名称: - - -
    -var tree1 = new DialogTree({
    -	templatePath	: 'productTemplate.html',
    -	ajaxPath 		: 'data.html',
    -	selectType		: '0',
    -	onselected		: function(treeObj) {}
    -});
    -
    -$('#showTree1').click(function(){
    -	tree1.registeTree({
    -		title	: '选择[产品1]',
    -		id		: '#demo1 #productId', 
    -		name	: '#demo1 #productName'
    -	});
    -});
    -		
    -
    - -
    -
    -

    效果二(自定义对话框、树属性,宽度:700,切换树的时候自动关闭其他节点)

    - 产品ID: 产品名称: - - -
    -var tree2 = new DialogTree({
    -	templatePath	: 'productTemplate.html',
    -	ajaxPath 		: 'data.html',
    -	selectType		: '0',
    -	weebox		: {width: 700},
    -	simpletree		: {autoclose: true},
    -	onselected		: function(treeObj) {}
    -});
    -
    -$('#showTree2').click(function(){
    -	tree2.registeTree({
    -		title	: '选择[产品2]',
    -		id		: '#demo2 #productId', 
    -		name	: '#demo2 #productName'
    -	});
    -});
    -		
    -
    - -
    -

    参数说明

    -
      -
    • 关于weebox的参数设置请参照:http://code.google.com/p/weebox/
    • -
    • 关于simpletree的参数设置请参照:http://news.kg/wp-content/uploads/tree/
    • -
    • -

      templatePath:模版路径

      -

      ajaxPath:数据源路径

      -

      selectType:哪个节点类型才是返回值

      -

      weebox:自定义weebox插件属性

      -

      simpletree:自定义simpletree插件属性

      -
      -

      title:打开对话框的名称

      -

      id:显示树中节点的ID属性

      -

      name:显示树中节点的NAME属性

      -
    • -
    -
    - -
    说明:基于jquery.weeboxjquery.simpletree.js包装的一个 - 对话框下拉树,在我的那个开源项目中使用了这两个插件的简单结合,很多网友看了好加我要源码,然后就花一上午时间简单整理了一下下载 -
    - 关于插件:因为是集成使用非本人开发,所以不做成插件形式,大家可以根据自己的需求进行更改 -
    -
    - 插件功能集成 by wsria.cn -
    - - - - - diff --git a/demo/dialogtree/index.html b/demo/dialogtree/index.html deleted file mode 100755 index a8db8690..00000000 --- a/demo/dialogtree/index.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - dialogtree下拉树演示 - - - - - - - - - - - - - - - -
    - -

    效果一(默认)

    - 产品ID: 产品名称: - - -
    -var tree1 = new DialogTree({
    -	templatePath	: 'productTemplate.html',
    -	ajaxPath 		: 'data.html',
    -	selectType		: '0',
    -	onselected		: function(treeObj) {}
    -});
    -
    -$('#showTree1').click(function(){
    -	tree1.registeTree({
    -		title	: '选择[产品1]',
    -		id		: '#demo1 #productId', 
    -		name	: '#demo1 #productName'
    -	});
    -});
    -		
    -
    - -
    -
    -

    效果二(自定义对话框、树属性,宽度:700,切换树的时候自动关闭其他节点)

    - 产品ID: 产品名称: - - -
    -var tree2 = new DialogTree({
    -	templatePath	: 'productTemplate.html',
    -	ajaxPath 		: 'data.html',
    -	selectType		: '0',
    -	weebox		: {width: 700},
    -	simpletree		: {autoclose: true},
    -	onselected		: function(treeObj) {}
    -});
    -
    -$('#showTree2').click(function(){
    -	tree2.registeTree({
    -		title	: '选择[产品2]',
    -		id		: '#demo2 #productId', 
    -		name	: '#demo2 #productName'
    -	});
    -});
    -		
    -
    - -
    -

    参数说明

    -
      -
    • 关于weebox的参数设置请参照:http://code.google.com/p/weebox/
    • -
    • 关于simpletree的参数设置请参照:http://news.kg/wp-content/uploads/tree/
    • -
    • -

      templatePath:模版路径

      -

      ajaxPath:数据源路径

      -

      selectType:哪个节点类型才是返回值

      -

      weebox:自定义weebox插件属性

      -

      simpletree:自定义simpletree插件属性

      -
      -

      title:打开对话框的名称

      -

      id:显示树中节点的ID属性

      -

      name:显示树中节点的NAME属性

      -
    • -
    -
    - -
    说明:基于jquery.weeboxjquery.simpletree.js包装的一个 - 对话框下拉树,在我的那个开源项目中使用了这两个插件的简单结合,很多网友看了好加我要源码,然后就花一上午时间简单整理了一下下载 -
    - 关于插件:因为是集成使用非本人开发,所以不做成插件形式,大家可以根据自己的需求进行更改 -
    -
    - 插件功能集成 by wsria.cn -
    - - - - - - diff --git a/demo/dialogtree/productTemplate.html b/demo/dialogtree/productTemplate.html deleted file mode 100755 index cda16d45..00000000 --- a/demo/dialogtree/productTemplate.html +++ /dev/null @@ -1,43 +0,0 @@ - - -
      -
    • - 请选择产品 -
        -
      • - 产品总目录 -
          -
        • - 产品分组 -
            -
          • -
          -
        • -
        • - 常用分组 -
            -
          • - 电器产品 -
              -
            • - 洗衣机 -
            • -
            • - 冰箱 -
            • -
            -
          • -
          -
        • -
        -
      • -
      -
    • -
    -
      -
    • 单击 + 打开目录
    • -
    • 单击 - 关闭目录
    • -
    • 双击确定选中并关闭对话框
    • -
    \ No newline at end of file diff --git a/demo/highlight/index.html b/demo/highlight/index.html deleted file mode 100755 index 50af1643..00000000 --- a/demo/highlight/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - index.html - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     th oneth towth threeth four
    内容test内容test内容test内容test
    内容test内容test内容test内容test
    内容test内容test内容test内容test
    内容test内容test内容test内容test
    - - diff --git a/demo/imgtip/index.html b/demo/imgtip/index.html deleted file mode 100755 index 7eab4e72..00000000 --- a/demo/imgtip/index.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - 图片提示信息 - - - - - - - - - - -
    模拟google相册鼠标移动提示信息
    - -
    - - - -
    -
    - - - \ No newline at end of file diff --git a/demo/imgtip/no.jpg b/demo/imgtip/no.jpg deleted file mode 100755 index ce18ce5a..00000000 Binary files a/demo/imgtip/no.jpg and /dev/null differ diff --git a/demo/imgtip/panda.jpg b/demo/imgtip/panda.jpg deleted file mode 100755 index 74e3e3a0..00000000 Binary files a/demo/imgtip/panda.jpg and /dev/null differ diff --git a/demo/imgtip/tip.js b/demo/imgtip/tip.js deleted file mode 100755 index 66127d18..00000000 --- a/demo/imgtip/tip.js +++ /dev/null @@ -1,36 +0,0 @@ -$(function() { - $('#content img:not(:eq(0))').hover( - function() { - var position = $(this).position(); - var tipHight = $('#tipInfo').height(); - var endTop = (position.top + $(this).height()) - tipHight; - //$(this).addClass('active'); - - // 设置提示内容 - var author = $(this).attr('author'); - if($(this).attr('url')) { - var link = "" + author + ""; - $("#tipInfo").html('作者:' + link); - } else { - $("#tipInfo").html("作者:" + author); - } - $("#tipInfo").width($(this).width()).show() - .css({top: endTop + "px", left: position.left + "px"}); - $("#tipInfo").data('isfirst', false); - }, - function() { - //$(this).removeClass('active'); - $('#tipInfo').hide(); - } - ); - - // 当鼠标移动到提示条是继续保持显示状态 - // 从提示条上移除鼠标时隐藏 - $('#tipInfo').hover( - function() { - $(this).show(); - },function(){ - $(this).hide(); - } - ); -}); \ No newline at end of file diff --git a/demo/index.html b/demo/index.html deleted file mode 100755 index 4b15271f..00000000 --- a/demo/index.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - www.wsria.cn实验室 - - - - - - - - -

    What's the RIA? 演示中心

    -
    -
      -
    • - weebox与simple.tree的结合产物(对话框选择树) - 点击体验 -
        -
      1. 版本:1.0
      2. -
      3. 说明:基于jquery.weebox和jquery.simpletree.js包装的一个 - 对话框下拉树,在我的那个开源项目中使用了这两个插件的简单结合,很多网友看了好加我要源码,然后就花一上午时间简单整理了一下, - 但是没有做成插件形式,以后有时间再整理
      4. -
      5. 下载
      6. -
      -
    • -
    • - jQuery对话框插件weebox - 点击体验 -
        -
      1. 包含各种样式的对话框
      2. -
      3. at plugins.jquery.com
      4. -
      -
    • -
    • - jQuery滚动条插件(连贯感觉) - 点击体验 -
    • -
    • - jQuery.tab - 点击体验 -
        -
      1. 简单、易用的tab标签页
      2. -
      3. 感谢jquery爱好者豪情激情奉献
      4. -
      -
    • -
    • - 模仿google相册鼠标移动提示 - 点击体验 -
    • -
    • - 网友“褪色”的作品体验一下jQuery - 点击体验 -
    • -
    -
    - - \ No newline at end of file diff --git a/demo/jqgrid/frozen.html b/demo/jqgrid/frozen.html deleted file mode 100644 index c599b6c2..00000000 --- a/demo/jqgrid/frozen.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - jqGrid列表列冻结之后出现的高度问题hack方式解决办法 - - - - - - - - - - - - -
    -
    - -
    -
    -
    - - - \ No newline at end of file diff --git a/demo/jqgrid/frozen.js b/demo/jqgrid/frozen.js deleted file mode 100644 index 98c27905..00000000 --- a/demo/jqgrid/frozen.js +++ /dev/null @@ -1,255 +0,0 @@ -var browser = { - // 检测是否是IE浏览器 - isIE: function() { - var _uaMatch = $.uaMatch(navigator.userAgent); - var _browser = _uaMatch.browser; - if (_browser == 'msie') { - return true; - } else { - return false; - } - }, - // 检测是否是chrome浏览器 - isChrome: function() { - var _uaMatch = $.uaMatch(navigator.userAgent); - var _browser = _uaMatch.browser; - if (_browser == 'chrome') { - return true; - } else { - return false; - } - }, - // 检测是否是Firefox浏览器 - isMozila: function() { - var _uaMatch = $.uaMatch(navigator.userAgent); - var _browser = _uaMatch.browser; - if (_browser == 'mozilla') { - return true; - } else { - return false; - } - }, - // 检测是否是Firefox浏览器 - isOpera: function() { - var _uaMatch = $.uaMatch(navigator.userAgent); - var _browser = _uaMatch.browser; - if (_browser == 'webkit') { - return true; - } else { - return false; - } - } -}; -$(function() { - $("#list").jqGrid({ - url: 'frozen.json', - datatype: "json", - colNames: ['Inv No', 'Date', 'Client', 'Amount', 'Tax', 'Total', 'Notes', '列名1', '列名2', '列名3', '列名4', '列名5'], - width: 700, - colModel: [{ - name: 'id', - index: 'id', - width: 55, - frozen: true - }, { - name: 'invdate', - index: 'invdate', - width: 90, - frozen: true - }, { - name: 'name', - index: 'name asc, invdate', - width: 100 - }, { - name: 'amount', - index: 'amount', - width: 80, - align: "right" - }, { - name: 'tax', - index: 'tax', - width: 80, - align: "right" - }, { - name: 'total', - index: 'total', - width: 80, - align: "right" - }, { - name: 'note', - index: 'note' - }, { - name: 'column1', - formatter: function() { - return ""; - } - }, { - name: 'column2' - }, { - name: 'column3' - }, { - name: 'column4' - }, { - name: 'column5' - }], - shrinkToFit: false, - rowNum: 10, - rowList: [10, 20, 30], - pager: '#pager', - sortname: 'id', - viewrecords: true, - sortorder: "desc", - caption: "列冻结高度问题--未冻结比冻结的列高" - }).jqGrid('navGrid', '#pager', { - edit: false, - add: false, - del: false - }).jqGrid('setFrozenColumns'); - - // hack方式解决高度问题 - $('#hackFrozenHeight').click(function() { - hackHeight('#list'); - }); - - // 加载第二个列表 - list1(); -}); - -/** - * 终极hack列冻结导致的高度问题 - * @param {[String]} listId [列表ID] - */ - -function hackHeight(listId) { - $(listId + '_frozen tr').slice(1).each(function() { - - var rowId = $(this).attr('id'); - - var frozenTdHeight = parseFloat($('td:first', this).height()); - var normalHeight = parseFloat($(listId + ' #' + $(this).attr('id')).find('td:first').height()); - - // 如果冻结的列高度小于未冻结列的高度则hack之 - if (frozenTdHeight < normalHeight) { - - $('td', this).each(function() { - - /* - 浏览器差异高度hack - */ - var space = 0; // opera默认使用0就可以 - if (browser.isChrome()) { - space = 0.6; - } else if (browser.isIE()) { - space = -0.2; - } else if (browser.isMozila()) { - space = 0.5; - } - - if (!$(this).attr('style') || $(this).attr('style').indexOf('height:') == -1) { - $(this).attr('style', $(this).attr('style') + ";height:" + (normalHeight + space) + "px !important"); - } - }); - } - }); -} - -/** - * 第二个列表 - * @return {[type]} [description] - */ - -function list1() { - - $("#list1").jqGrid({ - url: 'frozen.json', - datatype: "json", - colNames: ['Inv No', 'Date', 'Client', 'Amount', 'Tax', 'Total', 'Notes', '列名1', '列名2', '列名3', '列名4', '列名5'], - width: 700, - colModel: [{ - name: 'id', - index: 'id', - width: 55, - frozen: true - }, { - name: 'invdate', - index: 'invdate', - width: 90, - frozen: true, - formatter: function() { - return "故意加高
    故意加高
    故意加高
    故意加高"; - } - }, { - name: 'name', - index: 'name asc, invdate', - width: 100 - }, { - name: 'amount', - index: 'amount', - width: 80, - align: "right" - }, { - name: 'tax', - index: 'tax', - width: 80, - align: "right" - }, { - name: 'total', - index: 'total', - width: 80, - align: "right" - }, { - name: 'note', - index: 'note' - }, { - name: 'column1', - formatter: function() { - return ""; - } - }, { - name: 'column2' - }, { - name: 'column3' - }, { - name: 'column4' - }, { - name: 'column5' - }], - shrinkToFit: false, - rowNum: 10, - rowList: [10, 20, 30], - pager: '#pager1', - sortname: 'id', - viewrecords: true, - sortorder: "desc", - caption: "列冻结高度问题--冻结比未冻结的列高" - }).jqGrid('navGrid', '#pager1', { - edit: false, - add: false, - del: false - }).jqGrid('setFrozenColumns'); - - - if (browser.isOpera()) { - $('#hackFrozenHeight1').text('少年,Opera不需要修复!!!'); - } else { - // hack方式修复高度 - $('#hackFrozenHeight1').click(function() { - var listId = 'list1'; - var divTop = -1; - var bdivTop = -1; - - // opera 不需要hack - if (browser.isOpera()) { - divTop = 0; - bdivTop = 0; - } - - $('#gview_' + listId + ' .frozen-div').css({ - top: $('#gview_' + listId + ' .frozen-div').position().top + divTop - }); - $('#gview_' + listId + ' .frozen-bdiv').css({ - top: $('#gview_' + listId + ' .frozen-bdiv').position().top + bdivTop - }); - }); - } -} \ No newline at end of file diff --git a/demo/jqgrid/frozen.json b/demo/jqgrid/frozen.json deleted file mode 100644 index d32ac771..00000000 --- a/demo/jqgrid/frozen.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "page": "1", - "total": 2, - "records": "13", - "rows": [{ - "id": "13", - "cell": ["13", "2007-10-06", "Client 3", "1000.00", "0.00", "1000.00", "列冻结之后导致行的高度不一致,
    这个让人很郁闷,没办法我帮你解决", "我是咖啡兔", "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "12", - "cell": ["12", "2007-10-06", "Client 2", "700.00", "140.00", "840.00", null, "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "11", - "cell": ["11", "2007-10-06", "Client 1", "600.00", "120.00", "720.00", "列冻结之后导致行的高度不一致,
    这个让人很郁闷,没办法我帮你解决", "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "10", - "cell": ["10", "2007-10-06", "Client 2", "100.00", "20.00", "120.00", null, "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "9", - "cell": ["9", "2007-10-06", "Client 1", "200.00", "40.00", "240.00", null, "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "8", - "cell": ["8", "2007-10-06", "Client 3", "200.00", "0.00", "200.00", null, "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "7", - "cell": ["7", "2007-10-05", "Client 2", "120.00", "12.00", "134.00", null, "297.20", "210.11", "33.00", "中国文字"] - }, { - "id": "6", - "cell": ["6", "2007-10-05", "Client 1", "50.00", "10.00", "60.00", "", "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "5", - "cell": ["5", "2007-10-05", "Client 3", "100.00", "0.00", "100.00", "no tax at all", "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }, { - "id": "4", - "cell": ["4", "2007-10-04", "Client 3", "150.00", "0.00", "150.00", "no tax", "297.20", "210.11", "33.00", "中国文字", "我是咖啡兔"] - }] -} \ No newline at end of file diff --git a/demo/jquery-1.2.6.pack.js b/demo/jquery-1.2.6.pack.js deleted file mode 100755 index 7c827293..00000000 --- a/demo/jquery-1.2.6.pack.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * jQuery 1.2.6 - New Wave Javascript - * - * Copyright (c) 2008 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ - * $Rev: 5685 $ - */ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(H(){J w=1b.4M,3m$=1b.$;J D=1b.4M=1b.$=H(a,b){I 2B D.17.5j(a,b)};J u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/,62=/^.[^:#\\[\\.]*$/,12;D.17=D.44={5j:H(d,b){d=d||S;G(d.16){7[0]=d;7.K=1;I 7}G(1j d=="23"){J c=u.2D(d);G(c&&(c[1]||!b)){G(c[1])d=D.4h([c[1]],b);N{J a=S.61(c[3]);G(a){G(a.2v!=c[3])I D().2q(d);I D(a)}d=[]}}N I D(b).2q(d)}N G(D.1D(d))I D(S)[D.17.27?"27":"43"](d);I 7.6Y(D.2d(d))},5w:"1.2.6",8G:H(){I 7.K},K:0,3p:H(a){I a==12?D.2d(7):7[a]},2I:H(b){J a=D(b);a.5n=7;I a},6Y:H(a){7.K=0;2p.44.1p.1w(7,a);I 7},P:H(a,b){I D.P(7,a,b)},5i:H(b){J a=-1;I D.2L(b&&b.5w?b[0]:b,7)},1K:H(c,a,b){J d=c;G(c.1q==56)G(a===12)I 7[0]&&D[b||"1K"](7[0],c);N{d={};d[c]=a}I 7.P(H(i){R(c 1n d)D.1K(b?7.V:7,c,D.1i(7,d[c],b,i,c))})},1g:H(b,a){G((b==\'2h\'||b==\'1Z\')&&3d(a)<0)a=12;I 7.1K(b,a,"2a")},1r:H(b){G(1j b!="49"&&b!=U)I 7.4E().3v((7[0]&&7[0].2z||S).5F(b));J a="";D.P(b||7,H(){D.P(7.3t,H(){G(7.16!=8)a+=7.16!=1?7.76:D.17.1r([7])})});I a},5z:H(b){G(7[0])D(b,7[0].2z).5y().39(7[0]).2l(H(){J a=7;1B(a.1x)a=a.1x;I a}).3v(7);I 7},8Y:H(a){I 7.P(H(){D(7).6Q().5z(a)})},8R:H(a){I 7.P(H(){D(7).5z(a)})},3v:H(){I 7.3W(19,M,Q,H(a){G(7.16==1)7.3U(a)})},6F:H(){I 7.3W(19,M,M,H(a){G(7.16==1)7.39(a,7.1x)})},6E:H(){I 7.3W(19,Q,Q,H(a){7.1d.39(a,7)})},5q:H(){I 7.3W(19,Q,M,H(a){7.1d.39(a,7.2H)})},3l:H(){I 7.5n||D([])},2q:H(b){J c=D.2l(7,H(a){I D.2q(b,a)});I 7.2I(/[^+>] [^+>]/.11(b)||b.1h("..")>-1?D.4r(c):c)},5y:H(e){J f=7.2l(H(){G(D.14.1f&&!D.4n(7)){J a=7.6o(M),5h=S.3h("1v");5h.3U(a);I D.4h([5h.4H])[0]}N I 7.6o(M)});J d=f.2q("*").5c().P(H(){G(7[E]!=12)7[E]=U});G(e===M)7.2q("*").5c().P(H(i){G(7.16==3)I;J c=D.L(7,"3w");R(J a 1n c)R(J b 1n c[a])D.W.1e(d[i],a,c[a][b],c[a][b].L)});I f},1E:H(b){I 7.2I(D.1D(b)&&D.3C(7,H(a,i){I b.1k(a,i)})||D.3g(b,7))},4Y:H(b){G(b.1q==56)G(62.11(b))I 7.2I(D.3g(b,7,M));N b=D.3g(b,7);J a=b.K&&b[b.K-1]!==12&&!b.16;I 7.1E(H(){I a?D.2L(7,b)<0:7!=b})},1e:H(a){I 7.2I(D.4r(D.2R(7.3p(),1j a==\'23\'?D(a):D.2d(a))))},3F:H(a){I!!a&&D.3g(a,7).K>0},7T:H(a){I 7.3F("."+a)},6e:H(b){G(b==12){G(7.K){J c=7[0];G(D.Y(c,"2A")){J e=c.64,63=[],15=c.15,2V=c.O=="2A-2V";G(e<0)I U;R(J i=2V?e:0,2f=2V?e+1:15.K;i<2f;i++){J d=15[i];G(d.2W){b=D.14.1f&&!d.at.2x.an?d.1r:d.2x;G(2V)I b;63.1p(b)}}I 63}N I(7[0].2x||"").1o(/\\r/g,"")}I 12}G(b.1q==4L)b+=\'\';I 7.P(H(){G(7.16!=1)I;G(b.1q==2p&&/5O|5L/.11(7.O))7.4J=(D.2L(7.2x,b)>=0||D.2L(7.34,b)>=0);N G(D.Y(7,"2A")){J a=D.2d(b);D("9R",7).P(H(){7.2W=(D.2L(7.2x,a)>=0||D.2L(7.1r,a)>=0)});G(!a.K)7.64=-1}N 7.2x=b})},2K:H(a){I a==12?(7[0]?7[0].4H:U):7.4E().3v(a)},7b:H(a){I 7.5q(a).21()},79:H(i){I 7.3s(i,i+1)},3s:H(){I 7.2I(2p.44.3s.1w(7,19))},2l:H(b){I 7.2I(D.2l(7,H(a,i){I b.1k(a,i,a)}))},5c:H(){I 7.1e(7.5n)},L:H(d,b){J a=d.1R(".");a[1]=a[1]?"."+a[1]:"";G(b===12){J c=7.5C("9z"+a[1]+"!",[a[0]]);G(c===12&&7.K)c=D.L(7[0],d);I c===12&&a[1]?7.L(a[0]):c}N I 7.1P("9u"+a[1]+"!",[a[0],b]).P(H(){D.L(7,d,b)})},3b:H(a){I 7.P(H(){D.3b(7,a)})},3W:H(g,f,h,d){J e=7.K>1,3x;I 7.P(H(){G(!3x){3x=D.4h(g,7.2z);G(h)3x.9o()}J b=7;G(f&&D.Y(7,"1T")&&D.Y(3x[0],"4F"))b=7.3H("22")[0]||7.3U(7.2z.3h("22"));J c=D([]);D.P(3x,H(){J a=e?D(7).5y(M)[0]:7;G(D.Y(a,"1m"))c=c.1e(a);N{G(a.16==1)c=c.1e(D("1m",a).21());d.1k(b,a)}});c.P(6T)})}};D.17.5j.44=D.17;H 6T(i,a){G(a.4d)D.3Y({1a:a.4d,31:Q,1O:"1m"});N D.5u(a.1r||a.6O||a.4H||"");G(a.1d)a.1d.37(a)}H 1z(){I+2B 8J}D.1l=D.17.1l=H(){J b=19[0]||{},i=1,K=19.K,4x=Q,15;G(b.1q==8I){4x=b;b=19[1]||{};i=2}G(1j b!="49"&&1j b!="H")b={};G(K==i){b=7;--i}R(;i-1}},6q:H(b,c,a){J e={};R(J d 1n c){e[d]=b.V[d];b.V[d]=c[d]}a.1k(b);R(J d 1n c)b.V[d]=e[d]},1g:H(d,e,c){G(e=="2h"||e=="1Z"){J b,3X={30:"5x",5g:"1G",18:"3I"},35=e=="2h"?["5e","6k"]:["5G","6i"];H 5b(){b=e=="2h"?d.8f:d.8c;J a=0,2C=0;D.P(35,H(){a+=3d(D.2a(d,"57"+7,M))||0;2C+=3d(D.2a(d,"2C"+7+"4b",M))||0});b-=29.83(a+2C)}G(D(d).3F(":4j"))5b();N D.6q(d,3X,5b);I 29.2f(0,b)}I D.2a(d,e,c)},2a:H(f,l,k){J e,V=f.V;H 3E(b){G(!D.14.2k)I Q;J a=3P.54(b,U);I!a||a.52("3E")==""}G(l=="1y"&&D.14.1f){e=D.1K(V,"1y");I e==""?"1":e}G(D.14.2G&&l=="18"){J d=V.50;V.50="0 7Y 7W";V.50=d}G(l.1I(/4i/i))l=y;G(!k&&V&&V[l])e=V[l];N G(3P.54){G(l.1I(/4i/i))l="4i";l=l.1o(/([A-Z])/g,"-$1").3y();J c=3P.54(f,U);G(c&&!3E(f))e=c.52(l);N{J g=[],2E=[],a=f,i=0;R(;a&&3E(a);a=a.1d)2E.6h(a);R(;i<2E.K;i++)G(3E(2E[i])){g[i]=2E[i].V.18;2E[i].V.18="3I"}e=l=="18"&&g[2E.K-1]!=U?"2F":(c&&c.52(l))||"";R(i=0;i]*?)\\/>/g,H(b,a,c){I c.1I(/^(aK|4f|7E|aG|4T|7A|aB|3n|az|ay|av)$/i)?b:a+">"});J f=D.3k(d).3y(),1v=h.3h("1v");J e=!f.1h("",""]||!f.1h("",""]||f.1I(/^<(aq|22|am|ak|ai)/)&&[1,"<1T>",""]||!f.1h("<4F")&&[2,"<1T><22>",""]||(!f.1h("<22><4F>",""]||!f.1h("<7E")&&[2,"<1T><22><7q>",""]||D.14.1f&&[1,"1v<1v>",""]||[0,"",""];1v.4H=e[1]+d+e[2];1B(e[0]--)1v=1v.5T;G(D.14.1f){J g=!f.1h("<1T")&&f.1h("<22")<0?1v.1x&&1v.1x.3t:e[1]=="<1T>"&&f.1h("<22")<0?1v.3t:[];R(J j=g.K-1;j>=0;--j)G(D.Y(g[j],"22")&&!g[j].3t.K)g[j].1d.37(g[j]);G(/^\\s/.11(d))1v.39(h.5F(d.1I(/^\\s*/)[0]),1v.1x)}d=D.2d(1v.3t)}G(d.K===0&&(!D.Y(d,"3V")&&!D.Y(d,"2A")))I;G(d[0]==12||D.Y(d,"3V")||d.15)k.1p(d);N k=D.2R(k,d)});I k},1K:H(d,f,c){G(!d||d.16==3||d.16==8)I 12;J e=!D.4n(d),40=c!==12,1f=D.14.1f;f=e&&D.3X[f]||f;G(d.2j){J g=/5Q|4d|V/.11(f);G(f=="2W"&&D.14.2k)d.1d.64;G(f 1n d&&e&&!g){G(40){G(f=="O"&&D.Y(d,"4T")&&d.1d)7p"O a3 a1\'t 9V 9U";d[f]=c}G(D.Y(d,"3V")&&d.7i(f))I d.7i(f).76;I d[f]}G(1f&&e&&f=="V")I D.1K(d.V,"9T",c);G(40)d.9Q(f,""+c);J h=1f&&e&&g?d.4G(f,2):d.4G(f);I h===U?12:h}G(1f&&f=="1y"){G(40){d.6B=1;d.1E=(d.1E||"").1o(/7f\\([^)]*\\)/,"")+(3r(c)+\'\'=="9L"?"":"7f(1y="+c*7a+")")}I d.1E&&d.1E.1h("1y=")>=0?(3d(d.1E.1I(/1y=([^)]*)/)[1])/7a)+\'\':""}f=f.1o(/-([a-z])/9H,H(a,b){I b.2r()});G(40)d[f]=c;I d[f]},3k:H(a){I(a||"").1o(/^\\s+|\\s+$/g,"")},2d:H(b){J a=[];G(b!=U){J i=b.K;G(i==U||b.1R||b.4I||b.1k)a[0]=b;N 1B(i)a[--i]=b[i]}I a},2L:H(b,a){R(J i=0,K=a.K;i*",7).21();1B(7.1x)7.37(7.1x)}},H(a,b){D.17[a]=H(){I 7.P(b,19)}});D.P(["6N","4b"],H(i,c){J b=c.3y();D.17[b]=H(a){I 7[0]==1b?D.14.2G&&S.1c["5t"+c]||D.14.2k&&1b["5s"+c]||S.70=="6Z"&&S.1C["5t"+c]||S.1c["5t"+c]:7[0]==S?29.2f(29.2f(S.1c["4y"+c],S.1C["4y"+c]),29.2f(S.1c["2i"+c],S.1C["2i"+c])):a==12?(7.K?D.1g(7[0],b):U):7.1g(b,a.1q==56?a:a+"2X")}});H 25(a,b){I a[0]&&3r(D.2a(a[0],b,M),10)||0}J C=D.14.2k&&3r(D.14.5B)<8H?"(?:[\\\\w*3m-]|\\\\\\\\.)":"(?:[\\\\w\\8F-\\8E*3m-]|\\\\\\\\.)",6L=2B 4v("^>\\\\s*("+C+"+)"),6J=2B 4v("^("+C+"+)(#)("+C+"+)"),6I=2B 4v("^([#.]?)("+C+"*)");D.1l({6H:{"":H(a,i,m){I m[2]=="*"||D.Y(a,m[2])},"#":H(a,i,m){I a.4G("2v")==m[2]},":":{8D:H(a,i,m){I im[3]-0},3a:H(a,i,m){I m[3]-0==i},79:H(a,i,m){I m[3]-0==i},3o:H(a,i){I i==0},3S:H(a,i,m,r){I i==r.K-1},6D:H(a,i){I i%2==0},6C:H(a,i){I i%2},"3o-4u":H(a){I a.1d.3H("*")[0]==a},"3S-4u":H(a){I D.3a(a.1d.5T,1,"4l")==a},"8z-4u":H(a){I!D.3a(a.1d.5T,2,"4l")},6W:H(a){I a.1x},4E:H(a){I!a.1x},8y:H(a,i,m){I(a.6O||a.8x||D(a).1r()||"").1h(m[3])>=0},4j:H(a){I"1G"!=a.O&&D.1g(a,"18")!="2F"&&D.1g(a,"5g")!="1G"},1G:H(a){I"1G"==a.O||D.1g(a,"18")=="2F"||D.1g(a,"5g")=="1G"},8w:H(a){I!a.3R},3R:H(a){I a.3R},4J:H(a){I a.4J},2W:H(a){I a.2W||D.1K(a,"2W")},1r:H(a){I"1r"==a.O},5O:H(a){I"5O"==a.O},5L:H(a){I"5L"==a.O},5p:H(a){I"5p"==a.O},3Q:H(a){I"3Q"==a.O},5o:H(a){I"5o"==a.O},6A:H(a){I"6A"==a.O},6z:H(a){I"6z"==a.O},2s:H(a){I"2s"==a.O||D.Y(a,"2s")},4T:H(a){I/4T|2A|6y|2s/i.11(a.Y)},3T:H(a,i,m){I D.2q(m[3],a).K},8t:H(a){I/h\\d/i.11(a.Y)},8s:H(a){I D.3C(D.3O,H(b){I a==b.T}).K}}},6x:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,2B 4v("^([:.#]*)("+C+"+)")],3g:H(a,c,b){J d,1t=[];1B(a&&a!=d){d=a;J f=D.1E(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1t=b?c=f.r:D.2R(1t,f.r)}I 1t},2q:H(t,o){G(1j t!="23")I[t];G(o&&o.16!=1&&o.16!=9)I[];o=o||S;J d=[o],2o=[],3S,Y;1B(t&&3S!=t){J r=[];3S=t;t=D.3k(t);J l=Q,3j=6L,m=3j.2D(t);G(m){Y=m[1].2r();R(J i=0;d[i];i++)R(J c=d[i].1x;c;c=c.2H)G(c.16==1&&(Y=="*"||c.Y.2r()==Y))r.1p(c);d=r;t=t.1o(3j,"");G(t.1h(" ")==0)6M;l=M}N{3j=/^([>+~])\\s*(\\w*)/i;G((m=3j.2D(t))!=U){r=[];J k={};Y=m[2].2r();m=m[1];R(J j=0,3i=d.K;j<3i;j++){J n=m=="~"||m=="+"?d[j].2H:d[j].1x;R(;n;n=n.2H)G(n.16==1){J g=D.L(n);G(m=="~"&&k[g])1X;G(!Y||n.Y.2r()==Y){G(m=="~")k[g]=M;r.1p(n)}G(m=="+")1X}}d=r;t=D.3k(t.1o(3j,""));l=M}}G(t&&!l){G(!t.1h(",")){G(o==d[0])d.4s();2o=D.2R(2o,d);r=d=[o];t=" "+t.6v(1,t.K)}N{J h=6J;J m=h.2D(t);G(m){m=[0,m[2],m[3],m[1]]}N{h=6I;m=h.2D(t)}m[2]=m[2].1o(/\\\\/g,"");J f=d[d.K-1];G(m[1]=="#"&&f&&f.61&&!D.4n(f)){J p=f.61(m[2]);G((D.14.1f||D.14.2G)&&p&&1j p.2v=="23"&&p.2v!=m[2])p=D(\'[@2v="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||D.Y(p,m[3]))?[p]:[]}N{R(J i=0;d[i];i++){J a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];G(a=="*"&&d[i].Y.3y()=="49")a="3n";r=D.2R(r,d[i].3H(a))}G(m[1]==".")r=D.5m(r,m[2]);G(m[1]=="#"){J e=[];R(J i=0;r[i];i++)G(r[i].4G("2v")==m[2]){e=[r[i]];1X}r=e}d=r}t=t.1o(h,"")}}G(t){J b=D.1E(t,r);d=r=b.r;t=D.3k(b.t)}}G(t)d=[];G(d&&o==d[0])d.4s();2o=D.2R(2o,d);I 2o},5m:H(r,m,a){m=" "+m+" ";J c=[];R(J i=0;r[i];i++){J b=(" "+r[i].1F+" ").1h(m)>=0;G(!a&&b||a&&!b)c.1p(r[i])}I c},1E:H(t,r,h){J d;1B(t&&t!=d){d=t;J p=D.6x,m;R(J i=0;p[i];i++){m=p[i].2D(t);G(m){t=t.8r(m[0].K);m[2]=m[2].1o(/\\\\/g,"");1X}}G(!m)1X;G(m[1]==":"&&m[2]=="4Y")r=62.11(m[3])?D.1E(m[3],r,M).r:D(r).4Y(m[3]);N G(m[1]==".")r=D.5m(r,m[2],h);N G(m[1]=="["){J g=[],O=m[3];R(J i=0,3i=r.K;i<3i;i++){J a=r[i],z=a[D.3X[m[2]]||m[2]];G(z==U||/5Q|4d|2W/.11(m[2]))z=D.1K(a,m[2])||\'\';G((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1h(m[5])||O=="$="&&z.6v(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1h(m[5])>=0)^h)g.1p(a)}r=g}N G(m[1]==":"&&m[2]=="3a-4u"){J e={},g=[],11=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2D(m[3]=="6D"&&"2n"||m[3]=="6C"&&"2n+1"||!/\\D/.11(m[3])&&"8q+"+m[3]||m[3]),3o=(11[1]+(11[2]||1))-0,d=11[3]-0;R(J i=0,3i=r.K;i<3i;i++){J j=r[i],1d=j.1d,2v=D.L(1d);G(!e[2v]){J c=1;R(J n=1d.1x;n;n=n.2H)G(n.16==1)n.4q=c++;e[2v]=M}J b=Q;G(3o==0){G(j.4q==d)b=M}N G((j.4q-d)%3o==0&&(j.4q-d)/3o>=0)b=M;G(b^h)g.1p(j)}r=g}N{J f=D.6H[m[1]];G(1j f=="49")f=f[m[2]];G(1j f=="23")f=6u("Q||H(a,i){I "+f+";}");r=D.3C(r,H(a,i){I f(a,i,m,r)},h)}}I{r:r,t:t}},4S:H(b,c){J a=[],1t=b[c];1B(1t&&1t!=S){G(1t.16==1)a.1p(1t);1t=1t[c]}I a},3a:H(a,e,c,b){e=e||1;J d=0;R(;a;a=a[c])G(a.16==1&&++d==e)1X;I a},5v:H(n,a){J r=[];R(;n;n=n.2H){G(n.16==1&&n!=a)r.1p(n)}I r}});D.W={1e:H(f,i,g,e){G(f.16==3||f.16==8)I;G(D.14.1f&&f.4I)f=1b;G(!g.24)g.24=7.24++;G(e!=12){J h=g;g=7.3M(h,H(){I h.1w(7,19)});g.L=e}J j=D.L(f,"3w")||D.L(f,"3w",{}),1H=D.L(f,"1H")||D.L(f,"1H",H(){G(1j D!="12"&&!D.W.5k)I D.W.1H.1w(19.3L.T,19)});1H.T=f;D.P(i.1R(/\\s+/),H(c,b){J a=b.1R(".");b=a[0];g.O=a[1];J d=j[b];G(!d){d=j[b]={};G(!D.W.2t[b]||D.W.2t[b].4p.1k(f)===Q){G(f.3K)f.3K(b,1H,Q);N G(f.6t)f.6t("4o"+b,1H)}}d[g.24]=g;D.W.26[b]=M});f=U},24:1,26:{},21:H(e,h,f){G(e.16==3||e.16==8)I;J i=D.L(e,"3w"),1L,5i;G(i){G(h==12||(1j h=="23"&&h.8p(0)=="."))R(J g 1n i)7.21(e,g+(h||""));N{G(h.O){f=h.2y;h=h.O}D.P(h.1R(/\\s+/),H(b,a){J c=a.1R(".");a=c[0];G(i[a]){G(f)2U i[a][f.24];N R(f 1n i[a])G(!c[1]||i[a][f].O==c[1])2U i[a][f];R(1L 1n i[a])1X;G(!1L){G(!D.W.2t[a]||D.W.2t[a].4A.1k(e)===Q){G(e.6p)e.6p(a,D.L(e,"1H"),Q);N G(e.6n)e.6n("4o"+a,D.L(e,"1H"))}1L=U;2U i[a]}}})}R(1L 1n i)1X;G(!1L){J d=D.L(e,"1H");G(d)d.T=U;D.3b(e,"3w");D.3b(e,"1H")}}},1P:H(h,c,f,g,i){c=D.2d(c);G(h.1h("!")>=0){h=h.3s(0,-1);J a=M}G(!f){G(7.26[h])D("*").1e([1b,S]).1P(h,c)}N{G(f.16==3||f.16==8)I 12;J b,1L,17=D.1D(f[h]||U),W=!c[0]||!c[0].32;G(W){c.6h({O:h,2J:f,32:H(){},3J:H(){},4C:1z()});c[0][E]=M}c[0].O=h;G(a)c[0].6m=M;J d=D.L(f,"1H");G(d)b=d.1w(f,c);G((!17||(D.Y(f,\'a\')&&h=="4V"))&&f["4o"+h]&&f["4o"+h].1w(f,c)===Q)b=Q;G(W)c.4s();G(i&&D.1D(i)){1L=i.1w(f,b==U?c:c.7d(b));G(1L!==12)b=1L}G(17&&g!==Q&&b!==Q&&!(D.Y(f,\'a\')&&h=="4V")){7.5k=M;1U{f[h]()}1V(e){}}7.5k=Q}I b},1H:H(b){J a,1L,38,5f,4m;b=19[0]=D.W.6l(b||1b.W);38=b.O.1R(".");b.O=38[0];38=38[1];5f=!38&&!b.6m;4m=(D.L(7,"3w")||{})[b.O];R(J j 1n 4m){J c=4m[j];G(5f||c.O==38){b.2y=c;b.L=c.L;1L=c.1w(7,19);G(a!==Q)a=1L;G(1L===Q){b.32();b.3J()}}}I a},6l:H(b){G(b[E]==M)I b;J d=b;b={8o:d};J c="8n 8m 8l 8k 2s 8j 47 5d 6j 5E 8i L 8h 8g 4K 2y 5a 59 8e 8b 58 6f 8a 88 4k 87 86 84 6d 2J 4C 6c O 82 81 35".1R(" ");R(J i=c.K;i;i--)b[c[i]]=d[c[i]];b[E]=M;b.32=H(){G(d.32)d.32();d.80=Q};b.3J=H(){G(d.3J)d.3J();d.7Z=M};b.4C=b.4C||1z();G(!b.2J)b.2J=b.6d||S;G(b.2J.16==3)b.2J=b.2J.1d;G(!b.4k&&b.4K)b.4k=b.4K==b.2J?b.6c:b.4K;G(b.58==U&&b.5d!=U){J a=S.1C,1c=S.1c;b.58=b.5d+(a&&a.2e||1c&&1c.2e||0)-(a.6b||0);b.6f=b.6j+(a&&a.2c||1c&&1c.2c||0)-(a.6a||0)}G(!b.35&&((b.47||b.47===0)?b.47:b.5a))b.35=b.47||b.5a;G(!b.59&&b.5E)b.59=b.5E;G(!b.35&&b.2s)b.35=(b.2s&1?1:(b.2s&2?3:(b.2s&4?2:0)));I b},3M:H(a,b){b.24=a.24=a.24||b.24||7.24++;I b},2t:{27:{4p:H(){55();I},4A:H(){I}},3D:{4p:H(){G(D.14.1f)I Q;D(7).2O("53",D.W.2t.3D.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("53",D.W.2t.3D.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3D";I D.W.1H.1w(7,19)}},3N:{4p:H(){G(D.14.1f)I Q;D(7).2O("51",D.W.2t.3N.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("51",D.W.2t.3N.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3N";I D.W.1H.1w(7,19)}}}};D.17.1l({2O:H(c,a,b){I c=="4X"?7.2V(c,a,b):7.P(H(){D.W.1e(7,c,b||a,b&&a)})},2V:H(d,b,c){J e=D.W.3M(c||b,H(a){D(7).4e(a,e);I(c||b).1w(7,19)});I 7.P(H(){D.W.1e(7,d,e,c&&b)})},4e:H(a,b){I 7.P(H(){D.W.21(7,a,b)})},1P:H(c,a,b){I 7.P(H(){D.W.1P(c,a,7,M,b)})},5C:H(c,a,b){I 7[0]&&D.W.1P(c,a,7[0],Q,b)},2m:H(b){J c=19,i=1;1B(i=0){J i=g.3s(e,g.K);g=g.3s(0,e)}c=c||H(){};J f="2P";G(d)G(D.1D(d)){c=d;d=U}N{d=D.3n(d);f="6g"}J h=7;D.3Y({1a:g,O:f,1O:"2K",L:d,1J:H(a,b){G(b=="1W"||b=="7J")h.2K(i?D("<1v/>").3v(a.4U.1o(/<1m(.|\\s)*?\\/1m>/g,"")).2q(i):a.4U);h.P(c,[a.4U,b,a])}});I 7},aL:H(){I D.3n(7.7I())},7I:H(){I 7.2l(H(){I D.Y(7,"3V")?D.2d(7.aH):7}).1E(H(){I 7.34&&!7.3R&&(7.4J||/2A|6y/i.11(7.Y)||/1r|1G|3Q/i.11(7.O))}).2l(H(i,c){J b=D(7).6e();I b==U?U:b.1q==2p?D.2l(b,H(a,i){I{34:c.34,2x:a}}):{34:c.34,2x:b}}).3p()}});D.P("7H,7G,7F,7D,7C,7B".1R(","),H(i,o){D.17[o]=H(f){I 7.2O(o,f)}});J B=1z();D.1l({3p:H(d,b,a,c){G(D.1D(b)){a=b;b=U}I D.3Y({O:"2P",1a:d,L:b,1W:a,1O:c})},aE:H(b,a){I D.3p(b,U,a,"1m")},aD:H(c,b,a){I D.3p(c,b,a,"3z")},aC:H(d,b,a,c){G(D.1D(b)){a=b;b={}}I D.3Y({O:"6g",1a:d,L:b,1W:a,1O:c})},aA:H(a){D.1l(D.60,a)},60:{1a:5Z.5Q,26:M,O:"2P",2T:0,7z:"4R/x-ax-3V-aw",7x:M,31:M,L:U,5Y:U,3Q:U,4Q:{2N:"4R/2N, 1r/2N",2K:"1r/2K",1m:"1r/4t, 4R/4t",3z:"4R/3z, 1r/4t",1r:"1r/as",4w:"*/*"}},4z:{},3Y:H(s){s=D.1l(M,s,D.1l(M,{},D.60,s));J g,2Z=/=\\?(&|$)/g,1u,L,O=s.O.2r();G(s.L&&s.7x&&1j s.L!="23")s.L=D.3n(s.L);G(s.1O=="4P"){G(O=="2P"){G(!s.1a.1I(2Z))s.1a+=(s.1a.1I(/\\?/)?"&":"?")+(s.4P||"7u")+"=?"}N G(!s.L||!s.L.1I(2Z))s.L=(s.L?s.L+"&":"")+(s.4P||"7u")+"=?";s.1O="3z"}G(s.1O=="3z"&&(s.L&&s.L.1I(2Z)||s.1a.1I(2Z))){g="4P"+B++;G(s.L)s.L=(s.L+"").1o(2Z,"="+g+"$1");s.1a=s.1a.1o(2Z,"="+g+"$1");s.1O="1m";1b[g]=H(a){L=a;1W();1J();1b[g]=12;1U{2U 1b[g]}1V(e){}G(i)i.37(h)}}G(s.1O=="1m"&&s.1Y==U)s.1Y=Q;G(s.1Y===Q&&O=="2P"){J j=1z();J k=s.1a.1o(/(\\?|&)3m=.*?(&|$)/,"$ap="+j+"$2");s.1a=k+((k==s.1a)?(s.1a.1I(/\\?/)?"&":"?")+"3m="+j:"")}G(s.L&&O=="2P"){s.1a+=(s.1a.1I(/\\?/)?"&":"?")+s.L;s.L=U}G(s.26&&!D.4O++)D.W.1P("7H");J n=/^(?:\\w+:)?\\/\\/([^\\/?#]+)/;G(s.1O=="1m"&&O=="2P"&&n.11(s.1a)&&n.2D(s.1a)[1]!=5Z.al){J i=S.3H("6w")[0];J h=S.3h("1m");h.4d=s.1a;G(s.7t)h.aj=s.7t;G(!g){J l=Q;h.ah=h.ag=H(){G(!l&&(!7.3f||7.3f=="68"||7.3f=="1J")){l=M;1W();1J();i.37(h)}}}i.3U(h);I 12}J m=Q;J c=1b.7s?2B 7s("ae.ac"):2B 7r();G(s.5Y)c.6R(O,s.1a,s.31,s.5Y,s.3Q);N c.6R(O,s.1a,s.31);1U{G(s.L)c.4B("ab-aa",s.7z);G(s.5S)c.4B("a9-5R-a8",D.4z[s.1a]||"a7, a6 a5 a4 5N:5N:5N a2");c.4B("X-9Z-9Y","7r");c.4B("9W",s.1O&&s.4Q[s.1O]?s.4Q[s.1O]+", */*":s.4Q.4w)}1V(e){}G(s.7m&&s.7m(c,s)===Q){s.26&&D.4O--;c.7l();I Q}G(s.26)D.W.1P("7B",[c,s]);J d=H(a){G(!m&&c&&(c.3f==4||a=="2T")){m=M;G(f){7k(f);f=U}1u=a=="2T"&&"2T"||!D.7j(c)&&"3e"||s.5S&&D.7h(c,s.1a)&&"7J"||"1W";G(1u=="1W"){1U{L=D.6X(c,s.1O,s.9S)}1V(e){1u="5J"}}G(1u=="1W"){J b;1U{b=c.5I("7g-5R")}1V(e){}G(s.5S&&b)D.4z[s.1a]=b;G(!g)1W()}N D.5H(s,c,1u);1J();G(s.31)c=U}};G(s.31){J f=4I(d,13);G(s.2T>0)3B(H(){G(c){c.7l();G(!m)d("2T")}},s.2T)}1U{c.9P(s.L)}1V(e){D.5H(s,c,U,e)}G(!s.31)d();H 1W(){G(s.1W)s.1W(L,1u);G(s.26)D.W.1P("7C",[c,s])}H 1J(){G(s.1J)s.1J(c,1u);G(s.26)D.W.1P("7F",[c,s]);G(s.26&&!--D.4O)D.W.1P("7G")}I c},5H:H(s,a,b,e){G(s.3e)s.3e(a,b,e);G(s.26)D.W.1P("7D",[a,s,e])},4O:0,7j:H(a){1U{I!a.1u&&5Z.9O=="5p:"||(a.1u>=7e&&a.1u<9N)||a.1u==7c||a.1u==9K||D.14.2k&&a.1u==12}1V(e){}I Q},7h:H(a,c){1U{J b=a.5I("7g-5R");I a.1u==7c||b==D.4z[c]||D.14.2k&&a.1u==12}1V(e){}I Q},6X:H(a,c,b){J d=a.5I("9J-O"),2N=c=="2N"||!c&&d&&d.1h("2N")>=0,L=2N?a.9I:a.4U;G(2N&&L.1C.2j=="5J")7p"5J";G(b)L=b(L,c);G(c=="1m")D.5u(L);G(c=="3z")L=6u("("+L+")");I L},3n:H(a){J s=[];G(a.1q==2p||a.5w)D.P(a,H(){s.1p(3u(7.34)+"="+3u(7.2x))});N R(J j 1n a)G(a[j]&&a[j].1q==2p)D.P(a[j],H(){s.1p(3u(j)+"="+3u(7))});N s.1p(3u(j)+"="+3u(D.1D(a[j])?a[j]():a[j]));I s.6s("&").1o(/%20/g,"+")}});D.17.1l({1N:H(c,b){I c?7.2g({1Z:"1N",2h:"1N",1y:"1N"},c,b):7.1E(":1G").P(H(){7.V.18=7.5D||"";G(D.1g(7,"18")=="2F"){J a=D("<"+7.2j+" />").6P("1c");7.V.18=a.1g("18");G(7.V.18=="2F")7.V.18="3I";a.21()}}).3l()},1M:H(b,a){I b?7.2g({1Z:"1M",2h:"1M",1y:"1M"},b,a):7.1E(":4j").P(H(){7.5D=7.5D||D.1g(7,"18");7.V.18="2F"}).3l()},78:D.17.2m,2m:H(a,b){I D.1D(a)&&D.1D(b)?7.78.1w(7,19):a?7.2g({1Z:"2m",2h:"2m",1y:"2m"},a,b):7.P(H(){D(7)[D(7).3F(":1G")?"1N":"1M"]()})},9G:H(b,a){I 7.2g({1Z:"1N"},b,a)},9F:H(b,a){I 7.2g({1Z:"1M"},b,a)},9E:H(b,a){I 7.2g({1Z:"2m"},b,a)},9D:H(b,a){I 7.2g({1y:"1N"},b,a)},9M:H(b,a){I 7.2g({1y:"1M"},b,a)},9C:H(c,a,b){I 7.2g({1y:a},c,b)},2g:H(k,j,i,g){J h=D.77(j,i,g);I 7[h.36===Q?"P":"36"](H(){G(7.16!=1)I Q;J f=D.1l({},h),p,1G=D(7).3F(":1G"),46=7;R(p 1n k){G(k[p]=="1M"&&1G||k[p]=="1N"&&!1G)I f.1J.1k(7);G(p=="1Z"||p=="2h"){f.18=D.1g(7,"18");f.33=7.V.33}}G(f.33!=U)7.V.33="1G";f.45=D.1l({},k);D.P(k,H(c,a){J e=2B D.28(46,f,c);G(/2m|1N|1M/.11(a))e[a=="2m"?1G?"1N":"1M":a](k);N{J b=a.6r().1I(/^([+-]=)?([\\d+-.]+)(.*)$/),2b=e.1t(M)||0;G(b){J d=3d(b[2]),2M=b[3]||"2X";G(2M!="2X"){46.V[c]=(d||1)+2M;2b=((d||1)/e.1t(M))*2b;46.V[c]=2b+2M}G(b[1])d=((b[1]=="-="?-1:1)*d)+2b;e.3G(2b,d,2M)}N e.3G(2b,a,"")}});I M})},36:H(a,b){G(D.1D(a)||(a&&a.1q==2p)){b=a;a="28"}G(!a||(1j a=="23"&&!b))I A(7[0],a);I 7.P(H(){G(b.1q==2p)A(7,a,b);N{A(7,a).1p(b);G(A(7,a).K==1)b.1k(7)}})},9X:H(b,c){J a=D.3O;G(b)7.36([]);7.P(H(){R(J i=a.K-1;i>=0;i--)G(a[i].T==7){G(c)a[i](M);a.7n(i,1)}});G(!c)7.5A();I 7}});J A=H(b,c,a){G(b){c=c||"28";J q=D.L(b,c+"36");G(!q||a)q=D.L(b,c+"36",D.2d(a))}I q};D.17.5A=H(a){a=a||"28";I 7.P(H(){J q=A(7,a);q.4s();G(q.K)q[0].1k(7)})};D.1l({77:H(b,a,c){J d=b&&b.1q==a0?b:{1J:c||!c&&a||D.1D(b)&&b,2u:b,41:c&&a||a&&a.1q!=9t&&a};d.2u=(d.2u&&d.2u.1q==4L?d.2u:D.28.5K[d.2u])||D.28.5K.74;d.5M=d.1J;d.1J=H(){G(d.36!==Q)D(7).5A();G(D.1D(d.5M))d.5M.1k(7)};I d},41:{73:H(p,n,b,a){I b+a*p},5P:H(p,n,b,a){I((-29.9r(p*29.9q)/2)+0.5)*a+b}},3O:[],48:U,28:H(b,c,a){7.15=c;7.T=b;7.1i=a;G(!c.3Z)c.3Z={}}});D.28.44={4D:H(){G(7.15.2Y)7.15.2Y.1k(7.T,7.1z,7);(D.28.2Y[7.1i]||D.28.2Y.4w)(7);G(7.1i=="1Z"||7.1i=="2h")7.T.V.18="3I"},1t:H(a){G(7.T[7.1i]!=U&&7.T.V[7.1i]==U)I 7.T[7.1i];J r=3d(D.1g(7.T,7.1i,a));I r&&r>-9p?r:3d(D.2a(7.T,7.1i))||0},3G:H(c,b,d){7.5V=1z();7.2b=c;7.3l=b;7.2M=d||7.2M||"2X";7.1z=7.2b;7.2S=7.4N=0;7.4D();J e=7;H t(a){I e.2Y(a)}t.T=7.T;D.3O.1p(t);G(D.48==U){D.48=4I(H(){J a=D.3O;R(J i=0;i7.15.2u+7.5V){7.1z=7.3l;7.2S=7.4N=1;7.4D();7.15.45[7.1i]=M;J b=M;R(J i 1n 7.15.45)G(7.15.45[i]!==M)b=Q;G(b){G(7.15.18!=U){7.T.V.33=7.15.33;7.T.V.18=7.15.18;G(D.1g(7.T,"18")=="2F")7.T.V.18="3I"}G(7.15.1M)7.T.V.18="2F";G(7.15.1M||7.15.1N)R(J p 1n 7.15.45)D.1K(7.T.V,p,7.15.3Z[p])}G(b)7.15.1J.1k(7.T);I Q}N{J n=t-7.5V;7.4N=n/7.15.2u;7.2S=D.41[7.15.41||(D.41.5P?"5P":"73")](7.4N,n,0,1,7.15.2u);7.1z=7.2b+((7.3l-7.2b)*7.2S);7.4D()}I M}};D.1l(D.28,{5K:{9l:9j,9i:7e,74:9g},2Y:{2e:H(a){a.T.2e=a.1z},2c:H(a){a.T.2c=a.1z},1y:H(a){D.1K(a.T.V,"1y",a.1z)},4w:H(a){a.T.V[a.1i]=a.1z+a.2M}}});D.17.2i=H(){J b=0,1S=0,T=7[0],3q;G(T)ao(D.14){J d=T.1d,4a=T,1s=T.1s,1Q=T.2z,5U=2k&&3r(5B)<9c&&!/9a/i.11(v),1g=D.2a,3c=1g(T,"30")=="3c";G(T.7y){J c=T.7y();1e(c.1A+29.2f(1Q.1C.2e,1Q.1c.2e),c.1S+29.2f(1Q.1C.2c,1Q.1c.2c));1e(-1Q.1C.6b,-1Q.1C.6a)}N{1e(T.5X,T.5W);1B(1s){1e(1s.5X,1s.5W);G(42&&!/^t(98|d|h)$/i.11(1s.2j)||2k&&!5U)2C(1s);G(!3c&&1g(1s,"30")=="3c")3c=M;4a=/^1c$/i.11(1s.2j)?4a:1s;1s=1s.1s}1B(d&&d.2j&&!/^1c|2K$/i.11(d.2j)){G(!/^96|1T.*$/i.11(1g(d,"18")))1e(-d.2e,-d.2c);G(42&&1g(d,"33")!="4j")2C(d);d=d.1d}G((5U&&(3c||1g(4a,"30")=="5x"))||(42&&1g(4a,"30")!="5x"))1e(-1Q.1c.5X,-1Q.1c.5W);G(3c)1e(29.2f(1Q.1C.2e,1Q.1c.2e),29.2f(1Q.1C.2c,1Q.1c.2c))}3q={1S:1S,1A:b}}H 2C(a){1e(D.2a(a,"6V",M),D.2a(a,"6U",M))}H 1e(l,t){b+=3r(l,10)||0;1S+=3r(t,10)||0}I 3q};D.17.1l({30:H(){J a=0,1S=0,3q;G(7[0]){J b=7.1s(),2i=7.2i(),4c=/^1c|2K$/i.11(b[0].2j)?{1S:0,1A:0}:b.2i();2i.1S-=25(7,\'94\');2i.1A-=25(7,\'aF\');4c.1S+=25(b,\'6U\');4c.1A+=25(b,\'6V\');3q={1S:2i.1S-4c.1S,1A:2i.1A-4c.1A}}I 3q},1s:H(){J a=7[0].1s;1B(a&&(!/^1c|2K$/i.11(a.2j)&&D.1g(a,\'30\')==\'93\'))a=a.1s;I D(a)}});D.P([\'5e\',\'5G\'],H(i,b){J c=\'4y\'+b;D.17[c]=H(a){G(!7[0])I;I a!=12?7.P(H(){7==1b||7==S?1b.92(!i?a:D(1b).2e(),i?a:D(1b).2c()):7[c]=a}):7[0]==1b||7[0]==S?46[i?\'aI\':\'aJ\']||D.71&&S.1C[c]||S.1c[c]:7[0][c]}});D.P(["6N","4b"],H(i,b){J c=i?"5e":"5G",4f=i?"6k":"6i";D.17["5s"+b]=H(){I 7[b.3y()]()+25(7,"57"+c)+25(7,"57"+4f)};D.17["90"+b]=H(a){I 7["5s"+b]()+25(7,"2C"+c+"4b")+25(7,"2C"+4f+"4b")+(a?25(7,"6S"+c)+25(7,"6S"+4f):0)}})})();',62,669,'|||||||this|||||||||||||||||||||||||||||||||||if|function|return|var|length|data|true|else|type|each|false|for|document|elem|null|style|event||nodeName|||test|undefined||browser|options|nodeType|fn|display|arguments|url|window|body|parentNode|add|msie|css|indexOf|prop|typeof|call|extend|script|in|replace|push|constructor|text|offsetParent|cur|status|div|apply|firstChild|opacity|now|left|while|documentElement|isFunction|filter|className|hidden|handle|match|complete|attr|ret|hide|show|dataType|trigger|doc|split|top|table|try|catch|success|break|cache|height||remove|tbody|string|guid|num|global|ready|fx|Math|curCSS|start|scrollTop|makeArray|scrollLeft|max|animate|width|offset|tagName|safari|map|toggle||done|Array|find|toUpperCase|button|special|duration|id|copy|value|handler|ownerDocument|select|new|border|exec|stack|none|opera|nextSibling|pushStack|target|html|inArray|unit|xml|bind|GET|isReady|merge|pos|timeout|delete|one|selected|px|step|jsre|position|async|preventDefault|overflow|name|which|queue|removeChild|namespace|insertBefore|nth|removeData|fixed|parseFloat|error|readyState|multiFilter|createElement|rl|re|trim|end|_|param|first|get|results|parseInt|slice|childNodes|encodeURIComponent|append|events|elems|toLowerCase|json|readyList|setTimeout|grep|mouseenter|color|is|custom|getElementsByTagName|block|stopPropagation|addEventListener|callee|proxy|mouseleave|timers|defaultView|password|disabled|last|has|appendChild|form|domManip|props|ajax|orig|set|easing|mozilla|load|prototype|curAnim|self|charCode|timerId|object|offsetChild|Width|parentOffset|src|unbind|br|currentStyle|clean|float|visible|relatedTarget|previousSibling|handlers|isXMLDoc|on|setup|nodeIndex|unique|shift|javascript|child|RegExp|_default|deep|scroll|lastModified|teardown|setRequestHeader|timeStamp|update|empty|tr|getAttribute|innerHTML|setInterval|checked|fromElement|Number|jQuery|state|active|jsonp|accepts|application|dir|input|responseText|click|styleSheets|unload|not|lastToggle|outline|mouseout|getPropertyValue|mouseover|getComputedStyle|bindReady|String|padding|pageX|metaKey|keyCode|getWH|andSelf|clientX|Left|all|visibility|container|index|init|triggered|removeAttribute|classFilter|prevObject|submit|file|after|windowData|inner|client|globalEval|sibling|jquery|absolute|clone|wrapAll|dequeue|version|triggerHandler|oldblock|ctrlKey|createTextNode|Top|handleError|getResponseHeader|parsererror|speeds|checkbox|old|00|radio|swing|href|Modified|ifModified|lastChild|safari2|startTime|offsetTop|offsetLeft|username|location|ajaxSettings|getElementById|isSimple|values|selectedIndex|runtimeStyle|rsLeft|_load|loaded|DOMContentLoaded|clientTop|clientLeft|toElement|srcElement|val|pageY|POST|unshift|Bottom|clientY|Right|fix|exclusive|detachEvent|cloneNode|removeEventListener|swap|toString|join|attachEvent|eval|substr|head|parse|textarea|reset|image|zoom|odd|even|before|prepend|exclude|expr|quickClass|quickID|uuid|quickChild|continue|Height|textContent|appendTo|contents|open|margin|evalScript|borderTopWidth|borderLeftWidth|parent|httpData|setArray|CSS1Compat|compatMode|boxModel|cssFloat|linear|def|webkit|nodeValue|speed|_toggle|eq|100|replaceWith|304|concat|200|alpha|Last|httpNotModified|getAttributeNode|httpSuccess|clearInterval|abort|beforeSend|splice|styleFloat|throw|colgroup|XMLHttpRequest|ActiveXObject|scriptCharset|callback|fieldset|multiple|processData|getBoundingClientRect|contentType|link|ajaxSend|ajaxSuccess|ajaxError|col|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|keypress|keydown|change|mouseup|mousedown|dblclick|focus|blur|stylesheet|hasClass|rel|doScroll|black|hover|solid|cancelBubble|returnValue|wheelDelta|view|round|shiftKey|resize|screenY|screenX|relatedNode|mousemove|prevValue|originalTarget|offsetHeight|keyup|newValue|offsetWidth|eventPhase|detail|currentTarget|cancelable|bubbles|attrName|attrChange|altKey|originalEvent|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|font|gt|lt|uFFFF|u0128|size|417|Boolean|Date|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|wrap|contentWindow|contentDocument|iframe|children|siblings|prevAll|wrapInner|nextAll|outer|prev|scrollTo|static|marginTop|next|inline|parents|able|cellSpacing|adobeair|cellspacing|522|maxLength|maxlength|readOnly|400|readonly|fast|600|class|slow|1px|htmlFor|reverse|10000|PI|cos|compatible|Function|setData|ie|ra|it|rv|getData|userAgent|navigator|fadeTo|fadeIn|slideToggle|slideUp|slideDown|ig|responseXML|content|1223|NaN|fadeOut|300|protocol|send|setAttribute|option|dataFilter|cssText|changed|be|Accept|stop|With|Requested|Object|can|GMT|property|1970|Jan|01|Thu|Since|If|Type|Content|XMLHTTP|th|Microsoft|td|onreadystatechange|onload|cap|charset|colg|host|tfoot|specified|with|1_|thead|leg|plain|attributes|opt|embed|urlencoded|www|area|hr|ajaxSetup|meta|post|getJSON|getScript|marginLeft|img|elements|pageYOffset|pageXOffset|abbr|serialize|pixelLeft'.split('|'),0,{})) \ No newline at end of file diff --git a/demo/jquery-1.3.2.min.js b/demo/jquery-1.3.2.min.js deleted file mode 100755 index 55c2e6d7..00000000 --- a/demo/jquery-1.3.2.min.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
    ","
    "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.3 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

    ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
    ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
    ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
    ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/demo/jquery-1.8.0.min.js b/demo/jquery-1.8.0.min.js deleted file mode 100644 index f121291c..00000000 --- a/demo/jquery-1.8.0.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v@1.8.0 jquery.com | jquery.org/license */ -(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
    a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
    t
    ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
    ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;jq&&u.push({elem:this,matches:o.slice(q)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;ai){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="
    ",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

    ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
    ","
    "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
    ").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100755 index 5b5dab2a..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png deleted file mode 100755 index 47acaadd..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png deleted file mode 100755 index 9fb564f8..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png deleted file mode 100755 index 01495152..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100755 index 4443fdc1..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png deleted file mode 100755 index 0cdbda36..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png deleted file mode 100755 index f7cc0162..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png deleted file mode 100755 index e301db69..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_217bc0_256x240.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_217bc0_256x240.png deleted file mode 100755 index 6f4bd87c..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_217bc0_256x240.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_2e83ff_256x240.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_2e83ff_256x240.png deleted file mode 100755 index 09d1cdc8..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_2e83ff_256x240.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_469bdd_256x240.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_469bdd_256x240.png deleted file mode 100755 index bd2cf079..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_469bdd_256x240.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_6da8d5_256x240.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_6da8d5_256x240.png deleted file mode 100755 index 9f3eafaa..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_6da8d5_256x240.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_cd0a0a_256x240.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_cd0a0a_256x240.png deleted file mode 100755 index 2ab019b7..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_cd0a0a_256x240.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_d8e7f3_256x240.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_d8e7f3_256x240.png deleted file mode 100755 index ad2dc6f9..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_d8e7f3_256x240.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_f9bd01_256x240.png b/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_f9bd01_256x240.png deleted file mode 100755 index 78625024..00000000 Binary files a/demo/jquery-ui-1.8.23.custom/css/redmond/images/ui-icons_f9bd01_256x240.png and /dev/null differ diff --git a/demo/jquery-ui-1.8.23.custom/css/redmond/jquery-ui-1.8.23.custom.css b/demo/jquery-ui-1.8.23.custom/css/redmond/jquery-ui-1.8.23.custom.css deleted file mode 100755 index da30a194..00000000 --- a/demo/jquery-ui-1.8.23.custom/css/redmond/jquery-ui-1.8.23.custom.css +++ /dev/null @@ -1,563 +0,0 @@ -/*! - * jQuery UI CSS Framework 1.8.23 - * - * Copyright 2012, 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:before, .ui-helper-clearfix:after { content: ""; display: table; } -.ui-helper-clearfix:after { clear: both; } -.ui-helper-clearfix { zoom: 1; } -.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.23 - * - * Copyright 2012, 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=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&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: Lucida Grande, Lucida Sans, 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: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; } -.ui-widget-content a { color: #222222; } -.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_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 #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; 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 #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; } -.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; 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 #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.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_469bdd_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_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: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } - -/* 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.23 - * - * Copyright 2012, 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; 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.23 - * - * Copyright 2012, 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.23 - * - * Copyright 2012, 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.23 - * - * Copyright 2012, 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.23 - * - * 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.23 - * - * Copyright 2012, 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.23 - * - * Copyright 2012, 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.23 - * - * Copyright 2012, 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.23 - * - * Copyright 2012, 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.23 - * - * Copyright 2012, 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 { - 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.23 - * - * Copyright 2012, 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%; } \ No newline at end of file diff --git a/demo/jquery-ui-1.8.23.custom/js/jquery-ui-1.8.23.custom.min.js b/demo/jquery-ui-1.8.23.custom/js/jquery-ui-1.8.23.custom.min.js deleted file mode 100755 index 78354540..00000000 --- a/demo/jquery-ui-1.8.23.custom/js/jquery-ui-1.8.23.custom.min.js +++ /dev/null @@ -1,125 +0,0 @@ -/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.core.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.23",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({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=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):b=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),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a("").outerWidth(1).jquery||a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_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(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.position.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),a.curCSS||(a.curCSS=a.css),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.draggable.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){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;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.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")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),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:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.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";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.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()}}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 b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=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),(f?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,(f?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=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h
    ').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=!0,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=c.handles||(a(".ui-resizable-handle",this.element).length?{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"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).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 c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.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(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,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.extend(a.ui.resizable,{version:"1.8.23"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.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:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.selectable.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
    ")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,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")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),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},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=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 c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return 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:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.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(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.containers[d].floating?this.items[i].item.offset().left:this.items[i].item.offset().top;Math.abs(j-h)0?"down":"up")}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger("change",b,this._uiHash()),this.containers[d]._trigger("change",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;return d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[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")}),(d[0].style.width==""||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==""||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}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 b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.leftthis.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.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 b=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 c=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");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;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 e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.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),i||(h.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),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.23",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.autocomplete.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("
      ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):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",c).append(a("
      ").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},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(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend(""),d.secondary&&b.append(""),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.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(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.dialog.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("
      ")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return 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),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger("beforeClose",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b},_createButtons:function(b){var c=this,d=!1,e=a("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),f=a("
      ").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(f);a.each(d,function(a,b){if(a==="click")return;a in e?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"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:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).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(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.23",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;ic&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.23"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.tabs.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,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(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;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(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(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"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return 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 b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".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-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(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.23"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.23"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){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(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('
      ')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$(''+c+""),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_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 d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(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=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="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)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a)),this._attachHandlers(a);var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+(c?0:$(document).scrollLeft()),i=document.documentElement.clientHeight+(c?0:$(document).scrollTop());return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[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(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).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){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.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"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/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 d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},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 d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(a){var b=this._get(a,"stepMonths"),c="#"+a.id.replace(/\\\\/g,"\\");a.dpDiv.find("[data-handler]").map(function(){var a={prev:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,-b,"M")},next:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,+b,"M")},hide:function(){window["DP_jQuery_"+dpuuid].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+dpuuid].datepicker._gotoToday(c)},selectDay:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectDay(c,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"Y"),!1}};$(this).bind(this.getAttribute("data-event"),a[this.getAttribute("data-handler")])})},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
      '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
      ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
      '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
      '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
      '+this._get(a,"weekHeader")+"
      '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
      "+(j?"
      "+(g[0]>0&&N==g[1]-1?'
      ':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
      ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
      ",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_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,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{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,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.23",window["DP_jQuery_"+dpuuid]=$})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.progressbar.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.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=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(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),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(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.23"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.core.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=(a.curCSS||a.css)(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={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]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.23",save:function(a,b){for(var c=0;c").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;try{e.id}catch(f){e=document.body}return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}});var m={};a.each(["Quad","Cubic","Quart","Quint","Expo"],function(a,b){m[b]=function(b){return Math.pow(b,a+2)}}),a.extend(m,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return a===0||a===1?a:-Math.pow(2,8*(a-1))*Math.sin(((a-1)*80-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){var b,c=4;while(a<((b=Math.pow(2,--c))-1)/11);return 1/Math.pow(4,3-c)-7.5625*Math.pow((b*3-2)/22-a,2)}}),a.each(m,function(b,c){a.easing["easeIn"+b]=c,a.easing["easeOut"+b]=function(a){return 1-c(1-a)},a.easing["easeInOut"+b]=function(a){return a<.5?c(a*2)/2:c(a*-2+2)/-2+1}})}(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.blind.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.blind=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=f=="vertical"?"height":"width",i=f=="vertical"?g.height():g.width();e=="show"&&g.css(h,0);var j={};j[h]=e=="show"?i:0,g.animate(j,b.duration,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.bounce.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.bounce=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"up",g=b.options.distance||20,h=b.options.times||5,i=b.duration||250;/show|hide/.test(e)&&d.push("opacity"),a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",g=b.options.distance||(j=="top"?c.outerHeight(!0)/3:c.outerWidth(!0)/3);e=="show"&&c.css("opacity",0).css(j,k=="pos"?-g:g),e=="hide"&&(g=g/(h*2)),e!="hide"&&h--;if(e=="show"){var l={opacity:1};l[j]=(k=="pos"?"+=":"-=")+g,c.animate(l,i/2,b.options.easing),g=g/2,h--}for(var m=0;m").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.fade.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.fold.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.highlight.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.pulsate.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/demo/jquery-ui-portlet b/demo/jquery-ui-portlet deleted file mode 160000 index 57b3b5f3..00000000 --- a/demo/jquery-ui-portlet +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 57b3b5f3f5becfecf1b4f0aed01188866cbaa9f8 diff --git a/demo/jquery.jqGrid-4.4.0/css/ellipsis-xbl.xml b/demo/jquery.jqGrid-4.4.0/css/ellipsis-xbl.xml deleted file mode 100755 index a5551984..00000000 --- a/demo/jquery.jqGrid-4.4.0/css/ellipsis-xbl.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/demo/jquery.jqGrid-4.4.0/css/ui.jqgrid.css b/demo/jquery.jqGrid-4.4.0/css/ui.jqgrid.css deleted file mode 100755 index 35f2e5a6..00000000 --- a/demo/jquery.jqGrid-4.4.0/css/ui.jqgrid.css +++ /dev/null @@ -1,144 +0,0 @@ -/*Grid*/ -.ui-jqgrid {position: relative;} -.ui-jqgrid .ui-jqgrid-view {position: relative;left:0px; top: 0px; padding: .0em; font-size:11px;} -/* caption*/ -.ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; border-left: 0px none;border-right: 0px none; border-top: 0px none;} -.ui-jqgrid .ui-jqgrid-title { float: left; margin: .1em 0 .2em; } -.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; } -.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; } -/* header*/ -.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0em;padding: 0em; overflow-x: hidden; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;} -.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;} -.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0em;} -.ui-jqgrid .ui-jqgrid-htable th {height:22px;padding: 0 2px 0 2px;} -.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative; height:17px;} -.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0px none;border-bottom : 0px none;} -.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0px none;} -.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0px none;} -.ui-first-th-ltr {border-right: 1px solid; } -.ui-first-th-rtl {border-left: 1px solid; } -.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;} -.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;} -.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;} -.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;} -.ui-jqgrid .ui-icon-desc {margin-top:3px;height:12px;} -.ui-jqgrid .ui-i-asc {margin-top:0px;height:16px;} -.ui-jqgrid .ui-i-desc {margin-top:0px;margin-left:13px;height:16px;} -.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;} -.ui-jqgrid tr.ui-search-toolbar th { border-top-width: 1px !important; border-top-color: inherit !important; border-top-style: ridge !important } -tr.ui-search-toolbar input {margin: 1px 0px 0px 0px} -tr.ui-search-toolbar select {margin: 1px 0px 0px 0px} -/* body */ -.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0em; padding:0; overflow: auto; text-align:left;} -.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0em; outline-style: none; } -.ui-jqgrid tr.jqgrow { outline-style: none; } -.ui-jqgrid tr.jqgroup { outline-style: none; } -.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;} -.ui-jqgrid tr.jqgfirstrow td {padding: 0 2px 0 2px;border-right-width: 1px; border-right-style: solid;} -.ui-jqgrid tr.jqgroup td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;} -.ui-jqgrid tr.jqfoot td {font-weight: bold; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;} -.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;} -.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;} -.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0px; border: 0px none;} -.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none; border:0 none; z-index: 99999;} -/* footer */ -.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0em;padding: 0em; overflow: hidden; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;} -.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0em;} -.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 21px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;} -.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;} -.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;} -/* Pager*/ -.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important;border-right: 0px none !important; border-bottom: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px;white-space: nowrap;overflow: hidden;font-size:11px;} -.ui-jqgrid .ui-pager-control {position: relative;} -.ui-jqgrid .ui-pg-table {position: relative; padding-bottom:2px; width:auto; margin: 0em;} -.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:1px;} -.ui-jqgrid .ui-pg-button { height:19px !important;} -.ui-jqgrid .ui-pg-button span { display: block; margin: 1px; float:left;} -.ui-jqgrid .ui-pg-button:hover { padding: 0px; } -.ui-jqgrid .ui-state-disabled:hover {padding:1px;} -.ui-jqgrid .ui-pg-input { height:13px;font-size:.8em; margin: 0em;} -.ui-jqgrid .ui-pg-selbox {font-size:.8em; line-height:18px; display:block; height:18px; margin: 0em;} -.ui-jqgrid .ui-separator {height: 18px; border-left: 1px solid #ccc ; border-right: 1px solid #ccc ; margin: 1px; float: right;} -.ui-jqgrid .ui-paging-info {font-weight: normal;height:19px; margin-top:3px;margin-right:4px;} -.ui-jqgrid .ui-jqgrid-pager .ui-pg-div {padding:1px 0;float:left;position:relative;} -.ui-jqgrid .ui-jqgrid-pager .ui-pg-button { cursor:pointer; } -.ui-jqgrid .ui-jqgrid-pager .ui-pg-div span.ui-icon {float:left;margin:0 2px;} -.ui-jqgrid td input, .ui-jqgrid td select .ui-jqgrid td textarea { margin: 0em;} -.ui-jqgrid td textarea {width:auto;height:auto;} -.ui-jqgrid .ui-jqgrid-toppager {border-left: 0px none !important;border-right: 0px none !important; border-top: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px !important;white-space: nowrap;overflow: hidden;} -.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div {padding:1px 0;float:left;position:relative;} -.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button { cursor:pointer; } -.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div span.ui-icon {float:left;margin:0 2px;} -/*subgrid*/ -.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;} -.ui-jqgrid .ui-subgrid {margin:0em;padding:0em; width:100%;} -.ui-jqgrid .ui-subgrid table {table-layout: fixed;} -.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;} -.ui-jqgrid .ui-subgrid td.subgrid-data {border-top: 0px none !important;} -.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0px 0px 1px 0px;} -.ui-jqgrid .ui-th-subgrid {height:20px;} -/* loading */ -.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important; font-size:11px;} -.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;} -* html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} -* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} -/* end loading div */ -/* toolbar */ -.ui-jqgrid .ui-userdata {border-left: 0px none; border-right: 0px none; height : 21px;overflow: hidden; } -/*Modal Window */ -.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;} -.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative; } -.ui-jqdialog .ui-jqdialog-title { margin: .1em 0 .2em; } -.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } - -.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; } -.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; } -.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;} -.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;} -/* end Modal window*/ -/* Form edit */ -.ui-jqdialog-content .FormGrid {margin: 0px;} -.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0em;} -.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0em;} -.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0em;} -.EditTable td textarea { width:auto; height:auto;} -.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0px none;border-left: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;} -.ui-jqdialog-content td.navButton {text-align: center; border-left: 0px none;border-top: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;} -.ui-jqdialog-content input.FormElement {padding:.3em} -.ui-jqdialog-content .data-line {padding-top:.1em;border: 0px none;} - -.ui-jqdialog-content .CaptionTD {vertical-align: middle;border: 0px none; padding: 2px;white-space: nowrap;} -.ui-jqdialog-content .DataTD {padding: 2px; border: 0px none; vertical-align: top;} -.ui-jqdialog-content .form-view-data {white-space:pre} -.fm-button { display: inline-block; margin:0 4px 0 0; padding: .4em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; } -.fm-button-icon-left { padding-left: 1.9em; } -.fm-button-icon-right { padding-right: 1.9em; } -.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; } -.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;} -#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; } -/* End Eorm edit */ -/*.ui-jqgrid .edit-cell {}*/ -.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0px none;} -/* inline edit actions button*/ -.ui-inline-del.ui-state-hover span, .ui-inline-edit.ui-state-hover span, -.ui-inline-save.ui-state-hover span, .ui-inline-cancel.ui-state-hover span { - margin: -1px; -} -/* Tree Grid */ -.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;} -.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;} -.ui-jqgrid .tree-plus {position: absolute; height: 18px; width: 18px; overflow: hidden;} -.ui-jqgrid .tree-leaf {position: absolute; height: 18px; width: 18px;overflow: hidden;} -.ui-jqgrid .treeclick {cursor: pointer;} -/* moda dialog */ -* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} -.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px} -/* RTL Support */ -.ui-jqgrid .ui-jqgrid-title-rtl {float:right;margin: .1em 0 .2em; } -.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right; padding-left: 20px;} -.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0px;} -.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0px -1px -3px;} -.ui-jqgrid .ui-sort-rtl {left:0px;} -.ui-jqgrid .tree-wrap-ltr {float: left;} -.ui-jqgrid .tree-wrap-rtl {float: right;} -.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis;} diff --git a/demo/jquery.jqGrid-4.4.0/js/Changes.txt b/demo/jquery.jqGrid-4.4.0/js/Changes.txt deleted file mode 100755 index 4494fbd5..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/Changes.txt +++ /dev/null @@ -1,1160 +0,0 @@ -3.6 version -=========== -Bug Fixes ---------- - * Fix problem with getAbsoluteIndex on IE8 - * Fix in triggerReload grid to reset the savedRow array. - * Fix in setGridWidth method when try to resize a grid a and there is no data. - * Fix header aligment in ie8 - * Fix in createEl function to check for val and not for html when select - * making getChangedCells method compatible with unformat function if defined - * Fixed record count when scroll true - * Fix in setSelection method to accept numbers - * Fix IE header checkbox when multiselect is true - * Fix for searching DOM elements with id containing special characters - * Fix a checkbox checking in form editing module. - * Fix getCol to use unformat function - * Better looking buttons in form editing - * Fix searchFilter in IE7 and IE6 not to return undefined value when more -than one field is searched. - * Some fixes for datepicker UI in inline and cell edit (when present) - * Fix in setLabel method not to clear the sort icons when we set new label - * Fix in form edit when a formatter select is used - * Fix the id pollution when multiselect is enabled. Now the id of every -common multiselect is combination of cb_ + id of the grid - * Fixed bug when deselectAfterSort false and we are in multiselect mode - * Fix in unformat number and currency - * Fixed bug when creating a select with dataUrl and select is set to multiple. - * Fix a bug when creating select with multiple option. Also the attribute -should be set immediatley after the element is created and not after. - * Fix a bug in form edit. The comapared values should be trimed since of -split(",") which cause the elements to begin with space. - * Fix a jqGrid loader (development version) for IE browsers - * Fix for form icons in Opera - * Fix getGridParam to return values 0 or false - * Avoiding the overhead of local functions and maintenance issues when the -parameters change - * Opera fix for cursor col-resize - * Fix in editGridRow when a save key is defined and the key is Eneter we -should not do save when we are in teaxtarea element - * Fix in formatter checkbox when the value is undefined. We also add a -default format for the checkbox too - * Fix addRowData to use key:true (keyIndex) when rowid is not defined - * Fix formatter bug for the select to use the defaultFormat - * Adding a 3 parameter to the unformat function - the cellobject. - * Fix alternate rows when we sort data locally. - * Fix in addRowData for alternate rows when we add item as last - * Fix collapseRow in treegrid preventing infinite recursion - * Fix in stripHtml function to parse numeric values - * Fix in delGridRow to get "fresh" Data from delData object - * Fix problems with width option if set as string. - * Fixing $jgrid.format function in base module to accept undefined parameter. - * Fix for saveRow method in aftersave function. Also we pass the request and -not the responseText. Also both aftersave and success functions have the -same type parameter - the response - * Fix for serchhidden in searchGrid method - * Fix for setGridWidth method - * Fix setColWidth function - * Fix for topinfo and bottom info in formedit to appear separatley in edit and add dialogs - * Fix searchFilter css to work when called from subgrid - * Fix celledit to work better when datepicker is attached - * Fix in viewGrid row to vizualize only the columns that only not hidden. - - -Additions and changes ---------------------- - * New API - * RTL Support - * Column reordering - * Added life scrolling of data - * Added gridResize method which can resize the grid. Also use a jQuery UI -resizable and can use any options of this widget - * Added sortableRows method which allow us to sort rows with drag and drop - * Added gridDnD method. The method connect two or more grids so that drag and drop rows -between these is possible - * Add columnChooser method which allows choosing/sorting columns at the same -time. This method requiere multiselect plugin - * Now getRowData can return all rows when rowid is not set. - * getCol now can return summary, average and count of the selected row. The -3 parameter determines this (valid are sum, avg, count). If this parameter -is set and is valid, the returned value is a scalar.If the param is not -valid the returned value is empty array. - * To setRowData we add a 3 parameter. If the parameter is string we use -addClass to add classes. If the parameter is object we use css to add css -properties. Note that we can set properties and classes without data, in -this case we should set data to false - * Adding a event object to ondblClickRow and onRightClickRow events as 4 parameter - * Add a ant based build system which allow us to minify the JS code - * Added custom validation property in editing modules - * Added possibility to create custom element in editing modules - * Adding support to configure the ajax request in a way that user want. This -is done in all modules where ajax is used. - * Added class in cell edit and inline edit so that the cell or row can not -be edited - the corresponding classes are 'not-editable-cell' and -'not-editable-row'. - * Added Hebrew Translation - * Added a beforeCheckValues event in editGridRow method. The execution is -before checking the values. Should return object of the posted data. - * Added Romanian translation - * Added a property classes in colModel where we can attach classes to column. - * info_dialog function can be used as separate modal dialog - * Added a class ui-ellipsis in grid css file. Also work in FireFox too. - * Changind the order of calling the events beforeSearch and beforeClear in -filterToolbar method. Also the events are called immediatley after triggering the grid - * To onCellSelect we replace the 4 parameter with the more natuaral event instead of e.target - -sorry if this will bring to some confusions. - * Added searchoptions value parameter in order to separate the editing module and search module. -We first look for such option in searchoptions and if not found we use the -editoptions value - * Added fixed property in colModel which allow us not to change the -column width if shrinkToFit is true and we set new width of the grid. - * Added buildSelect function to deserialize data for the select. This is option -can be added in editoptions or search options - - -Please read The Installation instructions first in install.txt -================================================ -3.5 beta (buld6- build11) - -New Properties and methods -========================== - -- Added new grid parameter hoverrows. When set to false the mouse hovering is -disabled in the grid data rows. - -- Added rowid as parameter to error function in saveRow method - inline -editing module - -- treeGrid to be initially work with datatype local - -- Added new method updateGridRows (grid.custom.js) -This method update the existing data in the grid by given id rowname. - -Syntax: updateGridRows (data, rowidname, jsonreader) - -data is a array of data in format -[{name:value,name1:value1...},{name:value,name2:value2...}] -where the name is the name from colModel and value is the actuall value. -It is not neccessary that all columns are present in the data item object -(the same as setRowData method) - -rowidname (string) - is the name of the row which should acts as id. -If not set the name "id" is used. - -jsonreader (boolean) default false. If set to true a jsonReader definition -is used to set the data. Note that this work only of the item in jsonReader -object 'repeatitems' is set to true. - -- Switch to namedItems JS function. This improve the speed. Previously we -walk throught the entry rowset to find the rowIndex of the given rowid. -Now we use the build in javaScript method namedItems which do the same. - -- multiselect is enabled in inline edit module. - -- To the importComplete event in jqGridImport method we pass the response. - -- Added support for alternate rows. Also added new jqGrid option altclass. -The default value is 'ui-priority-secondary' THis way we can develop our own -alternate class. - -- Added ShrinkToFit option in setColumns method which fit columns to the grid -width. Default value is false. - -- Extend tableToGrid method to use custom options when building the grid. -The call to this function is -tableToGrid(selector, options) -where options is the object with jqGrid options. - -- Adding 4px right to the view records text for better view - -- Add a onClose event to all modals in form editing (except alert dialog) -The default value is null. This event can be passed in editGridRow, delGridRow, -viewGridRow, and setColumns methods. The event raised when a close icon is clicked, -a cancel button is clicked or ESC key is pressed (if this is enabled). - -- Significant speed improvents in tree Grid when a relative large data is loaded. - -- Added dataheight parameter to all modal windows, where we can control the -scrolling content. Intitially this parameter is auto. -To summarize - we have two parameters for controlling the height of the modal. -height and dataheight. -The height parameter control the height of the entry modal, dataheight parameter -control the height of the scrolling content. The buttons of the modals are -allways visible at the bottom of the modal.Also some improvments in jqDnR. - -- In setColumns method we add colnameview and closeAfterSubmit parameters. The -colnameview (default true). If set to false the names from colModel are not -visible. closeAfterSubmit if defined cleses the dialog after the submit -button is clicked. - -- Added parameter viewsortcols in jqGrid parameters. The purpose of this -parameter is to define different look and behavior of sorting icons that -appear near the header. This parameter is array with the following default -options -viewsortcols : [false,'vertical',true] - -The first parameter determines if all icons should be viewed at the same time -when all columns have sort property set to true. -The default of false determines that only the icons of the current sorting column -should be viewed. -Setting this parameter to true causes all icons in all sortable columns to be viewed. - -The second parameter determines how icons should be placed - vertical means that -the sorting icons are one under another. 'horizontal' means that the icons should -be one near other. - -The third parameter determines the click functionality. If set to true the columns are -sorted if the header is clicked. If set to false the columns are sorted only when -the icons are clicked. - -Important note: When set a third parameter to false be a sure that the first parameter -is set to true, otherwise you will lost the sorting. - - -Fixes -===== -- Fixed bug in filterToolbar. We search now by index and when not found by -name. - -- Fix in searchGrid method. We search now by index and when not found by -name. - -- Fixed bug in IE when resizing columns. The function getOffset is changed -so that the resizing speed is the same as in Safari and FF. - -- Fix multiple select bug in createEl function. Now we set the options before -checking for multiple:true - -- Fixed bug in treegrid. The strict comparation in getNodeParent method -causes bad results. - -- Fix in setGridWidth method. We do not initialize correct the new width which -causes after the first set of the width to not work in other grid in the same -page. - -- Fixed bug in GridExport. We delete the columns that are generated -dynamically - multiselect, subgrid, treegrid or rownumbers. This way the -import is without errors - -- Fixed a bug in addRowData method to add data with id = 0 (number) - -- Fixed a forever loading bug in IE. - -- Fixed altRows bug in delRowData method - -- navGrid method fix for warning modal and IE6 - -- Fix setColumns method to the common apprach of forms and modals - -- Fix for IE8 in getAbsoluteIndex method. IE8 seems to work as other browsers - -- Fixed bug in delRowData - the grid does not resize when first row is -deleted. - -- Fixed bug when rownumbers and subgrid are used together - -- Fixed bug in row editing when the column name contain dot. - -- Fixing bug in viewGridRow - also the id manes of the form are changed in order -to be not equal of those in editGridRow - - - -3.5 beta (buld5) - -FormEditing -=========== -- added options checkOnUpdate (default false) in editGridRow method. -Also available in add and edit mode. -When this option is set to true the behaviour as follow: -When something is changed in the form and the user click on -Cancel button, navigator buttons, close button (on upper right corner of the -form), in overlay (if available) or press Esc key (if set) a message box apper -asking the user to save the changes, not to save the changes and go back in the -form or cancel all changes (this will close the modal form) -Note that checkOnSubmit option will work only when a submit button is clicked. -When nothing is changed we contionue with the action. - -- added option - rowabove (default false) in colModel formoptions -When set to true a new empty row is added above this row in form editing. -- added option - rowcontent (default empty) in colModel formoptions. -This option have sense only when rowabove option is set to true. -With this option is possible to set a content to the new added empty row in -the form. In order to style easy these rows a class 'contentinfo' is set. - -- added new items in the language files to support the checkOnUpdate option - -- added class 'delmsg' in the delGridRow method. This allow us to change the -message dynamically using a beforeShow or afterSow eventrs. The class is added -to a element td. - -Fixes -===== -- fix in Bulgarian translations files. -- fix in searchGrid method. Now we search by index (from colModel) and only if -it is not available we search by name. -- Fix for date parser in the base module. Now we can sort locally on -dates that contain month names -- Fixed bug in searchGrid. The translation messages for the operations does not -apper when not set in colModel -- removed some not needed events from base grid. Also return false do these -by default; -- Fix bug to check if datepicker is available in searchGrid. -- Fix a bug in searchGrid in IE6, where the data value is not set for elements -after the first -- Fixed bug when calling of jqModal multiple times on the same element. We -need the initialization only once and not every time. This cause a memory -leaks -- Fixed bug in formatter where the data containing ' causes break in IE -- Fixed bug in base module when adding data where the data contain a ' char. -This breaks in IE browsers. -- Fixed bug in checkboxes. We add the value setted in the editoptions. Also -converting to lower case make the option checkOnUpdate to be true every time. -- We replace white-space nowrap with pre in td element in the CSS file. This fixes -the bug in IE where the first row does not wrap when the text is longer than -the column width. Also this requiere DOCTYPE declaration in the document. -- Fixed bug in viewGridRow method where when resizing the modal causes the data -to apper bad. - - -3.5 beta (buld4) -Base -==== -- added option footerrow - default false. If set to true this will place a -footer table with one row below the gird records and above the pager. -The number of columns equal of these from colModel - --added option userDataOnFooter(default false) which directly place the user data -array at footer. The rules are as follow: If the userData array contain name -which is equal to those of colModel then the value is placed in that column. -If there are no such values nothing is palced. Note that if this option -is used we use the current formatter options (if available) for that column. - --Added method getCol(colname). Colname can be either number which represents -the index of the column or name from colModel. The method return array with -the values of the coulmn. - -- Added method footerData ( action, data, format). This method get or set data -on footer. - -action - can be 'get' or 'set'. If not set default is get. -When set to 'get' - the result is object of type name:value, where the name is -a name from colModel. This will return a data from the footer. The other two -options does not have effect in this case. - -When set to 'set' a data array (object) should be set. This will place -the values in the footer. - -format - default is true. This instruct the method to use the formmater -(if set in colModel) when a new values are set. -Setting to false will disable the using of formatter. - -Related css items in the ui.jqgrid.css -.ui-jqgrid-sdiv - is a div container for the footer -.ui-jqgrid-ftable - is the class for the table -tr.footrow - is the class for the footer row -tr.footrow td is the item for the cell formating - -In order to format every cell in a way that you want -maybe you can use - -jQuery("tr.footrow td:eq(2)","#gbox_mygrid").css(...) -where the td:eq(2) point to the third column -and mygrid is the id of the grid. The id of the global grid container -is constructed via "gbox_"+the id of the grid. - -There are no methods to show and hide the footer row dynamically, but -following the above example we can do - -jQuery(".ui-jqgrid-sdiv","#gbox_mygrid").hide() - this will hide the footer row. - -jQuery(".ui-jqgrid-sdiv","#gbox_mygrid").show() - this will show the footer row. - - -Form Editing -============ -aded option in editGridRow - checkOnSubmit (default false) -This option only work in editing mode and not in add. -When set to true - the method looks if any data is changed in the form and -if this is a case a dilog message appear where the user is asked to confirm the -changes or cancel it. Pressing cancel will return to the form, but does not -set the values to its original state. - -Note that this causes a some changes in the language file. - -Fixes -===== - -- Removed imgpath from cell edit and inline edit modules and common module. -This parameter is no longer valid in 3.5 -- Replace $ with jQuery in grid.common.js which causes problems when used with -other librariers like prototype. -- removed a checking e.srcElement from base module. jQuery allready fix this. -- fixing the size option in select when using ajax to load selects. -- Fixed bug in IE browsers, when clicked on href tag with child nodes, -IE incorrect report in all cases that this is a href element. This couses -onSelectCell not to behave correct. -- Fixed bug in searchGrid - group options are not passed to serchFilter in -order get them from Language file. -- Fix in bulgarian trnslations. -- Fix on sorting column. The initial sort check first for index and then for -column name. Before the checking for the index was missed. -Sortorder converted to lower case in order to avoid some cofusions. -- Fix in set columns module. The modal does not appear correctly due to -missed parameter - - - -3.5 beta (buld3) - -Base -==== -- To the loading message is added ui-state-active class from Theme roller. -This is more natural, indicating that the grid is active when data is loaded. - -Form Editing -============ -- Added keyboard navigation, which allow us to navigate throught the records while -in form editing pressing certain keys. This option is available in editGridRow -and viewGridRow methods. The default state is disabled. To enable this you -should set the options in the edit/add parameters: - -navkeys: [true,38,40] -The first item enables the navigation. -The second item corresponds to reccord up and by default is the the key code -for Up key -The third item corresponds to reccord down and by default is the key code for -Down key -Example -$("#mygrid").navGrid("#pager",{options},{id:'myeditid',navkeys: [true,38,40]}..) -Also this option does not work in add mode. - -Note: Instead that this does not have sense, if you plan to navigate with keys -it is recommended to add this option in add mode. This should be done -because the form for add and edit is the same and it is unknown which action -will be lunched first. - -- Added posibility to save the form pressing certain key - add/edit mode only -By default this option is disabled. -To enable -savekey: [true,13] -The first item enables saving with pressing certain key. -The second item corresponds to key code for saving. Default Enter (key code 13) - -Note that this binding should be used for both adding and editing a row. -Since the binding is for the form, there is no possibility to have one -key in add and another in edit mode. - -- Added icons for the buttons in the form. The corresponding class in the css -is "fm-button" -By default all icons are enabled. -For add/edit method editGridRow -The save button is defined with -saveicon : [true,"left","ui-icon-disk"] -The close button is defined with -closeicon: [true,"left","ui-icon-close"] - -The first item enables the icon -The second item tells where to pu icon left or right -The third item corresponds to valid ui icon from theme roller - -For viewGrid Row -closeicon : [true,"left","ui-icon-close"] - -For Deleting -delicon: [true,"left","ui-icon-scissors"] -cancelicon: [true,"left","ui-icon-cancel"] - -Fixes -====== --Fixed bug when getting the index of the row. Strict compare should be removed. --Fixed bug when datatype is function - we need to exit when call it and not to -continue. --Fixed bug in form editing - the buttons do not align properly. - -3.5 beta (build2) - -Navigator -========= -This was missed in the first build -In the navGrid we can pass uniquie id's of the buttons in order to manipulate -them easy. If no id is set we create one which is combination of: -for add button "add_"+ the id of the grid -for edit button "edit_"+ the id of the grid -for view button "view_" + the id of the grid -for delete button "del_" + the id of the grid -for search button "search_" + the id of the grid -for refresh button "refresh_" + the id of the grid -Example: -$("#mygrid").navGrid("#pager",{options}, {id:'myeditid'},{id:'myaddid'}...) - -Base Grid -========= -- Record number information now can format the values according to the -formatter setting (if available) getting information from language file. - -Fixes -===== - -- Fixed bug when multi select with json. We pass wrong parameter to addMulti -function -- Spelling error in all language files, which cause not to set the default -value correct -- Fixed bug when creating warning message. Fixed bug when determining the -number column element in the form -- Fixed bug - clientSide datatype should be converted to lower case -according to the new improvements -- Fixed bug in IE6/7 when try to select a option in the select generated via -ajax - -=============================== -Upgrade from 3.4.x to 3.5 beta. -=============================== - - -1. Installation --------------- -See install.txt - -2. Code changes ---------------- -2.1 The following grid options are deprecated - i.e. you can remove them from -the grid options. They are not needed in 3.5 version - -imgpath -sortascimg -sortdescimg -firstimg -previmg -nextimg -lastimg -sortclass -resizeclass - -2.2 Second change is related to custom formatters. Starting with version 3.5, -the custom formatter is passed the following parameters: - -formatter : function ( cellvalue, options, rowObject ) -{ -// format the cellvalue to new format -return new_formated_cellvalue; -} - -Note the return in the function. This function should always return a value -in order to work correctly. The parameters are - -cellvalue - is the value to be formatted -options - is an object containing the following element - -options : { rowId: rid, colModel: cm} -where rid - is the id of the row -colModel is the object of the properties for this column getted from colModel -array of jqGrid - -rowObject - is a row data represented in the format determined from datatype -option. -If we have datatype: xml/xmlstring - the rowObject is xml node,provided -according to the rules from xmlReader -If we have datatype: json/jsonstring - the rowObject is array, provided -according to the rules from jsonReader - -Example: -Code in 3.4.x variant - -formatter : function ( elem, cellvalue, options) -{ -var newval = ""+cellvalue+""; -jQuery(elem).html(newval); -} - - -Code in 3.5 - -formatter : function ( cellvalue, options, rowObject ) -{ -return ""+cellvalue+""; -} - - -Base Module -============ -Bug fixes ---------- -- fixed bug in onCellSelect event when used in IE browsers - now the rowIndex -passed to this event is calculated correctly regardless of hidden columns. - -- fixed width bug when multiselect is used. Previously the width of this column -is recalculated according to table width and when shrinkToFit is set to true. -Now the column has fixed width and is no longer recalculated when the grid -width is changed. See documentation for the new options - -- fixed width bug when subgrid is used. Previously the width of this column is -recalculated according to table width and when shrinkToFit is set to true. Now -the column has fixed width and is no longer recalculated when the grid width -is changed. See documentation for the new options - -- fixed bug in addRowData method when the grid is empty and we try to add one -or more columns. The width of the data was not being recalculated correctly, -according to the header elements. - -- fixed bug when we use xmlstring and jsonstring to add data. Previously all -the data from the string is loaded without reference to the rowNum parameter. -Also this behaviour is changed for xml and json data. In other words, we now -load only rowNum number of rows even when the request consists of more rows. - -- fixed bug when posting values of input of type select set to multiple:true. -Now in all editing modules the posted values in for multiselect are separated -with comma - -- fixed bug in the size option of multi select. If the size option is not set -for multiselect the default value is 3 - -Deprecated options ----------------- -imgpath: "", in all modules -sortascimg: "sort_asc.gif", -sortdescimg: "sort_desc.gif", -firstimg: "first.gif", -previmg: "prev.gif", -nextimg: "next.gif", -lastimg: "last.gif", -sortclass: "grid_sort", -resizeclass: "grid_resize", - -Note that imgpath is not used anymore in all modules. -The altRows option is still here, but will have no effect until the jQuery -UI Theme roller supports alternative rows. - - -Note that the table element where we define the grid can not have a class -scroll - i.e. class scroll in the table definition can be omitted, but this -is NOT true for the pager element. - -New options ------------ -datatype can now set as 'script'. In other words, we now support script -as datatype. - -reccount: numeric, Default 0. Determines the exact number of available -grid rows. Can be <= from rowNum parameter - -autowidth: boolean, Default false. When set to true, the grid width is -recalculated automatically to the width of the parent element. This is done -only initially when the grid is created. In order to resize the grid when -the parent element changes width you should apply custom code and use a -setGridWidth method for this purpose. - -scrollOffset: numeric, Default 18. Determines the width of the vertical -scrollbar. Since different browsers interpret this width differently (and it -is difficult to calculate it in all browsers) this can be changed. - -cellLayout: numeric, Default 5. This option determines the padding + border -width of the cell. Usually this should not be changed, but if custom changes -to td element are made in the grid css file this will need to be changed. - -subGridWidth: numeric, Default 20. Determines the width of the subgrid column -if the subGrid option is set to true. - -multiselectWidth: numeric, Default 20. Determines the width of the multiselect -column if multiselect is set to true. - -rownumbers: boolean, Default false. If this option is set to true, a new column -at left of the grid is added. The purpose of this column is to count the number -of available rows, beginning from 1. In this case colModel is extended -automatically with new element with name - 'rn'. Also, be careful not to use -the name 'rn' in colModel - -rownumWidth: numeric, Default 25. Determines the width of the row number column -if rownumbers option is set to true. - -pagerpos: string, Default 'center'. Determines the position of the pager in the -grid. By default the pager element when created is divided in 3 parts (one part -for pager, one part for navigator buttons and one part for record information) - -recordpos: string, Default 'right'. Determines the position of the record -information in the pager. - -toolbar now accepts another option: "both". When we set toolbar: [true,"both"] -two toolbars are created -- one on the top of table data and one of the bottom -of the table data. When we have two toolbars then we create two elements (div). -The id of the top bar is constructed like "t_"+id of the grid and the bottom -toolbar the id is "tb_"+id of the grid. In case when only one toolbar is -created we have the id as "t_" + id of the grid, independent of where this -toolbar is created (top or bottom) - -gridview: boolean, Default value false. In the previous versions of jqGrid, -including 3.5 alfa, reading a relatively big data sets (Rows >=100 ) caused -speed problems. The reason for this was that as every cell was inserted into -the grid we applied about 5-6 jQuery calls to it. Now this problem is resolved; -we now insert the entry row at once with a jQuery append. The result is -impressive - about 3-5 times faster. What will be the result if we insert all -the data at once? Yes, this can be done with a help of gridview option when set -to true. The result is a grid that is 5 to 10 times faster. Of course when this -option is set to true we have some limitations. If set to true we can not use -- treeGrid -- subGrid, or -- afterInsertRow event. -If you do not use these three options in the grid you can set this option to -true and enjoy the speed. - -addRowData now is 1-2 times faster because we are using the concept to insert -the row at once - -Added jQuery function parse (removed from json2.js module): -jQuery.parse(jsonstring) -To prevent JavaScript hijacking attacks, web application authors are encouraged -to use this function. This returns a JSON representation of the variable. - -Cyclic structures are detected and safely interrupted, but could not be further -restored. -1. The while(1); construct, located at the beginning of JSON text, -2. Comments at the beginning and end of the text. -JSON data providers are encouraged to use one or both of these methods to -prevent data execution. Such JSON response may then look like this: -while(1);/*{[ - {"name":"safe value 1"}, - {"name":"safe value 2"}, - ... -]}*/ -jqGrid uses this function when obtaining a data with datatype:'json', also used -in subGrid. - -Added jQuery function stringToDoc: jQuery.stringToDoc(xmlstring). This returns -the xml document of xml string - -Added new method: jQuery("#mygrid").updateColumns(); this synchronizes the -width of the headers with the data. Useful when used with table drag and drop. - - -colModel changes and additions ------------------------------- -searchhidden is removed from editrules object - -added searchoptions object to define properties, events and other settings when -a search is performed -searchoptions : { - dataUrl : value, - dataInit: function, - dataEvents : array, - defaultValue: value, - attr: object, - searchhidden: boolean, - sopt: array -} -To summarize - when we want to deal with search we should use the following -options in colModel - -search : boolean , // true/false -stype: value, // text/select -searchoptions : object // see above - -Note: when the dataUrl is not used for the search type select, the definitions -for the select are taken from editoptions value property - i.e -editoptions:{value:"1:one;2:two",...}. See below for how to use these options in -different search methods. - - -Added new object formoptions to define various settings in form editing. Also -valid only in this module. - -formoptions : { - elmprefix:value, - elmsuffix:value, - rowpos: number, - colpos:number, - label: value -} -See below for how to use - -The editoptions are extended with the following properties. Valid in all editing -modules editoptions : { - dataUrl : value, dataInit: function, dataEvents : array, defaultValue: - value/function, -} See below - - -Changes in all editing modules -============================== - -edittype property is extended with the support of the following input elements: -button, image and file - -As described above in all editing modules we can add additional properties and -events to the editing element: - -editoptions : { - dataUrl : value, dataInit: function, dataEvents : array, defaultValue: - value/function -} -------------------------------------------------------------------------------- -dataUrl option is valid only for the elements of type select - i.e., -edittype:select - -When this option is set, the element will be filled with values from the ajax -request. The data should be a valid html select element with the desired -options. - -In form editing for add/edit this is called only once. In order to call it every -time the form is launched you should set the option recreateForm:true or use -other events like beforeShowForm (with another custom ajax call) to fill the -desired element. - -In inline edit and cell edit this is fired every time you edit the row or cell -element. --------------------------------------------------------------------------------- -dataInit : function (elem) { -// do something -} - -If set, this function is called only once ? when the element is created. The -function is passed the specified element. This option is ideal for attaching -date picker, time picker, etc. Example: - -dataInit : function (elem) { - $(elem).datepicker(); -} --------------------------------------------------------------------------------- -dataEvents: list of events to apply to the data element; uses -$("#id").bind(type, [data], fn) to bind events to data element - -Should be described like this dataEvents: [ - { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } - }, { type: 'keypress', fn: function(e) { console.log('keypress'); } } -] - -The event(s) are called only once when the element is created -------------------------------------------------------------------------------- -defaultValue: 'value' or function This option is valid only in Form Editing -module when used with editGridRow method in add mode.If set this the input -element is set with this value if only element is empty. If used in selects the -text should be provided and not the key. Also when a function is used the -function should return value. - -Now we can validate a url. The corresponding settings is in colModel -editrules:{required:true, url:true} - - -FormEditing -=========== -In all methods that deal with the modals are added the following options (thanks -to Faserline Team: www.faserline.com) - -jqModal: true. The default value is true. How it works. If set to true, first -jqGrid checks if the jqModal plugin is available. If this plugin is available we -create the modal according to the jqModal plugin. If this plugin is not -available jqGrid create its own modal. The difference between the jqModal window -and jqGrid modal window is that the overlay covers only the grid, but not the -entry page as jqModal does. If this option is set to false, jqGrid will create -its own modal as described above even if jqModal is available. - -The only exception here is searchGrid method created with the new searchFilter -plugin, where this option is not available. In this method a jqGrid modal window -is used. - -closeOnEscape : false. Default false. When set to true the modal window can be -closed with ESC key. - - - -=======searchGrid================== -From now on jqGrid use a new search engine -thanks to wonderful plugin provided from Kasey Speakman (kasey@cornerspeed.com). -This plugin can also be used separately. Detailed documentation is provided in -the jquery.searchFilter.js which is provided with jqGrid package. - -These options are not used anymore in the searchGrid method ----------------------------------------------------------- -top : 0, -left: 0, -width: 360, -height: 80, -modal: false, -closeicon: 'ico-close.gif', -dirty: false, -processData: "", - -Added the following options ---------------------------- - -recreateFilter: false, This option construct the filter every time a search -button is clicked. - -multipleSearch : false, When set to false the behaviour of the search is the -same as those in versions before 3.5 When set to true: 1. We have a possibility -to add/delete as many conditions as we want 2. The posted data to the server is -string (actually a json array converted to string) - -sFilter: 'filters', This option has an effect only when the multipleSearch is -set to true; it describes the name of the posted string. By default this, i.e. -the posted data, can look like this - -filters ={ - "groupOp":"AND","rules":[{"field":"id","op":"gt","data":"1"}, -{"field":"name","op":"bw","data":"Client"}] -} - -groupOp determines the logical operator that can be used in the where statement -of the select. The value can be AND or OR. This can be changed used a select box -which is created at bottom of the search filter. - -The rules array describes actually which fields and how they are included in the -where clause The field element describes the name of the field The op element -describes the operator that should be used in the search The data element is the -data that we want to search. - -The above example (if getted and constructed correctly) should generate the -following where clause - -SELECT .... FROM table,... WHERE id > 1 AND name LIKE 'Client%' -------------------------------------------------------------------------------- -As described above the search is constructed according to the searchoptions in -colModel - -search : boolean , // true/false stype: value, // text/select - -searchoptions : { - dataUrl : value, - dataInit: function, - dataEvents : array, - attr: object, - searchhidden: boolean, - sopt: array -} -Note that here is missing the defaultValue. The option is not implemented in -this method. - - -stype determines the search type - can be select or text. If not set a text is -used - -searchoptions -------------------------------------------------------------------------------- -dataUrl option is valid only for the elements of type select, i.e. -edittype:select - -When this option is set the element will be filled with values from the ajax -request. The data should be a valid html select element with the desired -options. - -This is called only once. - -------------------------------------------------------------------------------- -dataInit : function (elem) { -// do something -} - -If set this function is called only once when the element is created. To the -function is passed the element. Also this option is ideal for attaching date -picker, time picker and etc. Example - -dataInit : function (elem) { - $(elem).datepicker(); -} --------------------------------------------------------------------------------- -dataEvents: list of events to apply to the data element; uses -$("#id").bind(type, [data], fn) to bind events to data element - -Should be described like this -dataEvents: [ -{ type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); }}, -{ type: 'keypress', fn: function(e) { console.log('keypress'); } } -] - -The event(s) are called only once when the element is created --------------------------------------------------------------------------------- -attr is object where we can set valid attributes to the created element - -attr : { title: "Some title" } ------------------------------------------------------------------------------- -searchhidden : if set to true, the hidden element will appear in the search. -------------------------------------------------------------------------------- -array that correspond to the op element in the posted data and determines the -operation. If not set all the available options will be used; if set only the -set values will appear as selectboxes. - -All available option are sopt: -['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'] - -The corresponding texts are in language file and mean the following ['equal', -'not equal', 'less', 'less or equal','greater','greater or equal', 'begins -with','does not begin with','is in','is not in','ends with','does not end -with','contains','does not contain'], - -Note that the elements in sopt array can be mixed in any order. - - -=========add/edit form========== -In the editGridRow method the following options are no longer used - -closeicon: 'ico-close.gif', -imgpath: '' - -Added new property formoptions (in colModel); thanks to Faserline Team -(www.faserline.com) - -The purpose of these options is to reorder the elements in the form and to add -some information before and after the editing element. - -formoptions : { - elmprefix:'', - elmsuffix:'', - rowpos:number, - colpos:number, - label: value -} - -If you go to use this object in collModel it is recommended that all editing -fields use this property and with at least the rowpos and colpos set. - -Elemprefix: if set, a text or html content appears before the input element - -Elemsuffix: if set, a text or html content appears after the input element - -Label: if set, this replace the name from colNames array that appears as label -in the form. - -rowpos : number determines the row position of the element (again with the -text-label) in the form; the count begins from 1 - -colpos : number determines the column position of the element (again with the -label) in the form beginning from 1 - -Two elements can have equal row position, but different column position. This -will place the two elements in one row on the form. - -=========== delete================================= -In the delGridRow method the following options are no longer used - -closeicon: 'ico-close.gif', -imgpath: '', - - - -============= view ============================= -Added viewGridRow method; thanks to Faserline Team (www.faserline.com) - -This method is similar to the editGridRow method except that the fields are not -editable and we do not have any events attached to the form. Here are the -options viewGridRow (options) where -options = { - top : 0, - left: 0, - width: 0, - height: 0, - modal: false, - drag: true, - closeOnEscape : false, - labelswidth: '30%' -} - - -All the options have the same thing as these in editGridRow except the option -labelswidth which default value is 30%. Since we construct the view with table -element it is difficult to calculate, in this case, how much width is needed for -the labels. Depending on the needs this value can be increased or decreased - -Custom method -============= -In the custom module is added new method filterToolbar. - -This method is the same as filterGrid, except that the search input elements are -placed in the grid just below the header elements. When the header elements are -resized the input search elements are also resized according to the new width. -Another difference to the filterGrid is that the filter toolbar uses definitions -from colModel just like the searchGrid - -Should be called like this - -jQuery("#mygrid").filterToolbar(options) - -where options are - -options = { - autosearch: true, - beforeSearch: null, - afterSearch: null, - beforeClear: null, - afterClear: null, - searchurl : '' -} - -autosearch: true Search is performed according to the following rules For text -element when a Enter key is pressed while inputting values a search is -performed. For select element when the value changes. - -beforeSearch - event which fires before a search - -afterSearch - event which fires after a search - -beforeClear - event which fires before clearing entered values (i.e., -clearToolbar is activated) - -afterClear - event which fires after clearing entered values (i.e., clearToolbar -is activated) - -The rules of creating toolbar search input elements are the same as searchGrid -using the colModel -searchoptions : { - dataUrl : value, - dataInit: function, - dataEvents : array, - defaultValue: value, - attr: object -} - -Note the missing sopt element, but addition of defaultValue property - -This method has 3 new additional methods that can be used: - -triggerToolbar - when called perform a search dynamically - -clearToolbar - when called clear the search values and set the default one if -available - -toggleToolbar - toggles the searchbar - -A typical call to these methods - -var sgrid = $("#mygrid")[0] sgrid.triggerToolbar(); - -will trigger the search of mygrid. - - -Import module -============= -added option importComplete event which fires after constructing the grid. - - -Inline edit -=========== -added afterrestorefunc as 9th parameter. The event fires after the row is -restored - -treeGrid -======== -the tree icons can be changed using the following grid parameter treeIcons. The -default values are. -treeIcons ={ - plus:'ui-icon-triangle-1-e', - minus:'ui-icon-triangle-1-s', - leaf:'ui-icon-radio-off' -}; -Note that icons from UI Theme should be used. - -formatter -========= - -- the source format for date formatter (srcformat) now can accept month names -- it is possible to enable checkboxes as editable when created with formatter In - the format options we should in this case checkbox : {disabled:false} The - default is false. To enable this option globally you can change this value in - the language file - -- the showLink now can accept custom name for the id The parameter is idName : - 'id' The default is id. Can be changed in formatoptions or in the language - file. - diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ar.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ar.js deleted file mode 100755 index 28d38a15..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ar.js +++ /dev/null @@ -1,127 +0,0 @@ -;(function($){ -/** - * jqGrid Arabic Translation - * - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "تسجيل {0} - {1} على {2}", - emptyrecords: "لا يوجد تسجيل", - loadtext: "تحميل...", - pgtext : "صفحة {0} على {1}" - }, - search : { - caption: "بحث...", - Find: "بحث", - Reset: "إلغاء", - odata : ['يساوي', 'يختلف', 'أقل', 'أقل أو يساوي','أكبر','أكبر أو يساوي', 'يبدأ بـ','لا يبدأ بـ','est dans',"n'est pas dans",'ينته بـ','لا ينته بـ','يحتوي','لا يحتوي'], - groupOps: [ { op: "مع", text: "الكل" }, { op: "أو", text: "لا أحد" } ], - matchText: " توافق", - rulesText: " قواعد" - }, - edit : { - addCaption: "اضافة", - editCaption: "تحديث", - bSubmit: "تثبيث", - bCancel: "إلغاء", - bClose: "غلق", - saveData: "تغيرت المعطيات هل تريد التسجيل ?", - bYes: "نعم", - bNo: "لا", - bExit: "إلغاء", - msg: { - required: "خانة إجبارية", - number: "سجل رقم صحيح", - minValue: "يجب أن تكون القيمة أكبر أو تساوي 0", - maxValue: "يجب أن تكون القيمة أقل أو تساوي 0", - email: "بريد غير صحيح", - integer: "سجل عدد طبييعي صحيح", - url: "ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')", - nodefined : " ليس محدد!", - novalue : " قيمة الرجوع مطلوبة!", - customarray : "يجب على الدالة الشخصية أن تنتج جدولا", - customfcheck : "الدالة الشخصية مطلوبة في حالة التحقق الشخصي" - } - }, - view : { - caption: "رأيت التسجيلات", - bClose: "غلق" - }, - del : { - caption: "حذف", - msg: "حذف التسجيلات المختارة ?", - bSubmit: "حذف", - bCancel: "إلغاء" - }, - nav : { - edittext: " ", - edittitle: "تغيير التسجيل المختار", - addtext:" ", - addtitle: "إضافة تسجيل", - deltext: " ", - deltitle: "حذف التسجيل المختار", - searchtext: " ", - searchtitle: "بحث عن تسجيل", - refreshtext: "", - refreshtitle: "تحديث الجدول", - alertcap: "تحذير", - alerttext: "يرجى إختيار السطر", - viewtext: "", - viewtitle: "إظهار السطر المختار" - }, - col : { - caption: "إظهار/إخفاء الأعمدة", - bSubmit: "تثبيث", - bCancel: "إلغاء" - }, - errors : { - errcap : "خطأ", - nourl : "لا يوجد عنوان محدد", - norecords: "لا يوجد تسجيل للمعالجة", - model : "عدد العناوين (colNames) <> عدد التسجيلات (colModel)!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", - "الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" - ], - monthNames: [ - "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر", - "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر" - ], - AmPm : ["صباحا","مساءا","صباحا","مساءا"], - S: function (j) {return j == 1 ? 'er' : 'e';}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-bg.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-bg.js deleted file mode 100755 index 0b909246..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-bg.js +++ /dev/null @@ -1,133 +0,0 @@ -;(function($){ -/** - * jqGrid Bulgarian Translation - * Tony Tomov tony@trirand.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "{0} - {1} от {2}", - emptyrecords: "Няма запис(и)", - loadtext: "Зареждам...", - pgtext : "Стр. {0} от {1}" - }, - search : { - caption: "Търсене...", - Find: "Намери", - Reset: "Изчисти", - odata : ['равно', 'различно', 'по-малко', 'по-малко или=','по-голямо','по-голямо или =', 'започва с','не започва с','се намира в','не се намира в','завършва с','не завършава с','съдържа', 'не съдържа' ], - groupOps: [ { op: "AND", text: " И " }, { op: "OR", text: "ИЛИ" } ], - matchText: " включи", - rulesText: " клауза" - }, - edit : { - addCaption: "Нов Запис", - editCaption: "Редакция Запис", - bSubmit: "Запиши", - bCancel: "Изход", - bClose: "Затвори", - saveData: "Данните са променени! Да съхраня ли промените?", - bYes : "Да", - bNo : "Не", - bExit : "Отказ", - msg: { - required:"Полето е задължително", - number:"Въведете валидно число!", - minValue:"стойността трябва да е по-голяма или равна от", - maxValue:"стойността трябва да е по-малка или равна от", - email: "не е валиден ел. адрес", - integer: "Въведете валидно цяло число", - date: "Въведете валидна дата", - url: "e невалиден URL. Изискава се префикс('http://' или 'https://')", - nodefined : " е недефинирана!", - novalue : " изисква връщане на стойност!", - customarray : "Потреб. Функция трябва да върне масив!", - customfcheck : "Потребителска функция е задължителна при този тип елемент!" - } - }, - view : { - caption: "Преглед запис", - bClose: "Затвори" - }, - del : { - caption: "Изтриване", - msg: "Да изтрия ли избраният запис?", - bSubmit: "Изтрий", - bCancel: "Отказ" - }, - nav : { - edittext: " ", - edittitle: "Редакция избран запис", - addtext:" ", - addtitle: "Добавяне нов запис", - deltext: " ", - deltitle: "Изтриване избран запис", - searchtext: " ", - searchtitle: "Търсене запис(и)", - refreshtext: "", - refreshtitle: "Обнови таблица", - alertcap: "Предупреждение", - alerttext: "Моля, изберете запис", - viewtext: "", - viewtitle: "Преглед избран запис" - }, - col : { - caption: "Избери колони", - bSubmit: "Ок", - bCancel: "Изход" - }, - errors : { - errcap : "Грешка", - nourl : "Няма посочен url адрес", - norecords: "Няма запис за обработка", - model : "Модела не съответства на имената!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'}, - date : { - dayNames: [ - "Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб", - "Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота" - ], - monthNames: [ - "Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек", - "Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември" - ], - AmPm : ["","","",""], - S: function (j) { - if(j==7 || j==8 || j== 27 || j== 28) { - return 'ми'; - } - return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)]; - }, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-bg1251.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-bg1251.js deleted file mode 100755 index 84347762..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-bg1251.js +++ /dev/null @@ -1,133 +0,0 @@ -;(function($){ -/** - * jqGrid Bulgarian Translation - * Tony Tomov tony@trirand.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "{0} - {1} �� {2}", - emptyrecords: "���� �����(�)", - loadtext: "��������...", - pgtext : "���. {0} �� {1}" - }, - search : { - caption: "�������...", - Find: "������", - Reset: "�������", - odata : ['�����', '��������', '��-�����', '��-����� ���=','��-������','��-������ ��� =', '������� �','�� ������� �','�� ������ �','�� �� ������ �','�������� �','�� ��������� �','�������', '�� �������' ], - groupOps: [ { op: "AND", text: " � " }, { op: "OR", text: "���" } ], - matchText: " ������", - rulesText: " ������" - }, - edit : { - addCaption: "��� �����", - editCaption: "�������� �����", - bSubmit: "������", - bCancel: "�����", - bClose: "�������", - saveData: "������� �� ���������! �� ������� �� ���������?", - bYes : "��", - bNo : "��", - bExit : "�����", - msg: { - required:"������ � ������������", - number:"�������� ������� �����!", - minValue:"���������� ������ �� � ��-������ ��� ����� ��", - maxValue:"���������� ������ �� � ��-����� ��� ����� ��", - email: "�� � ������� ��. �����", - integer: "�������� ������� ���� �����", - date: "�������� ������� ����", - url: "e ��������� URL. �������� �� �������('http://' ��� 'https://')", - nodefined : " � ������������!", - novalue : " ������� ������� �� ��������!", - customarray : "������. ������� ������ �� ����� �����!", - customfcheck : "������������� ������� � ������������ ��� ���� ��� �������!" - } - }, - view : { - caption: "������� �����", - bClose: "�������" - }, - del : { - caption: "���������", - msg: "�� ������ �� ��������� �����?", - bSubmit: "������", - bCancel: "�����" - }, - nav : { - edittext: " ", - edittitle: "�������� ������ �����", - addtext:" ", - addtitle: "�������� ��� �����", - deltext: " ", - deltitle: "��������� ������ �����", - searchtext: " ", - searchtitle: "������� �����(�)", - refreshtext: "", - refreshtitle: "������ �������", - alertcap: "��������������", - alerttext: "����, �������� �����", - viewtext: "", - viewtitle: "������� ������ �����" - }, - col : { - caption: "����� ������", - bSubmit: "��", - bCancel: "�����" - }, - errors : { - errcap : "������", - nourl : "���� ������� url �����", - norecords: "���� ����� �� ���������", - model : "������ �� ����������� �� �������!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" ��.", defaultValue: '0.00'}, - date : { - dayNames: [ - "���", "���", "��", "��", "���", "���", "���", - "������", "����������", "�������", "�����", "���������", "�����", "������" - ], - monthNames: [ - "���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���", - "������", "��������", "����", "�����", "���", "���", "���", "������", "���������", "��������", "�������", "��������" - ], - AmPm : ["","","",""], - S: function (j) { - if(j==7 || j==8 || j== 27 || j== 28) { - return '��'; - } - return ['��', '��', '��'][Math.min((j - 1) % 10, 2)]; - }, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cat.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cat.js deleted file mode 100755 index 75c6ba97..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cat.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Catalan Translation - * Traducció jqGrid en Catatà per Faserline, S.L. - * http://www.faserline.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Mostrant {0} - {1} de {2}", - emptyrecords: "Sense registres que mostrar", - loadtext: "Carregant...", - pgtext : "Pàgina {0} de {1}" - }, - search : { - caption: "Cerca...", - Find: "Cercar", - Reset: "Buidar", - odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], - groupOps: [ { op: "AND", text: "tot" }, { op: "OR", text: "qualsevol" } ], - matchText: " match", - rulesText: " rules" - }, - edit : { - addCaption: "Afegir registre", - editCaption: "Modificar registre", - bSubmit: "Guardar", - bCancel: "Cancelar", - bClose: "Tancar", - saveData: "Les dades han canviat. Guardar canvis?", - bYes : "Yes", - bNo : "No", - bExit : "Cancel", - msg: { - required:"Camp obligatori", - number:"Introdueixi un nombre", - minValue:"El valor ha de ser major o igual que ", - maxValue:"El valor ha de ser menor o igual a ", - email: "no és una direcció de correu vàlida", - integer: "Introdueixi un valor enter", - date: "Introdueixi una data correcta ", - url: "no és una URL vàlida. Prefix requerit ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "Veure registre", - bClose: "Tancar" - }, - del : { - caption: "Eliminar", - msg: "¿Desitja eliminar els registres seleccionats?", - bSubmit: "Eliminar", - bCancel: "Cancelar" - }, - nav : { - edittext: " ", - edittitle: "Modificar fila seleccionada", - addtext:" ", - addtitle: "Agregar nova fila", - deltext: " ", - deltitle: "Eliminar fila seleccionada", - searchtext: " ", - searchtitle: "Cercar informació", - refreshtext: "", - refreshtitle: "Refrescar taula", - alertcap: "Avís", - alerttext: "Seleccioni una fila", - viewtext: " ", - viewtitle: "Veure fila seleccionada" - }, -// setcolumns module - col : { - caption: "Mostrar/ocultar columnes", - bSubmit: "Enviar", - bCancel: "Cancelar" - }, - errors : { - errcap : "Error", - nourl : "No s'ha especificat una URL", - norecords: "No hi ha dades per processar", - model : "Les columnes de noms són diferents de les columnes del model" - }, - formatter : { - integer : {thousandsSeparator: ".", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds", - "Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte" - ], - monthNames: [ - "Gen", "Febr", "Març", "Abr", "Maig", "Juny", "Jul", "Ag", "Set", "Oct", "Nov", "Des", - "Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd-m-Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: 'show', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cn.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cn.js deleted file mode 100755 index 8e156c34..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cn.js +++ /dev/null @@ -1,133 +0,0 @@ -;(function($){ -/** - * jqGrid Chinese Translation for v4.2 - * henryyan 2011.11.30 - * http://www.wsria.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * update 2011.11.30 - * add double u3000 SPACE for search:odata to fix SEARCH box display err when narrow width from only use of eq/ne/cn/in/lt/gt operator under IE6/7 -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "{0} - {1}\u3000共 {2} 条", // 共字前是全角空格 - emptyrecords: "无数据显示", - loadtext: "读取中...", - pgtext : " {0} 共 {1} 页" - }, - search : { - caption: "搜索...", - Find: "查找", - Reset: "重置", - odata : ['等于\u3000\u3000', '不等\u3000\u3000', '小于\u3000\u3000', '小于等于','大于\u3000\u3000','大于等于', - '开始于','不开始于','属于\u3000\u3000','不属于','结束于','不结束于','包含\u3000\u3000','不包含','空值于\u3000\u3000','非空值'], - groupOps: [ { op: "AND", text: "所有" }, { op: "OR", text: "任一" } ], - matchText: " 匹配", - rulesText: " 规则" - }, - edit : { - addCaption: "添加记录", - editCaption: "编辑记录", - bSubmit: "提交", - bCancel: "取消", - bClose: "关闭", - saveData: "数据已改变,是否保存?", - bYes : "是", - bNo : "否", - bExit : "取消", - msg: { - required:"此字段必需", - number:"请输入有效数字", - minValue:"输值必须大于等于 ", - maxValue:"输值必须小于等于 ", - email: "这不是有效的e-mail地址", - integer: "请输入有效整数", - date: "请输入有效时间", - url: "无效网址。前缀必须为 ('http://' 或 'https://')", - nodefined : " 未定义!", - novalue : " 需要返回值!", - customarray : "自定义函数需要返回数组!", - customfcheck : "Custom function should be present in case of custom checking!" - - } - }, - view : { - caption: "查看记录", - bClose: "关闭" - }, - del : { - caption: "删除", - msg: "删除所选记录?", - bSubmit: "删除", - bCancel: "取消" - }, - nav : { - edittext: "", - edittitle: "编辑所选记录", - addtext:"", - addtitle: "添加新记录", - deltext: "", - deltitle: "删除所选记录", - searchtext: "", - searchtitle: "查找", - refreshtext: "", - refreshtitle: "刷新表格", - alertcap: "注意", - alerttext: "请选择记录", - viewtext: "", - viewtitle: "查看所选记录" - }, - col : { - caption: "选择列", - bSubmit: "确定", - bCancel: "取消" - }, - errors : { - errcap : "错误", - nourl : "没有设置url", - norecords: "没有要处理的记录", - model : "colNames 和 colModel 长度不等!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat", - "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", - "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'm-d-Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "Y/j/n", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cs.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cs.js deleted file mode 100755 index f8380228..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-cs.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Czech Translation - * Pavel Jirak pavel.jirak@jipas.cz - * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Zobrazeno {0} - {1} z {2} záznamů", - emptyrecords: "Nenalezeny žádné záznamy", - loadtext: "Načítám...", - pgtext : "Strana {0} z {1}" - }, - search : { - caption: "Vyhledávám...", - Find: "Hledat", - Reset: "Reset", - odata : ['rovno', 'nerovono', 'menší', 'menší nebo rovno','větší', 'větší nebo rovno', 'začíná s', 'nezačíná s', 'je v', 'není v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'], - groupOps: [ { op: "AND", text: "všech" }, { op: "OR", text: "některého z" } ], - matchText: " hledat podle", - rulesText: " pravidel" - }, - edit : { - addCaption: "Přidat záznam", - editCaption: "Editace záznamu", - bSubmit: "Uložit", - bCancel: "Storno", - bClose: "Zavřít", - saveData: "Data byla změněna! Uložit změny?", - bYes : "Ano", - bNo : "Ne", - bExit : "Zrušit", - msg: { - required:"Pole je vyžadováno", - number:"Prosím, vložte validní číslo", - minValue:"hodnota musí být větší než nebo rovná ", - maxValue:"hodnota musí být menší než nebo rovná ", - email: "není validní e-mail", - integer: "Prosím, vložte celé číslo", - date: "Prosím, vložte validní datum", - url: "není platnou URL. Vyžadován prefix ('http://' or 'https://')", - nodefined : " není definován!", - novalue : " je vyžadována návratová hodnota!", - customarray : "Custom function mělá vrátit pole!", - customfcheck : "Custom function by měla být přítomna v případě custom checking!" - } - }, - view : { - caption: "Zobrazit záznam", - bClose: "Zavřít" - }, - del : { - caption: "Smazat", - msg: "Smazat vybraný(é) záznam(y)?", - bSubmit: "Smazat", - bCancel: "Storno" - }, - nav : { - edittext: " ", - edittitle: "Editovat vybraný řádek", - addtext:" ", - addtitle: "Přidat nový řádek", - deltext: " ", - deltitle: "Smazat vybraný záznam ", - searchtext: " ", - searchtitle: "Najít záznamy", - refreshtext: "", - refreshtitle: "Obnovit tabulku", - alertcap: "Varování", - alerttext: "Prosím, vyberte řádek", - viewtext: "", - viewtitle: "Zobrazit vybraný řádek" - }, - col : { - caption: "Zobrazit/Skrýt sloupce", - bSubmit: "Uložit", - bCancel: "Storno" - }, - errors : { - errcap : "Chyba", - nourl : "Není nastavena url", - norecords: "Žádné záznamy ke zpracování", - model : "Délka colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Ne", "Po", "Út", "St", "Čt", "Pá", "So", - "Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota" - ], - monthNames: [ - "Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro", - "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec" - ], - AmPm : ["do","od","DO","OD"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-da.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-da.js deleted file mode 100755 index 2eac558d..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-da.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Danish Translation - * Aesiras A/S - * http://www.aesiras.dk - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Vis {0} - {1} of {2}", - emptyrecords: "Ingen linjer fundet", - loadtext: "Henter...", - pgtext : "Side {0} af {1}" - }, - search : { - caption: "Søg...", - Find: "Find", - Reset: "Nulstil", - odata : ['lig', 'forskellige fra', 'mindre', 'mindre eller lig','større','større eller lig', 'begynder med','begynder ikke med','findes i','findes ikke i','ender med','ender ikke med','indeholder','indeholder ikke'], - groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], - matchText: " lig", - rulesText: " regler" - }, - edit : { - addCaption: "Tilføj", - editCaption: "Ret", - bSubmit: "Send", - bCancel: "Annuller", - bClose: "Luk", - saveData: "Data er ændret. Gem data?", - bYes : "Ja", - bNo : "Nej", - bExit : "Fortryd", - msg: { - required:"Felt er nødvendigt", - number:"Indtast venligst et validt tal", - minValue:"værdi skal være større end eller lig med", - maxValue:"værdi skal være mindre end eller lig med", - email: "er ikke en gyldig email", - integer: "Indtast venligst et gyldigt heltal", - date: "Indtast venligst en gyldig datoværdi", - url: "er ugyldig URL. Prefix mangler ('http://' or 'https://')", - nodefined : " er ikke defineret!", - novalue : " returværdi kræves!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "Vis linje", - bClose: "Luk" - }, - del : { - caption: "Slet", - msg: "Slet valgte linje(r)?", - bSubmit: "Slet", - bCancel: "Fortryd" - }, - nav : { - edittext: " ", - edittitle: "Rediger valgte linje", - addtext:" ", - addtitle: "Tilføj ny linje", - deltext: " ", - deltitle: "Slet valgte linje", - searchtext: " ", - searchtitle: "Find linjer", - refreshtext: "", - refreshtitle: "Indlæs igen", - alertcap: "Advarsel", - alerttext: "Vælg venligst linje", - viewtext: "", - viewtitle: "Vis valgte linje" - }, - col : { - caption: "Vis/skjul kolonner", - bSubmit: "Opdatere", - bCancel: "Fortryd" - }, - errors : { - errcap : "Fejl", - nourl : "Ingen url valgt", - norecords: "Ingen linjer at behandle", - model : "colNames og colModel har ikke samme længde!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør", - "Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec", - "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" - ], - AmPm : ["","","",""], - S: function (j) {return '.'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "j/n/Y", - LongDate: "l d. F Y", - FullDateTime: "l d F Y G:i:s", - MonthDay: "d. F", - ShortTime: "G:i", - LongTime: "G:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -// DA -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-de.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-de.js deleted file mode 100755 index 7265c6d6..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-de.js +++ /dev/null @@ -1,172 +0,0 @@ -;(function($){ -/** - * jqGrid German Translation - * Version 1.0.0 (developed for jQuery Grid 3.3.1) - * Olaf Klöppel opensource@blue-hit.de - * http://blue-hit.de/ - * - * Updated for jqGrid 3.8 - * Andreas Flack - * http://www.contentcontrol-berlin.de - * - * Updated for jQuery 4.4 - * Oleg Kiriljuk oleg.kiriljuk@ok-soft-gmbh.com - * the format corresponds now the format from - * https://github.com/jquery/globalize/blob/master/lib/cultures/globalize.culture.de.js - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Zeige {0} - {1} von {2}", - emptyrecords: "Keine Datensätze vorhanden", - loadtext: "Lädt...", - pgtext : "Seite {0} von {1}" - }, - search : { - caption: "Suche...", - Find: "Suchen", - Reset: "Zurücksetzen", - odata : ['gleich', 'ungleich', 'kleiner', 'kleiner gleich','größer','größer gleich', 'beginnt mit','beginnt nicht mit','ist in','ist nicht in','endet mit','endet nicht mit','enthält','enthält nicht'], - groupOps: [ { op: "AND", text: "alle" }, { op: "OR", text: "mindestens eine" } ], - matchText: " erfülle", - rulesText: " Bedingung(en)" - }, - edit : { - addCaption: "Datensatz hinzufügen", - editCaption: "Datensatz bearbeiten", - bSubmit: "Speichern", - bCancel: "Abbrechen", - bClose: "Schließen", - saveData: "Daten wurden geändert! Änderungen speichern?", - bYes : "ja", - bNo : "nein", - bExit : "abbrechen", - msg: { - required:"Feld ist erforderlich", - number: "Bitte geben Sie eine Zahl ein", - minValue:"Wert muss größer oder gleich sein, als ", - maxValue:"Wert muss kleiner oder gleich sein, als ", - email: "ist keine gültige E-Mail-Adresse", - integer: "Bitte geben Sie eine Ganzzahl ein", - date: "Bitte geben Sie ein gültiges Datum ein", - url: "ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')", - nodefined : " ist nicht definiert!", - novalue : " Rückgabewert ist erforderlich!", - customarray : "Benutzerdefinierte Funktion sollte ein Array zurückgeben!", - customfcheck : "Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!" - } - }, - view : { - caption: "Datensatz anzeigen", - bClose: "Schließen" - }, - del : { - caption: "Löschen", - msg: "Ausgewählte Datensätze löschen?", - bSubmit: "Löschen", - bCancel: "Abbrechen" - }, - nav : { - edittext: " ", - edittitle: "Ausgewählte Zeile editieren", - addtext:" ", - addtitle: "Neue Zeile einfügen", - deltext: " ", - deltitle: "Ausgewählte Zeile löschen", - searchtext: " ", - searchtitle: "Datensatz suchen", - refreshtext: "", - refreshtitle: "Tabelle neu laden", - alertcap: "Warnung", - alerttext: "Bitte Zeile auswählen", - viewtext: "", - viewtitle: "Ausgewählte Zeile anzeigen" - }, - col : { - caption: "Spalten auswählen", - bSubmit: "Speichern", - bCancel: "Abbrechen" - }, - errors : { - errcap : "Fehler", - nourl : "Keine URL angegeben", - norecords: "Keine Datensätze zu bearbeiten", - model : "colNames und colModel sind unterschiedlich lang!" - }, - formatter : { - integer : {thousandsSeparator: ".", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" €", defaultValue: '0,00'}, - date : { - dayNames: [ - "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", - "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", - "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" - ], - AmPm : ["","","",""], - S: function (j) {return '.';}, // one can also use 'er' instead of '.' but one have to use additional word like 'der' or 'den' before - srcformat: 'Y-m-d', - newformat: 'd.m.Y', - masks : { - // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid - // and see http://docs.jquery.com/UI/Datepicker/formatDate - // and https://github.com/jquery/globalize#dates for alternative formats used frequently - ISO8601Long: "Y-m-d H:i:s", - ISO8601Short: "Y-m-d", - // short date: - // d - Day of the month, 2 digits with leading zeros - // m - Numeric representation of a month, with leading zeros - // Y - A full numeric representation of a year, 4 digits - ShortDate: "d.m.Y", // in jQuery UI Datepicker: "dd.MM.yyyy" - // long date: - // l - A full textual representation of the day of the week - // j - Day of the month without leading zeros - // F - A full textual representation of a month - // Y - A full numeric representation of a year, 4 digits - LongDate: "l, j. F Y", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy" - // long date with long time: - // l - A full textual representation of the day of the week - // j - Day of the month without leading zeros - // F - A full textual representation of a month - // Y - A full numeric representation of a year, 4 digits - // H - 24-hour format of an hour with leading zeros - // i - Minutes with leading zeros - // s - Seconds, with leading zeros - FullDateTime: "l, j. F Y H:i:s", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy HH:mm:ss" - // month day: - // d - Day of the month, 2 digits with leading zeros - // F - A full textual representation of a month - MonthDay: "d F", // in jQuery UI Datepicker: "dd MMMM" - // short time (without seconds) - // H - 24-hour format of an hour with leading zeros - // i - Minutes with leading zeros - ShortTime: "H:i", // in jQuery UI Datepicker: "HH:mm" - // long time (with seconds) - // H - 24-hour format of an hour with leading zeros - // i - Minutes with leading zeros - // s - Seconds, with leading zeros - LongTime: "H:i:s", // in jQuery UI Datepicker: "HH:mm:ss" - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - // month with year - // F - A full textual representation of a month - // Y - A full numeric representation of a year, 4 digits - YearMonth: "F Y" // in jQuery UI Datepicker: "MMMM yyyy" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); \ No newline at end of file diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-dk.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-dk.js deleted file mode 100755 index 16d363be..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-dk.js +++ /dev/null @@ -1,128 +0,0 @@ -;(function($){ -/** - * jqGrid Danish Translation - * Kaare Rasmussen kjs@jasonic.dk - * http://jasonic.dk/blog - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = { - defaults : { - recordtext: "View {0} - {1} of {2}", - emptyrecords: "No records to view", - loadtext: "Loading...", - pgtext : "Page {0} of {1}" - }, - search : { - caption: "Søg...", - Find: "Find", - Reset: "Nulstil", - odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], - groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], - matchText: " match", - rulesText: " rules" - }, - edit : { - addCaption: "Tilføj", - editCaption: "Ret", - bSubmit: "Send", - bCancel: "Annuller", - bClose: "Luk", - saveData: "Data has been changed! Save changes?", - bYes : "Yes", - bNo : "No", - bExit : "Cancel", - msg: { - required:"Felt er nødvendigt", - number:"Indtast venligst et validt tal", - minValue:"værdi skal være større end eller lig med", - maxValue:"værdi skal være mindre end eller lig med", - email: "er ikke en valid email", - integer: "Indtast venligst et validt heltalt", - date: "Indtast venligst en valid datoværdi", - url: "is not a valid URL. Prefix required ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "View Record", - bClose: "Close" - }, - del : { - caption: "Slet", - msg: "Slet valgte række(r)?", - bSubmit: "Slet", - bCancel: "Annuller" - }, - nav : { - edittext: " ", - edittitle: "Rediger valgte række", - addtext:" ", - addtitle: "Tilføj ny række", - deltext: " ", - deltitle: "Slet valgte række", - searchtext: " ", - searchtitle: "Find poster", - refreshtext: "", - refreshtitle: "Indlæs igen", - alertcap: "Advarsel", - alerttext: "Vælg venligst række", - viewtext: "", - viewtitle: "View selected row" - }, - col : { - caption: "Vis/skjul kolonner", - bSubmit: "Send", - bCancel: "Annuller" - }, - errors : { - errcap : "Fejl", - nourl : "Ingel url valgt", - norecords: "Ingen poster at behandle", - model : "colNames og colModel har ikke samme længde!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør", - "Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec", - "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" - ], - AmPm : ["","","",""], - S: function (j) {return '.'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "j/n/Y", - LongDate: "l d. F Y", - FullDateTime: "l d F Y G:i:s", - MonthDay: "d. F", - ShortTime: "G:i", - LongTime: "G:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}; -// DK -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-el.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-el.js deleted file mode 100755 index 1c865149..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-el.js +++ /dev/null @@ -1,127 +0,0 @@ -;(function($){ -/** - * jqGrid Greek (el) Translation - * Alex Cicovic - * http://www.alexcicovic.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "View {0} - {1} of {2}", - emptyrecords: "No records to view", - loadtext: "Φόρτωση...", - pgtext : "Page {0} of {1}" - }, - search : { - caption: "Αναζήτηση...", - Find: "Εύρεση", - Reset: "Επαναφορά", - odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], - groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], - matchText: " match", - rulesText: " rules" - }, - edit : { - addCaption: "Εισαγωγή Εγγραφής", - editCaption: "Επεξεργασία Εγγραφής", - bSubmit: "Καταχώρηση", - bCancel: "Άκυρο", - bClose: "Κλείσιμο", - saveData: "Data has been changed! Save changes?", - bYes : "Yes", - bNo : "No", - bExit : "Cancel", - msg: { - required:"Το πεδίο είναι απαραίτητο", - number:"Το πεδίο δέχεται μόνο αριθμούς", - minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ", - maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ", - email: "Η διεύθυνση e-mail δεν είναι έγκυρη", - integer: "Το πεδίο δέχεται μόνο ακέραιους αριθμούς", - url: "is not a valid URL. Prefix required ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "View Record", - bClose: "Close" - }, - del : { - caption: "Διαγραφή", - msg: "Διαγραφή των επιλεγμένων εγγραφών;", - bSubmit: "Ναι", - bCancel: "Άκυρο" - }, - nav : { - edittext: " ", - edittitle: "Επεξεργασία επιλεγμένης εγγραφής", - addtext:" ", - addtitle: "Εισαγωγή νέας εγγραφής", - deltext: " ", - deltitle: "Διαγραφή επιλεγμένης εγγραφής", - searchtext: " ", - searchtitle: "Εύρεση Εγγραφών", - refreshtext: "", - refreshtitle: "Ανανέωση Πίνακα", - alertcap: "Προσοχή", - alerttext: "Δεν έχετε επιλέξει εγγραφή", - viewtext: "", - viewtitle: "View selected row" - }, - col : { - caption: "Εμφάνιση / Απόκρυψη Στηλών", - bSubmit: "ΟΚ", - bCancel: "Άκυρο" - }, - errors : { - errcap : "Σφάλμα", - nourl : "Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια", - norecords: "Δεν υπάρχουν εγγραφές προς επεξεργασία", - model : "Άνισος αριθμός πεδίων colNames/colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ", - "Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο" - ], - monthNames: [ - "Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ", - "Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος" - ], - AmPm : ["πμ","μμ","ΠΜ","ΜΜ"], - S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-en.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-en.js deleted file mode 100755 index e3fa2fd2..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-en.js +++ /dev/null @@ -1,169 +0,0 @@ -;(function($){ -/** - * jqGrid English Translation - * Tony Tomov tony@trirand.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "View {0} - {1} of {2}", - emptyrecords: "No records to view", - loadtext: "Loading...", - pgtext : "Page {0} of {1}" - }, - search : { - caption: "Search...", - Find: "Find", - Reset: "Reset", - odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], - groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], - matchText: " match", - rulesText: " rules" - }, - edit : { - addCaption: "Add Record", - editCaption: "Edit Record", - bSubmit: "Submit", - bCancel: "Cancel", - bClose: "Close", - saveData: "Data has been changed! Save changes?", - bYes : "Yes", - bNo : "No", - bExit : "Cancel", - msg: { - required:"Field is required", - number:"Please, enter valid number", - minValue:"value must be greater than or equal to ", - maxValue:"value must be less than or equal to", - email: "is not a valid e-mail", - integer: "Please, enter valid integer value", - date: "Please, enter valid date value", - url: "is not a valid URL. Prefix required ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - - } - }, - view : { - caption: "View Record", - bClose: "Close" - }, - del : { - caption: "Delete", - msg: "Delete selected record(s)?", - bSubmit: "Delete", - bCancel: "Cancel" - }, - nav : { - edittext: "", - edittitle: "Edit selected row", - addtext:"", - addtitle: "Add new row", - deltext: "", - deltitle: "Delete selected row", - searchtext: "", - searchtitle: "Find records", - refreshtext: "", - refreshtitle: "Reload Grid", - alertcap: "Warning", - alerttext: "Please, select row", - viewtext: "", - viewtitle: "View selected row" - }, - col : { - caption: "Select columns", - bSubmit: "Ok", - bCancel: "Cancel" - }, - errors : { - errcap : "Error", - nourl : "No url is set", - norecords: "No records to process", - model : "Length of colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: ",", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat", - "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", - "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';}, - srcformat: 'Y-m-d', - newformat: 'n/j/Y', - masks : { - // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid - // and see http://docs.jquery.com/UI/Datepicker/formatDate - // and https://github.com/jquery/globalize#dates for alternative formats used frequently - // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many - // information about date, time, numbers and currency formats used in different countries - // one should just convert the information in PHP format - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - // short date: - // n - Numeric representation of a month, without leading zeros - // j - Day of the month without leading zeros - // Y - A full numeric representation of a year, 4 digits - // example: 3/1/2012 which means 1 March 2012 - ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy" - // long date: - // l - A full textual representation of the day of the week - // F - A full textual representation of a month - // d - Day of the month, 2 digits with leading zeros - // Y - A full numeric representation of a year, 4 digits - LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy" - // long date with long time: - // l - A full textual representation of the day of the week - // F - A full textual representation of a month - // d - Day of the month, 2 digits with leading zeros - // Y - A full numeric representation of a year, 4 digits - // g - 12-hour format of an hour without leading zeros - // i - Minutes with leading zeros - // s - Seconds, with leading zeros - // A - Uppercase Ante meridiem and Post meridiem (AM or PM) - FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt" - // month day: - // F - A full textual representation of a month - // d - Day of the month, 2 digits with leading zeros - MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd" - // short time (without seconds) - // g - 12-hour format of an hour without leading zeros - // i - Minutes with leading zeros - // A - Uppercase Ante meridiem and Post meridiem (AM or PM) - ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt" - // long time (with seconds) - // g - 12-hour format of an hour without leading zeros - // i - Minutes with leading zeros - // s - Seconds, with leading zeros - // A - Uppercase Ante meridiem and Post meridiem (AM or PM) - LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt" - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - // month with year - // Y - A full numeric representation of a year, 4 digits - // F - A full textual representation of a month - YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-es.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-es.js deleted file mode 100755 index 4a5da7b9..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-es.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Spanish Translation - * Traduccion jqGrid en Español por Yamil Bracho - * Traduccion corregida y ampliada por Faserline, S.L. - * http://www.faserline.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Mostrando {0} - {1} de {2}", - emptyrecords: "Sin registros que mostrar", - loadtext: "Cargando...", - pgtext : "Página {0} de {1}" - }, - search : { - caption: "Búsqueda...", - Find: "Buscar", - Reset: "Limpiar", - odata : ['igual ', 'no igual a', 'menor que', 'menor o igual que','mayor que','mayor o igual a', 'empiece por','no empiece por','está en','no está en','termina por','no termina por','contiene','no contiene'], - groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "cualquier" } ], - matchText: " match", - rulesText: " reglas" - }, - edit : { - addCaption: "Agregar registro", - editCaption: "Modificar registro", - bSubmit: "Guardar", - bCancel: "Cancelar", - bClose: "Cerrar", - saveData: "Se han modificado los datos, ¿guardar cambios?", - bYes : "Si", - bNo : "No", - bExit : "Cancelar", - msg: { - required:"Campo obligatorio", - number:"Introduzca un número", - minValue:"El valor debe ser mayor o igual a ", - maxValue:"El valor debe ser menor o igual a ", - email: "no es una dirección de correo válida", - integer: "Introduzca un valor entero", - date: "Introduza una fecha correcta ", - url: "no es una URL válida. Prefijo requerido ('http://' or 'https://')", - nodefined : " no está definido.", - novalue : " valor de retorno es requerido.", - customarray : "La función personalizada debe devolver un array.", - customfcheck : "La función personalizada debe estar presente en el caso de validación personalizada." - } - }, - view : { - caption: "Consultar registro", - bClose: "Cerrar" - }, - del : { - caption: "Eliminar", - msg: "¿Desea eliminar los registros seleccionados?", - bSubmit: "Eliminar", - bCancel: "Cancelar" - }, - nav : { - edittext: " ", - edittitle: "Modificar fila seleccionada", - addtext:" ", - addtitle: "Agregar nueva fila", - deltext: " ", - deltitle: "Eliminar fila seleccionada", - searchtext: " ", - searchtitle: "Buscar información", - refreshtext: "", - refreshtitle: "Recargar datos", - alertcap: "Aviso", - alerttext: "Seleccione una fila", - viewtext: "", - viewtitle: "Ver fila seleccionada" - }, - col : { - caption: "Mostrar/ocultar columnas", - bSubmit: "Enviar", - bCancel: "Cancelar" - }, - errors : { - errcap : "Error", - nourl : "No se ha especificado una URL", - norecords: "No hay datos para procesar", - model : "Las columnas de nombres son diferentes de las columnas de modelo" - }, - formatter : { - integer : {thousandsSeparator: ".", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa", - "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado" - ], - monthNames: [ - "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic", - "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd-m-Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fa.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fa.js deleted file mode 100755 index 01bf7e42..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fa.js +++ /dev/null @@ -1,146 +0,0 @@ -;(function ($) { -/** - * jqGrid Persian Translation - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ - $.jgrid = $.jgrid || {}; - $.extend($.jgrid,{ - defaults: { - recordtext: "نمابش {0} - {1} از {2}", - emptyrecords: "رکوردی یافت نشد", - loadtext: "بارگزاري...", - pgtext: "صفحه {0} از {1}" - }, - search: { - caption: "جستجو...", - Find: "يافته ها", - Reset: "از نو", - odata: ['برابر', 'نا برابر', 'به', 'کوچکتر', 'از', 'بزرگتر', 'شروع با', 'شروع نشود با', 'نباشد', 'عضو این نباشد', 'اتمام با', 'تمام نشود با', 'حاوی', 'نباشد حاوی'], - groupOps: [{ - op: "AND", - text: "کل" - }, - { - op: "OR", - text: "مجموع" - }], - matchText: " حاوی", - rulesText: " اطلاعات" - }, - edit: { - addCaption: "اضافه کردن رکورد", - editCaption: "ويرايش رکورد", - bSubmit: "ثبت", - bCancel: "انصراف", - bClose: "بستن", - saveData: "دیتا تعییر کرد! ذخیره شود؟", - bYes: "بله", - bNo: "خیر", - bExit: "انصراف", - msg: { - required: "فيلدها بايد ختما پر شوند", - number: "لطفا عدد وعتبر وارد کنيد", - minValue: "مقدار وارد شده بايد بزرگتر يا مساوي با", - maxValue: "مقدار وارد شده بايد کوچکتر يا مساوي", - email: "پست الکترونيک وارد شده معتبر نيست", - integer: "لطفا يک عدد صحيح وارد کنيد", - date: "لطفا يک تاريخ معتبر وارد کنيد", - url: "این آدرس صحیح نمی باشد. پیشوند نیاز است ('http://' یا 'https://')", - nodefined: " تعریف نشده!", - novalue: " مقدار برگشتی اجباری است!", - customarray: "تابع شما باید مقدار آرایه داشته باشد!", - customfcheck: "برای داشتن متد دلخواه شما باید سطون با چکینگ دلخواه داشته باشید!" - } - }, - view: { - caption: "نمایش رکورد", - bClose: "بستن" - }, - del: { - caption: "حذف", - msg: "از حذف گزينه هاي انتخاب شده مطمئن هستيد؟", - bSubmit: "حذف", - bCancel: "ابطال" - }, - nav: { - edittext: " ", - edittitle: "ويرايش رديف هاي انتخاب شده", - addtext: " ", - addtitle: "افزودن رديف جديد", - deltext: " ", - deltitle: "حذف ردبف هاي انتخاب شده", - searchtext: " ", - searchtitle: "جستجوي رديف", - refreshtext: "", - refreshtitle: "بازيابي مجدد صفحه", - alertcap: "اخطار", - alerttext: "لطفا يک رديف انتخاب کنيد", - viewtext: "", - viewtitle: "نمایش رکورد های انتخاب شده" - }, - col: { - caption: "نمايش/عدم نمايش ستون", - bSubmit: "ثبت", - bCancel: "انصراف" - }, - errors: { - errcap: "خطا", - nourl: "هيچ آدرسي تنظيم نشده است", - norecords: "هيچ رکوردي براي پردازش موجود نيست", - model: "طول نام ستون ها محالف ستون هاي مدل مي باشد!" - }, - formatter: { - integer: { - thousandsSeparator: " ", - defaultValue: "0" - }, - number: { - decimalSeparator: ".", - thousandsSeparator: " ", - decimalPlaces: 2, - defaultValue: "0.00" - }, - currency: { - decimalSeparator: ".", - thousandsSeparator: " ", - decimalPlaces: 2, - prefix: "", - suffix: "", - defaultValue: "0" - }, - date: { - dayNames: ["يک", "دو", "سه", "چهار", "پنج", "جمع", "شنب", "يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"], - monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "ژانويه", "فوريه", "مارس", "آوريل", "مه", "ژوئن", "ژوئيه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "December"], - AmPm: ["ب.ظ", "ب.ظ", "ق.ظ", "ق.ظ"], - S: function (b) { - return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th" - }, - srcformat: "Y-m-d", - newformat: "d/m/Y", - masks: { - ISO8601Long: "Y-m-d H:i:s", - ISO8601Short: "Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit: false - }, - baseLinkUrl: "", - showAction: "نمايش", - target: "", - checkbox: { - disabled: true - }, - idName: "id" - } - }); -})(jQuery); \ No newline at end of file diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fi.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fi.js deleted file mode 100755 index 736401a7..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fi.js +++ /dev/null @@ -1,130 +0,0 @@ -;(function($){ -/** - * jqGrid (fi) Finnish Translation - * Jukka Inkeri awot.fi 2010-05-19 - * Alex Grönholm alex.gronholm@nextday.fi 2011-05-18 - * http://awot.fi - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults: { - recordtext: "Rivit {0} - {1} / {2}", - emptyrecords: "Ei näytettäviä", - loadtext: "Haetaan...", - pgtext: "Sivu {0} / {1}" - }, - search: { - caption: "Etsi...", - Find: "Etsi", - Reset: "Tyhjennä", - odata: ['on', 'ei ole', 'pienempi', 'pienempi tai yhtäsuuri','suurempi','suurempi tai yhtäsuuri', 'alkaa','ei ala','joukossa','ei joukossa','loppuu','ei lopu','sisältää','ei sisällä','on tyhjä','ei ole tyhjä'], - groupOps: [ { op: "AND", text: "kaikki" }, { op: "OR", text: "mikä tahansa" } ], - matchText: "  täytä ehdot:", - rulesText: "" - }, - edit: { - addCaption: "Uusi rivi", - editCaption: "Muokkaa riviä", - bSubmit: "OK", - bCancel: "Peru", - bClose: "Sulje", - saveData: "Tietoja muutettu! Tallennetaanko?", - bYes: "Kyllä", - bNo: "Ei", - bExit: "Peru", - msg: { - required: "pakollinen", - number: "Anna kelvollinen nro", - minValue: "arvon oltava suurempi tai yhtäsuuri kuin ", - maxValue: "arvon oltava pienempi tai yhtäsuuri kuin ", - email: "ei ole kelvollinen säpostiosoite", - integer: "Anna kelvollinen kokonaisluku", - date: "Anna kelvollinen pvm", - url: "Ei ole kelvollinen linkki(URL). Alku oltava ('http://' tai 'https://')", - nodefined: " ei ole määritelty!", - novalue: " paluuarvo vaaditaan!", - customarray: "Oman funktion tulee palauttaa jono!", - customfcheck: "Oma funktio on määriteltävä räätälöityä tarkastusta varten!" - } - }, - view: { - caption: "Näytä rivi", - bClose: "Sulje" - }, - del: { - caption: "Poista", - msg: "Poista valitut rivit?", - bSubmit: "Poista", - bCancel: "Peru" - }, - nav: { - edittext: "", - edittitle: "Muokkaa valittua riviä", - addtext: "", - addtitle: "Uusi rivi", - deltext: "", - deltitle: "Poista valittu rivi", - searchtext: "", - searchtitle: "Etsi tietoja", - refreshtext: "", - refreshtitle: "Lataa uudelleen", - alertcap: "Varoitus", - alerttext: "Valitse rivi", - viewtext: "", - viewtitle: "Näyta valitut rivit" - }, - col: { - caption: "Valitse sarakkeet", - bSubmit: "OK", - bCancel: "Peru" - }, - errors : { - errcap: "Virhe", - nourl: "URL on asettamatta", - norecords: "Ei muokattavia tietoja", - model: "Pituus colNames <> colModel!" - }, - formatter: { - integer: {thousandsSeparator: "", defaultValue: '0'}, - number: {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0,00'}, - currency: {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date: { - dayNames: [ - "Su", "Ma", "Ti", "Ke", "To", "Pe", "La", - "Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai" - ], - monthNames: [ - "Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou", - "Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu" - ], - AmPm: ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd.m.Y', - masks: { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "d.m.Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox: {disabled:true}, - idName: 'id' - } -}); -// FI -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fr.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fr.js deleted file mode 100755 index 88c81627..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-fr.js +++ /dev/null @@ -1,127 +0,0 @@ -;(function($){ -/** - * jqGrid French Translation - * Tony Tomov tony@trirand.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Enregistrements {0} - {1} sur {2}", - emptyrecords: "Aucun enregistrement à afficher", - loadtext: "Chargement...", - pgtext : "Page {0} sur {1}" - }, - search : { - caption: "Recherche...", - Find: "Chercher", - Reset: "Annuler", - odata : ['égal', 'différent', 'inférieur', 'inférieur ou égal','supérieur','supérieur ou égal', 'commence par','ne commence pas par','est dans',"n'est pas dans",'finit par','ne finit pas par','contient','ne contient pas'], - groupOps: [ { op: "AND", text: "tous" }, { op: "OR", text: "aucun" } ], - matchText: " correspondance", - rulesText: " règles" - }, - edit : { - addCaption: "Ajouter", - editCaption: "Editer", - bSubmit: "Valider", - bCancel: "Annuler", - bClose: "Fermer", - saveData: "Les données ont changé ! Enregistrer les modifications ?", - bYes: "Oui", - bNo: "Non", - bExit: "Annuler", - msg: { - required: "Champ obligatoire", - number: "Saisissez un nombre correct", - minValue: "La valeur doit être supérieure ou égale à", - maxValue: "La valeur doit être inférieure ou égale à", - email: "n'est pas un email correct", - integer: "Saisissez un entier correct", - url: "n'est pas une adresse correcte. Préfixe requis ('http://' or 'https://')", - nodefined : " n'est pas défini!", - novalue : " la valeur de retour est requise!", - customarray : "Une fonction personnalisée devrait retourner un tableau (array)!", - customfcheck : "Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!" - } - }, - view : { - caption: "Voir les enregistrement", - bClose: "Fermer" - }, - del : { - caption: "Supprimer", - msg: "Supprimer les enregistrements sélectionnés ?", - bSubmit: "Supprimer", - bCancel: "Annuler" - }, - nav : { - edittext: " ", - edittitle: "Editer la ligne sélectionnée", - addtext:" ", - addtitle: "Ajouter une ligne", - deltext: " ", - deltitle: "Supprimer la ligne sélectionnée", - searchtext: " ", - searchtitle: "Chercher un enregistrement", - refreshtext: "", - refreshtitle: "Recharger le tableau", - alertcap: "Avertissement", - alerttext: "Veuillez sélectionner une ligne", - viewtext: "", - viewtitle: "Afficher la ligne sélectionnée" - }, - col : { - caption: "Afficher/Masquer les colonnes", - bSubmit: "Valider", - bCancel: "Annuler" - }, - errors : { - errcap : "Erreur", - nourl : "Aucune adresse n'est paramétrée", - norecords: "Aucun enregistrement à traiter", - model : "Nombre de titres (colNames) <> Nombre de données (colModel)!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", - "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" - ], - monthNames: [ - "Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc", - "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j == 1 ? 'er' : 'e';}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-gl.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-gl.js deleted file mode 100755 index cade9259..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-gl.js +++ /dev/null @@ -1,127 +0,0 @@ -;(function($){ -/** - * jqGrid Galician Translation - * Translated by Jorge Barreiro - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Amosando {0} - {1} de {2}", - emptyrecords: "Sen rexistros que amosar", - loadtext: "Cargando...", - pgtext : "Páxina {0} de {1}" - }, - search : { - caption: "Búsqueda...", - Find: "Buscar", - Reset: "Limpar", - odata : ['igual ', 'diferente a', 'menor que', 'menor ou igual que','maior que','maior ou igual a', 'empece por','non empece por','está en','non está en','termina por','non termina por','contén','non contén'], - groupOps: [ { op: "AND", text: "todo" }, { op: "OR", text: "calquera" } ], - matchText: " match", - rulesText: " regras" - }, - edit : { - addCaption: "Engadir rexistro", - editCaption: "Modificar rexistro", - bSubmit: "Gardar", - bCancel: "Cancelar", - bClose: "Pechar", - saveData: "Modificáronse os datos, quere gardar os cambios?", - bYes : "Si", - bNo : "Non", - bExit : "Cancelar", - msg: { - required:"Campo obrigatorio", - number:"Introduza un número", - minValue:"O valor debe ser maior ou igual a ", - maxValue:"O valor debe ser menor ou igual a ", - email: "non é un enderezo de correo válido", - integer: "Introduza un valor enteiro", - date: "Introduza unha data correcta ", - url: "non é unha URL válida. Prefixo requerido ('http://' ou 'https://')", - nodefined : " non está definido.", - novalue : " o valor de retorno é obrigatorio.", - customarray : "A función persoalizada debe devolver un array.", - customfcheck : "A función persoalizada debe estar presente no caso de ter validación persoalizada." - } - }, - view : { - caption: "Consultar rexistro", - bClose: "Pechar" - }, - del : { - caption: "Eliminar", - msg: "Desexa eliminar os rexistros seleccionados?", - bSubmit: "Eliminar", - bCancel: "Cancelar" - }, - nav : { - edittext: " ", - edittitle: "Modificar a fila seleccionada", - addtext:" ", - addtitle: "Engadir unha nova fila", - deltext: " ", - deltitle: "Eliminar a fila seleccionada", - searchtext: " ", - searchtitle: "Buscar información", - refreshtext: "", - refreshtitle: "Recargar datos", - alertcap: "Aviso", - alerttext: "Seleccione unha fila", - viewtext: "", - viewtitle: "Ver fila seleccionada" - }, - col : { - caption: "Mostrar/ocultar columnas", - bSubmit: "Enviar", - bCancel: "Cancelar" - }, - errors : { - errcap : "Erro", - nourl : "Non especificou unha URL", - norecords: "Non hai datos para procesar", - model : "As columnas de nomes son diferentes das columnas de modelo" - }, - formatter : { - integer : {thousandsSeparator: ".", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa", - "Domingo", "Luns", "Martes", "Mércoles", "Xoves", "Vernes", "Sábado" - ], - monthNames: [ - "Xan", "Feb", "Mar", "Abr", "Mai", "Xuñ", "Xul", "Ago", "Set", "Out", "Nov", "Dec", - "Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd-m-Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-he.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-he.js deleted file mode 100755 index 67f80fdc..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-he.js +++ /dev/null @@ -1,128 +0,0 @@ -;(function($){ -/** - * jqGrid Hebrew Translation - * Shuki Shukrun shukrun.shuki@gmail.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "מציג {0} - {1} מתוך {2}", - emptyrecords: "אין רשומות להציג", - loadtext: "טוען...", - pgtext : "דף {0} מתוך {1}" - }, - search : { - caption: "מחפש...", - Find: "חפש", - Reset: "התחל", - odata : ['שווה', 'לא שווה', 'קטן', 'קטן או שווה','גדול','גדול או שווה', 'מתחיל ב','לא מתחיל ב','נמצא ב','לא נמצא ב','מסתיים ב','לא מסתיים ב','מכיל','לא מכיל'], - groupOps: [ { op: "AND", text: "הכל" }, { op: "OR", text: "אחד מ" } ], - matchText: " תואם", - rulesText: " חוקים" - }, - edit : { - addCaption: "הוסף רשומה", - editCaption: "ערוך רשומה", - bSubmit: "שלח", - bCancel: "בטל", - bClose: "סגור", - saveData: "נתונים השתנו! לשמור?", - bYes : "כן", - bNo : "לא", - bExit : "בטל", - msg: { - required:"שדה חובה", - number:"אנא, הכנס מספר תקין", - minValue:"ערך צריך להיות גדול או שווה ל ", - maxValue:"ערך צריך להיות קטן או שווה ל ", - email: "היא לא כתובת איימל תקינה", - integer: "אנא, הכנס מספר שלם", - date: "אנא, הכנס תאריך תקין", - url: "הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "הצג רשומה", - bClose: "סגור" - }, - del : { - caption: "מחק", - msg: "האם למחוק את הרשומה/ות המסומנות?", - bSubmit: "מחק", - bCancel: "בטל" - }, - nav : { - edittext: "", - edittitle: "ערוך שורה מסומנת", - addtext:"", - addtitle: "הוסף שורה חדשה", - deltext: "", - deltitle: "מחק שורה מסומנת", - searchtext: "", - searchtitle: "חפש רשומות", - refreshtext: "", - refreshtitle: "טען גריד מחדש", - alertcap: "אזהרה", - alerttext: "אנא, בחר שורה", - viewtext: "", - viewtitle: "הצג שורה מסומנת" - }, - col : { - caption: "הצג/הסתר עמודות", - bSubmit: "שלח", - bCancel: "בטל" - }, - errors : { - errcap : "שגיאה", - nourl : "לא הוגדרה כתובת url", - norecords: "אין רשומות לעבד", - model : "אורך של colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "א", "ב", "ג", "ד", "ה", "ו", "ש", - "ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת" - ], - monthNames: [ - "ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ", - "ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר" - ], - AmPm : ["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"], - S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hr.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hr.js deleted file mode 100755 index 487d6903..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hr.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Translation - * Tony Tomov tony@trirand.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Pregled {0} - {1} od {2}", - emptyrecords: "Nema zapisa", - loadtext: "Učitavam...", - pgtext : "Stranica {0} od {1}" - }, - search : { - caption: "pretraživanje...", - Find: "Traži", - Reset: "Poništi", - odata : ['jednak', 'nije identičan', 'manje', 'manje ili identično','veće','veše ili identično', 'počinje sa','ne počinje sa ','je u','nije u','završava sa','ne završava sa','sadrži','ne sadrži'], - groupOps: [ { op: "U", text: "sve" }, { op: "ILI", text: "bilo koji" } ], - matchText: " podudata se", - rulesText: " pravila" - }, - edit : { - addCaption: "Dodaj zapis", - editCaption: "Promijeni zapis", - bSubmit: "Preuzmi", - bCancel: "Odustani", - bClose: "Zatvri", - saveData: "Podaci su promijenjeni! Preuzmi promijene?", - bYes : "Da", - bNo : "Ne", - bExit : "Odustani", - msg: { - required:"Polje je obavezno", - number:"Molim, unesite ispravan broj", - minValue:"vrijednost mora biti veća ili identična ", - maxValue:"vrijednost mora biti manja ili identična", - email: "neispravan e-mail", - integer: "Molim, unjeti ispravan cijeli broj (integer)", - date: "Molim, unjeti ispravan datum ", - url: "neispravan URL. Prefiks je obavezan ('http://' or 'https://')", - nodefined : " nije definiran!", - novalue : " zahtjevan podatak je obavezan!", - customarray : "Opcionalna funkcija trebala bi bili polje (array)!", - customfcheck : "Custom function should be present in case of custom checking!" - - } - }, - view : { - caption: "Otvori zapis", - bClose: "Zatvori" - }, - del : { - caption: "Obriši", - msg: "Obriši označen zapis ili više njih?", - bSubmit: "Obriši", - bCancel: "Odustani" - }, - nav : { - edittext: "", - edittitle: "Promijeni obilježeni red", - addtext:"", - addtitle: "Dodaj novi red", - deltext: "", - deltitle: "Obriši obilježeni red", - searchtext: "", - searchtitle: "Potraži zapise", - refreshtext: "", - refreshtitle: "Ponovo preuzmi podatke", - alertcap: "Upozorenje", - alerttext: "Molim, odaberi red", - viewtext: "", - viewtitle: "Pregled obilježenog reda" - }, - col : { - caption: "Obilježi kolonu", - bSubmit: "Uredu", - bCancel: "Odustani" - }, - errors : { - errcap : "Greška", - nourl : "Nedostaje URL", - norecords: "Bez zapisa za obradu", - model : "Duljina colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub", - "Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota" - ], - monthNames: [ - "Sij", "Vel", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro", - "Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return ''}, - srcformat: 'Y-m-d', - newformat: 'd.m.Y.', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "j.n.Y.", - LongDate: "l, j. F Y", - FullDateTime: "l, d. F Y G:i:s", - MonthDay: "d. F", - ShortTime: "G:i", - LongTime: "G:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hr1250.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hr1250.js deleted file mode 100755 index 1311c436..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hr1250.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Translation - * Tony Tomov tony@trirand.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Pregled {0} - {1} od {2}", - emptyrecords: "Nema zapisa", - loadtext: "U�itavam...", - pgtext : "Stranica {0} od {1}" - }, - search : { - caption: "pretra�ivanje...", - Find: "Tra�i", - Reset: "Poni�ti", - odata : ['jednak', 'nije identi�an', 'manje', 'manje ili identi�no','ve�e','ve�e ili identi�no', 'po�inje sa','ne po�inje sa ','je u','nije u','zavr�ava sa','ne zavr�ava sa','sadr�i','ne sadr�i'], - groupOps: [ { op: "U", text: "sve" }, { op: "ILI", text: "bilo koji" } ], - matchText: " podudata se", - rulesText: " pravila" - }, - edit : { - addCaption: "Dodaj zapis", - editCaption: "Promijeni zapis", - bSubmit: "Preuzmi", - bCancel: "Odustani", - bClose: "Zatvri", - saveData: "Podaci su promijenjeni! Preuzmi promijene?", - bYes : "Da", - bNo : "Ne", - bExit : "Odustani", - msg: { - required:"Polje je obavezno", - number:"Molim, unesite ispravan broj", - minValue:"vrijednost mora biti ve�a ili identi�na ", - maxValue:"vrijednost mora biti manja ili identi�na", - email: "neispravan e-mail", - integer: "Molim, unjeti ispravan cijeli broj (integer)", - date: "Molim, unjeti ispravan datum ", - url: "neispravan URL. Prefiks je obavezan ('http://' or 'https://')", - nodefined : " nije definiran!", - novalue : " zahtjevan podatak je obavezan!", - customarray : "Opcionalna funkcija trebala bi bili polje (array)!", - customfcheck : "Custom function should be present in case of custom checking!" - - } - }, - view : { - caption: "Otvori zapis", - bClose: "Zatvori" - }, - del : { - caption: "Obri�i", - msg: "Obri�i ozna�en zapis ili vi�e njih?", - bSubmit: "Obri�i", - bCancel: "Odustani" - }, - nav : { - edittext: "", - edittitle: "Promijeni obilje�eni red", - addtext:"", - addtitle: "Dodaj novi red", - deltext: "", - deltitle: "Obri�i obilje�eni red", - searchtext: "", - searchtitle: "Potra�i zapise", - refreshtext: "", - refreshtitle: "Ponovo preuzmi podatke", - alertcap: "Upozorenje", - alerttext: "Molim, odaberi red", - viewtext: "", - viewtitle: "Pregled obilje�enog reda" - }, - col : { - caption: "Obilje�i kolonu", - bSubmit: "Uredu", - bCancel: "Odustani" - }, - errors : { - errcap : "Gre�ka", - nourl : "Nedostaje URL", - norecords: "Bez zapisa za obradu", - model : "Duljina colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Ned", "Pon", "Uto", "Sri", "�et", "Pet", "Sub", - "Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "�etvrtak", "Petak", "Subota" - ], - monthNames: [ - "Sij", "Vel", "O�u", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro", - "Sije�anj", "Velja�a", "O�ujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return ''}, - srcformat: 'Y-m-d', - newformat: 'd.m.Y.', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "j.n.Y.", - LongDate: "l, j. F Y", - FullDateTime: "l, d. F Y G:i:s", - MonthDay: "d. F", - ShortTime: "G:i", - LongTime: "G:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hu.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hu.js deleted file mode 100755 index a44cd842..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-hu.js +++ /dev/null @@ -1,130 +0,0 @@ -;(function($){ -/** - * jqGrid Hungarian Translation - * Őrszigety Ádám udx6bs@freemail.hu - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ - -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Oldal {0} - {1} / {2}", - emptyrecords: "Nincs találat", - loadtext: "Betöltés...", - pgtext : "Oldal {0} / {1}" - }, - search : { - caption: "Keresés...", - Find: "Keres", - Reset: "Alapértelmezett", - odata : ['egyenlő', 'nem egyenlő', 'kevesebb', 'kevesebb vagy egyenlő','nagyobb','nagyobb vagy egyenlő', 'ezzel kezdődik','nem ezzel kezdődik','tartalmaz','nem tartalmaz','végződik','nem végződik','tartalmaz','nem tartalmaz'], - groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], - matchText: " match", - rulesText: " rules" - }, - edit : { - addCaption: "Új tétel", - editCaption: "Tétel szerkesztése", - bSubmit: "Mentés", - bCancel: "Mégse", - bClose: "Bezárás", - saveData: "A tétel megváltozott! Tétel mentése?", - bYes : "Igen", - bNo : "Nem", - bExit : "Mégse", - msg: { - required:"Kötelező mező", - number:"Kérjük, adjon meg egy helyes számot", - minValue:"Nagyobb vagy egyenlőnek kell lenni mint ", - maxValue:"Kisebb vagy egyenlőnek kell lennie mint", - email: "hibás emailcím", - integer: "Kérjük adjon meg egy helyes egész számot", - date: "Kérjük adjon meg egy helyes dátumot", - url: "nem helyes cím. Előtag kötelező ('http://' vagy 'https://')", - nodefined : " nem definiált!", - novalue : " visszatérési érték kötelező!!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - - } - }, - view : { - caption: "Tétel megtekintése", - bClose: "Bezárás" - }, - del : { - caption: "Törlés", - msg: "Kiválaztott tétel(ek) törlése?", - bSubmit: "Törlés", - bCancel: "Mégse" - }, - nav : { - edittext: "", - edittitle: "Tétel szerkesztése", - addtext:"", - addtitle: "Új tétel hozzáadása", - deltext: "", - deltitle: "Tétel törlése", - searchtext: "", - searchtitle: "Keresés", - refreshtext: "", - refreshtitle: "Frissítés", - alertcap: "Figyelmeztetés", - alerttext: "Kérem válasszon tételt.", - viewtext: "", - viewtitle: "Tétel megtekintése" - }, - col : { - caption: "Oszlopok kiválasztása", - bSubmit: "Ok", - bCancel: "Mégse" - }, - errors : { - errcap : "Hiba", - nourl : "Nincs URL beállítva", - norecords: "Nincs feldolgozásra váró tétel", - model : "colNames és colModel hossza nem egyenlő!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo", - "Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat" - ], - monthNames: [ - "Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Szep", "Okt", "Nov", "Dec", - "Január", "Február", "Március", "Áprili", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December" - ], - AmPm : ["de","du","DE","DU"], - S: function (j) {return '.-ik';}, - srcformat: 'Y-m-d', - newformat: 'Y/m/d', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "Y/j/n", - LongDate: "Y. F hó d., l", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "a g:i", - LongTime: "a g:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "Y, F" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-is.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-is.js deleted file mode 100755 index d7d8985d..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-is.js +++ /dev/null @@ -1,127 +0,0 @@ -;(function($){ -/** - * jqGrid Icelandic Translation - * jtm@hi.is Univercity of Iceland - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Skoða {0} - {1} af {2}", - emptyrecords: "Engar færslur", - loadtext: "Hleður...", - pgtext : "Síða {0} af {1}" - }, - search : { - caption: "Leita...", - Find: "Leita", - Reset: "Endursetja", - odata : ['sama og', 'ekki sama og', 'minna en', 'minna eða jafnt og','stærra en','stærra eða jafnt og', 'byrjar á','byrjar ekki á','er í','er ekki í','endar á','endar ekki á','inniheldur','inniheldur ekki'], - groupOps: [ { op: "AND", text: "allt" }, { op: "OR", text: "eða" } ], - matchText: " passar", - rulesText: " reglur" - }, - edit : { - addCaption: "Bæta við færslu", - editCaption: "Breyta færslu", - bSubmit: "Vista", - bCancel: "Hætta við", - bClose: "Loka", - saveData: "Gögn hafa breyst! Vista breytingar?", - bYes : "Já", - bNo : "Nei", - bExit : "Hætta við", - msg: { - required:"Reitur er nauðsynlegur", - number:"Vinsamlega settu inn tölu", - minValue:"gildi verður að vera meira en eða jafnt og ", - maxValue:"gildi verður að vera minna en eða jafnt og ", - email: "er ekki löglegt email", - integer: "Vinsamlega settu inn tölu", - date: "Vinsamlega setti inn dagsetningu", - url: "er ekki löglegt URL. Vantar ('http://' eða 'https://')", - nodefined : " er ekki skilgreint!", - novalue : " skilagildi nauðsynlegt!", - customarray : "Fall skal skila fylki!", - customfcheck : "Fall skal vera skilgreint!" - } - }, - view : { - caption: "Skoða færslu", - bClose: "Loka" - }, - del : { - caption: "Eyða", - msg: "Eyða völdum færslum ?", - bSubmit: "Eyða", - bCancel: "Hætta við" - }, - nav : { - edittext: " ", - edittitle: "Breyta færslu", - addtext:" ", - addtitle: "Ný færsla", - deltext: " ", - deltitle: "Eyða færslu", - searchtext: " ", - searchtitle: "Leita", - refreshtext: "", - refreshtitle: "Endurhlaða", - alertcap: "Viðvörun", - alerttext: "Vinsamlega veldu færslu", - viewtext: "", - viewtitle: "Skoða valda færslu" - }, - col : { - caption: "Sýna / fela dálka", - bSubmit: "Vista", - bCancel: "Hætta við" - }, - errors : { - errcap : "Villa", - nourl : "Vantar slóð", - norecords: "Engar færslur valdar", - model : "Lengd colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau", - "Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Oct", "Nóv", "Des", - "Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júný", "Júlý", "Ágúst", "September", "Október", "Nóvember", "Desember" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-it.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-it.js deleted file mode 100755 index 9d78f15a..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-it.js +++ /dev/null @@ -1 +0,0 @@ -(function(a){a.jgrid = a.jgrid || {};a.extend(a.jgrid,{ defaults:{recordtext:"Visualizzati {0} - {1} di {2}",emptyrecords:"Nessun record da visualizzare",loadtext:"Caricamento...",pgtext:"Pagina {0} di {1}"},search:{caption:"Ricerca...",Find:"Cerca",Reset:"Pulisci",odata:["uguale","diverso","minore","minore o uguale","maggiore","maggiore o uguale","inizia con","non inizia con","in","non in","termina con","non termina con","contiene","non contiene"],groupOps:[{op:"AND",text:"tutto"},{op:"OR",text:"almeno uno"}],matchText:" corrisponde",rulesText:" regole"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Chiudi",bClose:"Chiudi",saveData:"Alcuni dati modificati! Salvare i cambiamenti?",bYes:"Si",bNo:"No",bExit:"Esci",msg:{required:"Campo richiesto",number:"Per favore, inserisci un valore valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a",email:"e-mail non corretta",integer:"Per favore, inserisci un numero intero valido",date:"Per favore, inserisci una data valida",url:"URL non valido. Prefisso richiesto ('http://' or 'https://')",nodefined:" non � definito!",novalue:" valore di ritorno richiesto!",customarray:"La function custon deve tornare un array!",customfcheck:"La function custom deve esistere per il custom checking!"}},view:{caption:"Visualizzazione Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare record selezionato/i?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:" ",edittitle:"Modifica record selezionato",addtext:" ",addtitle:"Aggiungi nuovo record",deltext:" ",deltitle:"Cancella record selezionato",searchtext:" ",searchtitle:"Ricerca record",refreshtext:"",refreshtitle:"Aggiorna griglia",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata"},col:{caption:"Mostra/Nascondi Colonne",bSubmit:"Invia",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Url non settata",norecords:"Nessun record da elaborare",model:"Lunghezza di colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Luned�","Marted�","Mercoled�","Gioved�","Venerd�","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Gui","Lug","Ago","Set","Ott","Nov","Dic","Genneio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Movembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}});})(jQuery); \ No newline at end of file diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ja.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ja.js deleted file mode 100755 index 5a10222c..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ja.js +++ /dev/null @@ -1,156 +0,0 @@ -;(function($){ -/** - * jqGrid Japanese Translation - * OKADA Yoshitada okada.dev@sth.jp - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ", - emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093", - loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...", - pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE " - }, - search : { - caption: "\u691c\u7d22...", - Find: "\u691c\u7d22", - Reset: "\u30ea\u30bb\u30c3\u30c8", - odata: ["\u6B21\u306B\u7B49\u3057\u3044", "\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044", - "\u6B21\u3088\u308A\u5C0F\u3055\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044", - "\u6B21\u3088\u308A\u5927\u304D\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044", - "\u6B21\u3067\u59CB\u307E\u308B", "\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044", - "\u6B21\u306B\u542B\u307E\u308C\u308B", "\u6B21\u306B\u542B\u307E\u308C\u306A\u3044", - "\u6B21\u3067\u7D42\u308F\u308B", "\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044", - "\u6B21\u3092\u542B\u3080", "\u6B21\u3092\u542B\u307E\u306A\u3044"], - groupOps: [{ - op: "AND", - text: "\u3059\u3079\u3066\u306E" - }, - { - op: "OR", - text: "\u3044\u305A\u308C\u304B\u306E" - }], - matchText: " \u6B21\u306E", - rulesText: " \u6761\u4EF6\u3092\u6E80\u305F\u3059" - }, - edit : { - addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0", - editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6", - bSubmit: "\u9001\u4fe1", - bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb", - bClose: "\u9589\u3058\u308b", - saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F", - bYes: "\u306F\u3044", - bNo: "\u3044\u3044\u3048", - bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB", - msg: { - required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002", - number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", - minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", - maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", - email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002", - integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", - date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002", - url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\20\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')", - nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093", - novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059", - customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059", - customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059" - } - }, - view : { - caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A", - bClose: "\u9589\u3058\u308B" - }, - del : { - caption: "\u524a\u9664", - msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f", - bSubmit: "\u524a\u9664", - bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb" - }, - nav : { - edittext: " ", - edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6", - addtext:" ", - addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0", - deltext: " ", - deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664", - searchtext: " ", - searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22", - refreshtext: "", - refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9", - alertcap: "\u8b66\u544a", - alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002", - viewtext: "", - viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A" - }, - col : { - caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059", - bSubmit: "\u9001\u4fe1", - bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb" - }, - errors : { - errcap : "\u30a8\u30e9\u30fc", - nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002", - norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002", - model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002" - }, - formatter : { - integer: { - thousandsSeparator: ",", - defaultValue: '0' - }, - number: { - decimalSeparator: ".", - thousandsSeparator: ",", - decimalPlaces: 2, - defaultValue: '0.00' - }, - currency: { - decimalSeparator: ".", - thousandsSeparator: ",", - decimalPlaces: 0, - prefix: "", - suffix: "", - defaultValue: '0' - }, - date : { - dayNames: [ - "\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f", - "\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f" - ], - monthNames: [ - "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", - "1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) { return "\u756a\u76ee"; }, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-lt.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-lt.js deleted file mode 100755 index 196cc67d..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-lt.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Lithuanian Translation - * aur1mas aur1mas@devnet.lt - * http://aur1mas.devnet.lt - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Peržiūrima {0} - {1} iš {2}", - emptyrecords: "Įrašų nėra", - loadtext: "Kraunama...", - pgtext : "Puslapis {0} iš {1}" - }, - search : { - caption: "Paieška...", - Find: "Ieškoti", - Reset: "Atstatyti", - odata : ['lygu', 'nelygu', 'mažiau', 'mažiau arba lygu','daugiau','daugiau arba lygu', 'prasideda','neprasideda','reikšmė yra','reikšmės nėra','baigiasi','nesibaigia','yra sudarytas','nėra sudarytas'], - groupOps: [ { op: "AND", text: "visi" }, { op: "OR", text: "bet kuris" } ], - matchText: " match", - rulesText: " rules" - }, - edit : { - addCaption: "Sukurti įrašą", - editCaption: "Redaguoti įrašą", - bSubmit: "Išsaugoti", - bCancel: "Atšaukti", - bClose: "Uždaryti", - saveData: "Duomenys buvo pakeisti! Išsaugoti pakeitimus?", - bYes : "Taip", - bNo : "Ne", - bExit : "Atšaukti", - msg: { - required:"Privalomas laukas", - number:"Įveskite tinkamą numerį", - minValue:"reikšmė turi būti didesnė arba lygi ", - maxValue:"reikšmė turi būti mažesnė arba lygi", - email: "neteisingas el. pašto adresas", - integer: "Įveskite teisingą sveikąjį skaičių", - date: "Įveskite teisingą datą", - url: "blogas adresas. Nepamirškite pridėti ('http://' arba 'https://')", - nodefined : " nėra apibrėžta!", - novalue : " turi būti gražinama kokia nors reikšmė!", - customarray : "Custom f-ja turi grąžinti masyvą!", - customfcheck : "Custom f-ja tūrėtų būti sukurta, prieš bandant ją naudoti!" - - } - }, - view : { - caption: "Peržiūrėti įrašus", - bClose: "Uždaryti" - }, - del : { - caption: "Ištrinti", - msg: "Ištrinti pažymėtus įrašus(-ą)?", - bSubmit: "Ištrinti", - bCancel: "Atšaukti" - }, - nav : { - edittext: "", - edittitle: "Redaguoti pažymėtą eilutę", - addtext:"", - addtitle: "Pridėti naują eilutę", - deltext: "", - deltitle: "Ištrinti pažymėtą eilutę", - searchtext: "", - searchtitle: "Rasti įrašus", - refreshtext: "", - refreshtitle: "Perkrauti lentelę", - alertcap: "Įspėjimas", - alerttext: "Pasirinkite eilutę", - viewtext: "", - viewtitle: "Peržiūrėti pasirinktą eilutę" - }, - col : { - caption: "Pasirinkti stulpelius", - bSubmit: "Gerai", - bCancel: "Atšaukti" - }, - errors : { - errcap : "Klaida", - nourl : "Url reikšmė turi būti perduota", - norecords: "Nėra įrašų, kuriuos būtų galima apdoroti", - model : "colNames skaičius <> colModel skaičiui!" - }, - formatter : { - integer : {thousandsSeparator: "", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš", - "Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis" - ], - monthNames: [ - "Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugj", "Rugs", "Spa", "Lap", "Gru", - "Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-mne.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-mne.js deleted file mode 100755 index f0998289..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-mne.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Montenegrian Translation - * Bild Studio info@bild-studio.net - * http://www.bild-studio.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Pregled {0} - {1} od {2}", - emptyrecords: "Ne postoji nijedan zapis", - loadtext: "Učitivanje...", - pgtext : "Strana {0} od {1}" - }, - search : { - caption: "Traženje...", - Find: "Traži", - Reset: "Resetuj", - odata : ['jednako', 'nije jednako', 'manje', 'manje ili jednako','veće','veće ili jednako', 'počinje sa','ne počinje sa','je u','nije u','završava sa','ne završava sa','sadrži','ne sadrži'], - groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ], - matchText: " primjeni", - rulesText: " pravila" - }, - edit : { - addCaption: "Dodaj zapis", - editCaption: "Izmjeni zapis", - bSubmit: "Pošalji", - bCancel: "Odustani", - bClose: "Zatvori", - saveData: "Podatak je izmjenjen! Sačuvaj izmjene?", - bYes : "Da", - bNo : "Ne", - bExit : "Odustani", - msg: { - required:"Polje je obavezno", - number:"Unesite ispravan broj", - minValue:"vrijednost mora biti veća od ili jednaka sa ", - maxValue:"vrijednost mora biti manja ili jednaka sa", - email: "nije ispravna email adresa, nije valjda da ne umiješ ukucati mail!?", - integer: "Ne zajebaji se unesi cjelobrojnu vrijednost ", - date: "Unesite ispravan datum", - url: "nije ispravan URL. Potreban je prefiks ('http://' or 'https://')", - nodefined : " nije definisan!", - novalue : " zahtjevana je povratna vrijednost!", - customarray : "Prilagođena funkcija treba da vrati niz!", - customfcheck : "Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provjere!" - - } - }, - view : { - caption: "Pogledaj zapis", - bClose: "Zatvori" - }, - del : { - caption: "Izbrisi", - msg: "Izbrisi izabran(e) zapise(e)?", - bSubmit: "Izbriši", - bCancel: "Odbaci" - }, - nav : { - edittext: "", - edittitle: "Izmjeni izabrani red", - addtext:"", - addtitle: "Dodaj novi red", - deltext: "", - deltitle: "Izbriši izabran red", - searchtext: "", - searchtitle: "Nađi zapise", - refreshtext: "", - refreshtitle: "Ponovo učitaj podatke", - alertcap: "Upozorenje", - alerttext: "Izaberite red", - viewtext: "", - viewtitle: "Pogledaj izabrani red" - }, - col : { - caption: "Izaberi kolone", - bSubmit: "OK", - bCancel: "Odbaci" - }, - errors : { - errcap : "Greška", - nourl : "Nije postavljen URL", - norecords: "Nema zapisa za obradu", - model : "Dužina modela colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", - "Nedelja", "Ponedeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec", - "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-nl.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-nl.js deleted file mode 100755 index 1e631763..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-nl.js +++ /dev/null @@ -1,149 +0,0 @@ -(function(a) { -a.jgrid = a.jgrid || {}; -a.extend(a.jgrid,{ - defaults: - { - recordtext: "regels {0} - {1} van {2}", - emptyrecords: "Geen data gevonden.", - loadtext: "laden...", - pgtext: "pagina {0} van {1}" - }, - search: - { - caption: "Zoeken...", - Find: "Zoek", - Reset: "Herstellen", - odata: ["gelijk aan", "niet gelijk aan", "kleiner dan", "kleiner dan of gelijk aan", "groter dan", "groter dan of gelijk aan", "begint met", "begint niet met", "is in", "is niet in", "eindigd met", "eindigd niet met", "bevat", "bevat niet"], - groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}], - matchText: " match", - rulesText: " regels" - }, - edit: - { - addCaption: "Nieuw", - editCaption: "Bewerken", - bSubmit: "Opslaan", - bCancel: "Annuleren", - bClose: "Sluiten", - saveData: "Er is data aangepast! Wijzigingen opslaan?", - bYes: "Ja", - bNo: "Nee", - bExit: "Sluiten", - msg: - { - required: "Veld is verplicht", - number: "Voer a.u.b. geldig nummer in", - minValue: "Waarde moet groter of gelijk zijn aan ", - maxValue: "Waarde moet kleiner of gelijks zijn aan", - email: "is geen geldig e-mailadres", - integer: "Voer a.u.b. een geldig getal in", - date: "Voer a.u.b. een geldige waarde in", - url: "is geen geldige URL. Prefix is verplicht ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view: - { - caption: "Tonen", - bClose: "Sluiten" - }, - del: - { - caption: "Verwijderen", - msg: "Verwijder geselecteerde regel(s)?", - bSubmit: "Verwijderen", - bCancel: "Annuleren" - }, - nav: - { - edittext: "", - edittitle: "Bewerken", - addtext: "", - addtitle: "Nieuw", - deltext: "", - deltitle: "Verwijderen", - searchtext: "", - searchtitle: "Zoeken", - refreshtext: "", - refreshtitle: "Vernieuwen", - alertcap: "Waarschuwing", - alerttext: "Selecteer a.u.b. een regel", - viewtext: "", - viewtitle: "Openen" - }, - col: - { - caption: "Tonen/verbergen kolommen", - bSubmit: "OK", - bCancel: "Annuleren" - }, - errors: - { - errcap: "Fout", - nourl: "Er is geen URL gedefinieerd", - norecords: "Geen data om te verwerken", - model: "Lengte van 'colNames' is niet gelijk aan 'colModel'!" - }, - formatter: - { - integer: - { - thousandsSeparator: ".", - defaultValue: "0" - }, - number: - { - decimalSeparator: ",", - thousandsSeparator: ".", - decimalPlaces: 2, - defaultValue: "0.00" - }, - currency: - { - decimalSeparator: ",", - thousandsSeparator: ".", - decimalPlaces: 2, - prefix: "EUR ", - suffix: "", - defaultValue: "0.00" - }, - date: - { - dayNames: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"], - monthNames: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"], - AmPm: ["am", "pm", "AM", "PM"], - S: function(b) { - return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th" - }, - srcformat: "Y-m-d", - newformat: "d/m/Y", - masks: - { - ISO8601Long: "Y-m-d H:i:s", - ISO8601Short: "Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l d F Y G:i:s", - MonthDay: "d F", - ShortTime: "G:i", - LongTime: "G:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit: false - }, - baseLinkUrl: "", - showAction: "", - target: "", - checkbox: - { - disabled: true - }, - idName: "id" - } - }); -})(jQuery); \ No newline at end of file diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-no.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-no.js deleted file mode 100755 index c59b8b00..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-no.js +++ /dev/null @@ -1 +0,0 @@ -(function(a){a.jgrid= a.jgrid || {};a.jgrid.defaults={recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}"};a.jgrid.search={caption:"S�k...",Find:"Finn",Reset:"Nullstill",odata:["lik","forskjellig fra","mindre enn","mindre eller lik","st�rre enn"," st�rre eller lik","starter med","slutter med","inneholder"]};a.jgrid.edit={addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi m� v�re st�rre enn eller lik",maxValue:"verdi m� v�re mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks p�krevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er p�krevd!",customarray:"Tilpasset funksjon m� returnere en tabell!",customfcheck:"Tilpasset funksjon m� eksistere!"}};a.jgrid.view={caption:"�pne post",bClose:"Lukk"};a.jgrid.del={caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."};a.jgrid.nav={edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"S�k",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"�pne valgt rad"};a.jgrid.col={caption:"Vis/skjul kolonner",bSubmit:"Utf�r",bCancel:"Avbryt"};a.jgrid.errors={errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster � behandle",model:"colNames og colModel har forskjellig lengde!"};a.jgrid.formatter={integer:{thousandsSeparator:" ",defaulValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["s�.","ma.","ti.","on.","to.","fr.","l�.","S�ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L�rdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(b){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:true}}})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pl.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pl.js deleted file mode 100755 index 5b1093be..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pl.js +++ /dev/null @@ -1,133 +0,0 @@ -;(function($){ -/** - * jqGrid Polish Translation - * Łukasz Schab lukasz@freetree.pl - * http://FreeTree.pl - * - * Updated names, abbreviations, currency and date/time formats for Polish norms (also corresponding with CLDR v21.0.1 --> http://cldr.unicode.org/index) - * Tomasz Pęczek tpeczek@gmail.com - * http://tpeczek.blogspot.com; http://tpeczek.codeplex.com - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Pokaż {0} - {1} z {2}", - emptyrecords: "Brak rekordów do pokazania", - loadtext: "Ładowanie...", - pgtext : "Strona {0} z {1}" - }, - search : { - caption: "Wyszukiwanie...", - Find: "Szukaj", - Reset: "Czyść", - odata : ['dokładnie', 'różne od', 'mniejsze od', 'mniejsze lub równe', 'większe od', 'większe lub równe', 'zaczyna się od', 'nie zaczyna się od', 'jest w', 'nie jest w', 'kończy się na', 'nie kończy się na', 'zawiera', 'nie zawiera'], - groupOps: [ { op: "AND", text: "oraz" }, { op: "OR", text: "lub" } ], - matchText: " pasuje", - rulesText: " reguły" - }, - edit : { - addCaption: "Dodaj rekord", - editCaption: "Edytuj rekord", - bSubmit: "Zapisz", - bCancel: "Anuluj", - bClose: "Zamknij", - saveData: "Dane zostały zmienione! Zapisać zmiany?", - bYes: "Tak", - bNo: "Nie", - bExit: "Anuluj", - msg: { - required: "Pole jest wymagane", - number: "Proszę wpisać poprawną liczbę", - minValue: "wartość musi być większa lub równa od", - maxValue: "wartość musi być mniejsza lub równa od", - email: "nie jest poprawnym adresem e-mail", - integer: "Proszę wpisać poprawną liczbę", - date: "Proszę podaj poprawną datę", - url: "jest niewłaściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')", - nodefined: " niezdefiniowane!", - novalue: " wymagana jest wartość zwracana!", - customarray: "Funkcja niestandardowa powinna zwracać tablicę!", - customfcheck: "Funkcja niestandardowa powinna być obecna w przypadku niestandardowego sprawdzania!" - } - }, - view : { - caption: "Pokaż rekord", - bClose: "Zamknij" - }, - del : { - caption: "Usuń", - msg: "Czy usunąć wybrany rekord(y)?", - bSubmit: "Usuń", - bCancel: "Anuluj" - }, - nav : { - edittext: "", - edittitle: "Edytuj wybrany wiersz", - addtext: "", - addtitle: "Dodaj nowy wiersz", - deltext: "", - deltitle: "Usuń wybrany wiersz", - searchtext: "", - searchtitle: "Wyszukaj rekord", - refreshtext: "", - refreshtitle: "Przeładuj", - alertcap: "Uwaga", - alerttext: "Proszę wybrać wiersz", - viewtext: "", - viewtitle: "Pokaż wybrany wiersz" - }, - col : { - caption: "Pokaż/Ukryj kolumny", - bSubmit: "Zatwierdź", - bCancel: "Anuluj" - }, - errors : { - errcap: "Błąd", - nourl: "Brak adresu url", - norecords: "Brak danych", - model : "Długość colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" zł", defaultValue: '0,00'}, - date : { - dayNames: [ - "niedz.", "pon.", "wt.", "śr.", "czw.", "pt.", "sob.", - "niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota" - ], - monthNames: [ - "sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis", "gru", - "styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień" - ], - AmPm : ["","","",""], - S: function (j) {return '';}, - srcformat: 'Y-m-d', - newformat: 'd.m.Y', - masks : { - ISO8601Long: "Y-m-d H:i:s", - ISO8601Short: "Y-m-d", - ShortDate: "d.m.y", - LongDate: "l, j F Y", - FullDateTime: "l, j F Y H:i:s", - MonthDay: "j F", - ShortTime: "H:i", - LongTime: "H:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); \ No newline at end of file diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pt-br.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pt-br.js deleted file mode 100755 index 9e94c091..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pt-br.js +++ /dev/null @@ -1,128 +0,0 @@ -;(function($){ -/** - * jqGrid Brazilian-Portuguese Translation - * Sergio Righi sergio.righi@gmail.com - * http://curve.com.br - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Ver {0} - {1} of {2}", - emptyrecords: "Nenhum registro para visualizar", - loadtext: "Carregando...", - pgtext : "Página {0} de {1}" - }, - search : { - caption: "Procurar...", - Find: "Procurar", - Reset: "Resetar", - odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], - groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], - matchText: " iguala", - rulesText: " regras" - }, - edit : { - addCaption: "Incluir", - editCaption: "Alterar", - bSubmit: "Enviar", - bCancel: "Cancelar", - bClose: "Fechar", - saveData: "Os dados foram alterados! Salvar alterações?", - bYes : "Sim", - bNo : "Não", - bExit : "Cancelar", - msg: { - required:"Campo obrigatório", - number:"Por favor, informe um número válido", - minValue:"valor deve ser igual ou maior que ", - maxValue:"valor deve ser menor ou igual a", - email: "este e-mail não é válido", - integer: "Por favor, informe um valor inteiro", - date: "Por favor, informe uma data válida", - url: "não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')", - nodefined : " não está definido!", - novalue : " um valor de retorno é obrigatório!", - customarray : "Função customizada deve retornar um array!", - customfcheck : "Função customizada deve estar presente em caso de validação customizada!" - } - }, - view : { - caption: "Ver Registro", - bClose: "Fechar" - }, - del : { - caption: "Apagar", - msg: "Apagar registros selecionado(s)?", - bSubmit: "Apagar", - bCancel: "Cancelar" - }, - nav : { - edittext: " ", - edittitle: "Alterar registro selecionado", - addtext:" ", - addtitle: "Incluir novo registro", - deltext: " ", - deltitle: "Apagar registro selecionado", - searchtext: " ", - searchtitle: "Procurar registros", - refreshtext: "", - refreshtitle: "Recarrgando Tabela", - alertcap: "Aviso", - alerttext: "Por favor, selecione um registro", - viewtext: "", - viewtitle: "Ver linha selecionada" - }, - col : { - caption: "Mostrar/Esconder Colunas", - bSubmit: "Enviar", - bCancel: "Cancelar" - }, - errors : { - errcap : "Erro", - nourl : "Nenhuma URL defenida", - norecords: "Sem registros para exibir", - model : "Comprimento de colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "R$ ", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb", - "Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado" - ], - monthNames: [ - "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez", - "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pt.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pt.js deleted file mode 100755 index 99670473..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-pt.js +++ /dev/null @@ -1,126 +0,0 @@ -;(function($){ -/** - * jqGrid Portuguese Translation -* Tradu��o da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "View {0} - {1} of {2}", - emptyrecords: "No records to view", - loadtext: "A carregar...", - pgtext : "Page {0} of {1}" - }, - search : { - caption: "Busca...", - Find: "Procurar", - Reset: "Limpar", - odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], - groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], - matchText: " match", - rulesText: " rules" - }, - edit : { - addCaption: "Adicionar Registo", - editCaption: "Modificar Registo", - bSubmit: "Submeter", - bCancel: "Cancelar", - bClose: "Fechar", - saveData: "Data has been changed! Save changes?", - bYes : "Yes", - bNo : "No", - bExit : "Cancel", - msg: { - required:"Campo obrigat�rio", - number:"Por favor, introduza um numero", - minValue:"O valor deve ser maior ou igual que", - maxValue:"O valor deve ser menor ou igual a", - email: "N�o � um endere�o de email v�lido", - integer: "Por favor, introduza um numero inteiro", - url: "is not a valid URL. Prefix required ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "View Record", - bClose: "Close" - }, - del : { - caption: "Eliminar", - msg: "Deseja eliminar o(s) registo(s) seleccionado(s)?", - bSubmit: "Eliminar", - bCancel: "Cancelar" - }, - nav : { - edittext: " ", - edittitle: "Modificar registo seleccionado", - addtext:" ", - addtitle: "Adicionar novo registo", - deltext: " ", - deltitle: "Eliminar registo seleccionado", - searchtext: " ", - searchtitle: "Procurar", - refreshtext: "", - refreshtitle: "Actualizar", - alertcap: "Aviso", - alerttext: "Por favor, seleccione um registo", - viewtext: "", - viewtitle: "View selected row" - }, - col : { - caption: "Mostrar/Ocultar Colunas", - bSubmit: "Enviar", - bCancel: "Cancelar" - }, - errors : { - errcap : "Erro", - nourl : "N�o especificou um url", - norecords: "N�o existem dados para processar", - model : "Tamanho do colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab", - "Domingo", "Segunda-Feira", "Ter�a-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "S�bado" - ], - monthNames: [ - "Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez", - "Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ro.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ro.js deleted file mode 100755 index 14d39ffb..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ro.js +++ /dev/null @@ -1,140 +0,0 @@ -;(function($){ -/** - * jqGrid Romanian Translation - * Alexandru Emil Lupu contact@alecslupu.ro - * http://www.alecslupu.ro/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Vizualizare {0} - {1} din {2}", - emptyrecords: "Nu există înregistrări de vizualizat", - loadtext: "Încărcare...", - pgtext : "Pagina {0} din {1}" - }, - search : { - caption: "Caută...", - Find: "Caută", - Reset: "Resetare", - odata : ['egal', 'diferit', 'mai mic', 'mai mic sau egal','mai mare','mai mare sau egal', 'începe cu','nu începe cu','se găsește în','nu se găsește în','se termină cu','nu se termină cu','conține',''], - groupOps: [ { op: "AND", text: "toate" }, { op: "OR", text: "oricare" } ], - matchText: " găsite", - rulesText: " reguli" - }, - edit : { - addCaption: "Adăugare înregistrare", - editCaption: "Modificare înregistrare", - bSubmit: "Salvează", - bCancel: "Anulare", - bClose: "Închide", - saveData: "Informațiile au fost modificate! Salvați modificările?", - bYes : "Da", - bNo : "Nu", - bExit : "Anulare", - msg: { - required:"Câmpul este obligatoriu", - number:"Vă rugăm introduceți un număr valid", - minValue:"valoarea trebuie sa fie mai mare sau egală cu", - maxValue:"valoarea trebuie sa fie mai mică sau egală cu", - email: "nu este o adresă de e-mail validă", - integer: "Vă rugăm introduceți un număr valid", - date: "Vă rugăm să introduceți o dată validă", - url: "Nu este un URL valid. Prefixul este necesar('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "Vizualizare înregistrare", - bClose: "Închidere" - }, - del : { - caption: "Ștegere", - msg: "Ștergeți înregistrarea (înregistrările) selectate?", - bSubmit: "Șterge", - bCancel: "Anulare" - }, - nav : { - edittext: "", - edittitle: "Modifică rândul selectat", - addtext:"", - addtitle: "Adaugă rând nou", - deltext: "", - deltitle: "Șterge rândul selectat", - searchtext: "", - searchtitle: "Căutare înregistrări", - refreshtext: "", - refreshtitle: "Reîncarcare Grid", - alertcap: "Avertisment", - alerttext: "Vă rugăm să selectați un rând", - viewtext: "", - viewtitle: "Vizualizează rândul selectat" - }, - col : { - caption: "Arată/Ascunde coloanele", - bSubmit: "Salvează", - bCancel: "Anulare" - }, - errors : { - errcap : "Eroare", - nourl : "Niciun url nu este setat", - norecords: "Nu sunt înregistrări de procesat", - model : "Lungimea colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm", - "Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă" - ], - monthNames: [ - "Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Noi", "Dec", - "Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie" - ], - AmPm : ["am","pm","AM","PM"], - /* - Here is a problem in romanian: - M / F - 1st = primul / prima - 2nd = Al doilea / A doua - 3rd = Al treilea / A treia - 4th = Al patrulea/ A patra - 5th = Al cincilea / A cincea - 6th = Al șaselea / A șasea - 7th = Al șaptelea / A șaptea - .... - */ - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ru.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ru.js deleted file mode 100755 index 5a51e1ee..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ru.js +++ /dev/null @@ -1,128 +0,0 @@ -;(function($){ -/** - * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru) - * Sergey Dyagovchenko - * http://d.sumy.ua - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Просмотр {0} - {1} из {2}", - emptyrecords: "Нет записей для просмотра", - loadtext: "Загрузка...", - pgtext : "Стр. {0} из {1}" - }, - search : { - caption: "Поиск...", - Find: "Найти", - Reset: "Сброс", - odata : ['равно', 'не равно', 'меньше', 'меньше или равно','больше','больше или равно', 'начинается с','не начинается с','находится в','не находится в','заканчивается на','не заканчивается на','содержит','не содержит'], - groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "любой" } ], - matchText: " совпадает", - rulesText: " правила" - }, - edit : { - addCaption: "Добавить запись", - editCaption: "Редактировать запись", - bSubmit: "Сохранить", - bCancel: "Отмена", - bClose: "Закрыть", - saveData: "Данные были измененны! Сохранить изменения?", - bYes : "Да", - bNo : "Нет", - bExit : "Отмена", - msg: { - required:"Поле является обязательным", - number:"Пожалуйста, введите правильное число", - minValue:"значение должно быть больше либо равно", - maxValue:"значение должно быть меньше либо равно", - email: "некорректное значение e-mail", - integer: "Пожалуйста, введите целое число", - date: "Пожалуйста, введите правильную дату", - url: "неверная ссылка. Необходимо ввести префикс ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "Просмотр записи", - bClose: "Закрыть" - }, - del : { - caption: "Удалить", - msg: "Удалить выбранную запись(и)?", - bSubmit: "Удалить", - bCancel: "Отмена" - }, - nav : { - edittext: " ", - edittitle: "Редактировать выбранную запись", - addtext:" ", - addtitle: "Добавить новую запись", - deltext: " ", - deltitle: "Удалить выбранную запись", - searchtext: " ", - searchtitle: "Найти записи", - refreshtext: "", - refreshtitle: "Обновить таблицу", - alertcap: "Внимание", - alerttext: "Пожалуйста, выберите запись", - viewtext: "", - viewtitle: "Просмотреть выбранную запись" - }, - col : { - caption: "Показать/скрыть столбцы", - bSubmit: "Сохранить", - bCancel: "Отмена" - }, - errors : { - errcap : "Ошибка", - nourl : "URL не установлен", - norecords: "Нет записей для обработки", - model : "Число полей не соответствует числу столбцов таблицы!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", - "Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота" - ], - monthNames: [ - "Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек", - "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd.m.Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n.j.Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y G:i:s", - MonthDay: "F d", - ShortTime: "G:i", - LongTime: "G:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sk.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sk.js deleted file mode 100755 index 7767a14e..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sk.js +++ /dev/null @@ -1,128 +0,0 @@ -;(function($){ -/** - * jqGrid Slovak Translation - * Milan Cibulka - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Zobrazených {0} - {1} z {2} záznamov", - emptyrecords: "Neboli nájdené žiadne záznamy", - loadtext: "Načítám...", - pgtext : "Strana {0} z {1}" - }, - search : { - caption: "Vyhľadávam...", - Find: "Hľadať", - Reset: "Reset", - odata : ['rovná sa', 'nerovná sa', 'menšie', 'menšie alebo rovnajúce sa','väčšie', 'väčšie alebo rovnajúce sa', 'začína s', 'nezačína s', 'je v', 'nie je v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'], - groupOps: [ { op: "AND", text: "všetkých" }, { op: "OR", text: "niektorého z" } ], - matchText: " hľadať podla", - rulesText: " pravidiel" - }, - edit : { - addCaption: "Pridať záznam", - editCaption: "Editácia záznamov", - bSubmit: "Uložiť", - bCancel: "Storno", - bClose: "Zavrieť", - saveData: "Údaje boli zmenené! Uložiť zmeny?", - bYes : "Ano", - bNo : "Nie", - bExit : "Zrušiť", - msg: { - required:"Pole je požadované", - number:"Prosím, vložte valídne číslo", - minValue:"hodnota musí býť väčšia ako alebo rovná ", - maxValue:"hodnota musí býť menšia ako alebo rovná ", - email: "nie je valídny e-mail", - integer: "Prosím, vložte celé číslo", - date: "Prosím, vložte valídny dátum", - url: "nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')", - nodefined : " nie je definovaný!", - novalue : " je vyžadovaná návratová hodnota!", - customarray : "Custom function mala vrátiť pole!", - customfcheck : "Custom function by mala byť prítomná v prípade custom checking!" - } - }, - view : { - caption: "Zobraziť záznam", - bClose: "Zavrieť" - }, - del : { - caption: "Zmazať", - msg: "Zmazať vybraný(é) záznam(y)?", - bSubmit: "Zmazať", - bCancel: "Storno" - }, - nav : { - edittext: " ", - edittitle: "Editovať vybraný riadok", - addtext:" ", - addtitle: "Pridať nový riadek", - deltext: " ", - deltitle: "Zmazať vybraný záznam ", - searchtext: " ", - searchtitle: "Nájsť záznamy", - refreshtext: "", - refreshtitle: "Obnoviť tabuľku", - alertcap: "Varovanie", - alerttext: "Prosím, vyberte riadok", - viewtext: "", - viewtitle: "Zobraziť vybraný riadok" - }, - col : { - caption: "Zobrazit/Skrýť stĺpce", - bSubmit: "Uložiť", - bCancel: "Storno" - }, - errors : { - errcap : "Chyba", - nourl : "Nie je nastavená url", - norecords: "Žiadne záznamy k spracovaniu", - model : "Dĺžka colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Ne", "Po", "Ut", "St", "Št", "Pi", "So", - "Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatek", "Sobota" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec", - "Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December" - ], - AmPm : ["do","od","DO","OD"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sr-latin.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sr-latin.js deleted file mode 100755 index 10ca4db0..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sr-latin.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Serbian latin Translation - * Bild Studio info@bild-studio.net - * http://www.bild-studio.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Pregled {0} - {1} od {2}", - emptyrecords: "Ne postoji nijedan zapis", - loadtext: "Učitivanje...", - pgtext : "Strana {0} od {1}" - }, - search : { - caption: "Traženje...", - Find: "Traži", - Reset: "Resetuj", - odata : ['jednako', 'nije jednako', 'manje', 'manje ili jednako','veće','veće ili jednako', 'počinje sa','ne počinje sa','je u','nije u','završava sa','ne završava sa','sadrži','ne sadrži'], - groupOps: [ { op: "AND", text: "sva" }, { op: "OR", text: "bilo koje" } ], - matchText: " primeni", - rulesText: " pravila" - }, - edit : { - addCaption: "Dodaj zapis", - editCaption: "Izmeni zapis", - bSubmit: "Pošalji", - bCancel: "Odustani", - bClose: "Zatvori", - saveData: "Podatak je izmenjen! Sačuvaj izmene?", - bYes : "Da", - bNo : "Ne", - bExit : "Odustani", - msg: { - required: "Polje je obavezno", - number: "Unesite ispravan broj", - minValue: "vrednost mora biti veća od ili jednaka sa ", - maxValue: "vrednost mora biti manja ili jednaka sa", - email: "nije ispravna email adresa, nije valjda da ne umeš ukucati mail!?", - integer: "Unesi celobrojnu vrednost ", - date: "Unesite ispravan datum", - url: "nije ispravan URL. Potreban je prefiks ('http://' or 'https://')", - nodefined : " nije definisan!", - novalue : " zahtevana je povratna vrednost!", - customarray : "Prilagođena funkcija treba da vrati niz!", - customfcheck : "Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provere!" - - } - }, - view : { - caption: "Pogledaj zapis", - bClose: "Zatvori" - }, - del : { - caption: "Izbrisi", - msg: "Izbrisi izabran(e) zapise(e)?", - bSubmit: "Izbriši", - bCancel: "Odbaci" - }, - nav : { - edittext: "", - edittitle: "Izmeni izabrani red", - addtext:"", - addtitle: "Dodaj novi red", - deltext: "", - deltitle: "Izbriši izabran red", - searchtext: "", - searchtitle: "Nađi zapise", - refreshtext: "", - refreshtitle: "Ponovo učitaj podatke", - alertcap: "Upozorenje", - alerttext: "Izaberite red", - viewtext: "", - viewtitle: "Pogledaj izabrani red" - }, - col : { - caption: "Izaberi kolone", - bSubmit: "OK", - bCancel: "Odbaci" - }, - errors : { - errcap : "Greška", - nourl : "Nije postavljen URL", - norecords: "Nema zapisa za obradu", - model : "Dužina modela colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub", - "Nedelja", "Ponedeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec", - "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sr.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sr.js deleted file mode 100755 index 0393354b..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sr.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Serbian Translation - * Александар Миловац(Aleksandar Milovac) aleksandar.milovac@gmail.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Преглед {0} - {1} од {2}", - emptyrecords: "Не постоји ниједан запис", - loadtext: "Учитавање...", - pgtext : "Страна {0} од {1}" - }, - search : { - caption: "Тражење...", - Find: "Тражи", - Reset: "Ресетуј", - odata : ['једнако', 'није једнако', 'мање', 'мање или једнако','веће','веће или једнако', 'почиње са','не почиње са','је у','није у','завршава са','не завршава са','садржи','не садржи'], - groupOps: [ { op: "И", text: "сви" }, { op: "ИЛИ", text: "сваки" } ], - matchText: " match", - rulesText: " правила" - }, - edit : { - addCaption: "Додај запис", - editCaption: "Измени запис", - bSubmit: "Пошаљи", - bCancel: "Одустани", - bClose: "Затвори", - saveData: "Податак је измењен! Сачувај измене?", - bYes : "Да", - bNo : "Не", - bExit : "Одустани", - msg: { - required:"Поље је обавезно", - number:"Молим, унесите исправан број", - minValue:"вредност мора бити већа од или једнака са ", - maxValue:"вредност мора бити мања од или једнака са", - email: "није исправна имејл адреса", - integer: "Молим, унесите исправну целобројну вредност ", - date: "Молим, унесите исправан датум", - url: "није исправан УРЛ. Потребан је префикс ('http://' or 'https://')", - nodefined : " није дефинисан!", - novalue : " захтевана је повратна вредност!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - - } - }, - view : { - caption: "Погледај запис", - bClose: "Затвори" - }, - del : { - caption: "Избриши", - msg: "Избриши изабран(е) запис(е)?", - bSubmit: "Ибриши", - bCancel: "Одбаци" - }, - nav : { - edittext: "", - edittitle: "Измени изабрани ред", - addtext:"", - addtitle: "Додај нови ред", - deltext: "", - deltitle: "Избриши изабран ред", - searchtext: "", - searchtitle: "Нађи записе", - refreshtext: "", - refreshtitle: "Поново учитај податке", - alertcap: "Упозорење", - alerttext: "Молим, изаберите ред", - viewtext: "", - viewtitle: "Погледај изабрани ред" - }, - col : { - caption: "Изабери колоне", - bSubmit: "ОК", - bCancel: "Одбаци" - }, - errors : { - errcap : "Грешка", - nourl : "Није постављен URL", - norecords: "Нема записа за обраду", - model : "Дужина модела colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб", - "Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота" - ], - monthNames: [ - "Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец", - "Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sv.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sv.js deleted file mode 100755 index 05924afe..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-sv.js +++ /dev/null @@ -1,128 +0,0 @@ -;(function($){ -/** - * jqGrid Swedish Translation - * Harald Normann harald.normann@wts.se, harald.normann@gmail.com - * http://www.worldteamsoftware.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Visar {0} - {1} av {2}", - emptyrecords: "Det finns inga poster att visa", - loadtext: "Laddar...", - pgtext : "Sida {0} av {1}" - }, - search : { - caption: "Sök Poster - Ange sökvillkor", - Find: "Sök", - Reset: "Nollställ Villkor", - odata : ['lika', 'ej lika', 'mindre', 'mindre eller lika','större','större eller lika', 'börjar med','börjar inte med','tillhör','tillhör inte','slutar med','slutar inte med','innehåller','innehåller inte'], - groupOps: [ { op: "AND", text: "alla" }, { op: "OR", text: "eller" } ], - matchText: " träff", - rulesText: " regler" - }, - edit : { - addCaption: "Ny Post", - editCaption: "Redigera Post", - bSubmit: "Spara", - bCancel: "Avbryt", - bClose: "Stäng", - saveData: "Data har ändrats! Spara förändringar?", - bYes : "Ja", - bNo : "Nej", - bExit : "Avbryt", - msg: { - required:"Fältet är obligatoriskt", - number:"Välj korrekt nummer", - minValue:"värdet måste vara större än eller lika med", - maxValue:"värdet måste vara mindre än eller lika med", - email: "är inte korrekt e-post adress", - integer: "Var god ange korrekt heltal", - date: "Var god ange korrekt datum", - url: "är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')", - nodefined : " är inte definierad!", - novalue : " returvärde måste anges!", - customarray : "Custom funktion måste returnera en vektor!", - customfcheck : "Custom funktion måste finnas om Custom kontroll sker!" - } - }, - view : { - caption: "Visa Post", - bClose: "Stäng" - }, - del : { - caption: "Radera", - msg: "Radera markerad(e) post(er)?", - bSubmit: "Radera", - bCancel: "Avbryt" - }, - nav : { - edittext: "", - edittitle: "Redigera markerad rad", - addtext:"", - addtitle: "Skapa ny post", - deltext: "", - deltitle: "Radera markerad rad", - searchtext: "", - searchtitle: "Sök poster", - refreshtext: "", - refreshtitle: "Uppdatera data", - alertcap: "Varning", - alerttext: "Ingen rad är markerad", - viewtext: "", - viewtitle: "Visa markerad rad" - }, - col : { - caption: "Välj Kolumner", - bSubmit: "OK", - bCancel: "Avbryt" - }, - errors : { - errcap : "Fel", - nourl : "URL saknas", - norecords: "Det finns inga poster att bearbeta", - model : "Antal colNames <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"Kr", defaultValue: '0,00'}, - date : { - dayNames: [ - "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", - "Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec", - "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December" - ], - AmPm : ["fm","em","FM","EM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'Y-m-d', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-th.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-th.js deleted file mode 100755 index 57e50378..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-th.js +++ /dev/null @@ -1,129 +0,0 @@ -;(function($){ -/** - * jqGrid Thai Translation - * Kittituch Manakul m.kittituch@Gmail.com - * http://trirand.com/blog/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "แสดง {0} - {1} จาก {2}", - emptyrecords: "ไม่พบข้อมูล", - loadtext: "กำลังร้องขอข้อมูล...", - pgtext : "หน้า {0} จาก {1}" - }, - search : { - caption: "กำลังค้นหา...", - Find: "ค้นหา", - Reset: "คืนค่ากลับ", - odata : ['เท่ากับ', 'ไม่เท่ากับ', 'น้อยกว่า', 'ไม่มากกว่า','มากกกว่า','ไม่น้อยกว่า', 'ขึ้นต้นด้วย','ไม่ขึ้นต้นด้วย','มีคำใดคำหนึ่งใน','ไม่มีคำใดคำหนึ่งใน','ลงท้ายด้วย','ไม่ลงท้ายด้วย','มีคำว่า','ไม่มีคำว่า'], - groupOps: [ { op: "และ", text: "ทั้งหมด" }, { op: "หรือ", text: "ใดๆ" } ], - matchText: " ตรงกันกับ", - rulesText: " ตามกฏ" - }, - edit : { - addCaption: "เพิ่มข้อมูล", - editCaption: "แก้ไขข้อมูล", - bSubmit: "บันทึก", - bCancel: "ยกเลิก", - bClose: "ปิด", - saveData: "คุณต้องการบันทึการแก้ไข ใช่หรือไม่?", - bYes : "บันทึก", - bNo : "ละทิ้งการแก้ไข", - bExit : "ยกเลิก", - msg: { - required:"ข้อมูลนี้จำเป็น", - number:"กรุณากรอกหมายเลขให้ถูกต้อง", - minValue:"ค่าของข้อมูลนี้ต้องไม่น้อยกว่า", - maxValue:"ค่าของข้อมูลนี้ต้องไม่มากกว่า", - email: "อีเมลล์นี้ไม่ถูกต้อง", - integer: "กรุณากรอกเป็นจำนวนเต็ม", - date: "กรุณากรอกวันที่ให้ถูกต้อง", - url: "URL ไม่ถูกต้อง URL จำเป็นต้องขึ้นต้นด้วย 'http://' หรือ 'https://'", - nodefined : "ไม่ได้ถูกกำหนดค่า!", - novalue : "ต้องการการคืนค่า!", - customarray : "ฟังก์ชันที่สร้างขึ้นต้องส่งค่ากลับเป็นแบบแอเรย์", - customfcheck : "ระบบต้องการฟังก์ชันที่สร้างขึ้นสำหรับการตรวจสอบ!" - - } - }, - view : { - caption: "เรียกดูข้อมูล", - bClose: "ปิด" - }, - del : { - caption: "ลบข้อมูล", - msg: "คุณต้องการลบข้อมูลที่ถูกเลือก ใช่หรือไม่?", - bSubmit: "ต้องการลบ", - bCancel: "ยกเลิก" - }, - nav : { - edittext: "", - edittitle: "แก้ไขข้อมูล", - addtext:"", - addtitle: "เพิ่มข้อมูล", - deltext: "", - deltitle: "ลบข้อมูล", - searchtext: "", - searchtitle: "ค้นหาข้อมูล", - refreshtext: "", - refreshtitle: "รีเฟรช", - alertcap: "คำเตือน", - alerttext: "กรุณาเลือกข้อมูล", - viewtext: "", - viewtitle: "ดูรายละเอียดข้อมูล" - }, - col : { - caption: "กรุณาเลือกคอลัมน์", - bSubmit: "ตกลง", - bCancel: "ยกเลิก" - }, - errors : { - errcap : "เกิดความผิดพลาด", - nourl : "ไม่ได้กำหนด URL", - norecords: "ไม่มีข้อมูลให้ดำเนินการ", - model : "จำนวนคอลัมน์ไม่เท่ากับจำนวนคอลัมน์โมเดล!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", - "อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศูกร์", "เสาร์" - ], - monthNames: [ - "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.", - "มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฏาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return ''}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-tr.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-tr.js deleted file mode 100755 index 65196646..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-tr.js +++ /dev/null @@ -1,127 +0,0 @@ -;(function($){ -/** - * jqGrid Turkish Translation - * Erhan Gündoğan (erhan@trposta.net) - * http://blog.zakkum.com - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "{0}-{1} listeleniyor. Toplam:{2}", - emptyrecords: "Kayıt bulunamadı", - loadtext: "Yükleniyor...", - pgtext : "{0}/{1}. Sayfa" - }, - search : { - caption: "Arama...", - Find: "Bul", - Reset: "Temizle", - odata : ['eşit', 'eşit değil', 'daha az', 'daha az veya eşit', 'daha fazla', 'daha fazla veya eşit', 'ile başlayan', 'ile başlamayan', 'içinde', 'içinde değil', 'ile biten', 'ile bitmeyen', 'içeren', 'içermeyen'], - groupOps: [ { op: "VE", text: "tüm" }, { op: "VEYA", text: "herhangi" } ], - matchText: " uyan", - rulesText: " kurallar" - }, - edit : { - addCaption: "Kayıt Ekle", - editCaption: "Kayıt Düzenle", - bSubmit: "Gönder", - bCancel: "İptal", - bClose: "Kapat", - saveData: "Veriler değişti! Kayıt edilsin mi?", - bYes : "Evet", - bNo : "Hayıt", - bExit : "İptal", - msg: { - required:"Alan gerekli", - number:"Lütfen bir numara giriniz", - minValue:"girilen değer daha büyük ya da buna eşit olmalıdır", - maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır", - email: "geçerli bir e-posta adresi değildir", - integer: "Lütfen bir tamsayı giriniz", - url: "Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "Kayıt Görüntüle", - bClose: "Kapat" - }, - del : { - caption: "Sil", - msg: "Seçilen kayıtlar silinsin mi?", - bSubmit: "Sil", - bCancel: "İptal" - }, - nav : { - edittext: " ", - edittitle: "Seçili satırı düzenle", - addtext:" ", - addtitle: "Yeni satır ekle", - deltext: " ", - deltitle: "Seçili satırı sil", - searchtext: " ", - searchtitle: "Kayıtları bul", - refreshtext: "", - refreshtitle: "Tabloyu yenile", - alertcap: "Uyarı", - alerttext: "Lütfen bir satır seçiniz", - viewtext: "", - viewtitle: "Seçilen satırı görüntüle" - }, - col : { - caption: "Sütunları göster/gizle", - bSubmit: "Gönder", - bCancel: "İptal" - }, - errors : { - errcap : "Hata", - nourl : "Bir url yapılandırılmamış", - norecords: "İşlem yapılacak bir kayıt yok", - model : "colNames uzunluğu <> colModel!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'}, - currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'}, - date : { - dayNames: [ - "Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts", - "Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi" - ], - monthNames: [ - "Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara", - "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd/m/Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n/j/Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y g:i:s A", - MonthDay: "F d", - ShortTime: "g:i A", - LongTime: "g:i:s A", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ua.js b/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ua.js deleted file mode 100755 index 3603c9c3..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/i18n/grid.locale-ua.js +++ /dev/null @@ -1,128 +0,0 @@ -;(function($){ -/** - * jqGrid Ukrainian Translation v1.0 02.07.2009 - * Sergey Dyagovchenko - * http://d.sumy.ua - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html -**/ -$.jgrid = $.jgrid || {}; -$.extend($.jgrid,{ - defaults : { - recordtext: "Перегляд {0} - {1} з {2}", - emptyrecords: "Немає записів для перегляду", - loadtext: "Завантаження...", - pgtext : "Стор. {0} з {1}" - }, - search : { - caption: "Пошук...", - Find: "Знайти", - Reset: "Скидання", - odata : ['рівно', 'не рівно', 'менше', 'менше або рівне','більше','більше або рівне', 'починається з','не починається з','знаходиться в','не знаходиться в','закінчується на','не закінчується на','містить','не містить'], - groupOps: [ { op: "AND", text: "все" }, { op: "OR", text: "будь-який" } ], - matchText: " збігається", - rulesText: " правила" - }, - edit : { - addCaption: "Додати запис", - editCaption: "Змінити запис", - bSubmit: "Зберегти", - bCancel: "Відміна", - bClose: "Закрити", - saveData: "До данних були внесені зміни! Зберегти зміни?", - bYes : "Так", - bNo : "Ні", - bExit : "Відміна", - msg: { - required:"Поле є обов'язковим", - number:"Будь ласка, введіть правильне число", - minValue:"значення повинне бути більше або дорівнює", - maxValue:"значення повинно бути менше або дорівнює", - email: "некоректна адреса електронної пошти", - integer: "Будь ласка, введення дійсне ціле значення", - date: "Будь ласка, введення дійсне значення дати", - url: "не дійсний URL. Необхідна приставка ('http://' or 'https://')", - nodefined : " is not defined!", - novalue : " return value is required!", - customarray : "Custom function should return array!", - customfcheck : "Custom function should be present in case of custom checking!" - } - }, - view : { - caption: "Переглянути запис", - bClose: "Закрити" - }, - del : { - caption: "Видалити", - msg: "Видалити обраний запис(и)?", - bSubmit: "Видалити", - bCancel: "Відміна" - }, - nav : { - edittext: " ", - edittitle: "Змінити вибраний запис", - addtext:" ", - addtitle: "Додати новий запис", - deltext: " ", - deltitle: "Видалити вибраний запис", - searchtext: " ", - searchtitle: "Знайти записи", - refreshtext: "", - refreshtitle: "Оновити таблицю", - alertcap: "Попередження", - alerttext: "Будь ласка, виберіть запис", - viewtext: "", - viewtitle: "Переглянути обраний запис" - }, - col : { - caption: "Показати/Приховати стовпці", - bSubmit: "Зберегти", - bCancel: "Відміна" - }, - errors : { - errcap : "Помилка", - nourl : "URL не задан", - norecords: "Немає записів для обробки", - model : "Число полів не відповідає числу стовпців таблиці!" - }, - formatter : { - integer : {thousandsSeparator: " ", defaultValue: '0'}, - number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'}, - currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'}, - date : { - dayNames: [ - "Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб", - "Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота" - ], - monthNames: [ - "Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру", - "Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень" - ], - AmPm : ["am","pm","AM","PM"], - S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'}, - srcformat: 'Y-m-d', - newformat: 'd.m.Y', - masks : { - ISO8601Long:"Y-m-d H:i:s", - ISO8601Short:"Y-m-d", - ShortDate: "n.j.Y", - LongDate: "l, F d, Y", - FullDateTime: "l, F d, Y G:i:s", - MonthDay: "F d", - ShortTime: "G:i", - LongTime: "G:i:s", - SortableDateTime: "Y-m-d\\TH:i:s", - UniversalSortableDateTime: "Y-m-d H:i:sO", - YearMonth: "F, Y" - }, - reformatAfterEdit : false - }, - baseLinkUrl: '', - showAction: '', - target: '', - checkbox : {disabled:true}, - idName : 'id' - } -}); -})(jQuery); diff --git a/demo/jquery.jqGrid-4.4.0/js/install.txt b/demo/jquery.jqGrid-4.4.0/js/install.txt deleted file mode 100755 index 83bdc90a..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/install.txt +++ /dev/null @@ -1,43 +0,0 @@ -Installation - -Download the jqGrid package from the www.trirand/blog site section downloads. -Note the new download manager where you can choose which modules you want to -include in the download. - -In order to use jqGrid 3.5, first a UI theme css file should be loaded. -Download the desired theme (or build a custom one) from jQueryUI site -(www.jqueryui.com) and point in your link tag in head section the path to the -theme css - - - -where the path_to_ui_css_file is a valid path to the ui theme file - -Extract the jqGrid package and copy the ui.jqgrid.css from css directory to -your webserver directory. It is not necessary that the jqgrid css file is in -the same directory as those of the jquery ui css. - - - -Starting with this version, jqGrid does not use a loader (which loads the -needed files one by one), but all the needed code is contained in one file. -The desired modules can be built using the jqGrid download manager from the -site pointed above. In order to use this, first a language file should be -loaded and then the jqgrid file. - -Copy the desired language file from js/i18n directory to your web server -directory where you store the java script files. Every language file is -named grid.locale-XX.js, where XX is a two-letter code for the language. -Copy the jquery.jqGid.min.js file to the same or other valid directory in -your web server - -Include both the files in script tags in the head section - - - - -For debugging purposes, I have created a grid.loader.js which does the same -loading of the files as in previous versions. The location of the file is in -src directory of the package. In order to use this, the variable pathojsfiles -should be adjusted to point to the appropriate folder - see 3.4.x docs. - diff --git a/demo/jquery.jqGrid-4.4.0/js/jquery-1.7.2.min.js b/demo/jquery.jqGrid-4.4.0/js/jquery-1.7.2.min.js deleted file mode 100755 index 16ad06c5..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/jquery-1.7.2.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
      a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
      "+""+"
      ",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
      t
      ",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
      ",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f -.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/demo/jquery.jqGrid-4.4.0/js/jquery.jqGrid.min.js b/demo/jquery.jqGrid-4.4.0/js/jquery.jqGrid.min.js deleted file mode 100755 index e89e54d4..00000000 --- a/demo/jquery.jqGrid-4.4.0/js/jquery.jqGrid.min.js +++ /dev/null @@ -1,516 +0,0 @@ -/* -* jqGrid 4.4.0 - jQuery Grid -* Copyright (c) 2008, Tony Tomov, tony@trirand.com -* Dual licensed under the MIT and GPL licenses -* http://www.opensource.org/licenses/mit-license.php -* http://www.gnu.org/licenses/gpl-2.0.html -* Date:2012-06-14 -* Modules: grid.base.js; jquery.fmatter.js; grid.custom.js; grid.common.js; grid.formedit.js; grid.filter.js; grid.inlinedit.js; grid.celledit.js; jqModal.js; jqDnR.js; grid.subgrid.js; grid.grouping.js; grid.treegrid.js; grid.import.js; JsonXml.js; grid.tbltogrid.js; grid.jqueryui.js; -*/ -(function(b){b.jgrid=b.jgrid||{};b.extend(b.jgrid,{version:"4.4.0",htmlDecode:function(b){return b&&(" "==b||" "==b||1===b.length&&160===b.charCodeAt(0))?"":!b?b:(""+b).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/&/g,"&")},htmlEncode:function(b){return!b?b:(""+b).replace(/&/g,"&").replace(/\"/g,""").replace(//g,">")},format:function(f){var e=b.makeArray(arguments).slice(1);void 0===f&&(f="");return f.replace(/\{(\d+)\}/g, -function(b,d){return e[d]})},getCellIndex:function(f){f=b(f);if(f.is("tr"))return-1;f=(!f.is("td")&&!f.is("th")?f.closest("td,th"):f)[0];return b.browser.msie?b.inArray(f,f.parentNode.cells):f.cellIndex},stripHtml:function(b){var b=b+"",e=/<("[^"]*"|'[^']*'|[^'">])*>/gi;return b?(b=b.replace(e,""))&&" "!==b&&" "!==b?b.replace(/\"/g,"'"):"":b},stripPref:function(f,e){var c=b.type(f);if("string"==c||"number"==c)f=""+f,e=""!==f?(""+e).replace(""+f,""):e;return e},stringToDoc:function(b){var e; -if("string"!==typeof b)return b;try{e=(new DOMParser).parseFromString(b,"text/xml")}catch(c){e=new ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(b)}return e&&e.documentElement&&"parsererror"!=e.documentElement.tagName?e:null},parse:function(f){"while(1);"==f.substr(0,9)&&(f=f.substr(9));"/*"==f.substr(0,2)&&(f=f.substr(2,f.length-4));f||(f="{}");return!0===b.jgrid.useJSON&&"object"===typeof JSON&&"function"===typeof JSON.parse?JSON.parse(f):eval("("+f+")")},parseDate:function(f,e){var c= -{m:1,d:1,y:1970,h:0,i:0,s:0,u:0},d,a,h;d=/[\\\/:_;.,\t\T\s-]/;if(e&&null!==e&&void 0!==e){e=b.trim(e);e=e.split(d);void 0!==b.jgrid.formatter.date.masks[f]&&(f=b.jgrid.formatter.date.masks[f]);var f=f.split(d),g=b.jgrid.formatter.date.monthNames,i=b.jgrid.formatter.date.AmPm,j=function(a,b){0===a?12===b&&(b=0):12!==b&&(b+=12);return b};d=0;for(a=f.length;dh&&(e[d]=h+1,c.m=e[d])),"F"==f[d]&&(h=b.inArray(e[d],g),-1!==h&&11h&&e[d]==i[h]&&(e[d]=h,c.h=j(e[d],c.h))),"A"==f[d]&&(h=b.inArray(e[d],i),-1!==h&&1=d?c.y=1900+c.y:0<=d&&69>=d&&(c.y=2E3+c.y);void 0!==c.j&&(c.d=c.j);void 0!==c.n&&(c.m=parseInt(c.n,10)-1)}return new Date(c.y,c.m,c.d,c.h,c.i,c.s,c.u)},jqID:function(b){return(""+b).replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g,"\\$&")}, -guid:1,uidPref:"jqg",randId:function(f){return(f?f:b.jgrid.uidPref)+b.jgrid.guid++},getAccessor:function(b,e){var c,d,a=[],h;if("function"===typeof e)return e(b);c=b[e];if(void 0===c)try{if("string"===typeof e&&(a=e.split(".")),h=a.length)for(c=b;c&&h--;)d=a.shift(),c=c[d]}catch(g){}return c},getXmlData:function(f,e,c){var d="string"===typeof e?e.match(/^(.*)\[(\w+)\]$/):null;if("function"===typeof e)return e(f);if(d&&d[2])return d[1]?b(d[1],f).attr(d[2]):b(f).attr(d[2]);f=b(e,f);return c?f:0
      "),e=f.appendTo("body").find("td").width();f.remove();return 5!==e},ajaxOptions:{},from:function(f){return new function(e,c){"string"==typeof e&&(e=b.data(e));var d=this,a=e,h=!0,f=!1,i=c,j=/[\$,%]/g,l=null,k=null,m=0,o=!1,p="",v=[],u=!0;if("object"==typeof e&&e.push)0b?d:0;!h&&"number"!==typeof a&&"number"!==typeof b&&(a=(""+a).toLowerCase(),b=(""+b).toLowerCase());return ab?d:0};this._performSort=function(){0!==v.length&&(a=d._doSort(a,0))};this._doSort=function(a,b){var c=v[b].by,f=v[b].dir, -h=v[b].type,e=v[b].datefmt;if(b==v.length-1)return d._getOrder(a,c,f,h,e);b++;c=d._getGroup(a,c,f,h,e);f=[];for(h=0;h",c)};this.less=function(a,b,c){return d._compareValues(d.less,a,b,"<",c)};this.greaterOrEquals=function(a,b,c){return d._compareValues(d.greaterOrEquals,a,b,">=",c)};this.lessOrEquals=function(a,b,c){return d._compareValues(d.lessOrEquals,a,b,"<=",c)};this.startsWith=function(a,c){var h=void 0===c||null===c?a:c,h=f?b.trim(h.toString()).length: -h.toString().length;u?d._append(d._getStr("jQuery.jgrid.getAccessor(this,'"+a+"')")+".substr(0,"+h+") == "+d._getStr('"'+d._toStr(c)+'"')):(h=f?b.trim(c.toString()).length:c.toString().length,d._append(d._getStr("this")+".substr(0,"+h+") == "+d._getStr('"'+d._toStr(a)+'"')));d._setCommand(d.startsWith,a);d._resetNegate();return d};this.endsWith=function(a,c){var h=void 0===c||null===c?a:c,h=f?b.trim(h.toString()).length:h.toString().length;u?d._append(d._getStr("jQuery.jgrid.getAccessor(this,'"+a+ -"')")+".substr("+d._getStr("jQuery.jgrid.getAccessor(this,'"+a+"')")+".length-"+h+","+h+') == "'+d._toStr(c)+'"'):d._append(d._getStr("this")+".substr("+d._getStr("this")+'.length-"'+d._toStr(a)+'".length,"'+d._toStr(a)+'".length) == "'+d._toStr(a)+'"');d._setCommand(d.endsWith,a);d._resetNegate();return d};this.contains=function(a,b){u?d._append(d._getStr("jQuery.jgrid.getAccessor(this,'"+a+"')")+'.indexOf("'+d._toStr(b)+'",0) > -1'):d._append(d._getStr("this")+'.indexOf("'+d._toStr(a)+'",0) > -1'); -d._setCommand(d.contains,a);d._resetNegate();return d};this.groupBy=function(b,c,f,h){return!d._hasData()?null:d._getGroup(a,b,c,f,h)};this.orderBy=function(a,c,f,h){c=void 0===c||null===c?"a":b.trim(c.toString().toLowerCase());if(null===f||void 0===f)f="text";if(null===h||void 0===h)h="Y-m-d";if("desc"==c||"descending"==c)c="d";if("asc"==c||"ascending"==c)c="a";v.push({by:a,dir:c,type:f,datefmt:h});return d};return d}(f,null)},extend:function(f){b.extend(b.fn.jqGrid,f);this.no_legacy_api||b.fn.extend(f)}}); -b.fn.jqGrid=function(f){if("string"==typeof f){var e=b.jgrid.getAccessor(b.fn.jqGrid,f);if(!e)throw"jqGrid - No such method: "+f;var c=b.makeArray(arguments).slice(1);return e.apply(this,c)}return this.each(function(){if(!this.grid){var d=b.extend(!0,{url:"",height:150,page:1,rowNum:20,rowTotal:null,records:0,pager:"",pgbuttons:!0,pginput:!0,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:!1,selarrrow:[],savedRow:[],shrinkToFit:!0,xmlReader:{},jsonReader:{}, -subGrid:!1,subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,beforeProcessing:null,onHeaderClick:null,viewrecords:!1,loadonce:!1,multiselect:!1,multikey:!1,editurl:null,search:!1,caption:"",hidegrid:!0,hiddengrid:!1,postData:{},userData:{},treeGrid:!1,treeGridModel:"nested", -treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null,totalrows:"totalrows"},forceFit:!1,gridstate:"visible",cellEdit:!1,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[!1,""],scroll:!1,multiboxonly:!1,deselectAfterSort:!0,scrollrows:!1,autowidth:!1,scrollOffset:18,cellLayout:5,subGridWidth:20,multiselectWidth:20,gridview:!1, -rownumWidth:25,rownumbers:!1,pagerpos:"center",recordpos:"right",footerrow:!1,userDataOnFooter:!1,hoverrows:!0,altclass:"ui-priority-secondary",viewsortcols:[!1,"vertical",!0],resizeclass:"",autoencode:!1,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:!1,headertitles:!1,scrollTimeout:40,data:[],_index:{},grouping:!1,groupingView:{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"ui-icon-circlesmall-plus", -minusicon:"ui-icon-circlesmall-minus"},ignoreCase:!1,cmTemplate:{},idPrefix:""},b.jgrid.defaults,f||{}),a=this,c={headers:[],cols:[],footers:[],dragStart:function(c,e,f){this.resizing={idx:c,startX:e.clientX,sOL:f[0]};this.hDiv.style.cursor="col-resize";this.curGbox=b("#rs_m"+b.jgrid.jqID(d.id),"#gbox_"+b.jgrid.jqID(d.id));this.curGbox.css({display:"block",left:f[0],top:f[1],height:f[2]});b(a).triggerHandler("jqGridResizeStart",[e,c]);b.isFunction(d.resizeStart)&&d.resizeStart.call(this,e,c);document.onselectstart= -function(){return!1}},dragMove:function(a){if(this.resizing){var b=a.clientX-this.resizing.startX,a=this.headers[this.resizing.idx],c="ltr"===d.direction?a.width+b:a.width-b,e;33=j&&(void 0===d.lastpage||parseInt((k+ -f+G-1)/G,10)<=d.lastpage))z=parseInt((a-k+G-1)/G,10),0<=k||2>z||!0===d.scroll?(y=Math.round((k+f)/G)+1,j=-1):j=1;0d.lastpage||1==d.lastpage||y===d.page&&y===d.lastpage))c.hDiv.loading?c.timer=setTimeout(c.populateVisible,d.scrollTimeout):(d.page=y,B&&(c.selectionPreserver(e[0]),c.emptyRows.call(e[0],!1,!1)),c.populate(z))}}},scrollGrid:function(a){if(d.scroll){var b=c.bDiv.scrollTop;void 0===c.scrollTop&&(c.scrollTop= -0);b!=c.scrollTop&&(c.scrollTop=b,c.timer&&clearTimeout(c.timer),c.timer=setTimeout(c.populateVisible,d.scrollTimeout))}c.hDiv.scrollLeft=c.bDiv.scrollLeft;d.footerrow&&(c.sDiv.scrollLeft=c.bDiv.scrollLeft);a&&a.stopPropagation()},selectionPreserver:function(a){var c=a.p,d=c.selrow,e=c.selarrrow?b.makeArray(c.selarrrow):null,f=a.grid.bDiv.scrollLeft,g=function(){var h;c.selrow=null;c.selarrrow=[];if(c.multiselect&&e&&0=document.documentMode)alert("Grid can not be used in this ('quirks') mode!");else{b(this).empty().attr("tabindex","1");this.p=d;this.p.useProp=!!b.fn.prop;var e,i;if(0===this.p.colNames.length)for(e=0;e"),l,k=b.browser.msie?!0:!1;a.p.direction=b.trim(a.p.direction.toLowerCase());-1==b.inArray(a.p.direction,["ltr","rtl"])&&(a.p.direction="ltr");i=a.p.direction;b(j).insertBefore(this);b(this).appendTo(j).removeClass("scroll");var m=b("
      ");b(m).insertBefore(j).attr({id:"gbox_"+ -this.id,dir:i});b(j).appendTo(m).attr("id","gview_"+this.id);l=k&&6>=b.browser.version?'':"";b("
      ").append(l).insertBefore(j);b("
      "+this.p.loadtext+"
      ").insertBefore(j);b(this).attr({cellspacing:"0",cellpadding:"0",border:"0",role:"grid", -"aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});var o=function(a,b){a=parseInt(a,10);return isNaN(a)?b?b:0:a},p=function(d,e,f,g,i,j){var K=a.p.colModel[d],k=K.align,y='style="',z=K.classes,B=K.name,q=[];k&&(y=y+("text-align:"+k+";"));K.hidden===true&&(y=y+"display:none;");if(e===0)y=y+("width: "+c.headers[d].width+"px;");else if(K.cellattr&&b.isFunction(K.cellattr))if((d=K.cellattr.call(a,i,f,g,K,j))&&typeof d==="string"){d=d.replace(/style/i,"style").replace(/title/i, -"title");if(d.indexOf("title")>-1)K.title=false;d.indexOf("class")>-1&&(z=void 0);q=d.split("style");if(q.length===2){q[1]=b.trim(q[1].replace("=",""));if(q[1].indexOf("'")===0||q[1].indexOf('"')===0)q[1]=q[1].substring(1);y=y+q[1].replace(/'/gi,'"')}else y=y+'"'}if(!q.length){q[0]="";y=y+'"'}y=y+((z!==void 0?' class="'+z+'"':"")+(K.title&&f?' title="'+b.jgrid.stripHtml(f)+'"':""));y=y+(' aria-describedby="'+a.p.id+"_"+B+'"');return y+q[0]},v=function(c){return c===void 0||c===null||c===""?" ": -a.p.autoencode?b.jgrid.htmlEncode(c):c+""},u=function(c,d,e,f,g){var h=a.p.colModel[e];if(typeof h.formatter!=="undefined"){c={rowId:c,colModel:h,gid:a.p.id,pos:e};d=b.isFunction(h.formatter)?h.formatter.call(a,d,c,f,g):b.fmatter?b.fn.fmatter.call(a,h.formatter,d,c,f,g):v(d)}else d=v(d);return d},M=function(a,b,c,d,e){b=u(a,b,c,e,"add");return'"+b+""},F=function(b,c,d){var e='';return'"+e+""},Z=function(a,b,c,d){c=(parseInt(c,10)-1)*parseInt(d,10)+1+b;return'"+c+""},U=function(b){var c,d=[],e=0,f;for(f=0;f0?this.rows[0]:null;b(this.firstChild).empty().append(d)}if(a&&this.p.scroll){b(this.grid.bDiv.firstChild).css({height:"auto"});b(this.grid.bDiv.firstChild.firstChild).css({height:0,display:"none"});if(this.grid.bDiv.scrollTop!==0)this.grid.bDiv.scrollTop=0}if(c=== -true&&this.p.treeGrid){this.p.data=[];this.p._index={}}},S=function(){var c=a.p.data.length,d,e,f;d=a.p.rownumbers===true?1:0;e=a.p.multiselect===true?1:0;f=a.p.subGrid===true?1:0;d=a.p.keyIndex===false||a.p.loadonce===true?a.p.localReader.id:a.p.colModel[a.p.keyIndex+e+f+d].name;for(e=0;e"},$=function(c,d,e,f,g){var h=new Date,i=a.p.datatype!= -"local"&&a.p.loadonce||a.p.datatype=="xmlstring",j=a.p.xmlReader,k=a.p.datatype=="local"?"local":"xml";if(i){a.p.data=[];a.p._index={};a.p.localReader.id="_id_"}a.p.reccount=0;if(b.isXMLDoc(c)){if(a.p.treeANode===-1&&!a.p.scroll){N.call(a,false,true);e=1}else e=e>1?e:1;var z,B,q=0,l,s=a.p.multiselect===true?1:0,P=a.p.subGrid===true?1:0,m=a.p.rownumbers===true?1:0,o,p=[],u,n={},r,w,C=[],v=a.p.altRows===true?" "+a.p.altclass:"",A;j.repeatitems||(p=U(k));o=a.p.keyIndex===false?b.isFunction(j.id)?j.id.call(a, -c):j.id:a.p.keyIndex;if(p.length>0&&!isNaN(o)){a.p.remapColumns&&a.p.remapColumns.length&&(o=b.inArray(o,a.p.remapColumns));o=p[o]}k=(o+"").indexOf("[")===-1?p.length?function(a,c){return b(o,a).text()||c}:function(a,c){return b(j.cell,a).eq(o).text()||c}:function(a,b){return a.getAttribute(o.replace(/[\[\]]/g,""))||b};a.p.userData={};a.p.page=b.jgrid.getXmlData(c,j.page)||0;a.p.lastpage=b.jgrid.getXmlData(c,j.total);if(a.p.lastpage===void 0)a.p.lastpage=1;a.p.records=b.jgrid.getXmlData(c,j.records)|| -0;b.isFunction(j.userdata)?a.p.userData=j.userdata.call(a,c)||{}:b.jgrid.getXmlData(c,j.userdata,true).each(function(){a.p.userData[this.getAttribute("name")]=b(this).text()});c=b.jgrid.getXmlData(c,j.root,true);(c=b.jgrid.getXmlData(c,j.row,true))||(c=[]);var t=c.length,H=0,Q=[],x=parseInt(a.p.rowNum,10);if(t>0&&a.p.page<=0)a.p.page=1;if(c&&t){var D=a.p.scroll?b.jgrid.randId():1;g&&(x=x*(g+1));for(var g=b.isFunction(a.p.afterInsertRow),E=a.p.grouping&&a.p.groupingView.groupCollapse===true;H");if(a.p.grouping){Q=b(a).jqGrid("groupingPrepare",C,Q,n,H);C=[]}if(i||a.p.treeGrid===true){n._id_=w;a.p.data.push(n);a.p._index[w]=a.p.data.length-1}if(a.p.gridview===false){b("tbody:first",d).append(C.join(""));b(a).triggerHandler("jqGridAfterInsertRow",[w,n,r]);g&&a.p.afterInsertRow.call(a,w,n,r);C=[]}n={};q++;H++;if(q==x)break}}if(a.p.gridview===true){B=a.p.treeANode>-1?a.p.treeANode:0;if(a.p.grouping){b(a).jqGrid("groupingRender", -Q,a.p.colModel.length);Q=null}else a.p.treeGrid===true&&B>0?b(a.rows[B]).after(C.join("")):b("tbody:first",d).append(C.join(""))}if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",s+m)}catch(R){}a.p.totaltime=new Date-h;if(q>0&&a.p.records===0)a.p.records=t;C=null;if(a.p.treeGrid===true)try{b(a).jqGrid("setTreeNode",B+1,q+B+1)}catch(S){}if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=0;a.p.reccount=q;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);if(i){a.p.records= -t;a.p.lastpage=Math.ceil(t/x)}f||a.updatepager(false,true);if(i)for(;q1?e:1;var h,i,j=a.p.datatype!="local"&&a.p.loadonce||a.p.datatype=="jsonstring";if(j){a.p.data=[];a.p._index={};a.p.localReader.id="_id_"}a.p.reccount=0;if(a.p.datatype=="local"){h=a.p.localReader;i="local"}else{h=a.p.jsonReader;i="json"}var k=0,l,B,q=[],m,s=a.p.multiselect?1:0,o=a.p.subGrid?1:0,p=a.p.rownumbers===true?1:0,n,u,t={},v,r,w=[],C=a.p.altRows===true?" "+a.p.altclass:"",A;a.p.page=b.jgrid.getAccessor(c,h.page)||0;n=b.jgrid.getAccessor(c, -h.total);a.p.lastpage=n===void 0?1:n;a.p.records=b.jgrid.getAccessor(c,h.records)||0;a.p.userData=b.jgrid.getAccessor(c,h.userdata)||{};h.repeatitems||(m=q=U(i));i=a.p.keyIndex===false?b.isFunction(h.id)?h.id.call(a,c):h.id:a.p.keyIndex;if(q.length>0&&!isNaN(i)){a.p.remapColumns&&a.p.remapColumns.length&&(i=b.inArray(i,a.p.remapColumns));i=q[i]}(u=b.jgrid.getAccessor(c,h.root))||(u=[]);n=u.length;c=0;if(n>0&&a.p.page<=0)a.p.page=1;var x=parseInt(a.p.rowNum,10),D=a.p.scroll?b.jgrid.randId():1;g&&(x= -x*(g+1));for(var H=b.isFunction(a.p.afterInsertRow),Q=[],E=a.p.grouping&&a.p.groupingView.groupCollapse===true;c");if(a.p.grouping){Q=b(a).jqGrid("groupingPrepare",w,Q,t,c);w=[]}if(j||a.p.treeGrid===true){t._id_=r;a.p.data.push(t);a.p._index[r]=a.p.data.length-1}if(a.p.gridview===false){b("#"+b.jgrid.jqID(a.p.id)+" tbody:first").append(w.join(""));b(a).triggerHandler("jqGridAfterInsertRow",[r,t,g]);H&&a.p.afterInsertRow.call(a,r,t,g);w=[]}t={};k++;c++;if(k== -x)break}if(a.p.gridview===true){v=a.p.treeANode>-1?a.p.treeANode:0;a.p.grouping?b(a).jqGrid("groupingRender",Q,a.p.colModel.length):a.p.treeGrid===true&&v>0?b(a.rows[v]).after(w.join("")):b("#"+b.jgrid.jqID(a.p.id)+" tbody:first").append(w.join(""))}if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",s+p)}catch(L){}a.p.totaltime=new Date-d;if(k>0&&a.p.records===0)a.p.records=n;if(a.p.treeGrid===true)try{b(a).jqGrid("setTreeNode",v+1,k+v+1)}catch(O){}if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop= -0;a.p.reccount=k;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);if(j){a.p.records=n;a.p.lastpage=Math.ceil(n/x)}f||a.updatepager(false,true);if(j)for(;k0&&h&&s.or();try{c(d.groups[g])}catch(k){alert(k)}e++}h&&s.orEnd()}if(d.rules!==void 0){if(e>0){h=s.select();s=b.jgrid.from(h);a.p.ignoreCase&&(s=s.ignoreCase())}try{(i=d.rules.length&&d.groupOp.toString().toUpperCase()==="OR")&&s.orBegin();for(g=0;g0&&j&&j==="OR"&&(s=s.or());s=o[T.op](s,j)(T.field,T.data,f[T.field])}e++}i&&s.orEnd()}catch(na){alert(na)}}}var d,e=false,f={},g=[],h=[],i,j,k;if(b.isArray(a.p.data)){var l=a.p.grouping?a.p.groupingView:false,m,q;b.each(a.p.colModel,function(){j=this.sorttype||"text";if(j=="date"||j=="datetime"){if(this.formatter&&typeof this.formatter==="string"&&this.formatter=="date"){i=this.formatoptions&&this.formatoptions.srcformat?this.formatoptions.srcformat: -b.jgrid.formatter.date.srcformat;k=this.formatoptions&&this.formatoptions.newformat?this.formatoptions.newformat:b.jgrid.formatter.date.newformat}else i=k=this.datefmt||"Y-m-d";f[this.name]={stype:j,srcfmt:i,newfmt:k}}else f[this.name]={stype:j,srcfmt:"",newfmt:""};if(a.p.grouping){q=0;for(m=l.groupField.length;q1)if(g.npage!==null){e[g.npage]=c;j=c-1;c=1}else i=function(b){a.p.page++;a.grid.hDiv.loading=false;h&&a.p.loadComplete.call(a,b);I(c-1)};else g.npage!==null&&delete a.p.postData[g.npage];if(a.p.grouping){b(a).jqGrid("groupingSetup");var k=a.p.groupingView,l,m="";for(l=0;l1,j):aa(e,a.grid.bDiv,q,c>1,j);b(a).triggerHandler("jqGridLoadComplete",[e]);i&&i.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);d&&a.grid.populateVisible();if(a.p.loadonce||a.p.treeGrid)a.p.datatype="local";c===1&&O()}},error:function(d,e,f){b.isFunction(a.p.loadError)&&a.p.loadError.call(a,d,e,f);c===1&&O()},beforeSend:function(c, -d){var e=true;b.isFunction(a.p.loadBeforeSend)&&(e=a.p.loadBeforeSend.call(a,c,d));e===void 0&&(e=true);if(e===false)return false;ca()}},b.jgrid.ajaxOptions,a.p.ajaxGridOptions));break;case "xmlstring":ca();e=b.jgrid.stringToDoc(a.p.datastr);$(e,a.grid.bDiv);b(a).triggerHandler("jqGridLoadComplete",[e]);h&&a.p.loadComplete.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);a.p.datatype="local";a.p.datastr=null;O();break;case "jsonstring":ca();e=typeof a.p.datastr=="string"?b.jgrid.parse(a.p.datastr): -a.p.datastr;aa(e,a.grid.bDiv);b(a).triggerHandler("jqGridLoadComplete",[e]);h&&a.p.loadComplete.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);a.p.datatype="local";a.p.datastr=null;O();break;case "local":case "clientside":ca();a.p.datatype="local";e=ma();aa(e,a.grid.bDiv,q,c>1,j);b(a).triggerHandler("jqGridLoadComplete",[e]);i&&i.call(a,e);b(a).triggerHandler("jqGridAfterLoadComplete",[e]);d&&a.grid.populateVisible();O()}}}},da=function(c){b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv)[a.p.useProp? -"prop":"attr"]("checked",c);if(a.p.frozenColumns&&a.p.id+"_frozen")b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.fhDiv)[a.p.useProp?"prop":"attr"]("checked",c)};l=function(c,e){var d="",f="",g="",h,j,k,l,m=function(c){var e;b.isFunction(a.p.onPaging)&&(e=a.p.onPaging.call(a,c));a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];da(false)}a.p.savedRow=[];return e=="stop"?false:true},c=c.substr(1),e= -e+("_"+c);h="pg_"+c;j=c+"_left";k=c+"_center";l=c+"_right";b("#"+b.jgrid.jqID(c)).append("
      ").attr("dir","ltr");if(a.p.rowList.length>0){g="";g=g+""}i=="rtl"&&(f=f+g);a.p.pginput===true&&(d=""+b.jgrid.format(a.p.pgtext||"","","")+"");if(a.p.pgbuttons=== -true){j=["first"+e,"prev"+e,"next"+e,"last"+e];i=="rtl"&&j.reverse();f=f+("");f=f+("");f=f+(d!==""?""+d+"": -"")+("");f=f+("")}else d!==""&&(f=f+d);i=="ltr"&&(f=f+g);f=f+"";a.p.viewrecords===true&&b("td#"+c+"_"+a.p.recordpos,"#"+h).append("
      ");b("td#"+c+"_"+a.p.pagerpos,"#"+h).append(f);g=b(".ui-jqgrid").css("font-size")|| -"11px";b(document.body).append("");f=b(f).clone().appendTo("#testpg").width();b("#testpg").remove();if(f>0){d!==""&&(f=f+50);b("td#"+c+"_"+a.p.pagerpos,"#"+h).width(f)}a.p._nvtd=[];a.p._nvtd[0]=f?Math.floor((a.p.width-f)/2):Math.floor(a.p.width/3);a.p._nvtd[1]=0;f=null;b(".ui-pg-selbox","#"+h).bind("change",function(){a.p.page=Math.round(a.p.rowNum*(a.p.page-1)/this.value-0.5)+1;a.p.rowNum= -this.value;a.p.pager&&b(".ui-pg-selbox",a.p.pager).val(this.value);a.p.toppager&&b(".ui-pg-selbox",a.p.toppager).val(this.value);if(!m("records"))return false;I();return false});if(a.p.pgbuttons===true){b(".ui-pg-button","#"+h).hover(function(){if(b(this).hasClass("ui-state-disabled"))this.style.cursor="default";else{b(this).addClass("ui-state-hover");this.style.cursor="pointer"}},function(){if(!b(this).hasClass("ui-state-disabled")){b(this).removeClass("ui-state-hover");this.style.cursor="default"}}); -b("#first"+b.jgrid.jqID(e)+", #prev"+b.jgrid.jqID(e)+", #next"+b.jgrid.jqID(e)+", #last"+b.jgrid.jqID(e)).click(function(){var b=o(a.p.page,1),c=o(a.p.lastpage,1),d=false,f=true,g=true,h=true,i=true;if(c===0||c===1)i=h=g=f=false;else if(c>1&&b>=1)if(b===1)g=f=false;else{if(b===c)i=h=false}else if(c>1&&b===0){i=h=false;b=c-1}if(this.id==="first"+e&&f){a.p.page=1;d=true}if(this.id==="prev"+e&&g){a.p.page=b-1;d=true}if(this.id==="next"+e&&h){a.p.page=b+1;d=true}if(this.id==="last"+e&&i){a.p.page=c;d= -true}if(d){if(!m(this.id))return false;I()}return false})}a.p.pginput===true&&b("input.ui-pg-input","#"+h).keypress(function(c){if((c.charCode?c.charCode:c.keyCode?c.keyCode:0)==13){a.p.page=b(this).val()>0?b(this).val():a.p.page;if(!m("user"))return false;I();return false}return this})};var ja=function(c,e,d,f){if(a.p.colModel[e].sortable&&!(a.p.savedRow.length>0)){if(!d){if(a.p.lastsort==e)if(a.p.sortorder=="asc")a.p.sortorder="desc";else{if(a.p.sortorder=="desc")a.p.sortorder="asc"}else a.p.sortorder= -a.p.colModel[e].firstsortorder||"asc";a.p.page=1}if(f){if(a.p.lastsort==e&&a.p.sortorder==f&&!d)return;a.p.sortorder=f}d=a.grid.headers[a.p.lastsort].el;f=a.grid.headers[e].el;b("span.ui-grid-ico-sort",d).addClass("ui-state-disabled");b(d).attr("aria-selected","false");b("span.ui-icon-"+a.p.sortorder,f).removeClass("ui-state-disabled");b(f).attr("aria-selected","true");if(!a.p.viewsortcols[0]&&a.p.lastsort!=e){b("span.s-ico",d).hide();b("span.s-ico",f).show()}c=c.substring(5+a.p.id.length+1);a.p.sortname= -a.p.colModel[e].index||c;d=a.p.sortorder;if(b(a).triggerHandler("jqGridSortCol",[c,e,d])==="stop")a.p.lastsort=e;else if(b.isFunction(a.p.onSortCol)&&a.p.onSortCol.call(a,c,e,d)=="stop")a.p.lastsort=e;else{if(a.p.datatype=="local")a.p.deselectAfterSort&&b(a).jqGrid("resetSelection");else{a.p.selrow=null;a.p.multiselect&&da(false);a.p.selarrrow=[];a.p.savedRow=[]}if(a.p.scroll){d=a.grid.bDiv.scrollLeft;N.call(a,true,false);a.grid.hDiv.scrollLeft=d}a.p.subGrid&&a.p.datatype=="local"&&b("td.sgexpanded", -"#"+b.jgrid.jqID(a.p.id)).each(function(){b(this).trigger("click")});I();a.p.lastsort=e;if(a.p.sortname!=c&&e)a.p.lastsort=e}}},oa=function(c){var e,d={},f=b.jgrid.cellWidth()?0:a.p.cellLayout;for(e=d[0]=d[1]=d[2]=0;e<=c;e++)a.p.colModel[e].hidden===false&&(d[0]=d[0]+(a.p.colModel[e].width+f));a.p.direction=="rtl"&&(d[0]=a.p.width-d[0]);d[0]=d[0]-a.grid.bDiv.scrollLeft;b(a.grid.cDiv).is(":visible")&&(d[1]=d[1]+(b(a.grid.cDiv).height()+parseInt(b(a.grid.cDiv).css("padding-top"),10)+parseInt(b(a.grid.cDiv).css("padding-bottom"), -10)));if(a.p.toolbar[0]===true&&(a.p.toolbar[1]=="top"||a.p.toolbar[1]=="both"))d[1]=d[1]+(b(a.grid.uDiv).height()+parseInt(b(a.grid.uDiv).css("border-top-width"),10)+parseInt(b(a.grid.uDiv).css("border-bottom-width"),10));a.p.toppager&&(d[1]=d[1]+(b(a.grid.topDiv).height()+parseInt(b(a.grid.topDiv).css("border-bottom-width"),10)));d[2]=d[2]+(b(a.grid.bDiv).height()+b(a.grid.hDiv).height());return d},ka=function(c){var d,e=a.grid.headers,f=b.jgrid.getCellIndex(c);for(d=0;d"),this.p.colModel.unshift({name:"cb",width:b.jgrid.cellWidth()?a.p.multiselectWidth+a.p.cellLayout:a.p.multiselectWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0}));this.p.rownumbers&&(this.p.colNames.unshift(""),this.p.colModel.unshift({name:"rn", -width:a.p.rownumWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0}));a.p.xmlReader=b.extend(!0,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:!0,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:!0,cell:"cell"}},a.p.xmlReader);a.p.jsonReader=b.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!0,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0, -cell:"cell"}},a.p.jsonReader);a.p.localReader=b.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!1,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},a.p.localReader);a.p.scroll&&(a.p.pgbuttons=!1,a.p.pginput=!1,a.p.rowList=[]);a.p.data.length&&S();var x="",la,L,ea,ba,fa,A,n,W;L=W="";if(!0===a.p.shrinkToFit&&!0===a.p.forceFit)for(e=a.p.colModel.length-1;0<=e;e--)if(!a.p.colModel[e].hidden){a.p.colModel[e].resizable= -!1;break}"horizontal"==a.p.viewsortcols[1]&&(W=" ui-i-asc",L=" ui-i-desc");la=k?"class='ui-th-div-ie'":"";W="");for(e=0;e",L=a.p.colModel[e].index||a.p.colModel[e].name,x+="
      "+a.p.colNames[e],a.p.colModel[e].width=a.p.colModel[e].width?parseInt(a.p.colModel[e].width,10):150,"boolean"!==typeof a.p.colModel[e].title&&(a.p.colModel[e].title=!0),L==a.p.sortname&&(a.p.lastsort=e),x+=W+"
      ";W=null;b(this).append(x+""); -b("thead tr:first th",this).hover(function(){b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")});if(this.p.multiselect){var ga=[],X;b("#cb_"+b.jgrid.jqID(a.p.id),this).bind("click",function(){a.p.selarrrow=[];var c=a.p.frozenColumns===true?a.p.id+"_frozen":"";if(this.checked){b(a.rows).each(function(d){if(d>0&&!b(this).hasClass("ui-subgrid")&&!b(this).hasClass("jqgroup")&&!b(this).hasClass("ui-state-disabled")){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(this.id))[a.p.useProp? -"prop":"attr"]("checked",true);b(this).addClass("ui-state-highlight").attr("aria-selected","true");a.p.selarrrow.push(this.id);a.p.selrow=this.id;if(c){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(this.id),a.grid.fbDiv)[a.p.useProp?"prop":"attr"]("checked",true);b("#"+b.jgrid.jqID(this.id),a.grid.fbDiv).addClass("ui-state-highlight")}}});X=true;ga=[]}else{b(a.rows).each(function(d){if(d>0&&!b(this).hasClass("ui-subgrid")&&!b(this).hasClass("ui-state-disabled")){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+ -b.jgrid.jqID(this.id))[a.p.useProp?"prop":"attr"]("checked",false);b(this).removeClass("ui-state-highlight").attr("aria-selected","false");ga.push(this.id);if(c){b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(this.id),a.grid.fbDiv)[a.p.useProp?"prop":"attr"]("checked",false);b("#"+b.jgrid.jqID(this.id),a.grid.fbDiv).removeClass("ui-state-highlight")}}});a.p.selrow=null;X=false}b(a).triggerHandler("jqGridSelectAll",[X?a.p.selarrrow:ga,X]);b.isFunction(a.p.onSelectAll)&&a.p.onSelectAll.call(a,X?a.p.selarrrow: -ga,X)})}!0===a.p.autowidth&&(x=b(m).innerWidth(),a.p.width=00){l=c.width-e*f-m;if(!isNaN(a.p.height)){l=l-i;k=true}d=0;b.each(a.p.colModel,function(b){if(this.hidden===false&&!this.fixed){this.width=j=Math.round(l*this.width/(a.p.tblwidth-e*f-m));d=d+j;g=b}});p=0;k?c.width-m-(d+e*f)!==i&&(p=c.width-m-(d+e*f)-i):!k&&Math.abs(c.width-m-(d+e*f))!==1&&(p=c.width-m-(d+e*f));a.p.colModel[g].width=a.p.colModel[g].width+p;a.p.tblwidth=d+p+e*f+m;if(a.p.tblwidth>a.p.width){a.p.colModel[g].width= -a.p.colModel[g].width-(a.p.tblwidth-parseInt(a.p.width,10));a.p.tblwidth=a.p.width}}})();b(m).css("width",c.width+"px").append("
       
      ");b(j).css("width",c.width+"px");var x=b("thead:first",a).get(0),R="";a.p.footerrow&&(R+="");var j=b("tr:first",x), -Y="";a.p.disableClick=!1;b("th",j).each(function(d){ea=a.p.colModel[d].width;if(typeof a.p.colModel[d].resizable==="undefined")a.p.colModel[d].resizable=true;if(a.p.colModel[d].resizable){ba=document.createElement("span");b(ba).html(" ").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+i);b.browser.opera||b(ba).css("cursor","col-resize");b(this).addClass(a.p.resizeclass)}else ba="";b(this).css("width",ea+"px").prepend(ba);var e="";if(a.p.colModel[d].hidden){b(this).css("display", -"none");e="display:none;"}Y=Y+("");c.headers[d]={width:ea,el:this};fa=a.p.colModel[d].sortable;if(typeof fa!=="boolean")fa=a.p.colModel[d].sortable=true;e=a.p.colModel[d].name;e=="cb"||e=="subgrid"||e=="rn"||a.p.viewsortcols[2]&&b(">div",this).addClass("ui-jqgrid-sortable");if(fa)if(a.p.viewsortcols[0]){b("div span.s-ico",this).show();d==a.p.lastsort&&b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}else if(d== -a.p.lastsort){b("div span.s-ico",this).show();b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}a.p.footerrow&&(R=R+(""))}).mousedown(function(d){if(b(d.target).closest("th>span.ui-jqgrid-resize").length==1){var e=ka(this);if(a.p.forceFit===true){var f=a.p,g=e,i;for(i=e+1;i
       
      ").append(x),D=a.p.caption&&!0===a.p.hiddengrid?!0:!1;e=b("
      ");x=null;c.hDiv=document.createElement("div");b(c.hDiv).css({width:c.width+"px"}).addClass("ui-state-default ui-jqgrid-hdiv").append(e);b(e).append(j);j=null;D&&b(c.hDiv).hide();a.p.pager&&("string"==typeof a.p.pager?"#"!=a.p.pager.substr(0,1)&&(a.p.pager="#"+a.p.pager): -a.p.pager="#"+b(a.p.pager).attr("id"),b(a.p.pager).css({width:c.width+"px"}).appendTo(m).addClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"),D&&b(a.p.pager).hide(),l(a.p.pager,""));!1===a.p.cellEdit&&!0===a.p.hoverrows&&b(a).bind("mouseover",function(a){n=b(a.target).closest("tr.jqgrow");b(n).attr("class")!=="ui-subgrid"&&b(n).addClass("ui-state-hover")}).bind("mouseout",function(a){n=b(a.target).closest("tr.jqgrow");b(n).removeClass("ui-state-hover")});var t,E,ha;b(a).before(c.hDiv).click(function(c){A= -c.target;n=b(A,a.rows).closest("tr.jqgrow");if(b(n).length===0||n[0].className.indexOf("ui-state-disabled")>-1||(b(A,a).closest("table.ui-jqgrid-btable").attr("id")||"").replace("_frozen","")!==a.id)return this;var d=b(A).hasClass("cbox"),e=b(a).triggerHandler("jqGridBeforeSelectRow",[n[0].id,c]);(e=e===false||e==="stop"?false:true)&&b.isFunction(a.p.beforeSelectRow)&&(e=a.p.beforeSelectRow.call(a,n[0].id,c));if(!(A.tagName=="A"||(A.tagName=="INPUT"||A.tagName=="TEXTAREA"||A.tagName=="OPTION"||A.tagName== -"SELECT")&&!d)&&e===true){t=n[0].id;E=b.jgrid.getCellIndex(A);ha=b(A).closest("td,th").html();b(a).triggerHandler("jqGridCellSelect",[t,E,ha,c]);b.isFunction(a.p.onCellSelect)&&a.p.onCellSelect.call(a,t,E,ha,c);if(a.p.cellEdit===true)if(a.p.multiselect&&d)b(a).jqGrid("setSelection",t,true,c);else{t=n[0].rowIndex;try{b(a).jqGrid("editCell",t,E,true)}catch(f){}}else if(a.p.multikey)if(c[a.p.multikey])b(a).jqGrid("setSelection",t,true,c);else{if(a.p.multiselect&&d){d=b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+ -t).is(":checked");b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+t)[a.p.useProp?"prop":"attr"]("checked",d)}}else{if(a.p.multiselect&&a.p.multiboxonly&&!d){var g=a.p.frozenColumns?a.p.id+"_frozen":"";b(a.p.selarrrow).each(function(c,d){var e=a.rows.namedItem(d);b(e).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+b.jgrid.jqID(d))[a.p.useProp?"prop":"attr"]("checked",false);if(g){b("#"+b.jgrid.jqID(d),"#"+b.jgrid.jqID(g)).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(a.p.id)+"_"+ -b.jgrid.jqID(d),"#"+b.jgrid.jqID(g))[a.p.useProp?"prop":"attr"]("checked",false)}});a.p.selarrrow=[]}b(a).jqGrid("setSelection",t,true,c)}}}).bind("reloadGrid",function(c,d){if(a.p.treeGrid===true)a.p.datatype=a.p.treedatatype;d&&d.current&&a.grid.selectionPreserver(a);if(a.p.datatype=="local"){b(a).jqGrid("resetSelection");a.p.data.length&&S()}else if(!a.p.treeGrid){a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];da(false)}a.p.savedRow=[]}a.p.scroll&&N.call(a,true,false);if(d&&d.page){var e= -d.page;if(e>a.p.lastpage)e=a.p.lastpage;e<1&&(e=1);a.p.page=e;a.grid.bDiv.scrollTop=a.grid.prevRowHeight?(e-1)*a.grid.prevRowHeight*a.p.rowNum:0}if(a.grid.prevRowHeight&&a.p.scroll){delete a.p.lastpage;a.grid.populateVisible()}else a.grid.populate();a.p._inlinenav===true&&b(a).jqGrid("showAddEditButtons");return false}).dblclick(function(c){A=c.target;n=b(A,a.rows).closest("tr.jqgrow");if(b(n).length!==0){t=n[0].rowIndex;E=b.jgrid.getCellIndex(A);b(a).triggerHandler("jqGridDblClickRow",[b(n).attr("id"), -t,E,c]);b.isFunction(this.p.ondblClickRow)&&a.p.ondblClickRow.call(a,b(n).attr("id"),t,E,c)}}).bind("contextmenu",function(c){A=c.target;n=b(A,a.rows).closest("tr.jqgrow");if(b(n).length!==0){a.p.multiselect||b(a).jqGrid("setSelection",n[0].id,true,c);t=n[0].rowIndex;E=b.jgrid.getCellIndex(A);b(a).triggerHandler("jqGridRightClickRow",[b(n).attr("id"),t,E,c]);b.isFunction(this.p.onRightClickRow)&&a.p.onRightClickRow.call(a,b(n).attr("id"),t,E,c)}});c.bDiv=document.createElement("div");k&&"auto"=== -(""+a.p.height).toLowerCase()&&(a.p.height="100%");b(c.bDiv).append(b('
      ').append("
      ").append(this)).addClass("ui-jqgrid-bdiv").css({height:a.p.height+(isNaN(a.p.height)?"":"px"),width:c.width+"px"}).scroll(c.scrollGrid);b("table:first",c.bDiv).css({width:a.p.tblwidth+"px"});k?(2==b("tbody",this).size()&&b("tbody:gt(0)",this).remove(),a.p.multikey&&b(c.bDiv).bind("selectstart",function(){return false})): -a.p.multikey&&b(c.bDiv).bind("mousedown",function(){return false});D&&b(c.bDiv).hide();c.cDiv=document.createElement("div");var ia=!0===a.p.hidegrid?b("").addClass("ui-jqgrid-titlebar-close HeaderButton").hover(function(){ia.addClass("ui-state-hover")},function(){ia.removeClass("ui-state-hover")}).append("").css("rtl"==i?"left":"right","0px"):"";b(c.cDiv).append(ia).append(""+a.p.caption+"").addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");b(c.cDiv).insertBefore(c.hDiv);a.p.toolbar[0]&&(c.uDiv=document.createElement("div"),"top"==a.p.toolbar[1]?b(c.uDiv).insertBefore(c.hDiv):"bottom"==a.p.toolbar[1]&&b(c.uDiv).insertAfter(c.hDiv),"both"==a.p.toolbar[1]?(c.ubDiv=document.createElement("div"),b(c.uDiv).insertBefore(c.hDiv).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id),b(c.ubDiv).insertAfter(c.hDiv).addClass("ui-userdata ui-state-default").attr("id", -"tb_"+this.id),D&&b(c.ubDiv).hide()):b(c.uDiv).width(c.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id),D&&b(c.uDiv).hide());a.p.toppager&&(a.p.toppager=b.jgrid.jqID(a.p.id)+"_toppager",c.topDiv=b("
      ")[0],a.p.toppager="#"+a.p.toppager,b(c.topDiv).insertBefore(c.hDiv).addClass("ui-state-default ui-jqgrid-toppager").width(c.width),l(a.p.toppager,"_t"));a.p.footerrow&&(c.sDiv=b("
      ")[0],e=b("
      "),b(c.sDiv).append(e).insertAfter(c.hDiv).width(c.width),b(e).append(R),c.footers=b(".ui-jqgrid-ftable",c.sDiv)[0].rows[0].cells,a.p.rownumbers&&(c.footers[0].className="ui-state-default jqgrid-rownum"),D&&b(c.sDiv).hide());e=null;if(a.p.caption){var pa=a.p.datatype;!0===a.p.hidegrid&&(b(".ui-jqgrid-titlebar-close",c.cDiv).click(function(d){var e=b.isFunction(a.p.onHeaderClick),f=".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-pager, .ui-jqgrid-sdiv",g,i=this;if(a.p.toolbar[0]=== -true){a.p.toolbar[1]=="both"&&(f=f+(", #"+b(c.ubDiv).attr("id")));f=f+(", #"+b(c.uDiv).attr("id"))}g=b(f,"#gview_"+b.jgrid.jqID(a.p.id)).length;a.p.gridstate=="visible"?b(f,"#gbox_"+b.jgrid.jqID(a.p.id)).slideUp("fast",function(){g--;if(g===0){b("span",i).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");a.p.gridstate="hidden";b("#gbox_"+b.jgrid.jqID(a.p.id)).hasClass("ui-resizable")&&b(".ui-resizable-handle","#gbox_"+b.jgrid.jqID(a.p.id)).hide();b(a).triggerHandler("jqGridHeaderClick", -[a.p.gridstate,d]);e&&(D||a.p.onHeaderClick.call(a,a.p.gridstate,d))}}):a.p.gridstate=="hidden"&&b(f,"#gbox_"+b.jgrid.jqID(a.p.id)).slideDown("fast",function(){g--;if(g===0){b("span",i).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");if(D){a.p.datatype=pa;I();D=false}a.p.gridstate="visible";b("#gbox_"+b.jgrid.jqID(a.p.id)).hasClass("ui-resizable")&&b(".ui-resizable-handle","#gbox_"+b.jgrid.jqID(a.p.id)).show();b(a).triggerHandler("jqGridHeaderClick",[a.p.gridstate,d]); -e&&(D||a.p.onHeaderClick.call(a,a.p.gridstate,d))}});return false}),D&&(a.p.datatype="local",b(".ui-jqgrid-titlebar-close",c.cDiv).trigger("click")))}else b(c.cDiv).hide();b(c.hDiv).after(c.bDiv).mousemove(function(a){if(c.resizing){c.dragMove(a);return false}});b(".ui-jqgrid-labels",c.hDiv).bind("selectstart",function(){return false});b(document).mouseup(function(){if(c.resizing){c.dragEnd();return false}return true});a.formatCol=p;a.sortData=ja;a.updatepager=function(c,d){var e,f,g,h,i,j,k,l="", -m=a.p.pager?"_"+b.jgrid.jqID(a.p.pager.substr(1)):"",n=a.p.toppager?"_"+a.p.toppager.substr(1):"";g=parseInt(a.p.page,10)-1;g<0&&(g=0);g=g*parseInt(a.p.rowNum,10);i=g+a.p.reccount;if(a.p.scroll){e=b("tbody:first > tr:gt(0)",a.grid.bDiv);g=i-e.length;a.p.reccount=e.length;if(f=e.outerHeight()||a.grid.prevRowHeight){e=g*f;f=parseInt(a.p.records,10)*f;b(">div:first",a.grid.bDiv).css({height:f}).children("div:first").css({height:e,display:e?"":"none"})}a.grid.bDiv.scrollLeft=a.grid.hDiv.scrollLeft}l= -a.p.pager?a.p.pager:"";if(l=l+(a.p.toppager?l?","+a.p.toppager:a.p.toppager:"")){k=b.jgrid.formatter.integer||{};e=o(a.p.page);f=o(a.p.lastpage);b(".selbox",l)[this.p.useProp?"prop":"attr"]("disabled",false);if(a.p.pginput===true){b(".ui-pg-input",l).val(a.p.page);h=a.p.toppager?"#sp_1"+m+",#sp_1"+n:"#sp_1"+m;b(h).html(b.fmatter?b.fmatter.util.NumberFormat(a.p.lastpage,k):a.p.lastpage)}if(a.p.viewrecords)if(a.p.reccount===0)b(".ui-paging-info",l).html(a.p.emptyrecords);else{h=g+1;j=a.p.records;if(b.fmatter){h= -b.fmatter.util.NumberFormat(h,k);i=b.fmatter.util.NumberFormat(i,k);j=b.fmatter.util.NumberFormat(j,k)}b(".ui-paging-info",l).html(b.jgrid.format(a.p.recordtext,h,i,j))}if(a.p.pgbuttons===true){e<=0&&(e=f=0);if(e==1||e===0){b("#first"+m+", #prev"+m).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#first_t"+n+", #prev_t"+n).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#first"+m+", #prev"+m).removeClass("ui-state-disabled");a.p.toppager&&b("#first_t"+ -n+", #prev_t"+n).removeClass("ui-state-disabled")}if(e==f||e===0){b("#next"+m+", #last"+m).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#next_t"+n+", #last_t"+n).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#next"+m+", #last"+m).removeClass("ui-state-disabled");a.p.toppager&&b("#next_t"+n+", #last_t"+n).removeClass("ui-state-disabled")}}}c===true&&a.p.rownumbers===true&&b("td.jqgrid-rownum",a.rows).each(function(a){b(this).html(g+1+a)});d&&a.p.jqgdnd&& -b(a).jqGrid("gridDnD","updateDnD");b(a).triggerHandler("jqGridGridComplete");b.isFunction(a.p.gridComplete)&&a.p.gridComplete.call(a);b(a).triggerHandler("jqGridAfterGridComplete")};a.refreshIndex=S;a.setHeadCheckBox=da;a.constructTr=J;a.formatter=function(a,b,c,d,e){return u(a,b,c,d,e)};b.extend(c,{populate:I,emptyRows:N});this.grid=c;a.addXmlData=function(b){$(b,a.grid.bDiv)};a.addJSONData=function(b){aa(b,a.grid.bDiv)};this.grid.cols=this.rows[0].cells;I();a.p.hiddengrid=!1;b(window).unload(function(){a= -null})}}}})};b.jgrid.extend({getGridParam:function(b){var e=this[0];return!e||!e.grid?void 0:b?"undefined"!=typeof e.p[b]?e.p[b]:null:e.p},setGridParam:function(f){return this.each(function(){this.grid&&"object"===typeof f&&b.extend(!0,this.p,f)})},getDataIDs:function(){var f=[],e=0,c,d=0;this.each(function(){if((c=this.rows.length)&&0=d+g?b(this.grid.bDiv)[0].scrollTop=i-(d+g)+h+g:i span:first",j).html(i).attr(h):b("td:eq("+a+")",j).html(i).attr(h))}),"local"==g.p.datatype){var m=b.jgrid.stripPref(g.p.idPrefix,f),o=g.p._index[m];if(g.p.treeGrid)for(var p in g.p.treeReader)k.hasOwnProperty(g.p.treeReader[p])&&delete k[g.p.treeReader[p]];"undefined"!=typeof o&&(g.p.data[o]=b.extend(!0,g.p.data[o],k));k=null}}catch(v){a= -!1}a&&("string"===l?b(j).addClass(c):"object"===l&&b(j).css(c),b(g).triggerHandler("jqGridAfterGridComplete"))});return a},addRowData:function(f,e,c,d){c||(c="last");var a=!1,h,g,i,j,l,k,m,o,p="",v,u,M,F,Z,U;e&&(b.isArray(e)?(v=!0,c="last",u=f):(e=[e],v=!1),this.each(function(){var V=e.length;l=this.p.rownumbers===true?1:0;i=this.p.multiselect===true?1:0;j=this.p.subGrid===true?1:0;if(!v)if(typeof f!="undefined")f=f+"";else{f=b.jgrid.randId();if(this.p.keyIndex!==false){u=this.p.colModel[this.p.keyIndex+ -i+j+l].name;typeof e[0][u]!="undefined"&&(f=e[0][u])}}M=this.p.altclass;for(var N=0,S="",J={},$=b.isFunction(this.p.afterInsertRow)?true:false;N0"}if(i){o=''; -p=this.formatCol(l,1,"",null,f,true);g[g.length]='"+o+""}j&&(g[g.length]=b(this).jqGrid("addSubGridCell",i+l,1));for(m=i+j+l;m"+o+""}g.unshift(this.constructTr(f,false,S,J,J));g[g.length]="";if(this.rows.length===0)b("table:first",this.grid.bDiv).append(g.join(""));else switch(c){case "last":b(this.rows[this.rows.length- -1]).after(g.join(""));k=this.rows.length-1;break;case "first":b(this.rows[0]).after(g.join(""));k=1;break;case "after":(k=this.rows.namedItem(d))&&(b(this.rows[k.rowIndex+1]).hasClass("ui-subgrid")?b(this.rows[k.rowIndex+1]).after(g):b(k).after(g.join("")));k++;break;case "before":if(k=this.rows.namedItem(d)){b(k).before(g.join(""));k=k.rowIndex}k--}this.p.subGrid===true&&b(this).jqGrid("addSubGrid",i+l,k);this.p.records++;this.p.reccount++;b(this).triggerHandler("jqGridAfterInsertRow",[f,F,F]);$&& -this.p.afterInsertRow.call(this,f,F,F);N++;if(this.p.datatype=="local"){J[this.p.localReader.id]=U;this.p._index[U]=this.p.data.length;this.p.data.push(J);J={}}}this.p.altRows===true&&!v&&(c=="last"?(this.rows.length-1)%2==1&&b(this.rows[this.rows.length-1]).addClass(M):b(this.rows).each(function(a){a%2==1?b(this).addClass(M):b(this).removeClass(M)}));this.updatepager(true,true);a=true}));return a},footerData:function(f,e,c){function d(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}var a, -h=!1,g={},i;"undefined"==typeof f&&(f="get");"boolean"!=typeof c&&(c=!0);f=f.toLowerCase();this.each(function(){var j=this,l;if(!j.grid||!j.p.footerrow||"set"==f&&d(e))return!1;h=!0;b(this.p.colModel).each(function(d){a=this.name;"set"==f?void 0!==e[a]&&(l=c?j.formatter("",e[a],d,e,"edit"):e[a],i=this.title?{title:b.jgrid.stripHtml(l)}:{},b("tr.footrow td:eq("+d+")",j.grid.sDiv).html(l).attr(i),h=!0):"get"==f&&(g[a]=b("tr.footrow td:eq("+d+")",j.grid.sDiv).html())})});return"get"==f?g:h},showHideCol:function(f, -e){return this.each(function(){var c=this,d=!1,a=b.jgrid.cellWidth()?0:c.p.cellLayout,h;if(c.grid){"string"===typeof f&&(f=[f]);e="none"!=e?"":"none";var g=""===e?!0:!1,i=c.p.groupHeader&&("object"===typeof c.p.groupHeader||b.isFunction(c.p.groupHeader));i&&b(c).jqGrid("destroyGroupHeader",!1);b(this.p.colModel).each(function(i){if(-1!==b.inArray(this.name,f)&&this.hidden===g){if(!0===c.p.frozenColumns&&!0===this.frozen)return!0;b("tr",c.grid.hDiv).each(function(){b(this.cells[i]).css("display",e)}); -b(c.rows).each(function(){b(this).hasClass("jqgroup")||b(this.cells[i]).css("display",e)});c.p.footerrow&&b("tr.footrow td:eq("+i+")",c.grid.sDiv).css("display",e);h=parseInt(this.width,10);c.p.tblwidth="none"===e?c.p.tblwidth-(h+a):c.p.tblwidth+(h+a);this.hidden=!g;d=!0;b(c).triggerHandler("jqGridShowHideCol",[g,this.name,i])}});!0===d&&(!0===c.p.shrinkToFit&&!isNaN(c.p.height)&&(c.p.tblwidth+=parseInt(c.p.scrollOffset,10)),b(c).jqGrid("setGridWidth",!0===c.p.shrinkToFit?c.p.tblwidth:c.p.width)); -i&&b(c).jqGrid("setGroupHeaders",c.p.groupHeader)}})},hideCol:function(f){return this.each(function(){b(this).jqGrid("showHideCol",f,"none")})},showCol:function(f){return this.each(function(){b(this).jqGrid("showHideCol",f,"")})},remapColumns:function(f,e,c){function d(a){var c;c=a.length?b.makeArray(a):b.extend({},a);b.each(f,function(b){a[b]=c[this]})}function a(a,c){b(">tr"+(c||""),a).each(function(){var a=this,c=b.makeArray(a.cells);b.each(f,function(){var b=c[this];b&&a.appendChild(b)})})}var h= -this.get(0);d(h.p.colModel);d(h.p.colNames);d(h.grid.headers);a(b("thead:first",h.grid.hDiv),c&&":not(.ui-jqgrid-labels)");e&&a(b("#"+b.jgrid.jqID(h.p.id)+" tbody:first"),".jqgfirstrow, tr.jqgrow, tr.jqfoot");h.p.footerrow&&a(b("tbody:first",h.grid.sDiv));h.p.remapColumns&&(h.p.remapColumns.length?d(h.p.remapColumns):h.p.remapColumns=b.makeArray(f));h.p.lastsort=b.inArray(h.p.lastsort,f);h.p.treeGrid&&(h.p.expColInd=b.inArray(h.p.expColInd,f));b(h).triggerHandler("jqGridRemapColumns",[f,e,c])},setGridWidth:function(f, -e){return this.each(function(){if(this.grid){var c=this,d,a=0,h=b.jgrid.cellWidth()?0:c.p.cellLayout,g,i=0,j=!1,l=c.p.scrollOffset,k,m=0,o=0,p;"boolean"!=typeof e&&(e=c.p.shrinkToFit);if(!isNaN(f)){f=parseInt(f,10);c.grid.width=c.p.width=f;b("#gbox_"+b.jgrid.jqID(c.p.id)).css("width",f+"px");b("#gview_"+b.jgrid.jqID(c.p.id)).css("width",f+"px");b(c.grid.bDiv).css("width",f+"px");b(c.grid.hDiv).css("width",f+"px");c.p.pager&&b(c.p.pager).css("width",f+"px");c.p.toppager&&b(c.p.toppager).css("width", -f+"px");!0===c.p.toolbar[0]&&(b(c.grid.uDiv).css("width",f+"px"),"both"==c.p.toolbar[1]&&b(c.grid.ubDiv).css("width",f+"px"));c.p.footerrow&&b(c.grid.sDiv).css("width",f+"px");!1===e&&!0===c.p.forceFit&&(c.p.forceFit=!1);if(!0===e){b.each(c.p.colModel,function(){if(this.hidden===false){d=this.widthOrg;a=a+(d+h);this.fixed?m=m+(d+h):i++;o++}});if(0===i)return;c.p.tblwidth=a;k=f-h*i-m;if(!isNaN(c.p.height)&&(b(c.grid.bDiv)[0].clientHeight -f?(j=c.p.tblwidth-parseInt(f,10),c.p.tblwidth=f,d=c.p.colModel[g].width-=j):d=c.p.colModel[g].width;c.grid.headers[g].width=d;c.grid.headers[g].el.style.width=d+"px";v&&(c.grid.cols[g].style.width=d+"px");c.p.footerrow&&(c.grid.footers[g].style.width=d+"px")}c.p.tblwidth&&(b("table:first",c.grid.bDiv).css("width",c.p.tblwidth+"px"),b("table:first",c.grid.hDiv).css("width",c.p.tblwidth+"px"),c.grid.hDiv.scrollLeft=c.grid.bDiv.scrollLeft,c.p.footerrow&&b("table:first",c.grid.sDiv).css("width",c.p.tblwidth+ -"px"))}}})},setGridHeight:function(f){return this.each(function(){if(this.grid){var e=b(this.grid.bDiv);e.css({height:f+(isNaN(f)?"":"px")});!0===this.p.frozenColumns&&b("#"+b.jgrid.jqID(this.p.id)+"_frozen").parent().height(e.height()-16);this.p.height=f;this.p.scroll&&this.grid.populateVisible()}})},setCaption:function(f){return this.each(function(){this.p.caption=f;b("span.ui-jqgrid-title, span.ui-jqgrid-title-rtl",this.grid.cDiv).html(f);b(this.grid.cDiv).show()})},setLabel:function(f,e,c,d){return this.each(function(){var a= --1;if(this.grid&&"undefined"!=typeof f&&(b(this.p.colModel).each(function(b){if(this.name==f)return a=b,!1}),0<=a)){var h=b("tr.ui-jqgrid-labels th:eq("+a+")",this.grid.hDiv);if(e){var g=b(".s-ico",h);b("[id^=jqgh_]",h).empty().html(e).append(g);this.p.colNames[a]=e}c&&("string"===typeof c?b(h).addClass(c):b(h).css(c));"object"===typeof d&&b(h).attr(d)}})},setCell:function(f,e,c,d,a,h){return this.each(function(){var g=-1,i,j;if(this.grid&&(isNaN(e)?b(this.p.colModel).each(function(a){if(this.name== -e)return g=a,!1}):g=parseInt(e,10),0<=g&&(i=this.rows.namedItem(f)))){var l=b("td:eq("+g+")",i);if(""!==c||!0===h)i=this.formatter(f,c,g,i,"edit"),j=this.p.colModel[g].title?{title:b.jgrid.stripHtml(i)}:{},this.p.treeGrid&&0a,d=a+"",e=b.decimalSeparator?b.decimalSeparator:".",g;if(c.fmatter.isNumber(b.decimalPlaces)){var h=b.decimalPlaces,d=Math.pow(10, -h),d=Math.round(a*d)/d+"";g=d.lastIndexOf(".");if(0g?(d+=e,g=d.length-1):"."!==e&&(d=d.replace(".",e));for(;d.length-1-gi&&(b[g]=i+1)),"F"==a[g]&&(i=c.inArray(b[g],k.i18n.monthNames),-1!==i&&11=i?h.y=1900+h.y:0<=i&&69>=i&&(h.y=2E3+h.y);i=new Date(h.y,h.m,h.d,h.h,h.i,h.s,h.u)}f in d.masks?f=d.masks[f]: -f||(f="Y-m-d");a=i.getHours();b=i.getMinutes();h=i.getDate();g=i.getMonth()+1;j=i.getTimezoneOffset();var l=i.getSeconds(),r=i.getMilliseconds(),n=i.getDay(),m=i.getFullYear(),o=(n+6)%7+1,p=(new Date(m,g-1,h)-new Date(m,0,1))/864E5,q={d:e(h),D:k.i18n.dayNames[n],j:h,l:k.i18n.dayNames[n+7],N:o,S:d.S(h),w:n,z:p,W:5>o?Math.floor((p+o-1)/7)+1:Math.floor((p+o-1)/7)||(4>((new Date(m-1,0,1)).getDay()+6)%7?53:52),F:k.i18n.monthNames[g-1+12],m:e(g),M:k.i18n.monthNames[g-1],n:g,t:"?",L:"?",o:"?",Y:m,y:(""+ -m).substring(2),a:12>a?d.AmPm[0]:d.AmPm[1],A:12>a?d.AmPm[2]:d.AmPm[3],B:"?",g:a%12||12,G:a,h:e(a%12||12),H:e(a),i:e(b),s:e(l),u:r,e:"?",I:"?",O:(0'+a+"
      "};c.fn.fmatter.checkbox=function(a,b){var f=c.extend({},b.checkbox),d;void 0!==b.colModel&&!c.fmatter.isUndefined(b.colModel.formatoptions)&&(f=c.extend({},f,b.colModel.formatoptions));d=!0===f.disabled?'disabled="disabled"': -"";if(c.fmatter.isEmpty(a)||c.fmatter.isUndefined(a))a=c.fn.fmatter.defaultFormat(a,f);a=(a+"").toLowerCase();return'a.search(/(false|0|no|off)/i)?" checked='checked' ":"")+' value="'+a+'" offval="no" '+d+"/>"};c.fn.fmatter.link=function(a,b){var f={target:b.target},d="";void 0!==b.colModel&&!c.fmatter.isUndefined(b.colModel.formatoptions)&&(f=c.extend({},f,b.colModel.formatoptions));f.target&&(d="target="+f.target);return!c.fmatter.isEmpty(a)?"'+ -a+"":c.fn.fmatter.defaultFormat(a,b)};c.fn.fmatter.showlink=function(a,b){var f={baseLinkUrl:b.baseLinkUrl,showAction:b.showAction,addParam:b.addParam||"",target:b.target,idName:b.idName},d="";void 0!==b.colModel&&!c.fmatter.isUndefined(b.colModel.formatoptions)&&(f=c.extend({},f,b.colModel.formatoptions));f.target&&(d="target="+f.target);f=f.baseLinkUrl+f.showAction+"?"+f.idName+"="+b.rowId+f.addParam;return c.fmatter.isString(a)||c.fmatter.isNumber(a)?"'+a+"":c.fn.fmatter.defaultFormat(a, -b)};c.fn.fmatter.integer=function(a,b){var f=c.extend({},b.integer);void 0!==b.colModel&&!c.fmatter.isUndefined(b.colModel.formatoptions)&&(f=c.extend({},f,b.colModel.formatoptions));return c.fmatter.isEmpty(a)?f.defaultValue:c.fmatter.util.NumberFormat(a,f)};c.fn.fmatter.number=function(a,b){var f=c.extend({},b.number);void 0!==b.colModel&&!c.fmatter.isUndefined(b.colModel.formatoptions)&&(f=c.extend({},f,b.colModel.formatoptions));return c.fmatter.isEmpty(a)?f.defaultValue:c.fmatter.util.NumberFormat(a, -f)};c.fn.fmatter.currency=function(a,b){var f=c.extend({},b.currency);void 0!==b.colModel&&!c.fmatter.isUndefined(b.colModel.formatoptions)&&(f=c.extend({},f,b.colModel.formatoptions));return c.fmatter.isEmpty(a)?f.defaultValue:c.fmatter.util.NumberFormat(a,f)};c.fn.fmatter.date=function(a,b,f,d){f=c.extend({},b.date);void 0!==b.colModel&&!c.fmatter.isUndefined(b.colModel.formatoptions)&&(f=c.extend({},f,b.colModel.formatoptions));return!f.reformatAfterEdit&&"edit"==d||c.fmatter.isEmpty(a)?c.fn.fmatter.defaultFormat(a, -b):c.fmatter.util.DateFormat(f.srcformat,a,f.newformat,f)};c.fn.fmatter.select=function(a,b){var a=a+"",f=!1,d=[],e,g;c.fmatter.isUndefined(b.colModel.formatoptions)?c.fmatter.isUndefined(b.colModel.editoptions)||(f=b.colModel.editoptions.value,e=void 0===b.colModel.editoptions.separator?":":b.colModel.editoptions.separator,g=void 0===b.colModel.editoptions.delimiter?";":b.colModel.editoptions.delimiter):(f=b.colModel.formatoptions.value,e=void 0===b.colModel.formatoptions.separator?":":b.colModel.formatoptions.separator, -g=void 0===b.colModel.formatoptions.delimiter?";":b.colModel.formatoptions.delimiter);if(f){var h=!0===b.colModel.editoptions.multiple?!0:!1,i=[];h&&(i=a.split(","),i=c.map(i,function(a){return c.trim(a)}));if(c.fmatter.isString(f))for(var j=f.split(g),k=0,l=0;l0)return a}).join(e)),h)-1"):f.editbutton&&(g="onclick=jQuery.fn.fmatter.rowactions('"+d+"','"+b.gid+"','edit',"+b.pos+"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover') ",e=e+"
      "); -f.delbutton&&(g="onclick=jQuery.fn.fmatter.rowactions('"+d+"','"+b.gid+"','del',"+b.pos+"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); ",e=e+"
      ");g="onclick=jQuery.fn.fmatter.rowactions('"+d+"','"+b.gid+"','save',"+b.pos+"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); "; -e=e+"";g="onclick=jQuery.fn.fmatter.rowactions('"+d+"','"+b.gid+"','cancel',"+b.pos+"); onmouseover=jQuery(this).addClass('ui-state-hover'); onmouseout=jQuery(this).removeClass('ui-state-hover'); ";e=e+""; -return"
      "+e+"
      "};c.unformat=function(a,b,f,d){var e,g=b.colModel.formatter,h=b.colModel.formatoptions||{},i=/([\.\*\_\'\(\)\{\}\+\?\\])/g,j=b.colModel.unformat||c.fn.fmatter[g]&&c.fn.fmatter[g].unformat;if("undefined"!==typeof j&&c.isFunction(j))e=j.call(this,c(a).text(),b,a);else if(!c.fmatter.isUndefined(g)&&c.fmatter.isString(g))switch(e=c.jgrid.formatter||{},g){case "integer":h=c.extend({},e.integer,h);b=h.thousandsSeparator.replace(i,"\\$1");b=RegExp(b,"g"); -e=c(a).text().replace(b,"");break;case "number":h=c.extend({},e.number,h);b=h.thousandsSeparator.replace(i,"\\$1");b=RegExp(b,"g");e=c(a).text().replace(b,"").replace(h.decimalSeparator,".");break;case "currency":h=c.extend({},e.currency,h);b=h.thousandsSeparator.replace(i,"\\$1");b=RegExp(b,"g");e=c(a).text();h.prefix&&h.prefix.length&&(e=e.substr(h.prefix.length));h.suffix&&h.suffix.length&&(e=e.substr(0,e.length-h.suffix.length));e=e.replace(b,"").replace(h.decimalSeparator,".");break;case "checkbox":h= -b.colModel.editoptions?b.colModel.editoptions.value.split(":"):["Yes","No"];e=c("input",a).is(":checked")?h[0]:h[1];break;case "select":e=c.unformat.select(a,b,f,d);break;case "actions":return"";default:e=c(a).text()}return void 0!==e?e:!0===d?c(a).text():c.jgrid.htmlDecode(c(a).html())};c.unformat.select=function(a,b,f,d){f=[];a=c(a).text();if(!0===d)return a;var d=c.extend({},!c.fmatter.isUndefined(b.colModel.formatoptions)?b.colModel.formatoptions:b.colModel.editoptions),b=void 0===d.separator? -":":d.separator,e=void 0===d.delimiter?";":d.delimiter;if(d.value){var g=d.value,d=!0===d.multiple?!0:!1,h=[];d&&(h=a.split(","),h=c.map(h,function(a){return c.trim(a)}));if(c.fmatter.isString(g))for(var i=g.split(e),j=0,k=0;k0)return a}).join(b)),d)-1"),g;a.each(c.p.colModel,function(){var i=this,j,q,f,n;q=a("");j=a("
      ");!0===this.hidden&& -a(q).css("display","none");this.search=!1===this.search?!1:!0;"undefined"==typeof this.stype&&(this.stype="text");f=a.extend({},this.searchoptions||{});if(this.search)switch(this.stype){case "select":if(n=this.surl||f.dataUrl)a.ajax(a.extend({url:n,dataType:"html",success:function(c){if(f.buildSelect!==void 0)(c=f.buildSelect(c))&&a(j).append(c);else a(j).append(c);f.defaultValue!==void 0&&a("select",j).val(f.defaultValue);a("select",j).attr({name:i.index||i.name,id:"gs_"+i.name});f.attr&&a("select", -j).attr(f.attr);a("select",j).css({width:"100%"});f.dataInit!==void 0&&f.dataInit(a("select",j)[0]);f.dataEvents!==void 0&&d(a("select",j)[0],f.dataEvents);b.autosearch===true&&a("select",j).change(function(){e();return false});c=null}},a.jgrid.ajaxOptions,c.p.ajaxSelectOptions||{}));else{var m,o,k;i.searchoptions?(m=void 0===i.searchoptions.value?"":i.searchoptions.value,o=void 0===i.searchoptions.separator?":":i.searchoptions.separator,k=void 0===i.searchoptions.delimiter?";":i.searchoptions.delimiter): -i.editoptions&&(m=void 0===i.editoptions.value?"":i.editoptions.value,o=void 0===i.editoptions.separator?":":i.editoptions.separator,k=void 0===i.editoptions.delimiter?";":i.editoptions.delimiter);if(m){n=document.createElement("select");n.style.width="100%";a(n).attr({name:i.index||i.name,id:"gs_"+i.name});var l;if("string"===typeof m){m=m.split(k);for(var p=0;p"), -f.attr&&a("input",j).attr(f.attr),void 0!==f.dataInit&&f.dataInit(a("input",j)[0]),void 0!==f.dataEvents&&d(a("input",j)[0],f.dataEvents),!0===b.autosearch&&(b.searchOnEnter?a("input",j).keypress(function(a){if((a.charCode?a.charCode:a.keyCode?a.keyCode:0)==13){e();return false}return this}):a("input",j).keydown(function(a){switch(a.which){case 13:return false;case 9:case 16:case 37:case 38:case 39:case 40:case 27:break;default:g&&clearTimeout(g);g=setTimeout(function(){e()},500)}}))}a(q).append(j); -a(h).append(q)});a("table thead",c.grid.hDiv).append(h);this.ftoolbar=!0;this.triggerToolbar=e;this.clearToolbar=function(d){var j={},g=0,f,d="boolean"!=typeof d?!0:d;a.each(c.p.colModel,function(){var b;this.searchoptions&&void 0!==this.searchoptions.defaultValue&&(b=this.searchoptions.defaultValue);f=this.index||this.name;switch(this.stype){case "select":a("#gs_"+a.jgrid.jqID(this.name)+" option",!0===this.frozen&&!0===c.p.frozenColumns?c.grid.fhDiv:c.grid.hDiv).each(function(c){if(c===0)this.selected= -true;if(a(this).val()==b){this.selected=true;return false}});if(void 0!==b)j[f]=b,g++;else try{delete c.p.postData[f]}catch(d){}break;case "text":if(a("#gs_"+a.jgrid.jqID(this.name),!0===this.frozen&&!0===c.p.frozenColumns?c.grid.fhDiv:c.grid.hDiv).val(b),void 0!==b)j[f]=b,g++;else try{delete c.p.postData[f]}catch(e){}}});var h=0",{role:"rowheader"}).addClass("ui-jqgrid-labels");h=c.headers;c=0;for(e=h.length;c",{role:"row", -"aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):l.empty();var p,r=function(a,b){for(var c=0,d=b.length;c",{role:"rowheader"}).addClass("ui-jqgrid-labels jqg-third-row-header");for(d=0;d",{role:"gridcell"}).css(g).addClass("ui-first-th-"+this.p.direction).appendTo(l),i.style.width="", -g=r(c.name,b.groupHeaders),0<=g){g=b.groupHeaders[g];e=g.numberOfColumns;q=g.titleText;for(g=c=0;g").attr({role:"columnheader"}).addClass("ui-state-default ui-th-column-header ui-th-"+this.p.direction).css({height:"22px","border-top":"0px none"}).html(q);0",{role:"columnheader"}).addClass("ui-state-default ui-th-column-header ui-th-"+ -this.p.direction).css({display:c.hidden?"none":"","border-top":"0px none"}).insertBefore(j),h.append(i)):(h.append(i),e--);f=a(this).children("thead");f.prepend(l);h.insertAfter(k);o.append(f);b.useColSpanStyle&&(o.find("span.ui-jqgrid-resize").each(function(){var b=a(this).parent();b.is(":visible")&&(this.style.cssText="height: "+b.height()+"px !important; cursor: col-resize;")}),o.find("div.ui-jqgrid-sortable").each(function(){var b=a(this),c=b.parent();c.is(":visible")&&c.is(":has(span.ui-jqgrid-resize)")&& -b.css("top",(c.height()-b.outerHeight())/2+"px")}));p=f.find("tr.jqg-first-row-header");a(this).bind("jqGridResizeStop.setGroupHeaders",function(a,b,c){p.find("th").eq(c).width(b)})})},setFrozenColumns:function(){return this.each(function(){if(this.grid){var b=this,d=b.p.colModel,c=0,e=d.length,h=-1,g=!1;if(!(!0===b.p.subGrid||!0===b.p.treeGrid||!0===b.p.cellEdit||b.p.sortable||b.p.scroll||b.p.grouping)){b.p.rownumbers&&c++;for(b.p.multiselect&&c++;c');b.grid.fbDiv=a('
      '); -a("#gview_"+a.jgrid.jqID(b.p.id)).append(b.grid.fhDiv);d=a(".ui-jqgrid-htable","#gview_"+a.jgrid.jqID(b.p.id)).clone(!0);if(b.p.groupHeader){a("tr.jqg-first-row-header, tr.jqg-third-row-header",d).each(function(){a("th:gt("+h+")",this).remove()});var i=-1,j=-1;a("tr.jqg-second-row-header th",d).each(function(){var b=parseInt(a(this).attr("colspan"),10);b&&(i+=b,j++);if(i===h)return!1});i!==h&&(j=h);a("tr.jqg-second-row-header",d).each(function(){a("th:gt("+j+")",this).remove()})}else a("tr",d).each(function(){a("th:gt("+ -h+")",this).remove()});a(d).width(1);a(b.grid.fhDiv).append(d).mousemove(function(a){if(b.grid.resizing)return b.grid.dragMove(a),!1});a(b).bind("jqGridResizeStop.setFrozenColumns",function(c,d,e){c=a(".ui-jqgrid-htable",b.grid.fhDiv);a("th:eq("+e+")",c).width(d);c=a(".ui-jqgrid-btable",b.grid.fbDiv);a("tr:first td:eq("+e+")",c).width(d)});a(b).bind("jqGridOnSortCol.setFrozenColumns",function(c,d){var e=a("tr.ui-jqgrid-labels:last th:eq("+b.p.lastsort+")",b.grid.fhDiv),g=a("tr.ui-jqgrid-labels:last th:eq("+ -d+")",b.grid.fhDiv);a("span.ui-grid-ico-sort",e).addClass("ui-state-disabled");a(e).attr("aria-selected","false");a("span.ui-icon-"+b.p.sortorder,g).removeClass("ui-state-disabled");a(g).attr("aria-selected","true");!b.p.viewsortcols[0]&&b.p.lastsort!=d&&(a("span.s-ico",e).hide(),a("span.s-ico",g).show())});a("#gview_"+a.jgrid.jqID(b.p.id)).append(b.grid.fbDiv);jQuery(b.grid.bDiv).scroll(function(){jQuery(b.grid.fbDiv).scrollTop(jQuery(this).scrollTop())});!0===b.p.hoverrows&&a("#"+a.jgrid.jqID(b.p.id)).unbind("mouseover").unbind("mouseout"); -a(b).bind("jqGridAfterGridComplete.setFrozenColumns",function(){a("#"+a.jgrid.jqID(b.p.id)+"_frozen").remove();jQuery(b.grid.fbDiv).height(jQuery(b.grid.bDiv).height()-16);var c=a("#"+a.jgrid.jqID(b.p.id)).clone(!0);a("tr",c).each(function(){a("td:gt("+h+")",this).remove()});a(c).width(1).attr("id",b.p.id+"_frozen");a(b.grid.fbDiv).append(c);!0===b.p.hoverrows&&(a("tr.jqgrow",c).hover(function(){a(this).addClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)).addClass("ui-state-hover")}, -function(){a(this).removeClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)).removeClass("ui-state-hover")}),a("tr.jqgrow","#"+a.jgrid.jqID(b.p.id)).hover(function(){a(this).addClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)+"_frozen").addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover");a("#"+a.jgrid.jqID(this.id),"#"+a.jgrid.jqID(b.p.id)+"_frozen").removeClass("ui-state-hover")}));c=null});b.p.frozenColumns=!0}}}})}, -destroyFrozenColumns:function(){return this.each(function(){if(this.grid&&!0===this.p.frozenColumns){a(this.grid.fhDiv).remove();a(this.grid.fbDiv).remove();this.grid.fhDiv=null;this.grid.fbDiv=null;a(this).unbind(".setFrozenColumns");if(!0===this.p.hoverrows){var b;a("#"+a.jgrid.jqID(this.p.id)).bind("mouseover",function(d){b=a(d.target).closest("tr.jqgrow");"ui-subgrid"!==a(b).attr("class")&&a(b).addClass("ui-state-hover")}).bind("mouseout",function(d){b=a(d.target).closest("tr.jqgrow");a(b).removeClass("ui-state-hover")})}this.p.frozenColumns= -!1}})}})})(jQuery); -(function(a){a.extend(a.jgrid,{showModal:function(a){a.w.show()},closeModal:function(a){a.w.hide().attr("aria-hidden","true");a.o&&a.o.remove()},hideModal:function(d,b){b=a.extend({jqm:!0,gb:""},b||{});if(b.onClose){var c=b.onClose(d);if("boolean"==typeof c&&!c)return}if(a.fn.jqm&&!0===b.jqm)a(d).attr("aria-hidden","true").jqmHide();else{if(""!==b.gb)try{a(".jqgrid-overlay:first",b.gb).hide()}catch(f){}a(d).hide().attr("aria-hidden","true")}},findPos:function(a){var b=0,c=0;if(a.offsetParent){do b+= -a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent)}return[b,c]},createModal:function(d,b,c,f,g,h,i){var e=document.createElement("div"),l,j=this,i=a.extend({},i||{});l="rtl"==a(c.gbox).attr("dir")?!0:!1;e.className="ui-widget ui-widget-content ui-corner-all ui-jqdialog";e.id=d.themodal;var k=document.createElement("div");k.className="ui-jqdialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix";k.id=d.modalhead;a(k).append(""+c.caption+"");var n=a("").hover(function(){n.addClass("ui-state-hover")}, -function(){n.removeClass("ui-state-hover")}).append("");a(k).append(n);l?(e.dir="rtl",a(".ui-jqdialog-title",k).css("float","right"),a(".ui-jqdialog-titlebar-close",k).css("left","0.3em")):(e.dir="ltr",a(".ui-jqdialog-title",k).css("float","left"),a(".ui-jqdialog-titlebar-close",k).css("right","0.3em"));var m=document.createElement("div");a(m).addClass("ui-jqdialog-content ui-widget-content").attr("id",d.modalcontent);a(m).append(b);e.appendChild(m); -a(e).prepend(k);!0===h?a("body").append(e):"string"==typeof h?a(h).append(e):a(e).insertBefore(f);a(e).css(i);"undefined"===typeof c.jqModal&&(c.jqModal=!0);b={};if(a.fn.jqm&&!0===c.jqModal)0===c.left&&(0===c.top&&c.overlay)&&(i=[],i=a.jgrid.findPos(g),c.left=i[0]+4,c.top=i[1]+4),b.top=c.top+"px",b.left=c.left;else if(0!==c.left||0!==c.top)b.left=c.left,b.top=c.top+"px";a("a.ui-jqdialog-titlebar-close",k).click(function(){var b=a("#"+a.jgrid.jqID(d.themodal)).data("onClose")||c.onClose,e=a("#"+a.jgrid.jqID(d.themodal)).data("gbox")|| -c.gbox;j.hideModal("#"+a.jgrid.jqID(d.themodal),{gb:e,jqm:c.jqModal,onClose:b});return false});if(0===c.width||!c.width)c.width=300;if(0===c.height||!c.height)c.height=200;c.zIndex||(f=a(f).parents("*[role=dialog]").filter(":first").css("z-index"),c.zIndex=f?parseInt(f,10)+2:950);f=0;l&&(b.left&&!h)&&(f=a(c.gbox).width()-(!isNaN(c.width)?parseInt(c.width,10):0)-8,b.left=parseInt(b.left,10)+parseInt(f,10));b.left&&(b.left+="px");a(e).css(a.extend({width:isNaN(c.width)?"auto":c.width+"px",height:isNaN(c.height)? -"auto":c.height+"px",zIndex:c.zIndex,overflow:"hidden"},b)).attr({tabIndex:"-1",role:"dialog","aria-labelledby":d.modalhead,"aria-hidden":"true"});"undefined"==typeof c.drag&&(c.drag=!0);"undefined"==typeof c.resize&&(c.resize=!0);if(c.drag)if(a(k).css("cursor","move"),a.fn.jqDrag)a(e).jqDrag(k);else try{a(e).draggable({handle:a("#"+a.jgrid.jqID(k.id))})}catch(o){}if(c.resize)if(a.fn.jqResize)a(e).append("
      "), -a("#"+a.jgrid.jqID(d.themodal)).jqResize(".jqResize",d.scrollelm?"#"+a.jgrid.jqID(d.scrollelm):!1);else try{a(e).resizable({handles:"se, sw",alsoResize:d.scrollelm?"#"+a.jgrid.jqID(d.scrollelm):!1})}catch(p){}!0===c.closeOnEscape&&a(e).keydown(function(b){if(b.which==27){b=a("#"+a.jgrid.jqID(d.themodal)).data("onClose")||c.onClose;j.hideModal(this,{gb:c.gbox,jqm:c.jqModal,onClose:b})}})},viewModal:function(d,b){b=a.extend({toTop:!0,overlay:10,modal:!1,overlayClass:"ui-widget-overlay",onShow:a.jgrid.showModal, -onHide:a.jgrid.closeModal,gbox:"",jqm:!0,jqM:!0},b||{});if(a.fn.jqm&&!0===b.jqm)b.jqM?a(d).attr("aria-hidden","false").jqm(b).jqmShow():a(d).attr("aria-hidden","false").jqmShow();else{""!==b.gbox&&(a(".jqgrid-overlay:first",b.gbox).show(),a(d).data("gbox",b.gbox));a(d).show().attr("aria-hidden","false");try{a(":input:visible",d)[0].focus()}catch(c){}}},info_dialog:function(d,b,c,f){var g={width:290,height:"auto",dataheight:"auto",drag:!0,resize:!1,caption:""+d+"",left:250,top:170,zIndex:1E3, -jqModal:!0,modal:!1,closeOnEscape:!0,align:"center",buttonalign:"center",buttons:[]};a.extend(g,f||{});var h=g.jqModal,i=this;a.fn.jqm&&!h&&(h=!1);d="";if(0"+g.buttons[f].text+"";f=isNaN(g.dataheight)?g.dataheight:g.dataheight+"px";b="
      "+("
      "+b+"
      ");b+=c?"
      "+c+""+d+"
      ":""!==d?"
      "+ -d+"
      ":"";b+="
      ";try{"false"==a("#info_dialog").attr("aria-hidden")&&a.jgrid.hideModal("#info_dialog",{jqm:h}),a("#info_dialog").remove()}catch(e){}a.jgrid.createModal({themodal:"info_dialog",modalhead:"info_head",modalcontent:"info_content",scrollelm:"infocnt"},b,g,"","",!0);d&&a.each(g.buttons,function(b){a("#"+a.jgrid.jqID(this.id),"#info_id").bind("click",function(){g.buttons[b].onClick.call(a("#info_dialog"));return!1})});a("#closedialog","#info_id").click(function(){i.hideModal("#info_dialog", -{jqm:h});return!1});a(".fm-button","#info_dialog").hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")});a.isFunction(g.beforeOpen)&&g.beforeOpen();a.jgrid.viewModal("#info_dialog",{onHide:function(a){a.w.hide().remove();a.o&&a.o.remove()},modal:g.modal,jqm:h});a.isFunction(g.afterOpen)&&g.afterOpen();try{a("#info_dialog").focus()}catch(l){}},createEl:function(d,b,c,f,g){function h(b,d){a.isFunction(d.dataInit)&&d.dataInit.call(l,b);d.dataEvents&& -a.each(d.dataEvents,function(){void 0!==this.data?a(b).bind(this.type,this.data,this.fn):a(b).bind(this.type,this.fn)});return d}function i(b,d,c){var e="dataInit dataEvents dataUrl buildSelect sopt searchhidden defaultValue attr".split(" ");"undefined"!=typeof c&&a.isArray(c)&&a.merge(e,c);a.each(d,function(d,c){-1===a.inArray(d,e)&&a(b).attr(d,c)});d.hasOwnProperty("id")||a(b).attr("id",a.jgrid.randId())}var e="",l=this;switch(d){case "textarea":e=document.createElement("textarea");f?b.cols||a(e).css({width:"98%"}): -b.cols||(b.cols=20);b.rows||(b.rows=2);if(" "==c||" "==c||1==c.length&&160==c.charCodeAt(0))c="";e.value=c;i(e,b);b=h(e,b);a(e).attr({role:"textbox",multiline:"true"});break;case "checkbox":e=document.createElement("input");e.type="checkbox";b.value?(d=b.value.split(":"),c===d[0]&&(e.checked=!0,e.defaultChecked=!0),e.value=d[0],a(e).attr("offval",d[1])):(d=c.toLowerCase(),0>d.search(/(false|0|no|off|undefined)/i)&&""!==d?(e.checked=!0,e.defaultChecked=!0,e.value=c):e.value="on",a(e).attr("offval", -"off"));i(e,b,["value"]);b=h(e,b);a(e).attr("role","checkbox");break;case "select":e=document.createElement("select");e.setAttribute("role","select");f=[];!0===b.multiple?(d=!0,e.multiple="multiple",a(e).attr("aria-multiselectable","true")):d=!1;if("undefined"!=typeof b.dataUrl)a.ajax(a.extend({url:b.dataUrl,type:"GET",dataType:"html",context:{elem:e,options:b,vl:c},success:function(d){var b=[],c=this.elem,e=this.vl,f=a.extend({},this.options),g=f.multiple===true;a.isFunction(f.buildSelect)&&(d=f.buildSelect.call(l, -d));if(d=a(d).html()){a(c).append(d);i(c,f);f=h(c,f);if(typeof f.size==="undefined")f.size=g?3:1;if(g){b=e.split(",");b=a.map(b,function(b){return a.trim(b)})}else b[0]=a.trim(e);setTimeout(function(){a("option",c).each(function(d){if(d===0&&c.multiple)this.selected=false;a(this).attr("role","option");if(a.inArray(a.trim(a(this).text()),b)>-1||a.inArray(a.trim(a(this).val()),b)>-1)this.selected="selected"})},0)}}},g||{}));else if(b.value){var j;"undefined"===typeof b.size&&(b.size=d?3:1);d&&(f=c.split(","), -f=a.map(f,function(b){return a.trim(b)}));"function"===typeof b.value&&(b.value=b.value());var k,n,m=void 0===b.separator?":":b.separator,g=void 0===b.delimiter?";":b.delimiter;if("string"===typeof b.value){k=b.value.split(g);for(j=0;j0)return a}).join(m));g=document.createElement("option");g.setAttribute("role","option");g.value=n[0];g.innerHTML=n[1];e.appendChild(g);if(!d&&(a.trim(n[0])==a.trim(c)||a.trim(n[1])==a.trim(c)))g.selected= -"selected";if(d&&(-1l.length||(1>c[a[i]]||12l.length||1>c[a[h]]||31(0===c[a[f]]%4&&(0!==c[a[f]]%100||0===c[a[f]]%400)?29:28)||c[a[h]]>e[c[a[i]]]?!1:!0},isEmpty:function(a){return a.match(/^\s+$/)||""===a?!0:!1},checkTime:function(d){var b=/^(\d{1,2}):(\d{2})([ap]m)?$/;if(!a.jgrid.isEmpty(d))if(d=d.match(b)){if(d[3]){if(1>d[1]||12parseFloat(h.maxValue))return[!1,i+": "+a.jgrid.edit.msg.maxValue+" "+h.maxValue,""];if(!0===h.email&&!(!1===f&&a.jgrid.isEmpty(d))&&(g=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, -!g.test(d)))return[!1,i+": "+a.jgrid.edit.msg.email,""];if(!0===h.integer&&!(!1===f&&a.jgrid.isEmpty(d))&&(isNaN(d)||0!==d%1||-1!=d.indexOf(".")))return[!1,i+": "+a.jgrid.edit.msg.integer,""];if(!0===h.date&&!(!1===f&&a.jgrid.isEmpty(d))&&(b=c.p.colModel[b].formatoptions&&c.p.colModel[b].formatoptions.newformat?c.p.colModel[b].formatoptions.newformat:c.p.colModel[b].datefmt||"Y-m-d",!a.jgrid.checkDate(b,d)))return[!1,i+": "+a.jgrid.edit.msg.date+" - "+b,""];if(!0===h.time&&!(!1===f&&a.jgrid.isEmpty(d))&& -!a.jgrid.checkTime(d))return[!1,i+": "+a.jgrid.edit.msg.date+" - hh:mm (am/pm)",""];if(!0===h.url&&!(!1===f&&a.jgrid.isEmpty(d))&&(g=/^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i,!g.test(d)))return[!1,i+": "+a.jgrid.edit.msg.url,""];if(!0===h.custom&&!(!1===f&&a.jgrid.isEmpty(d)))return a.isFunction(h.custom_func)?(d=h.custom_func.call(c,d,i),a.isArray(d)?d:[!1,a.jgrid.edit.msg.customarray,""]):[!1,a.jgrid.edit.msg.customfcheck, -""]}return[!0,"",""]}})})(jQuery); -(function(a){var c={};a.jgrid.extend({searchGrid:function(c){c=a.extend({recreateFilter:!1,drag:!0,sField:"searchField",sValue:"searchString",sOper:"searchOper",sFilter:"filters",loadDefaults:!0,beforeShowSearch:null,afterShowSearch:null,onInitializeSearch:null,afterRedraw:null,afterChange:null,closeAfterSearch:!1,closeAfterReset:!1,closeOnEscape:!1,searchOnEnter:!1,multipleSearch:!1,multipleGroup:!1,top:0,left:0,jqModal:!0,modal:!1,resize:!0,width:450,height:"auto",dataheight:"auto",showQuery:!1, -errorcheck:!0,sopt:null,stringResult:void 0,onClose:null,onSearch:null,onReset:null,toTop:!0,overlay:30,columns:[],tmplNames:null,tmplFilters:null,tmplLabel:" Template: ",showOnLoad:!1,layer:null},a.jgrid.search,c||{});return this.each(function(){function d(b){r=a(e).triggerHandler("jqGridFilterBeforeShow",[b]);"undefined"===typeof r&&(r=!0);r&&a.isFunction(c.beforeShowSearch)&&(r=c.beforeShowSearch.call(e,b));r&&(a.jgrid.viewModal("#"+a.jgrid.jqID(t.themodal),{gbox:"#gbox_"+a.jgrid.jqID(l),jqm:c.jqModal, -modal:c.modal,overlay:c.overlay,toTop:c.toTop}),a(e).triggerHandler("jqGridFilterAfterShow",[b]),a.isFunction(c.afterShowSearch)&&c.afterShowSearch.call(e,b))}var e=this;if(e.grid){var l="fbox_"+e.p.id,r=!0,t={themodal:"searchmod"+l,modalhead:"searchhd"+l,modalcontent:"searchcnt"+l,scrollelm:l},s=e.p.postData[c.sFilter];"string"===typeof s&&(s=a.jgrid.parse(s));!0===c.recreateFilter&&a("#"+a.jgrid.jqID(t.themodal)).remove();if(null!==a("#"+a.jgrid.jqID(t.themodal)).html())d(a("#fbox_"+a.jgrid.jqID(+e.p.id))); -else{var p=a("
      ").insertBefore("#gview_"+a.jgrid.jqID(e.p.id)),g="left",f="";"rtl"==e.p.direction&&(g="right",f=" style='text-align:left'",p.attr("dir","rtl"));var n=a.extend([],e.p.colModel),w=""+c.Find+"",b=""+ -c.Reset+"",m="",h="",k,j=!1,o=-1;c.showQuery&&(m="Query");c.columns.length?n=c.columns:a.each(n,function(a,b){if(!b.label)b.label=e.p.colNames[a];if(!j){var c=typeof b.search==="undefined"?true:b.search,d=b.hidden===true;if(b.searchoptions&&b.searchoptions.searchhidden===true&&c||c&&!d){j=true;k=b.index||b.name;o=a}}});if(!s&&k||!1=== -c.multipleSearch){var y="eq";0<=o&&n[o].searchoptions&&n[o].searchoptions.sopt?y=n[o].searchoptions.sopt[0]:c.sopt&&c.sopt.length&&(y=c.sopt[0]);s={groupOp:"AND",rules:[{field:k,op:y,data:""}]}}j=!1;c.tmplNames&&c.tmplNames.length&&(j=!0,h=c.tmplLabel,h+="");g="

      "+b+h+""+m+w+"
      ";l=a.jgrid.jqID(l);a("#"+l).jqFilter({columns:n,filter:c.loadDefaults?s:null,showQuery:c.showQuery,errorcheck:c.errorcheck,sopt:c.sopt,groupButton:c.multipleGroup,ruleButtons:c.multipleSearch,afterRedraw:c.afterRedraw,_gridsopt:a.jgrid.search.odata,ajaxSelectOptions:e.p.ajaxSelectOptions, -groupOps:c.groupOps,onChange:function(){this.p.showQuery&&a(".query",this).html(this.toUserFriendlyString());a.isFunction(c.afterChange)&&c.afterChange.call(e,a("#"+l),c)},direction:e.p.direction});p.append(g);j&&(c.tmplFilters&&c.tmplFilters.length)&&a(".ui-template",p).bind("change",function(){var b=a(this).val();b=="default"?a("#"+l).jqFilter("addFilter",s):a("#"+l).jqFilter("addFilter",c.tmplFilters[parseInt(b,10)]);return false});!0===c.multipleGroup&&(c.multipleSearch=!0);a(e).triggerHandler("jqGridFilterInitialize", -[a("#"+l)]);a.isFunction(c.onInitializeSearch)&&c.onInitializeSearch.call(e,a("#"+l));c.gbox="#gbox_"+l;c.layer?a.jgrid.createModal(t,p,c,"#gview_"+a.jgrid.jqID(e.p.id),a("#gbox_"+a.jgrid.jqID(e.p.id))[0],"#"+a.jgrid.jqID(c.layer),{position:"relative"}):a.jgrid.createModal(t,p,c,"#gview_"+a.jgrid.jqID(e.p.id),a("#gbox_"+a.jgrid.jqID(e.p.id))[0]);(c.searchOnEnter||c.closeOnEscape)&&a("#"+a.jgrid.jqID(t.themodal)).keydown(function(b){var d=a(b.target);if(c.searchOnEnter&&b.which===13&&!d.hasClass("add-group")&& -!d.hasClass("add-rule")&&!d.hasClass("delete-group")&&!d.hasClass("delete-rule")&&(!d.hasClass("fm-button")||!d.is("[id$=_query]"))){a("#"+l+"_search").focus().click();return false}if(c.closeOnEscape&&b.which===27){a("#"+a.jgrid.jqID(t.modalhead)).find(".ui-jqdialog-titlebar-close").focus().click();return false}});m&&a("#"+l+"_query").bind("click",function(){a(".queryresult",p).toggle();return false});void 0===c.stringResult&&(c.stringResult=c.multipleSearch);a("#"+l+"_search").bind("click",function(){var b= -a("#"+l),d={},h,q=b.jqFilter("filterData");if(c.errorcheck){b[0].hideError();c.showQuery||b.jqFilter("toSQLString");if(b[0].p.error){b[0].showError();return false}}if(c.stringResult){try{h=xmlJsonClass.toJson(q,"","",false)}catch(f){try{h=JSON.stringify(q)}catch(g){}}if(typeof h==="string"){d[c.sFilter]=h;a.each([c.sField,c.sValue,c.sOper],function(){d[this]=""})}}else if(c.multipleSearch){d[c.sFilter]=q;a.each([c.sField,c.sValue,c.sOper],function(){d[this]=""})}else{d[c.sField]=q.rules[0].field; -d[c.sValue]=q.rules[0].data;d[c.sOper]=q.rules[0].op;d[c.sFilter]=""}e.p.search=true;a.extend(e.p.postData,d);a(e).triggerHandler("jqGridFilterSearch");a.isFunction(c.onSearch)&&c.onSearch.call(e);a(e).trigger("reloadGrid",[{page:1}]);c.closeAfterSearch&&a.jgrid.hideModal("#"+a.jgrid.jqID(t.themodal),{gb:"#gbox_"+a.jgrid.jqID(e.p.id),jqm:c.jqModal,onClose:c.onClose});return false});a("#"+l+"_reset").bind("click",function(){var b={},d=a("#"+l);e.p.search=false;c.multipleSearch===false?b[c.sField]= -b[c.sValue]=b[c.sOper]="":b[c.sFilter]="";d[0].resetFilter();j&&a(".ui-template",p).val("default");a.extend(e.p.postData,b);a(e).triggerHandler("jqGridFilterReset");a.isFunction(c.onReset)&&c.onReset.call(e);a(e).trigger("reloadGrid",[{page:1}]);return false});d(a("#"+l));a(".fm-button:not(.ui-state-disabled)",p).hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")})}}})},editGridRow:function(u,d){d=a.extend({top:0,left:0,width:300,height:"auto",dataheight:"auto", -modal:!1,overlay:30,drag:!0,resize:!0,url:null,mtype:"POST",clearAfterAdd:!0,closeAfterEdit:!1,reloadAfterSubmit:!0,onInitializeForm:null,beforeInitData:null,beforeShowForm:null,afterShowForm:null,beforeSubmit:null,afterSubmit:null,onclickSubmit:null,afterComplete:null,onclickPgButtons:null,afterclickPgButtons:null,editData:{},recreateForm:!1,jqModal:!0,closeOnEscape:!1,addedrow:"first",topinfo:"",bottominfo:"",saveicon:[],closeicon:[],savekey:[!1,13],navkeys:[!1,38,40],checkOnSubmit:!1,checkOnUpdate:!1, -_savedData:{},processing:!1,onClose:null,ajaxEditOptions:{},serializeEditData:null,viewPagerButtons:!0},a.jgrid.edit,d||{});c[a(this)[0].p.id]=d;return this.each(function(){function e(){a(j+" > tbody > tr > td > .FormElement").each(function(){var d=a(".customelement",this);if(d.length){var c=a(d[0]).attr("name");a.each(b.p.colModel,function(){if(this.name===c&&this.editoptions&&a.isFunction(this.editoptions.custom_value)){try{if(i[c]=this.editoptions.custom_value.call(b,a("#"+a.jgrid.jqID(c),j),"get"), -void 0===i[c])throw"e1";}catch(d){"e1"===d?a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+a.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose):a.jgrid.info_dialog(jQuery.jgrid.errors.errcap,d.message,jQuery.jgrid.edit.bClose)}return!0}})}else{switch(a(this).get(0).type){case "checkbox":a(this).is(":checked")?i[this.name]=a(this).val():(d=a(this).attr("offval"),i[this.name]=d);break;case "select-one":i[this.name]=a("option:selected",this).val();B[this.name]=a("option:selected", -this).text();break;case "select-multiple":i[this.name]=a(this).val();i[this.name]=i[this.name]?i[this.name].join(","):"";var e=[];a("option:selected",this).each(function(b,d){e[b]=a(d).text()});B[this.name]=e.join(",");break;case "password":case "text":case "textarea":case "button":i[this.name]=a(this).val()}b.p.autoencode&&(i[this.name]=a.jgrid.htmlEncode(i[this.name]))}});return!0}function l(d,e,h,q){var i,f,g,k=0,j,o,l,p=[],n=!1,u="",m;for(m=1;m<=q;m++)u+="  "; -"_empty"!=d&&(n=a(e).jqGrid("getInd",d));a(e.p.colModel).each(function(m){i=this.name;o=(f=this.editrules&&!0===this.editrules.edithidden?!1:!0===this.hidden?!0:!1)?"style='display:none'":"";if("cb"!==i&&"subgrid"!==i&&!0===this.editable&&"rn"!==i){if(!1===n)j="";else if(i==e.p.ExpandColumn&&!0===e.p.treeGrid)j=a("td:eq("+m+")",e.rows[n]).text();else{try{j=a.unformat.call(e,a("td:eq("+m+")",e.rows[n]),{rowId:d,colModel:this},m)}catch(r){j=this.edittype&&"textarea"==this.edittype?a("td:eq("+m+")", -e.rows[n]).text():a("td:eq("+m+")",e.rows[n]).html()}if(!j||" "==j||" "==j||1==j.length&&160==j.charCodeAt(0))j=""}var v=a.extend({},this.editoptions||{},{id:i,name:i}),s=a.extend({},{elmprefix:"",elmsuffix:"",rowabove:!1,rowcontent:""},this.formoptions||{}),t=parseInt(s.rowpos,10)||k+1,y=parseInt(2*(parseInt(s.colpos,10)||1),10);"_empty"==d&&v.defaultValue&&(j=a.isFunction(v.defaultValue)?v.defaultValue.call(b):v.defaultValue);this.edittype||(this.edittype="text");b.p.autoencode&&(j=a.jgrid.htmlDecode(j)); -l=a.jgrid.createEl.call(b,this.edittype,v,j,!1,a.extend({},a.jgrid.ajaxOptions,e.p.ajaxSelectOptions||{}));""===j&&"checkbox"==this.edittype&&(j=a(l).attr("offval"));""===j&&"select"==this.edittype&&(j=a("option:eq(0)",l).text());if(c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)c[b.p.id]._savedData[i]=j;a(l).addClass("FormElement");("text"==this.edittype||"textarea"==this.edittype)&&a(l).addClass("ui-widget-content ui-corner-all");g=a(h).find("tr[rowpos="+t+"]");s.rowabove&&(v=a(""+s.rowcontent+""),a(h).append(v),v[0].rp=t);0===g.length&&(g=a("").addClass("FormData").attr("id","tr_"+i),a(g).append(u),a(h).append(g),g[0].rp=t);a("td:eq("+(y-2)+")",g[0]).html("undefined"===typeof s.label?e.p.colNames[m]:s.label);a("td:eq("+(y-1)+")",g[0]).append(s.elmprefix).append(l).append(s.elmsuffix);p[k]=m;k++}});if(0
      ").append(G).append(k);a.jgrid.createModal(o, -k,d,"#gview_"+a.jgrid.jqID(b.p.id),a("#gbox_"+a.jgrid.jqID(b.p.id))[0]);x&&(a("#pData, #nData",j+"_2").css("float","right"),a(".EditButton",j+"_2").css("text-align","left"));c[b.p.id].topinfo&&a(".tinfo",j).show();c[b.p.id].bottominfo&&a(".binfo",j+"_2").show();k=k=null;a("#"+a.jgrid.jqID(o.themodal)).keydown(function(e){var f=e.target;if(a("#"+h).data("disabled")===true)return false;if(c[b.p.id].savekey[0]===true&&e.which==c[b.p.id].savekey[1]&&f.tagName!="TEXTAREA"){a("#sData",j+"_2").trigger("click"); -return false}if(e.which===27){if(!g())return false;N&&a.jgrid.hideModal(this,{gb:d.gbox,jqm:d.jqModal,onClose:c[b.p.id].onClose});return false}if(c[b.p.id].navkeys[0]===true){if(a("#id_g",j).val()=="_empty")return true;if(e.which==c[b.p.id].navkeys[1]){a("#pData",j+"_2").trigger("click");return false}if(e.which==c[b.p.id].navkeys[2]){a("#nData",j+"_2").trigger("click");return false}}});d.checkOnUpdate&&(a("a.ui-jqdialog-titlebar-close span","#"+a.jgrid.jqID(o.themodal)).removeClass("jqmClose"),a("a.ui-jqdialog-titlebar-close", -"#"+a.jgrid.jqID(o.themodal)).unbind("click").click(function(){if(!g())return false;a.jgrid.hideModal("#"+a.jgrid.jqID(o.themodal),{gb:"#gbox_"+a.jgrid.jqID(m),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false}));d.saveicon=a.extend([!0,"left","ui-icon-disk"],d.saveicon);d.closeicon=a.extend([!0,"left","ui-icon-close"],d.closeicon);!0===d.saveicon[0]&&a("#sData",j+"_2").addClass("right"==d.saveicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("");!0===d.closeicon[0]&&a("#cData",j+"_2").addClass("right"==d.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("");if(c[b.p.id].checkOnSubmit||c[b.p.id].checkOnUpdate)J=""+d.bYes+"",D=""+d.bNo+"",K=""+ -d.bExit+"",k=d.zIndex||999,k++,a("
      "+d.saveData+"

      "+J+D+K+"
      ").insertAfter("#"+h),a("#sNew","#"+a.jgrid.jqID(o.themodal)).click(function(){s(); -a("#"+h).data("disabled",false);a(".confirm","#"+a.jgrid.jqID(o.themodal)).hide();return false}),a("#nNew","#"+a.jgrid.jqID(o.themodal)).click(function(){a(".confirm","#"+a.jgrid.jqID(o.themodal)).hide();a("#"+h).data("disabled",false);setTimeout(function(){a(":input","#"+h)[0].focus()},0);return false}),a("#cNew","#"+a.jgrid.jqID(o.themodal)).click(function(){a(".confirm","#"+a.jgrid.jqID(o.themodal)).hide();a("#"+h).data("disabled",false);a.jgrid.hideModal("#"+a.jgrid.jqID(o.themodal),{gb:"#gbox_"+ -a.jgrid.jqID(m),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false});a(b).triggerHandler("jqGridAddEditInitializeForm",[a("#"+h),z]);E&&E.call(b,a("#"+h));"_empty"==u||!c[b.p.id].viewPagerButtons?a("#pData,#nData",j+"_2").hide():a("#pData,#nData",j+"_2").show();a(b).triggerHandler("jqGridAddEditBeforeShowForm",[a("#"+h),z]);y&&y.call(b,a("#"+h));a("#"+a.jgrid.jqID(o.themodal)).data("onClose",c[b.p.id].onClose);a.jgrid.viewModal("#"+a.jgrid.jqID(o.themodal),{gbox:"#gbox_"+a.jgrid.jqID(m),jqm:d.jqModal, -overlay:d.overlay,modal:d.modal});I||a(".jqmOverlay").click(function(){if(!g())return false;a.jgrid.hideModal("#"+a.jgrid.jqID(o.themodal),{gb:"#gbox_"+a.jgrid.jqID(m),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false});a(b).triggerHandler("jqGridAddEditAfterShowForm",[a("#"+h),z]);A&&A.call(b,a("#"+h));a(".fm-button","#"+a.jgrid.jqID(o.themodal)).hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")});a("#sData",j+"_2").click(function(){i={};B= -{};a("#FormError",j).hide();e();if(i[b.p.id+"_id"]=="_empty")s();else if(d.checkOnSubmit===true){F=a.extend({},i,B);if(M=p(F,c[b.p.id]._savedData)){a("#"+h).data("disabled",true);a(".confirm","#"+a.jgrid.jqID(o.themodal)).show()}else s()}else s();return false});a("#cData",j+"_2").click(function(){if(!g())return false;a.jgrid.hideModal("#"+a.jgrid.jqID(o.themodal),{gb:"#gbox_"+a.jgrid.jqID(m),jqm:d.jqModal,onClose:c[b.p.id].onClose});return false});a("#nData",j+"_2").click(function(){if(!g())return false; -a("#FormError",j).hide();var c=w();c[0]=parseInt(c[0],10);if(c[0]!=-1&&c[1][c[0]+1]){a(b).triggerHandler("jqGridAddEditClickPgButtons",["next",a("#"+h),c[1][c[0]]]);a.isFunction(d.onclickPgButtons)&&d.onclickPgButtons.call(b,"next",a("#"+h),c[1][c[0]]);r(c[1][c[0]+1],b,h);a(b).jqGrid("setSelection",c[1][c[0]+1]);a(b).triggerHandler("jqGridAddEditAfterClickPgButtons",["next",a("#"+h),c[1][c[0]]]);a.isFunction(d.afterclickPgButtons)&&d.afterclickPgButtons.call(b,"next",a("#"+h),c[1][c[0]+1]);n(c[0]+ -1,c[1].length-1)}return false});a("#pData",j+"_2").click(function(){if(!g())return false;a("#FormError",j).hide();var c=w();if(c[0]!=-1&&c[1][c[0]-1]){a(b).triggerHandler("jqGridAddEditClickPgButtons",["prev",a("#"+h),c[1][c[0]]]);a.isFunction(d.onclickPgButtons)&&d.onclickPgButtons.call(b,"prev",a("#"+h),c[1][c[0]]);r(c[1][c[0]-1],b,h);a(b).jqGrid("setSelection",c[1][c[0]-1]);a(b).triggerHandler("jqGridAddEditAfterClickPgButtons",["prev",a("#"+h),c[1][c[0]]]);a.isFunction(d.afterclickPgButtons)&& -d.afterclickPgButtons.call(b,"prev",a("#"+h),c[1][c[0]-1]);n(c[0]-1,c[1].length-1)}return false})}y=w();n(y[0],y[1].length-1)}})},viewGridRow:function(c,d){d=a.extend({top:0,left:0,width:0,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,jqModal:!0,closeOnEscape:!1,labelswidth:"30%",closeicon:[],navkeys:[!1,38,40],onClose:null,beforeShowForm:null,beforeInitData:null,viewPagerButtons:!0},a.jgrid.view,d||{});return this.each(function(){function e(){(!0===d.closeOnEscape||!0===d.navkeys[0])&& -setTimeout(function(){a(".ui-jqdialog-titlebar-close","#"+a.jgrid.jqID(m.modalhead)).focus()},0)}function l(b,c,e,f){for(var g,h,k,j=0,o,m,l=[],n=!1,p="  ",u="",s=["integer","number","currency"],r=0,t=0,y,x,w,A=1;A<=f;A++)u+=1==A?p:"  "; -a(c.p.colModel).each(function(){h=this.editrules&&!0===this.editrules.edithidden?!1:!0===this.hidden?!0:!1;!h&&"right"===this.align&&(this.formatter&&-1!==a.inArray(this.formatter,s)?r=Math.max(r,parseInt(this.width,10)):t=Math.max(t,parseInt(this.width,10)))});y=0!==r?r:0!==t?t:0;n=a(c).jqGrid("getInd",b);a(c.p.colModel).each(function(b){g=this.name;x=!1;m=(h=this.editrules&&!0===this.editrules.edithidden?!1:!0===this.hidden?!0:!1)?"style='display:none'":"";w="boolean"!=typeof this.viewable?!0:this.viewable; -if("cb"!==g&&"subgrid"!==g&&"rn"!==g&&w){o=!1===n?"":g==c.p.ExpandColumn&&!0===c.p.treeGrid?a("td:eq("+b+")",c.rows[n]).text():a("td:eq("+b+")",c.rows[n]).html();x="right"===this.align&&0!==y?!0:!1;a.extend({},this.editoptions||{},{id:g,name:g});var d=a.extend({},{rowabove:!1,rowcontent:""},this.formoptions||{}),q=parseInt(d.rowpos,10)||j+1,p=parseInt(2*(parseInt(d.colpos,10)||1),10);if(d.rowabove){var r=a(""+d.rowcontent+"");a(e).append(r); -r[0].rp=q}k=a(e).find("tr[rowpos="+q+"]");0===k.length&&(k=a("").addClass("FormData").attr("id","trv_"+g),a(k).append(u),a(e).append(k),k[0].rp=q);a("td:eq("+(p-2)+")",k[0]).html(""+("undefined"===typeof d.label?c.p.colNames[b]:d.label)+"");a("td:eq("+(p-1)+")",k[0]).append(""+o+"").attr("id","v_"+g);x&&a("td:eq("+(p-1)+") span",k[0]).css({"text-align":"right",width:y+"px"});l[j]=b;j++}});0
      ").append(w).append("
      "+y+"
      ");a.jgrid.createModal(m,w,d,"#gview_"+a.jgrid.jqID(p.p.id),a("#gview_"+a.jgrid.jqID(p.p.id))[0]);b&&(a("#pData, #nData","#"+n+"_2").css("float","right"),a(".EditButton","#"+n+"_2").css("text-align","left"));d.viewPagerButtons||a("#pData, #nData","#"+n+"_2").hide();w=null;a("#"+m.themodal).keydown(function(b){if(b.which===27){E&&a.jgrid.hideModal(this,{gb:d.gbox,jqm:d.jqModal,onClose:d.onClose});return false}if(d.navkeys[0]=== -true){if(b.which===d.navkeys[1]){a("#pData","#"+n+"_2").trigger("click");return false}if(b.which===d.navkeys[2]){a("#nData","#"+n+"_2").trigger("click");return false}}});d.closeicon=a.extend([!0,"left","ui-icon-close"],d.closeicon);!0===d.closeicon[0]&&a("#cData","#"+n+"_2").addClass("right"==d.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("");a.isFunction(d.beforeShowForm)&&d.beforeShowForm.call(p,a("#"+f));a.jgrid.viewModal("#"+ -a.jgrid.jqID(m.themodal),{gbox:"#gbox_"+a.jgrid.jqID(g),jqm:d.jqModal,modal:d.modal});a(".fm-button:not(.ui-state-disabled)","#"+n+"_2").hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")});e();a("#cData","#"+n+"_2").click(function(){a.jgrid.hideModal("#"+a.jgrid.jqID(m.themodal),{gb:"#gbox_"+a.jgrid.jqID(g),jqm:d.jqModal,onClose:d.onClose});return false});a("#nData","#"+n+"_2").click(function(){a("#FormError","#"+n).hide();var b=s();b[0]=parseInt(b[0], -10);if(b[0]!=-1&&b[1][b[0]+1]){a.isFunction(d.onclickPgButtons)&&d.onclickPgButtons.call(p,"next",a("#"+f),b[1][b[0]]);r(b[1][b[0]+1],p);a(p).jqGrid("setSelection",b[1][b[0]+1]);a.isFunction(d.afterclickPgButtons)&&d.afterclickPgButtons.call(p,"next",a("#"+f),b[1][b[0]+1]);t(b[0]+1,b[1].length-1)}e();return false});a("#pData","#"+n+"_2").click(function(){a("#FormError","#"+n).hide();var b=s();if(b[0]!=-1&&b[1][b[0]-1]){a.isFunction(d.onclickPgButtons)&&d.onclickPgButtons.call(p,"prev",a("#"+f),b[1][b[0]]); -r(b[1][b[0]-1],p);a(p).jqGrid("setSelection",b[1][b[0]-1]);a.isFunction(d.afterclickPgButtons)&&d.afterclickPgButtons.call(p,"prev",a("#"+f),b[1][b[0]-1]);t(b[0]-1,b[1].length-1)}e();return false})}w=s();t(w[0],w[1].length-1)}})},delGridRow:function(u,d){d=a.extend({top:0,left:0,width:240,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:"",mtype:"POST",reloadAfterSubmit:!0,beforeShowForm:null,beforeInitData:null,afterShowForm:null,beforeSubmit:null,onclickSubmit:null,afterSubmit:null, -jqModal:!0,closeOnEscape:!1,delData:{},delicon:[],cancelicon:[],onClose:null,ajaxDelOptions:{},processing:!1,serializeDelData:null,useDataProxy:!1},a.jgrid.del,d||{});c[a(this)[0].p.id]=d;return this.each(function(){var e=this;if(e.grid&&u){var l=a.isFunction(c[e.p.id].beforeShowForm),r=a.isFunction(c[e.p.id].afterShowForm),t=a.isFunction(c[e.p.id].beforeInitData)?c[e.p.id].beforeInitData:!1,s=e.p.id,p={},g=!0,f="DelTbl_"+a.jgrid.jqID(s),n,w,b,m,h="DelTbl_"+s,k={themodal:"delmod"+s,modalhead:"delhd"+ -s,modalcontent:"delcnt"+s,scrollelm:f};jQuery.isArray(u)&&(u=u.join());if(null!==a("#"+a.jgrid.jqID(k.themodal)).html()){t&&(g=t.call(e,a("#"+f)),"undefined"==typeof g&&(g=!0));if(!1===g)return;a("#DelData>td","#"+f).text(u);a("#DelError","#"+f).hide();!0===c[e.p.id].processing&&(c[e.p.id].processing=!1,a("#dData","#"+f).removeClass("ui-state-active"));l&&c[e.p.id].beforeShowForm.call(e,a("#"+f));a.jgrid.viewModal("#"+a.jgrid.jqID(k.themodal),{gbox:"#gbox_"+a.jgrid.jqID(s),jqm:c[e.p.id].jqModal,jqM:!1, -overlay:c[e.p.id].overlay,modal:c[e.p.id].modal})}else{var j=isNaN(c[e.p.id].dataheight)?c[e.p.id].dataheight:c[e.p.id].dataheight+"px",h="
      "+(""),h=h+('"), -h=h+"
      '+c[e.p.id].msg+"
       
      "+("

      "+(""+d.bSubmit+"")+" "+(""+d.bCancel+"")+"
      ");d.gbox="#gbox_"+ -a.jgrid.jqID(s);a.jgrid.createModal(k,h,d,"#gview_"+a.jgrid.jqID(e.p.id),a("#gview_"+a.jgrid.jqID(e.p.id))[0]);t&&(g=t.call(e,a("#"+f)),"undefined"==typeof g&&(g=!0));if(!1===g)return;a(".fm-button","#"+f+"_2").hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")});d.delicon=a.extend([!0,"left","ui-icon-scissors"],c[e.p.id].delicon);d.cancelicon=a.extend([!0,"left","ui-icon-cancel"],c[e.p.id].cancelicon);!0===d.delicon[0]&&a("#dData","#"+f+"_2").addClass("right"== -d.delicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("");!0===d.cancelicon[0]&&a("#eData","#"+f+"_2").addClass("right"==d.cancelicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("");a("#dData","#"+f+"_2").click(function(){var g=[true,""];p={};var h=a("#DelData>td","#"+f).text();a.isFunction(c[e.p.id].onclickSubmit)&&(p=c[e.p.id].onclickSubmit.call(e,c[e.p.id],h)||{});a.isFunction(c[e.p.id].beforeSubmit)&& -(g=c[e.p.id].beforeSubmit.call(e,h));if(g[0]&&!c[e.p.id].processing){c[e.p.id].processing=true;b=e.p.prmNames;n=a.extend({},c[e.p.id].delData,p);m=b.oper;n[m]=b.deloper;w=b.id;h=(""+h).split(",");if(!h.length)return false;for(var j in h)h.hasOwnProperty(j)&&(h[j]=a.jgrid.stripPref(e.p.idPrefix,h[j]));n[w]=h.join();a(this).addClass("ui-state-active");j=a.extend({url:c[e.p.id].url?c[e.p.id].url:a(e).jqGrid("getGridParam","editurl"),type:c[e.p.id].mtype,data:a.isFunction(c[e.p.id].serializeDelData)? -c[e.p.id].serializeDelData.call(e,n):n,complete:function(b,j){if(j!="success"){g[0]=false;g[1]=a.isFunction(c[e.p.id].errorTextFormat)?c[e.p.id].errorTextFormat.call(e,b):j+" Status: '"+b.statusText+"'. Error code: "+b.status}else a.isFunction(c[e.p.id].afterSubmit)&&(g=c[e.p.id].afterSubmit.call(e,b,n));if(g[0]===false){a("#DelError>td","#"+f).html(g[1]);a("#DelError","#"+f).show()}else{if(c[e.p.id].reloadAfterSubmit&&e.p.datatype!="local")a(e).trigger("reloadGrid");else{if(e.p.treeGrid===true)try{a(e).jqGrid("delTreeNode", -e.p.idPrefix+h[0])}catch(m){}else for(var l=0;ltd","#"+f).html(g[1]); -a("#DelError","#"+f).show()}return false});a("#eData","#"+f+"_2").click(function(){a.jgrid.hideModal("#"+a.jgrid.jqID(k.themodal),{gb:"#gbox_"+a.jgrid.jqID(s),jqm:c[e.p.id].jqModal,onClose:c[e.p.id].onClose});return false});l&&c[e.p.id].beforeShowForm.call(e,a("#"+f));a.jgrid.viewModal("#"+a.jgrid.jqID(k.themodal),{gbox:"#gbox_"+a.jgrid.jqID(s),jqm:c[e.p.id].jqModal,overlay:c[e.p.id].overlay,modal:c[e.p.id].modal})}r&&c[e.p.id].afterShowForm.call(e,a("#"+f));!0===c[e.p.id].closeOnEscape&&setTimeout(function(){a(".ui-jqdialog-titlebar-close", -"#"+a.jgrid.jqID(k.modalhead)).focus()},0)}})},navGrid:function(c,d,e,l,r,t,s){d=a.extend({edit:!0,editicon:"ui-icon-pencil",add:!0,addicon:"ui-icon-plus",del:!0,delicon:"ui-icon-trash",search:!0,searchicon:"ui-icon-search",refresh:!0,refreshicon:"ui-icon-refresh",refreshstate:"firstpage",view:!1,viewicon:"ui-icon-document",position:"left",closeOnEscape:!0,beforeRefresh:null,afterRefresh:null,cloneToTop:!1,alertwidth:200,alertheight:"auto",alerttop:null,alertleft:null,alertzIndex:null},a.jgrid.nav, -d||{});return this.each(function(){if(!this.nav){var p={themodal:"alertmod",modalhead:"alerthd",modalcontent:"alertcnt"},g=this,f;if(g.grid&&"string"==typeof c){null===a("#"+p.themodal).html()&&(!d.alerttop&&!d.alertleft&&("undefined"!=typeof window.innerWidth?(d.alertleft=window.innerWidth,d.alerttop=window.innerHeight):"undefined"!=typeof document.documentElement&&"undefined"!=typeof document.documentElement.clientWidth&&0!==document.documentElement.clientWidth?(d.alertleft=document.documentElement.clientWidth, -d.alerttop=document.documentElement.clientHeight):(d.alertleft=1024,d.alerttop=768),d.alertleft=d.alertleft/2-parseInt(d.alertwidth,10)/2,d.alerttop=d.alerttop/2-25),a.jgrid.createModal(p,"
      "+d.alerttext+"
      ",{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqModal:!0,drag:!0,resize:!0,caption:d.alertcap,top:d.alerttop,left:d.alertleft,width:d.alertwidth,height:d.alertheight,closeOnEscape:d.closeOnEscape,zIndex:d.alertzIndex},"","",!0)); -var n=1;d.cloneToTop&&g.p.toppager&&(n=2);for(var w=0;w"),m,h;0===w?(m=c,h=g.p.id,m==g.p.toppager&&(h+="_top",n=1)):(m=g.p.toppager,h=g.p.id+"_top");"rtl"==g.p.direction&&a(b).attr("dir","rtl").css("float","right");d.add&&(l=l||{},f=a(""),a(f).append("
      "+d.addtext+"
      "),a("tr",b).append(f),a(f,b).attr({title:d.addtitle||"",id:l.id||"add_"+h}).click(function(){a(this).hasClass("ui-state-disabled")||(a.isFunction(d.addfunc)?d.addfunc.call(g):a(g).jqGrid("editGridRow","new",l));return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);d.edit&&(f=a(""),e=e||{},a(f).append("
      "+d.edittext+"
      "),a("tr",b).append(f),a(f,b).attr({title:d.edittitle||"",id:e.id||"edit_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){var b=g.p.selrow;if(b)a.isFunction(d.editfunc)?d.editfunc.call(g,b):a(g).jqGrid("editGridRow",b,e);else{a.jgrid.viewModal("#"+p.themodal,{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqm:true});a("#jqg_alrt").focus()}}return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}), -f=null);d.view&&(f=a(""),s=s||{},a(f).append("
      "+d.viewtext+"
      "),a("tr",b).append(f),a(f,b).attr({title:d.viewtitle||"",id:s.id||"view_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){var b=g.p.selrow;if(b)a.isFunction(d.viewfunc)?d.viewfunc.call(g,b):a(g).jqGrid("viewGridRow",b,s);else{a.jgrid.viewModal("#"+p.themodal,{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqm:true});a("#jqg_alrt").focus()}}return false}).hover(function(){a(this).hasClass("ui-state-disabled")|| -a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);d.del&&(f=a(""),r=r||{},a(f).append("
      "+d.deltext+"
      "),a("tr",b).append(f),a(f,b).attr({title:d.deltitle||"",id:r.id||"del_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){var b;if(g.p.multiselect){b=g.p.selarrrow;b.length===0&&(b=null)}else b=g.p.selrow;if(b)a.isFunction(d.delfunc)? -d.delfunc.call(g,b):a(g).jqGrid("delGridRow",b,r);else{a.jgrid.viewModal("#"+p.themodal,{gbox:"#gbox_"+a.jgrid.jqID(g.p.id),jqm:true});a("#jqg_alrt").focus()}}return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);(d.add||d.edit||d.del||d.view)&&a("tr",b).append("");d.search&&(f=a(""), -t=t||{},a(f).append("
      "+d.searchtext+"
      "),a("tr",b).append(f),a(f,b).attr({title:d.searchtitle||"",id:t.id||"search_"+h}).click(function(){a(this).hasClass("ui-state-disabled")||(a.isFunction(d.searchfunc)?d.searchfunc.call(g,t):a(g).jqGrid("searchGrid",t));return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),t.showOnLoad&& -!0===t.showOnLoad&&a(f,b).click(),f=null);d.refresh&&(f=a(""),a(f).append("
      "+d.refreshtext+"
      "),a("tr",b).append(f),a(f,b).attr({title:d.refreshtitle||"",id:"refresh_"+h}).click(function(){if(!a(this).hasClass("ui-state-disabled")){a.isFunction(d.beforeRefresh)&&d.beforeRefresh.call(g);g.p.search=false;try{var b=g.p.id;g.p.postData.filters="";a("#fbox_"+a.jgrid.jqID(b)).jqFilter("resetFilter"); -a.isFunction(g.clearToolbar)&&g.clearToolbar.call(g,false)}catch(c){}switch(d.refreshstate){case "firstpage":a(g).trigger("reloadGrid",[{page:1}]);break;case "current":a(g).trigger("reloadGrid",[{current:true}])}a.isFunction(d.afterRefresh)&&d.afterRefresh.call(g)}return false}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}),f=null);f=a(".ui-jqgrid").css("font-size")||"11px";a("body").append("");f=a(b).clone().appendTo("#testpg2").width();a("#testpg2").remove();a(m+"_"+d.position,m).append(b);g.p._nvtd&&(f>g.p._nvtd[0]&&(a(m+"_"+d.position,m).width(f),g.p._nvtd[0]=f),g.p._nvtd[1]=f);b=f=f=null;this.nav=!0}}}})},navButtonAdd:function(c,d){d=a.extend({caption:"newButton",title:"",buttonicon:"ui-icon-newwin",onClickButton:null,position:"last",cursor:"pointer"},d||{});return this.each(function(){if(this.grid){"string"===typeof c&&0!==c.indexOf("#")&&(c="#"+a.jgrid.jqID(c)); -var e=a(".navtable",c)[0],l=this;if(e&&!(d.id&&null!==a("#"+a.jgrid.jqID(d.id),e).html())){var r=a("");"NONE"==d.buttonicon.toString().toUpperCase()?a(r).addClass("ui-pg-button ui-corner-all").append("
      "+d.caption+"
      "):a(r).addClass("ui-pg-button ui-corner-all").append("
      "+d.caption+"
      ");d.id&&a(r).attr("id",d.id);"first"==d.position?0===e.rows[0].cells.length?a("tr",e).append(r):a("tr td:eq(0)", -e).before(r):a("tr",e).append(r);a(r,e).attr("title",d.title||"").click(function(c){a(this).hasClass("ui-state-disabled")||a.isFunction(d.onClickButton)&&d.onClickButton.call(l,c);return!1}).hover(function(){a(this).hasClass("ui-state-disabled")||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")})}}})},navSeparatorAdd:function(c,d){d=a.extend({sepclass:"ui-separator",sepcontent:""},d||{});return this.each(function(){if(this.grid){"string"===typeof c&&0!==c.indexOf("#")&& -(c="#"+a.jgrid.jqID(c));var e=a(".navtable",c)[0];if(e){var l=""+d.sepcontent+"";a("tr",e).append(l)}}})},GridToForm:function(c,d){return this.each(function(){var e=this;if(e.grid){var l=a(e).jqGrid("getRowData",c);if(l)for(var r in l)a("[name="+a.jgrid.jqID(r)+"]",d).is("input:radio")||a("[name="+a.jgrid.jqID(r)+"]",d).is("input:checkbox")?a("[name="+a.jgrid.jqID(r)+"]",d).each(function(){if(a(this).val()== -l[r])a(this)[e.p.useProp?"prop":"attr"]("checked",!0);else a(this)[e.p.useProp?"prop":"attr"]("checked",!1)}):a("[name="+a.jgrid.jqID(r)+"]",d).val(l[r])}})},FormToGrid:function(c,d,e,l){return this.each(function(){if(this.grid){e||(e="set");l||(l="first");var r=a(d).serializeArray(),t={};a.each(r,function(a,c){t[c.name]=c.value});"add"==e?a(this).jqGrid("addRowData",c,t,l):"set"==e&&a(this).jqGrid("setRowData",c,t)}})}})})(jQuery); -(function(a){a.fn.jqFilter=function(d){if("string"===typeof d){var n=a.fn.jqFilter[d];if(!n)throw"jqFilter - No such method: "+d;var u=a.makeArray(arguments).slice(1);return n.apply(this,u)}var o=a.extend(!0,{filter:null,columns:[],onChange:null,afterRedraw:null,checkValues:null,error:!1,errmsg:"",errorcheck:!0,showQuery:!0,sopt:null,ops:[{name:"eq",description:"equal",operator:"="},{name:"ne",description:"not equal",operator:"<>"},{name:"lt",description:"less",operator:"<"},{name:"le",description:"less or equal", -operator:"<="},{name:"gt",description:"greater",operator:">"},{name:"ge",description:"greater or equal",operator:">="},{name:"bw",description:"begins with",operator:"LIKE"},{name:"bn",description:"does not begin with",operator:"NOT LIKE"},{name:"in",description:"in",operator:"IN"},{name:"ni",description:"not in",operator:"NOT IN"},{name:"ew",description:"ends with",operator:"LIKE"},{name:"en",description:"does not end with",operator:"NOT LIKE"},{name:"cn",description:"contains",operator:"LIKE"},{name:"nc", -description:"does not contain",operator:"NOT LIKE"},{name:"nu",description:"is null",operator:"IS NULL"},{name:"nn",description:"is not null",operator:"IS NOT NULL"}],numopts:"eq ne lt le gt ge nu nn in ni".split(" "),stropts:"eq ne bw bn ew en cn nc nu nn in ni".split(" "),_gridsopt:[],groupOps:[{op:"AND",text:"AND"},{op:"OR",text:"OR"}],groupButton:!0,ruleButtons:!0,direction:"ltr"},a.jgrid.filter,d||{});return this.each(function(){if(!this.filter){this.p=o;if(null===this.p.filter||void 0===this.p.filter)this.p.filter= -{groupOp:this.p.groupOps[0].op,rules:[],groups:[]};var d,n=this.p.columns.length,f,t=/msie/i.test(navigator.userAgent)&&!window.opera;if(this.p._gridsopt.length)for(d=0;d");var r=function(g,k){var b=[!0,""];if(a.isFunction(k.searchrules))b=k.searchrules(g,k);else if(a.jgrid&&a.jgrid.checkValues)try{b= -a.jgrid.checkValues(g,-1,null,k.searchrules,k.label)}catch(c){}b&&(b.length&&!1===b[0])&&(o.error=!b[0],o.errmsg=b[1])};this.onchange=function(){this.p.error=!1;this.p.errmsg="";return a.isFunction(this.p.onChange)?this.p.onChange.call(this,this.p):!1};this.reDraw=function(){a("table.group:first",this).remove();var g=this.createTableForGroup(o.filter,null);a(this).append(g);a.isFunction(this.p.afterRedraw)&&this.p.afterRedraw.call(this,this.p)};this.createTableForGroup=function(g,k){var b=this,c, -e=a("
      "),d="left";"rtl"==this.p.direction&&(d="right",e.attr("dir","rtl"));null===k&&e.append("");var h=a("");e.append(h);d=a("");h.append(d);if(!0===this.p.ruleButtons){var i=a("");d.append(i);var h="",f;for(c=0;c"+b.p.groupOps[c].text+"";i.append(h).bind("change",function(){g.groupOp=a(i).val();b.onchange()})}h="";this.p.groupButton&&(h=a(""),h.bind("click",function(){if(g.groups===void 0)g.groups=[];g.groups.push({groupOp:o.groupOps[0].op,rules:[],groups:[]});b.reDraw();b.onchange();return false}));d.append(h); -if(!0===this.p.ruleButtons){var h=a(""),l;h.bind("click",function(){if(g.rules===void 0)g.rules=[];for(c=0;c"),d.append(h),h.bind("click",function(){for(c=0;c"),e.append(d),h=a(""),d.append(h),h=a(""),h.append(this.createTableForGroup(g.groups[c], -g)),d.append(h);void 0===g.groupOp&&(g.groupOp=b.p.groupOps[0].op);if(void 0!==g.rules)for(c=0;c"),e,f,h,i,j="",l;c.append("");var m=a("");c.append(m);var n=a(""),p,q=[];m.append(n);n.bind("change",function(){g.field=a(n).val();h=a(this).parents("tr:first");for(e=0;e"+b.p.ops[p].description+"",k++);a(".selectopts",h).empty().append(d);a(".selectopts",h)[0].selectedIndex=0;a.browser.msie&&9>a.browser.version&&(d=parseInt(a("select.selectopts",h)[0].offsetWidth)+1,a(".selectopts",h).width(d),a(".selectopts",h).css("width","auto"));a(".data",h).empty().append(c);a(".input-elm",h).bind("change",function(c){var d=a(this).hasClass("ui-autocomplete-input")?200:0;setTimeout(function(){var d=c.target;g.data=d.nodeName.toUpperCase()=== -"SPAN"&&i.searchoptions&&a.isFunction(i.searchoptions.custom_value)?i.searchoptions.custom_value(a(d).children(".customelement:first"),"get"):d.value;b.onchange()},d)});setTimeout(function(){g.data=a(c).val();b.onchange()},0)}});for(e=m=0;e"+b.p.columns[e].label+""}n.append(j);j=a("");c.append(j);i=o.columns[m];i.searchoptions.id=a.jgrid.randId();t&&"text"===i.inputtype&&!i.searchoptions.size&&(i.searchoptions.size=10);var m=a.jgrid.createEl(i.inputtype,i.searchoptions,g.data,!0,b.p.ajaxSelectOptions,!0),s=a("");j.append(s);s.bind("change",function(){g.op=a(s).val();h=a(this).parents("tr:first");var c=a(".input-elm",h)[0];if(g.op==="nu"|| -g.op==="nn"){g.data="";c.value="";c.setAttribute("readonly","true");c.setAttribute("disabled","true")}else{c.removeAttribute("readonly");c.removeAttribute("disabled")}b.onchange()});f=i.searchoptions.sopt?i.searchoptions.sopt:b.p.sopt?b.p.sopt:"string"===i.searchtype?o.stropts:b.p.numopts;j="";a.each(b.p.ops,function(){q.push(this.name)});for(e=0;e"+b.p.ops[p].description+ -"");s.append(j);j=a("");c.append(j);j.append(m);a(m).addClass("input-elm").bind("change",function(){g.data=i.inputtype==="custom"?i.searchoptions.custom_value(a(this).children(".customelement:first"),"get"):a(this).val();b.onchange()});j=a("");c.append(j);!0===this.p.ruleButtons&&(m=a(""),j.append(m),m.bind("click",function(){for(e=0;e=0&&e.p.savedRow.splice(t,1);a(e).triggerHandler("jqGridInlineAfterSaveRow",[c,b,i,f]);a.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(e,c,b);j=true;a(q).unbind("keydown")}else{a(e).triggerHandler("jqGridInlineErrorSaveRow",[c,b,d,null,f]);a.isFunction(f.errorfunc)&&f.errorfunc.call(e,c,b,d,null);f.restoreAfterError===true&&a(e).jqGrid("restoreRow",c,f.afterrestorefunc)}}},error:function(b,d,g){a("#lui_"+a.jgrid.jqID(e.p.id)).hide();a(e).triggerHandler("jqGridInlineErrorSaveRow", -[c,b,d,g,f]);if(a.isFunction(f.errorfunc))f.errorfunc.call(e,c,b,d,g);else try{a.jgrid.info_dialog(a.jgrid.errors.errcap,'
      '+b.responseText+"
      ",a.jgrid.edit.bClose,{buttonalign:"right"})}catch(h){alert(b.responseText)}f.restoreAfterError===true&&a(e).jqGrid("restoreRow",c,f.afterrestorefunc)}},a.jgrid.ajaxOptions,e.p.ajaxRowOptions||{}))}return j},restoreRow:function(c,b){var d=a.makeArray(arguments).slice(1),k={};"object"===a.type(d[0])?k=d[0]:a.isFunction(b)&&(k.afterrestorefunc= -b);k=a.extend(!0,a.jgrid.inlineEdit,k);return this.each(function(){var b=this,d,p,h={};if(b.grid){p=a(b).jqGrid("getInd",c,true);if(p!==false){for(var f=0;f=0){if(a.isFunction(a.fn.datepicker))try{a("input.hasDatepicker","#"+a.jgrid.jqID(p.id)).datepicker("hide")}catch(j){}a.each(b.p.colModel,function(){this.editable===true&&this.name in b.p.savedRow[d]&&(h[this.name]=b.p.savedRow[d][this.name])});a(b).jqGrid("setRowData",c,h);a(p).attr("editable", -"0").unbind("keydown");b.p.savedRow.splice(d,1);a("#"+a.jgrid.jqID(c),"#"+a.jgrid.jqID(b.p.id)).hasClass("jqgrid-new-row")&&setTimeout(function(){a(b).jqGrid("delRowData",c)},0)}a(b).triggerHandler("jqGridInlineAfterRestoreRow",[c]);a.isFunction(k.afterrestorefunc)&&k.afterrestorefunc.call(b,c)}}})},addRow:function(c){c=a.extend(!0,{rowID:"new_row",initdata:{},position:"first",useDefValues:!0,useFormatter:!1,addRowParams:{extraparam:{}}},c||{});return this.each(function(){if(this.grid){var b=this; -!0===c.useDefValues&&a(b.p.colModel).each(function(){if(this.editoptions&&this.editoptions.defaultValue){var d=this.editoptions.defaultValue,d=a.isFunction(d)?d.call(b):d;c.initdata[this.name]=d}});a(b).jqGrid("addRowData",c.rowID,c.initdata,c.position);c.rowID=b.p.idPrefix+c.rowID;a("#"+a.jgrid.jqID(c.rowID),"#"+a.jgrid.jqID(b.p.id)).addClass("jqgrid-new-row");if(c.useFormatter)a("#"+a.jgrid.jqID(c.rowID)+" .ui-inline-edit","#"+a.jgrid.jqID(b.p.id)).click();else{var d=b.p.prmNames;c.addRowParams.extraparam[d.oper]= -d.addoper;a(b).jqGrid("editRow",c.rowID,c.addRowParams);a(b).jqGrid("setSelection",c.rowID)}}})},inlineNav:function(c,b){b=a.extend({edit:!0,editicon:"ui-icon-pencil",add:!0,addicon:"ui-icon-plus",save:!0,saveicon:"ui-icon-disk",cancel:!0,cancelicon:"ui-icon-cancel",addParams:{useFormatter:!1,rowID:"new_row"},editParams:{},restoreAfterSelect:!0},a.jgrid.nav,b||{});return this.each(function(){if(this.grid){var d=this,k,g=a.jgrid.jqID(d.p.id);d.p._inlinenav=!0;if(!0===b.addParams.useFormatter){var l= -d.p.colModel,p;for(p=0;p0&&d.p._inlinenav=== -true&&c!==d.p.selrow&&d.p.selrow!==null){d.p.selrow==b.addParams.rowID?a(d).jqGrid("delRowData",d.p.selrow):a(d).jqGrid("restoreRow",d.p.selrow,b.editParams);a(d).jqGrid("showAddEditButtons")}k&&(g=k.call(d,c,f));return g})}})},showAddEditButtons:function(){return this.each(function(){if(this.grid){var c=a.jgrid.jqID(this.p.id);a("#"+c+"_ilsave").addClass("ui-state-disabled");a("#"+c+"_ilcancel").addClass("ui-state-disabled");a("#"+c+"_iladd").removeClass("ui-state-disabled");a("#"+c+"_iledit").removeClass("ui-state-disabled")}})}})})(jQuery); -(function(b){b.jgrid.extend({editCell:function(d,f,a){return this.each(function(){var c=this,g,e,h,i;if(c.grid&&!0===c.p.cellEdit){f=parseInt(f,10);c.p.selrow=c.rows[d].id;c.p.knv||b(c).jqGrid("GridNav");if(00?b(".ui-datepicker").is(":hidden")?b(c).jqGrid("restoreCell",d,f):b("input.hasDatepicker",h).datepicker("hide"):b(c).jqGrid("restoreCell",d,f));if(a.keyCode===13){b(c).jqGrid("saveCell",d,f);return false}if(a.keyCode=== -9){if(c.grid.hDiv.loading)return false;a.shiftKey?b(c).jqGrid("prevCell",d,f):b(c).jqGrid("nextCell",d,f)}a.stopPropagation()});b(c).triggerHandler("jqGridAfterEditCell",[c.rows[d].id,g,e,d,f]);b.isFunction(c.p.afterEditCell)&&c.p.afterEditCell.call(c,c.rows[d].id,g,e,d,f)}else 0<=parseInt(c.p.iCol,10)&&0<=parseInt(c.p.iRow,10)&&(b("td:eq("+c.p.iCol+")",c.rows[c.p.iRow]).removeClass("edit-cell ui-state-highlight"),b(c.rows[c.p.iRow]).removeClass("selected-row ui-state-hover")),h.addClass("edit-cell ui-state-highlight"), -b(c.rows[d]).addClass("selected-row ui-state-hover"),e=h.html().replace(/\ \;/ig,""),b(c).triggerHandler("jqGridSelectCell",[c.rows[d].id,g,e,d,f]),b.isFunction(c.p.onSelectCell)&&c.p.onSelectCell.call(c,c.rows[d].id,g,e,d,f);c.p.iCol=f;c.p.iRow=d}}})},saveCell:function(d,f){return this.each(function(){var a=this,c;if(a.grid&&!0===a.p.cellEdit){c=1<=a.p.savedRow.length?0:null;if(null!==c){var g=b("td:eq("+f+")",a.rows[d]),e,h,i=a.p.colModel[f],k=i.name,j=b.jgrid.jqID(k);switch(i.edittype){case "select":if(i.editoptions.multiple){var j= -b("#"+d+"_"+j,a.rows[d]),n=[];(e=b(j).val())?e.join(","):e="";b("option:selected",j).each(function(a,c){n[a]=b(c).text()});h=n.join(",")}else e=b("#"+d+"_"+j+" option:selected",a.rows[d]).val(),h=b("#"+d+"_"+j+" option:selected",a.rows[d]).text();i.formatter&&(h=e);break;case "checkbox":var l=["Yes","No"];i.editoptions&&(l=i.editoptions.value.split(":"));h=e=b("#"+d+"_"+j,a.rows[d]).is(":checked")?l[0]:l[1];break;case "password":case "text":case "textarea":case "button":h=e=b("#"+d+"_"+j,a.rows[d]).val(); -break;case "custom":try{if(i.editoptions&&b.isFunction(i.editoptions.custom_value)){e=i.editoptions.custom_value.call(a,b(".customelement",g),"get");if(void 0===e)throw"e2";h=e}else throw"e1";}catch(o){"e1"==o&&b.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+b.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose),"e2"==o?b.jgrid.info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+b.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose):b.jgrid.info_dialog(jQuery.jgrid.errors.errcap, -o.message,jQuery.jgrid.edit.bClose)}}if(h!==a.p.savedRow[c].v){if(c=b(a).triggerHandler("jqGridBeforeSaveCell",[a.rows[d].id,k,e,d,f]))h=e=c;if(b.isFunction(a.p.beforeSaveCell)&&(c=a.p.beforeSaveCell.call(a,a.rows[d].id,k,e,d,f)))h=e=c;var p=b.jgrid.checkValues(e,f,a);if(!0===p[0]){c=b(a).triggerHandler("jqGridBeforeSubmitCell",[a.rows[d].id,k,e,d,f])||{};b.isFunction(a.p.beforeSubmitCell)&&((c=a.p.beforeSubmitCell.call(a,a.rows[d].id,k,e,d,f))||(c={}));0"+e,b.jgrid.edit.bClose);b(a).jqGrid("restoreCell",d,f)}},b.jgrid.ajaxOptions,a.p.ajaxCellOptions||{}))}else try{b.jgrid.info_dialog(b.jgrid.errors.errcap,b.jgrid.errors.nourl, -b.jgrid.edit.bClose),b(a).jqGrid("restoreCell",d,f)}catch(q){}"clientArray"==a.p.cellsubmit&&(b(g).empty(),b(a).jqGrid("setCell",a.rows[d].id,f,h,!1,!1,!0),b(g).addClass("dirty-cell"),b(a.rows[d]).addClass("edited"),b(a).triggerHandler("jqGridAfterSaveCell",[a.rows[d].id,k,e,d,f]),b.isFunction(a.p.afterSaveCell)&&a.p.afterSaveCell.call(a,a.rows[d].id,k,e,d,f),a.p.savedRow.splice(0,1))}else try{window.setTimeout(function(){b.jgrid.info_dialog(b.jgrid.errors.errcap,e+" "+p[1],b.jgrid.edit.bClose)}, -100),b(a).jqGrid("restoreCell",d,f)}catch(r){}}else b(a).jqGrid("restoreCell",d,f)}b.browser.opera?b("#"+b.jgrid.jqID(a.p.knv)).attr("tabindex","-1").focus():window.setTimeout(function(){b("#"+b.jgrid.jqID(a.p.knv)).attr("tabindex","-1").focus()},0)}})},restoreCell:function(d,f){return this.each(function(){var a=this,c;if(a.grid&&!0===a.p.cellEdit){c=1<=a.p.savedRow.length?0:null;if(null!==c){var g=b("td:eq("+f+")",a.rows[d]);if(b.isFunction(b.fn.datepicker))try{b("input.hasDatepicker",g).datepicker("hide")}catch(e){}b(g).empty().attr("tabindex", -"-1");b(a).jqGrid("setCell",a.rows[d].id,f,a.p.savedRow[c].v,!1,!1,!0);b(a).triggerHandler("jqGridAfterRestoreCell",[a.rows[d].id,a.p.savedRow[c].v,d,f]);b.isFunction(a.p.afterRestoreCell)&&a.p.afterRestoreCell.call(a,a.rows[d].id,a.p.savedRow[c].v,d,f);a.p.savedRow.splice(0,1)}window.setTimeout(function(){b("#"+a.p.knv).attr("tabindex","-1").focus()},0)}})},nextCell:function(d,f){return this.each(function(){var a=!1;if(this.grid&&!0===this.p.cellEdit){for(var c=f+1;c=f&&(b(a.grid.bDiv)[0].scrollTop=b(a.grid.bDiv)[0].scrollTop+a.rows[c].clientHeight);"vu"==e&&o=e+parseInt(f,10)? -b(a.grid.bDiv)[0].scrollLeft=b(a.grid.bDiv)[0].scrollLeft+a.rows[c].cells[d].clientWidth:g
      "),g,e;b(c).insertBefore(a.grid.cDiv);b("#"+a.p.knv).focus().keydown(function(c){e=c.keyCode;"rtl"==a.p.direction&&(37===e?e=39:39===e&&(e=37));switch(e){case 38:0").css({height:"100%",width:"100%",position:"fixed",left:0,top:0,"z-index":h-1,opacity:e.overlay/100});if(c.a)return d;c.t=k;c.a=!0;c.w.css("z-index",h);e.modal?(j[0]||setTimeout(function(){o("bind")}, -1),j.push(a)):0
      ').insertAfter(c.o);e.onShow?e.onShow(c):c.w.show();q(c);return d},close:function(a){a=i[a];if(!a.a)return d;a.a=d;j[0]&&(j.pop(),j[0]||o("unbind"));a.c.toTop&&a.o&&b("#jqmP"+a.w[0]._jqm).after(a.w).remove();if(a.c.onHide)a.c.onHide(a);else a.w.hide(),a.o&&a.o.remove();return d},params:{}};var g=0,i=b.jqm.hash,j=[],p=b.browser.msie&& -"6.0"==b.browser.version,d=!1,q=function(a){var d=b('').css({opacity:0});p&&(a.o?a.o.html('

      ').prepend(d):b("iframe.jqm",a.w)[0]||a.w.prepend(d));r(a)},r=function(a){try{b(":input:visible",a.w)[0].focus()}catch(d){}},o=function(a){b(document)[a]("keypress",m)[a]("keydown",m)[a]("mousedown",m)},m=function(a){var d=i[j[j.length-1]];(a=!b(a.target).parents(".jqmID"+d.s)[0])&&r(d);return!a},n=function(a, -g,c){return a.each(function(){var a=this._jqm;b(g).each(function(){this[c]||(this[c]=[],b(this).click(function(){for(var a in{jqmShow:1,jqmHide:1})for(var b in this[a])if(i[this[a][b]])i[this[a][b]].w[a](this);return d}));this[c].push(a)})})}})(jQuery); -(function(b){b.fn.jqDrag=function(a){return h(this,a,"d")};b.fn.jqResize=function(a,b){return h(this,a,"r",b)};b.jqDnR={dnr:{},e:0,drag:function(a){"d"==d.k?e.css({left:d.X+a.pageX-d.pX,top:d.Y+a.pageY-d.pY}):(e.css({width:Math.max(a.pageX-d.pX+d.W,0),height:Math.max(a.pageY-d.pY+d.H,0)}),f&&g.css({width:Math.max(a.pageX-f.pX+f.W,0),height:Math.max(a.pageY-f.pY+f.H,0)}));return!1},stop:function(){b(document).unbind("mousemove",c.drag).unbind("mouseup",c.stop)}};var c=b.jqDnR,d=c.dnr,e=c.e,g,f,h=function(a, -c,h,l){return a.each(function(){c=c?b(c,a):a;c.bind("mousedown",{e:a,k:h},function(a){var c=a.data,i={};e=c.e;g=l?b(l):!1;if("relative"!=e.css("position"))try{e.position(i)}catch(h){}d={X:i.left||j("left")||0,Y:i.top||j("top")||0,W:j("width")||e[0].scrollWidth||0,H:j("height")||e[0].scrollHeight||0,pX:a.pageX,pY:a.pageY,k:c.k};f=g&&"d"!=c.k?{X:i.left||k("left")||0,Y:i.top||k("top")||0,W:g[0].offsetWidth||k("width")||0,H:g[0].offsetHeight||k("height")||0,pX:a.pageX,pY:a.pageY,k:c.k}:!1;if(b("input.hasDatepicker", -e[0])[0])try{b("input.hasDatepicker",e[0]).datepicker("hide")}catch(m){}b(document).mousemove(b.jqDnR.drag).mouseup(b.jqDnR.stop);return!1})})},j=function(a){return parseInt(e.css(a),10)||!1},k=function(a){return parseInt(g.css(a),10)||!1}})(jQuery); -(function(b){b.jgrid.extend({setSubGrid:function(){return this.each(function(){var e;this.p.subGridOptions=b.extend({plusicon:"ui-icon-plus",minusicon:"ui-icon-minus",openicon:"ui-icon-carat-1-sw",expandOnLoad:!1,delayOnLoad:50,selectOnExpand:!1,reloadOnExpand:!0},this.p.subGridOptions||{});this.p.colNames.unshift("");this.p.colModel.unshift({name:"subgrid",width:b.browser.safari?this.p.subGridWidth+this.p.cellLayout:this.p.subGridWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,fixed:!0});e=this.p.subGridModel; -if(e[0]){e[0].align=b.extend([],e[0].align||[]);for(var c=0;c"},addSubGrid:function(e,c){return this.each(function(){var a=this;if(a.grid){var m= -function(c,e,h){e=b("").html(e);b(c).append(e)},l=function(c,e){var h,f,n,d=b("
      "),i=b("");for(f=0;f"),b(h).html(a.p.subGridModel[0].name[f]),b(h).width(a.p.subGridModel[0].width[f]),b(i).append(h);b(d).append(i);c&&(n=a.p.xmlReader.subgrid,b(n.root+ -" "+n.row,c).each(function(){i=b("");if(!0===n.repeatitems)b(n.cell,this).each(function(a){m(i,b(this).text()||" ",a)});else{var c=a.p.subGridModel[0].mapping||a.p.subGridModel[0].name;if(c)for(f=0;f"),j=b("");for(f=0;f"),b(h).html(a.p.subGridModel[0].name[f]),b(h).width(a.p.subGridModel[0].width[f]),b(j).append(h);b(k).append(j);if(c&&(g=a.p.jsonReader.subgrid,h=c[g.root],"undefined"!==typeof h))for(f=0;f"); -if(!0===g.repeatitems){g.cell&&(d=d[g.cell]);for(i=0;i=1?" ":"";g=b(a).triggerHandler("jqGridSubGridBeforeExpand",[k+"_"+d,d]);(g=g===false||g==="stop"?false:true)&&b.isFunction(a.p.subGridBeforeExpand)&&(g=a.p.subGridBeforeExpand.call(a,k+"_"+d,d));if(g===false)return false;b(c).after(""+ -q+"

      ");b(a).triggerHandler("jqGridSubGridRowExpanded",[k+"_"+d,d]);b.isFunction(a.p.subGridRowExpanded)?a.p.subGridRowExpanded.call(a,k+"_"+d,d):t(c)}else b(j).show();b(this).html("").removeClass("sgcollapsed").addClass("sgexpanded");a.p.subGridOptions.selectOnExpand&&b(a).jqGrid("setSelection",d)}else if(b(this).hasClass("sgexpanded")){g=b(a).triggerHandler("jqGridSubGridRowColapsed",[k+"_"+d,d]);if((g=g===false||g==="stop"?false:true)&&b.isFunction(a.p.subGridRowColapsed)){d=c.id;g=a.p.subGridRowColapsed.call(a,k+"_"+d,d)}if(g===false)return false;a.p.subGridOptions.reloadOnExpand===true?b(j).remove(".ui-subgrid"):b(j).hasClass("ui-subgrid")&&b(j).hide();b(this).html("").removeClass("sgexpanded").addClass("sgcollapsed")}return false}),o++;!0===a.p.subGridOptions.expandOnLoad&&b(a.rows).filter(".jqgrow").each(function(a,c){b(c.cells[0]).click()});a.subGridXml=function(a,b){l(a,b)};a.subGridJson=function(a,b){p(a,b)}}})},expandSubGridRow:function(e){return this.each(function(){if((this.grid||e)&&!0===this.p.subGrid){var c=b(this).jqGrid("getInd",e,!0);c&&(c=b("td.sgcollapsed",c)[0])&&b(c).trigger("click")}})},collapseSubGridRow:function(e){return this.each(function(){if((this.grid|| -e)&&!0===this.p.subGrid){var c=b(this).jqGrid("getInd",e,!0);c&&(c=b("td.sgexpanded",c)[0])&&b(c).trigger("click")}})},toggleSubGridRow:function(e){return this.each(function(){if((this.grid||e)&&!0===this.p.subGrid){var c=b(this).jqGrid("getInd",e,!0);if(c){var a=b("td.sgcollapsed",c)[0];a?b(a).trigger("click"):(a=b("td.sgexpanded",c)[0])&&b(a).trigger("click")}}})}})})(jQuery); -(function(b){b.extend(b.jgrid,{template:function(a){var d=b.makeArray(arguments).slice(1),e=1;void 0===a&&(a="");return a.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(a,c){if(isNaN(parseInt(c,10))){for(var b=d[e],g=b.length;g--;)if(c===b[g].nm)return b[g].v;e++}else return e++,d[parseInt(c,10)]})}});b.jgrid.extend({groupingSetup:function(){return this.each(function(){var a=this.p.groupingView;if(null!==a&&("object"===typeof a||b.isFunction(a)))if(a.groupField.length){"undefined"=== -typeof a.visibiltyOnNextGrouping&&(a.visibiltyOnNextGrouping=[]);a.lastvalues=[];a.groups=[];a.counters=[];for(var d=0;d
      ";try{i=f.formatter(k,l.value,w[l.idx],l.value)}catch(C){i=l.value}h+=''+g+b.jgrid.template(c.groupText[l.idx],i,l.cnt,l.summary)+"";if(x-1===l.idx){for(var m=c.groups[r+1],o=void 0!==m?c.groups[r+1].startRow:a.length,t=l.startRow;t