From bde55c000b91bccf49dd28dae9298beed16913d3 Mon Sep 17 00:00:00 2001 From: Jesse Andrews Date: Sat, 3 Mar 2012 22:54:12 -0800 Subject: [PATCH] add index pages of docs.openstack.org * index pages (php -> html) * favicon * robots.txt * static resources (js/css/img) Change-Id: I25c214f6153be3a3dccf75138b1a921006534588 --- README.rst | 4 + www/api/index.html | 222 ++ www/bexar/index.html | 197 ++ www/cactus/index.html | 225 ++ www/common/css/docblitz.css | 408 ++++ www/common/css/homepage-updated.css | 236 +++ www/common/css/homepage.css | 241 +++ www/common/css/new-homepage.css | 253 +++ www/common/css/positioning.css | 259 +++ www/common/images/book_open.png | Bin 0 -> 1211 bytes www/common/images/breadcrumb-arrow.png | Bin 0 -> 172 bytes www/common/images/compute-admin.png | Bin 0 -> 30330 bytes www/common/images/compute-dev-guide.png | Bin 0 -> 30412 bytes www/common/images/header-bg.gif | Bin 0 -> 619 bytes www/common/images/highlight-blue.gif | Bin 0 -> 471 bytes www/common/images/highlight-yellow.gif | Bin 0 -> 331 bytes www/common/images/highlighter.png | Bin 0 -> 598 bytes www/common/images/large-manual.png | Bin 0 -> 5219 bytes www/common/images/loading.gif | Bin 0 -> 729 bytes www/common/images/next-arrow.png | Bin 0 -> 199 bytes www/common/images/note.png | Bin 0 -> 3709 bytes www/common/images/openstack-logo.png | Bin 0 -> 3666 bytes www/common/images/openstack-manual.png | Bin 0 -> 13449 bytes www/common/images/page_white_text.png | Bin 0 -> 406 bytes www/common/images/paperclip.gif | Bin 0 -> 117 bytes www/common/images/previous-arrow.png | Bin 0 -> 198 bytes www/common/images/search-icon.png | Bin 0 -> 278 bytes www/common/images/selection-arrow.png | Bin 0 -> 240 bytes www/common/images/showHideTreeIcons.png | Bin 0 -> 726 bytes www/common/images/sidebar.png | Bin 0 -> 177 bytes www/common/images/small-manual.png | Bin 0 -> 1368 bytes www/common/images/storage-admin.png | Bin 0 -> 30388 bytes www/common/images/storage-dev-guide.png | Bin 0 -> 30477 bytes www/common/images/toc-icon.png | Bin 0 -> 169 bytes .../jquery.jtweetsanywhere-1.2.1.css | 295 +++ .../jquery.jtweetsanywhere-1.2.1.js | 1807 +++++++++++++++++ .../jquery.jtweetsanywhere-1.2.1.min.js | 1 + www/common/jquery/jTweetsAnywhere/license.txt | 20 + www/common/jquery/jquery-1.4.2.min.js | 154 ++ .../jquery/jquery-ui-1.8.2.custom.min.js | 321 +++ www/common/jquery/jquery.cookie.js | 93 + .../jquery/jquery.hoverIntent.minified.js | 9 + .../images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 0 -> 182 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 0 -> 162 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 0 -> 123 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 0 -> 3457 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 104 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes .../images/ui-icons_217bc0_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_469bdd_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_6da8d5_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_d8e7f3_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_f9bd01_256x240.png | Bin 0 -> 5355 bytes .../theme-redmond/jquery-ui-1.8.2.custom.css | 430 ++++ www/common/jquery/treeview/images/file.gif | Bin 0 -> 1008 bytes .../jquery/treeview/images/folder-closed.gif | Bin 0 -> 631 bytes .../jquery/treeview/images/folder-closed2.gif | Bin 0 -> 105 bytes www/common/jquery/treeview/images/folder.gif | Bin 0 -> 631 bytes www/common/jquery/treeview/images/folder2.gif | Bin 0 -> 106 bytes www/common/jquery/treeview/images/minus.gif | Bin 0 -> 837 bytes .../treeview/images/page_white_text.png | Bin 0 -> 406 bytes www/common/jquery/treeview/images/plus.gif | Bin 0 -> 841 bytes .../treeview/images/treeview-black-line.gif | Bin 0 -> 1877 bytes .../jquery/treeview/images/treeview-black.gif | Bin 0 -> 1216 bytes .../treeview/images/treeview-default-line.gif | Bin 0 -> 1993 bytes .../treeview/images/treeview-default.gif | Bin 0 -> 1222 bytes .../images/treeview-famfamfam-line.gif | Bin 0 -> 807 bytes .../treeview/images/treeview-famfamfam.gif | Bin 0 -> 1280 bytes .../treeview/images/treeview-gray-line.gif | Bin 0 -> 1877 bytes .../jquery/treeview/images/treeview-gray.gif | Bin 0 -> 1230 bytes .../treeview/images/treeview-red-line.gif | Bin 0 -> 1877 bytes .../jquery/treeview/images/treeview-red.gif | Bin 0 -> 1230 bytes .../jquery/treeview/jquery.treeview.async.js | 72 + .../jquery/treeview/jquery.treeview.css | 90 + www/common/jquery/treeview/jquery.treeview.js | 255 +++ .../jquery/treeview/jquery.treeview.min.js | 16 + .../jquery/treeview/jquery.treeview.pack.js | 16 + www/common/main.js | 161 ++ www/diablo/index.html | 261 +++ www/favicon.ico | Bin 0 -> 1150 bytes www/incubation/index.html | 216 ++ www/index.html | 262 +++ www/robots.txt | 3 + www/trunk/index.html | 243 +++ 89 files changed, 6770 insertions(+) create mode 100644 www/api/index.html create mode 100644 www/bexar/index.html create mode 100644 www/cactus/index.html create mode 100644 www/common/css/docblitz.css create mode 100644 www/common/css/homepage-updated.css create mode 100644 www/common/css/homepage.css create mode 100644 www/common/css/new-homepage.css create mode 100644 www/common/css/positioning.css create mode 100644 www/common/images/book_open.png create mode 100644 www/common/images/breadcrumb-arrow.png create mode 100644 www/common/images/compute-admin.png create mode 100644 www/common/images/compute-dev-guide.png create mode 100644 www/common/images/header-bg.gif create mode 100644 www/common/images/highlight-blue.gif create mode 100644 www/common/images/highlight-yellow.gif create mode 100644 www/common/images/highlighter.png create mode 100644 www/common/images/large-manual.png create mode 100644 www/common/images/loading.gif create mode 100644 www/common/images/next-arrow.png create mode 100644 www/common/images/note.png create mode 100644 www/common/images/openstack-logo.png create mode 100644 www/common/images/openstack-manual.png create mode 100644 www/common/images/page_white_text.png create mode 100644 www/common/images/paperclip.gif create mode 100644 www/common/images/previous-arrow.png create mode 100644 www/common/images/search-icon.png create mode 100644 www/common/images/selection-arrow.png create mode 100644 www/common/images/showHideTreeIcons.png create mode 100644 www/common/images/sidebar.png create mode 100644 www/common/images/small-manual.png create mode 100644 www/common/images/storage-admin.png create mode 100644 www/common/images/storage-dev-guide.png create mode 100644 www/common/images/toc-icon.png create mode 100755 www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.css create mode 100755 www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.js create mode 100755 www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.min.js create mode 100755 www/common/jquery/jTweetsAnywhere/license.txt create mode 100644 www/common/jquery/jquery-1.4.2.min.js create mode 100644 www/common/jquery/jquery-ui-1.8.2.custom.min.js create mode 100644 www/common/jquery/jquery.cookie.js create mode 100644 www/common/jquery/jquery.hoverIntent.minified.js create mode 100644 www/common/jquery/theme-redmond/images/ui-anim_basic_16x16.gif create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100644 www/common/jquery/theme-redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100644 www/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png create mode 100644 www/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png create mode 100644 www/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png create mode 100644 www/common/jquery/theme-redmond/images/ui-icons_6da8d5_256x240.png create mode 100644 www/common/jquery/theme-redmond/images/ui-icons_cd0a0a_256x240.png create mode 100644 www/common/jquery/theme-redmond/images/ui-icons_d8e7f3_256x240.png create mode 100644 www/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png create mode 100644 www/common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css create mode 100644 www/common/jquery/treeview/images/file.gif create mode 100644 www/common/jquery/treeview/images/folder-closed.gif create mode 100644 www/common/jquery/treeview/images/folder-closed2.gif create mode 100644 www/common/jquery/treeview/images/folder.gif create mode 100644 www/common/jquery/treeview/images/folder2.gif create mode 100644 www/common/jquery/treeview/images/minus.gif create mode 100644 www/common/jquery/treeview/images/page_white_text.png create mode 100644 www/common/jquery/treeview/images/plus.gif create mode 100644 www/common/jquery/treeview/images/treeview-black-line.gif create mode 100644 www/common/jquery/treeview/images/treeview-black.gif create mode 100644 www/common/jquery/treeview/images/treeview-default-line.gif create mode 100644 www/common/jquery/treeview/images/treeview-default.gif create mode 100644 www/common/jquery/treeview/images/treeview-famfamfam-line.gif create mode 100644 www/common/jquery/treeview/images/treeview-famfamfam.gif create mode 100644 www/common/jquery/treeview/images/treeview-gray-line.gif create mode 100644 www/common/jquery/treeview/images/treeview-gray.gif create mode 100644 www/common/jquery/treeview/images/treeview-red-line.gif create mode 100644 www/common/jquery/treeview/images/treeview-red.gif create mode 100644 www/common/jquery/treeview/jquery.treeview.async.js create mode 100644 www/common/jquery/treeview/jquery.treeview.css create mode 100644 www/common/jquery/treeview/jquery.treeview.js create mode 100644 www/common/jquery/treeview/jquery.treeview.min.js create mode 100644 www/common/jquery/treeview/jquery.treeview.pack.js create mode 100644 www/common/main.js create mode 100644 www/diablo/index.html create mode 100644 www/favicon.ico create mode 100644 www/incubation/index.html create mode 100644 www/index.html create mode 100644 www/robots.txt create mode 100644 www/trunk/index.html diff --git a/README.rst b/README.rst index 8dd874106c..7a8cd0d5c0 100644 --- a/README.rst +++ b/README.rst @@ -6,6 +6,10 @@ well as the Dashboard. For more details, see the `OpenStack Documentation HowTo wiki page `_. +In addtion to the guides, this repostiory contains: + * api.openstack.org site: doc/src/docbkx/openstack-api-site + * index & resources for docs.openstack.org: www + Prereqs ======= `Apache Maven `_ must be installed to build the diff --git a/www/api/index.html b/www/api/index.html new file mode 100644 index 0000000000..4a67e08a43 --- /dev/null +++ b/www/api/index.html @@ -0,0 +1,222 @@ + + + + + + + + OpenStack Documentation - API + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Search All OpenStack Manuals

+ +
Loading
+ +
+ + +
+

OpenStack Manuals

+
+
+

Software Manuals

+

A great starting point for users and admins

+
+
+
+
+

API Developer Manuals

+

A great starting point for developers and integrators.

+
+
+ +
+ + +
+
+

Related Resources

+ + +
+ +
+ +
+ +
+ + + + + + + + + + \ No newline at end of file diff --git a/www/bexar/index.html b/www/bexar/index.html new file mode 100644 index 0000000000..de7b3370ef --- /dev/null +++ b/www/bexar/index.html @@ -0,0 +1,197 @@ + + + + + + + + OpenStack Open Source Cloud Computing Software + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Search All OpenStack Manuals

+
Loading
+ + +
+
+

OpenStack Manuals

+
+

1. Pick a release.

+ +
+
+

2. Choose from the manuals below.

+

OpenStack Compute Manuals

+ + +

OpenStack Object Storage Manuals

+ + + + +
+
+
+

Related Resources

+ + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/cactus/index.html b/www/cactus/index.html new file mode 100644 index 0000000000..65fb966937 --- /dev/null +++ b/www/cactus/index.html @@ -0,0 +1,225 @@ + + + + + + + + OpenStack Open Source Cloud Computing Software + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

Search All OpenStack Manuals

+
Loading
+ + +
+
+

OpenStack Manuals

+
+

1. Pick a release.

+ +
+
+

2. Choose from the manuals below.

+

OpenStack Compute Manuals

+ + + + + + + + +

OpenStack Object Storage Manuals

+ + + + +
+
+
+

Related Resources

+ + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/common/css/docblitz.css b/www/common/css/docblitz.css new file mode 100644 index 0000000000..b45415649b --- /dev/null +++ b/www/common/css/docblitz.css @@ -0,0 +1,408 @@ +/* @override http://docs.openstack.org/common/css/homepage.css */ + +/* @override http://docs.openstack.org/common/css/homepage.css */ + +body.homepage #header h1 { + display: none; +} + + + +body.homepage #header { + background: white; + text-align: center; +} + +body.homepage #header img { + display: inline; + margin: auto; + float: none; + margin-top: 20px; +} + + +.bookCatalog { + -webkit-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + -moz-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + background-color: #f3f9fc; + padding: 20px; + width: 800px; + margin: auto; + border: 1px solid #b9c6c6; +} + +.bookSet { + float: left; + width: 400px; +} + +.bookSet h1{ + text-align: center; +} + +.bookBox ul { + display: block; + margin: 0; + padding: 0px; +} + +.bookBox li { + display: block; + float: left; + text-align: center; +} + +.bookSet li a { + text-decoration: none; + color: #2b3f4c; +} + +.bookSet li a span.icon { + display: block; + padding-top: 190px; + background: no-repeat; + -webkit-background-size: 80%; + margin-bottom: -10px; +} + +#compute.bookSet li.devGuide a span.icon { + background: url(../images/compute-dev-guide.png) no-repeat; +} + +#storage.bookSet li.devGuide a span.icon { + background: url(../images/storage-dev-guide.png) no-repeat; +} + +#compute.bookSet li.adminGuide a span.icon { + background: url(../images/compute-admin.png) no-repeat; +} + +#storage.bookSet li.adminGuide a span.icon { + background: url(../images/storage-admin.png) no-repeat; +} + + +.searchArea label { + display: block; + color: #618da9; +} + +.searchArea h1 { + padding: 0px!important; + margin: 0px!important; +} + +input.gsc-input, input#query { + padding: 10px; + background-color: #f1f8fa; + border: 3px solid #c5e2ea!important; +} + +input#query { + width: 100%; +} + +input.gsc-search-button { + margin-left: 10px!important; +} + +div.bookBox { + margin-right: 10px; + padding: 8px; + background-color: #f3f3f3; + clear: both; +} + + + +/* @group Rounded Buttons */ + +a.roundedButton { + border: 1px solid #bfbfbf; + padding: 2px 15px; + color: #7c201b; + text-decoration: none; + font-size: 12px; + line-height: 3em; + background: #FFFFFF; /* old browsers */ + background: -moz-linear-gradient(top, #FFFFFF 0%, #F3F3F3 50%, #EBEBEB 100%); /* firefox */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(50%,#F3F3F3), color-stop(100%,#EBEBEB)); /* webkit */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#EBEBEB',GradientType=0 ); /* ie */ + text-shadow: #fff 0px 1px 1px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + margin-right: 10px; +} + +a.roundedButton:active, input.action:active { + background: #ababab; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + border-color: #ababab; + border-top-color: #636363; + background: -webkit-gradient(linear, left top, left bottom, from(#bebebe), to(#dddddd)); + background: -moz-linear-gradient(top, #bebebe, #eeeeee); + -webkit-transition:none; + padding: 2px 15px; + color: #black; +} + +.bookBox img { + float: left; + margin-left: -20px; + margin-right: 10px; + width: 55px; +} + + +.bookBox h2 a { + text-decoration: none; + text-shadow: #fff 0px 1px 1px; + color: black; +} + +div.bookRow h1 { + color: #33495d; + font-size: 13px; + margin-top: 0px; + margin-left: -40px; + margin-bottom: 20px; + text-transform: uppercase; +} + +div.bookRow { + margin-bottom: 30px; + margin-left: 40px; +} + +div.searchArea h1 { + color: grey; + font-size: 14px; + margin-left: -40px; +} + +div.searchArea table { + width: 100%; +} + +div.footer { + border-top: 1px solid #DDDDDD; + clear: both; + margin: 1em 1.5em 0 242px; + padding: 0.5em 0; +} + +div.footer p { + font-size: 11px; +} + +#manuals h1 { + font-size: 16px; + clear: both; + margin-top: 30px; +} + +.bookBox h2 { + font-size: 16px; + margin-right: 20px; + margin-bottom: 0px; + line-height: 1.2em; + padding-top: 15px; +} + +.bookBox { + height: 100px; + margin-bottom: 10px; +} + +#manuals p { + margin-bottom: 0px; +} + +#releaseNav ul li a { + display: block; + padding: 10px 20px 10px 10px; + text-decoration: none; + color: black; + background: #e2ecef; + margin-bottom: 5px; +} + +#releaseNav ul li a.selected { + background: #c4e0e9; +} + +#releaseNav ul { + list-style-type: none; + margin: 0px; + padding: 0px; + margin-top: 30px ; +} + +.leftBorder {padding-left:24px;margin-left:25px;border-left:1px solid #eee;} + +p.instructions { + color: #9d9d9d; +} + +.statBlock p { + font-family: 'PT Sans', serif; + text-align: center; + margin-bottom: 0px; + text-transform: uppercase; + border-top: 1px solid #d5d5d5; + font-size: 10px; + color: #969696; +} + +.statBlock p.number { + font-weight: bold; + font-size: 30px; + border-top: none; + margin: 0px; + padding: 0px; + line-height: 1.2em; + color: #7f7f7f; +} + +div.releaseSwitcher { + border: 3px solid #d5d5d5; + -webkit-border-radius: 8px; + padding: 2px; + padding-right: 13px; + padding-left: 13px; + margin-bottom: 15px; + float: left; +} + +.releaseSwitcher .rightArrow { + border-left: 1px solid #d5d5d5; + display: inline-block; + padding-left: 8px; + padding-right: 4px; + margin-left: 8px; +} + + +#manuals hr { + color: white; + background: white; + margin: none; +} + +/* @end */ + +.dropDown { + position: absolute; + margin: 0px; + padding: 0px; +} + +.dropDown div { + display: none; +} + +.menuHover div { + display: block; + z-index: 100; + background-color: white; + border: 1px solid #979797; + right: 0px; + width: 200px; + } + +.manualTable th { + background-color: #f6f5f6; + font-weight: normal; + padding-top: 8px; + padding-bottom: 8px; +} + +.manualTable td { + border-bottom: 1px solid #e6e5e6; + padding-top: 5px; + padding-bottom: 5px; +} + +.manualTable td:first-child a { + color: black; + padding: 5px; + display: inline-block; + background: url(../images/small-manual.png) no-repeat left center; + padding-left: 30px; +} + +#SoftwareManuals, #ApiManuals { + background: url(../images/large-manual.png) no-repeat 5px center; + padding: 8px; + padding-left: 70px; + height: 70px; + margin-right: 5px; + border: 3px solid white; +} + +#SoftwareManuals h2, #ApiManuals h2 { + margin-top: 10px; + margin-bottom: 2px; +} + +#SoftwareManuals h2 a, #ApiManuals h2 a { + color: black; +} + +.Selected { + background-color: #f5fcfe!important; + border: 3px solid #cfe8ed!important; +} + +.Selected:after { + content: url('/common/images/selection-arrow.png'); + display: block; + text-align: center; + margin-top: 10px; + margin-left: -70px; +} + +.dropDown li { + list-style: none; + border-bottom: 1px solid #e6e5e6; +} + +.dropDown li:last-child { + border-bottom: none; +} + +.dropDown li a { + padding: 8px 10px; + display: block; + color: black; +} + +.dropDown li a:hover { + text-decoration: none; + background-color: #f5fcfe; +} + +#twitterFeed li { + list-style: none; + border-bottom: 1px solid #e6e5e6; + margin: 0px; + margin-bottom: 10px; +} + +#twitterFeed ul { + padding: 0px; + margin: 0px; +} + +.jta-tweet-timestamp-link { + padding: 3px; + margin-left: 10px; + background-color: #f5fcfe; + color: #6e9fac; + white-space:nowrap; + display: inline-block; +} + diff --git a/www/common/css/homepage-updated.css b/www/common/css/homepage-updated.css new file mode 100644 index 0000000000..24fbc5ec81 --- /dev/null +++ b/www/common/css/homepage-updated.css @@ -0,0 +1,236 @@ +/* @override http://docs.openstack.org/common/css/homepage.css */ + + + + +body.homepage #header { + text-align: center; +} + +body.homepage #header img { + display: inline; + margin: auto; + float: none; + margin-top: 20px; +} + + +.bookCatalog { + -webkit-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + -moz-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + background-color: #f3f9fc; + padding: 20px; + border: 1px solid #b9c6c6; +} + +.bookSet { + float: left; + width: 400px; +} + +.bookSet h1{ + text-align: center; +} + +.bookBox ul { + display: block; + margin: 0; + padding: 0px; +} + +.bookBox li { + display: block; + float: left; + text-align: center; +} + +.bookSet li a { + text-decoration: none; + color: #2b3f4c; +} + +.bookSet li a span.icon { + display: block; + padding-top: 190px; + background: no-repeat; + -webkit-background-size: 80%; + margin-bottom: -10px; +} + +#compute.bookSet li.devGuide a span.icon { + background: url(../images/compute-dev-guide.png) no-repeat; +} + +#storage.bookSet li.devGuide a span.icon { + background: url(../images/storage-dev-guide.png) no-repeat; +} + +#compute.bookSet li.adminGuide a span.icon { + background: url(../images/compute-admin.png) no-repeat; +} + +#storage.bookSet li.adminGuide a span.icon { + background: url(../images/storage-admin.png) no-repeat; +} + +.bookSet li a:hover span.icon { + display: block; + padding-top: 190px; + -webkit-background-size: 100%; + -webkit-transition:background-size 0.2s ease-out; + z-index: 1001; + -webkit-transform: rotate(9deg); +} + +.bookSet li a:hover { + color: black; +} + +.bookSet li a span.label { + -webkit-border-radius: 20px; + padding: 5px 15px; +} + +.bookSet li a:hover span.label { + background: #618da9; + color: white; +} + +.bookSet h1 { + color: black; + opacity: 0.5; + margin-left: -80px; +} + +.bookRow { + margin: auto; + width: 800px; +} + + +.searchArea label { + display: block; + color: #618da9; +} + +.searchArea { + text-align: center; + margin-bottom: 20px; + padding-bottom: 10px; + width:800px; + margin: auto; + margin-top: 20px; +} + +input.gsc-input, input#query { + padding: 10px; + background-color: #f1f8fa; + border: 1px solid #b9c6c6; +} + +input#query { + width: 100%; +} + +input.gsc-search-button { + margin-left: 10px!important; +} + +div.bookBox { + float: left; + width: 330px; + margin-right: 40px; + padding: 8px; + background-color: #d1e9f3; + -webkit-border-radius: 6px; + margin-left: 10px; +} + +.bookBox img { + float: left; + margin-left: -20px; + margin-right: 10px; + width: 90px; +} + + +.bookBox h2 { + font-size: 18px; + margin-top: 10px; + margin-bottom: 5px; + line-height: 1.2em; +} + +.bookBox h2 a { + text-decoration: none; + text-shadow: #fff 0px 1px 1px; + color: black; +} + +div.bookRow h1 { + color: #33495d; + font-size: 13px; + margin-top: 0px; + margin-bottom: 20px; + text-transform: uppercase; +} + +div.bookRow { + margin-bottom: 30px; + margin-left: 10px; +} + +div.searchArea h1 { + color: grey; + font-size: 14px; + margin-left: -40px; +} + +div.searchArea table { + width: 100%; +} + +div.footer { + border-top: 1px solid #DDDDDD; + clear: both; + margin: 1em 1.5em 0 242px; + padding: 0.5em 0; +} + +div.footer p { + font-size: 11px; +} + +a.roundedButton { + margin-left: 0px; + font-size: 12px; +} + +.versionNav ul { + list-style-type: none; + padding: 0px; + margin: 0px; +} + +.versionNav li { + padding: 10px; + margin-bottom: 5px; +} + +.versionNav li.active { + background-color: #d1e9f3; +} + +.versionNav h3 { + color: #33495d; + font-size: 13px; + margin-top: 0px; + margin-bottom: 20px; + text-transform: uppercase; +} + +.bookIcons { + border-left: 1px solid #aad0e0; + margin-left: -1px; +} + diff --git a/www/common/css/homepage.css b/www/common/css/homepage.css new file mode 100644 index 0000000000..87c59c62d2 --- /dev/null +++ b/www/common/css/homepage.css @@ -0,0 +1,241 @@ +/* @override http://docs.openstack.org/common/css/homepage.css */ + +body.homepage #header h1 { + display: none; +} + + + +body.homepage #header { + background: white; + text-align: center; +} + +body.homepage #header img { + display: inline; + margin: auto; + float: none; + margin-top: 20px; +} + + +.bookCatalog { + -webkit-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + -moz-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + background-color: #f3f9fc; + padding: 20px; + width: 800px; + margin: auto; + border: 1px solid #b9c6c6; +} + +.bookSet { + float: left; + width: 400px; +} + +.bookSet h1{ + text-align: center; +} + +.bookBox ul { + display: block; + margin: 0; + padding: 0px; +} + +.bookBox li { + display: block; + float: left; + text-align: center; +} + +.bookSet li a { + text-decoration: none; + color: #2b3f4c; +} + +.bookSet li a span.icon { + display: block; + padding-top: 190px; + background: no-repeat; + -webkit-background-size: 80%; + margin-bottom: -10px; +} + +#compute.bookSet li.devGuide a span.icon { + background: url(../images/compute-dev-guide.png) no-repeat; +} + +#storage.bookSet li.devGuide a span.icon { + background: url(../images/storage-dev-guide.png) no-repeat; +} + +#compute.bookSet li.adminGuide a span.icon { + background: url(../images/compute-admin.png) no-repeat; +} + +#storage.bookSet li.adminGuide a span.icon { + background: url(../images/storage-admin.png) no-repeat; +} + +.bookSet li a:hover span.icon { + display: block; + padding-top: 190px; + -webkit-background-size: 100%; + -webkit-transition:background-size 0.2s ease-out; + z-index: 1001; + -webkit-transform: rotate(9deg); +} + +.bookSet li a:hover { + color: black; +} + +.bookSet li a span.label { + -webkit-border-radius: 20px; + padding: 5px 15px; +} + +.bookSet li a:hover span.label { + background: #618da9; + color: white; +} + +.bookSet h1 { + color: black; + opacity: 0.5; + margin-left: -80px; +} + +.bookRow { + margin: auto; + width: 800px; +} + + +.searchArea label { + display: block; + color: #618da9; +} + +.searchArea { + text-align: center; + margin-bottom: 20px; + padding-bottom: 10px; + width: 500px; + margin: auto; + margin-top: 20px; +} + +input.gsc-input, input#query { + padding: 10px; + background-color: #f1f8fa; + border: 1px solid #b9c6c6; +} + +input#query { + width: 100%; +} + +input.gsc-search-button { + margin-left: 10px!important; +} + +div.bookBox { + float: left; + width: 330px; + margin-right: 40px; + padding: 8px; + background-color: #d1e9f3; + -webkit-border-radius: 6px; +} + + + +/* @group Rounded Buttons */ + +a.roundedButton { + border: 1px solid #bfbfbf; + padding: 2px 15px; + color: #7c201b; + text-decoration: none; + font-size: 12px; + line-height: 3em; + background: #FFFFFF; /* old browsers */ + background: -moz-linear-gradient(top, #FFFFFF 0%, #F3F3F3 50%, #EBEBEB 100%); /* firefox */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(50%,#F3F3F3), color-stop(100%,#EBEBEB)); /* webkit */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#EBEBEB',GradientType=0 ); /* ie */ + text-shadow: #fff 0px 1px 1px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + margin-right: 10px; +} + +a.roundedButton:active, input.action:active { + background: #ababab; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + border-color: #ababab; + border-top-color: #636363; + background: -webkit-gradient(linear, left top, left bottom, from(#bebebe), to(#dddddd)); + background: -moz-linear-gradient(top, #bebebe, #eeeeee); + -webkit-transition:none; + padding: 2px 15px; + color: #black; +} + +.bookBox img { + float: left; + margin-left: -20px; + margin-right: 10px; + width: 90px; +} + + +.bookBox h2 a { + text-decoration: none; + text-shadow: #fff 0px 1px 1px; + color: black; +} + +div.bookRow h1 { + color: #33495d; + font-size: 13px; + margin-top: 0px; + margin-left: -40px; + margin-bottom: 20px; + text-transform: uppercase; +} + +div.bookRow { + margin-bottom: 30px; + margin-left: 40px; +} + +div.searchArea h1 { + color: grey; + font-size: 14px; + margin-left: -40px; +} + +div.searchArea table { + width: 100%; +} + +div.footer { + border-top: 1px solid #DDDDDD; + clear: both; + margin: 1em 1.5em 0 242px; + padding: 0.5em 0; +} + +div.footer p { + font-size: 11px; +} + + +/* @end */ + diff --git a/www/common/css/new-homepage.css b/www/common/css/new-homepage.css new file mode 100644 index 0000000000..74ce6689f9 --- /dev/null +++ b/www/common/css/new-homepage.css @@ -0,0 +1,253 @@ +/* @override http://docs.openstack.org/common/css/homepage.css */ + +/* @override http://docs.openstack.org/common/css/homepage.css */ + +body.homepage #header h1 { + display: none; +} + + + +body.homepage #header { + background: white; + text-align: center; +} + +body.homepage #header img { + display: inline; + margin: auto; + float: none; + margin-top: 20px; +} + + +.bookCatalog { + -webkit-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + -moz-box-shadow: inset 0px 1px 2px 0px #bdd1e5; + background-color: #f3f9fc; + padding: 20px; + width: 800px; + margin: auto; + border: 1px solid #b9c6c6; +} + +.bookSet { + float: left; + width: 400px; +} + +.bookSet h1{ + text-align: center; +} + +.bookBox ul { + display: block; + margin: 0; + padding: 0px; +} + +.bookBox li { + display: block; + float: left; + text-align: center; +} + +.bookSet li a { + text-decoration: none; + color: #2b3f4c; +} + +.bookSet li a span.icon { + display: block; + padding-top: 190px; + background: no-repeat; + -webkit-background-size: 80%; + margin-bottom: -10px; +} + +#compute.bookSet li.devGuide a span.icon { + background: url(../images/compute-dev-guide.png) no-repeat; +} + +#storage.bookSet li.devGuide a span.icon { + background: url(../images/storage-dev-guide.png) no-repeat; +} + +#compute.bookSet li.adminGuide a span.icon { + background: url(../images/compute-admin.png) no-repeat; +} + +#storage.bookSet li.adminGuide a span.icon { + background: url(../images/storage-admin.png) no-repeat; +} + + +.searchArea label { + display: block; + color: #618da9; +} + +.searchArea h1 { + padding: 0px!important; + margin: 0px!important; +} + +input.gsc-input, input#query { + padding: 10px; + background-color: #f1f8fa; + border: 3px solid #c5e2ea!important; +} + +input#query { + width: 100%; +} + +input.gsc-search-button { + margin-left: 10px!important; +} + +div.bookBox { + margin-right: 40px; + padding: 8px; + background-color: #f3f3f3; + clear: both; +} + + + +/* @group Rounded Buttons */ + +a.roundedButton { + border: 1px solid #bfbfbf; + padding: 2px 15px; + color: #7c201b; + text-decoration: none; + font-size: 12px; + line-height: 3em; + background: #FFFFFF; /* old browsers */ + background: -moz-linear-gradient(top, #FFFFFF 0%, #F3F3F3 50%, #EBEBEB 100%); /* firefox */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(50%,#F3F3F3), color-stop(100%,#EBEBEB)); /* webkit */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#EBEBEB',GradientType=0 ); /* ie */ + text-shadow: #fff 0px 1px 1px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + margin-right: 10px; +} + +a.roundedButton:active, input.action:active { + background: #ababab; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + border-color: #ababab; + border-top-color: #636363; + background: -webkit-gradient(linear, left top, left bottom, from(#bebebe), to(#dddddd)); + background: -moz-linear-gradient(top, #bebebe, #eeeeee); + -webkit-transition:none; + padding: 2px 15px; + color: #black; +} + +.bookBox img { + float: left; + margin-left: -20px; + margin-right: 10px; + width: 90px; +} + + +.bookBox h2 a { + text-decoration: none; + text-shadow: #fff 0px 1px 1px; + color: black; +} + +div.bookRow h1 { + color: #33495d; + font-size: 13px; + margin-top: 0px; + margin-left: -40px; + margin-bottom: 20px; + text-transform: uppercase; +} + +div.bookRow { + margin-bottom: 30px; + margin-left: 40px; +} + +div.searchArea h1 { + color: grey; + font-size: 14px; + margin-left: -40px; +} + +div.searchArea table { + width: 100%; +} + +div.footer { + border-top: 1px solid #DDDDDD; + clear: both; + margin: 1em 1.5em 0 242px; + padding: 0.5em 0; +} + +div.footer p { + font-size: 11px; +} + +#manuals h1 { + font-size: 16px; + clear: both; + margin-top: 30px; +} + +.bookBox h2 { + font-size: 16px; + margin-right: 100px; + margin-bottom: 0px; + line-height: 1.2em; + padding-top: 15px; +} + +.bookBox { + height: 100px; + margin-bottom: 10px; +} + +#manuals p { + margin-bottom: 0px; +} + +#releaseNav ul li a { + display: block; + padding: 10px 20px 10px 10px; + text-decoration: none; + color: black; + background: #e2ecef; + margin-bottom: 5px; +} + +#releaseNav ul li a.selected { + background: #c4e0e9; +} + +#releaseNav ul { + list-style-type: none; + margin: 0px; + padding: 0px; + margin-top: 30px ; +} + +.leftBorder {padding-left:24px;margin-left:25px;border-left:1px solid #eee;} + +p.instructions { + color: #9d9d9d; +} + + + +/* @end */ + diff --git a/www/common/css/positioning.css b/www/common/css/positioning.css new file mode 100644 index 0000000000..65a8e651d6 --- /dev/null +++ b/www/common/css/positioning.css @@ -0,0 +1,259 @@ +body { font: 12px Verdana, Geneva, sans-serif; } +p, ul, ol, li { font: 10pt Verdana, Geneva, sans-serif; } +h1 { font: 15pt Arial, Helvetica, geneva; + color: #cf2f19; +} +h2 { font: normal 12pt Arial, Helvetica, geneva; + color: black!important; +} + +#header { + position: fixed; + width: 100%; + height: 95px; + top: 0; + right: 0; + bottom: auto; + left: 0; + border-bottom: 1px solid #bbc4c5; + z-index: 2000; + background: white url(../images/book_open.png) no-repeat 250px center; +} + +#header h1, p.breadcrumbs { + margin-left: 300px; +} + +#header img { + float: left; + margin-left: 20px; + margin-top: 20px; +} + +#leftnavigation { + overflow: auto; + position: fixed; + height: auto; + top: 90px; + bottom: 0; + left: 0; + width: 280px; + z-index: 1500; + border-right:1px solid #bbc4c5; + padding: 0px; + background-color: #f2f7f7!important; +} + +#content { + position: relative; + top: 90px; /* left: 240px;*/ + right: auto; /* bottom: 20px; */ + margin: 0px 0px 0px 280px; + width: auto; + height: inherit; + padding-top: 30px; + padding-left: 50px; + padding-right: 30px; + color: #000000; + /*border-left: 2px solid #cccccc; overflow :scroll;*/ + z-index: 1000; + + max-width: 70em; + min-width:800px; +} + +#navheader { + position: fixed; + top: 65px; + right:4px; +} + +#content h1, #content h2 { color: #cc0000; } +.navfooter { bottom: 2%; } +.highlight { background-color: #c5d3c3; } +.highlightButton{ font-size: 0; } + +/* Show Hide TOC tree */ +.pointLeft { + cursor: pointer; + padding-right: 20px; + display: block; +} +.pointRight { + cursor: pointer; + padding-right: 20px; + display: block; +} + +/* Search results Styling */ +.searchExpression { + color: #0050A0; + background-color: #EBEFF8; + font-size: 12pt; +} +.searchresult li a { + text-decoration: none; + color: #0050A0; +} +.searchresult li { + color: #0050A0; +} +.shortdesclink { + color: gray; + font-size: 9pt; +} +.searchText { + border: #BFCEE9 solid 1pt; + width: 11em +} +.searchButton { + margin-left: 3px; + background: #EBEFF8; + color: #0050A0; + border: #BFCEE9 solid 1pt; + font-weight: bold; + font-size: 10pt +} + +.title, div.toc>p{ + font-weight: bold; + } + +p.breadcrumbs { + margin-bottom: 0px; + margin-top: 33px; +} + +p.breadcrumbs a { + padding-right: 12px; + margin-right: 5px; + text-decoration: none; + color: #575757; + text-transform: uppercase; + font-size: 10px; + background: url(../images/breadcrumb-arrow.png) no-repeat right center; +} + +p.breadcrumbs a:hover { + text-decoration: underline; +} + +#header h1 { + margin-top: 2px; +} + +table.navLinks { + margin-right: 20px; +} + +.navLinks a, .navLinks td a { + text-decoration: none; + text-transform: uppercase; + color: black; + font-size: 11px; +} + +a.navLinkPrevious { + padding-left: 12px; + background: url(../images/previous-arrow.png) no-repeat left center; +} + +a.navLinkNext { + padding-right: 12px; + background: url(../images/next-arrow.png) no-repeat right center; +} + +a#showHideButton { + padding-left: 20px; + background: url(../images/sidebar.png) no-repeat left center; +} + +hr { + height: 1px; + background-color: #ccdcea; + border: none; +} + + +.navfooter { + margin-top: 30px; +} + +h2.userNotes { + margin-top: 30px; + font-size: 14px; + font-weight: bold; + background: url(../../common/images/paperclip.gif) no-repeat left center; + padding-left: 22px; +} + +a:link { + color: #517291; +} + +div.note, div.important { + padding-right: 10px; + border: 1px solid #e5e5c5; + padding-left: 50px; + background: #f7f7de url(../images/note.png) no-repeat 10px 10px; +} + +div.note h3.title, div.important h3.title { + margin-bottom: 0px; +} + +div.note p { + margin-top: 0px; +} + +#content li { + list-style-type: square; +} + +pre { + color: #5b5857; +} + +#content table td { + border: 1px solid #c8eff5; +} + +#content table td, #content table th { + padding: 5px; +} + +#content table { + width: 100%; + margin-bottom: 20px; +} + +#content caption { + padding-top: 10px; + margin: 3px; + color: #858686; +} + +div#disqus_thread h3 { + font-weight: normal; +} + +div#disqus_thread { + font-size: 90%; +} + +.searchFieldSet { + border: none; +} + +.searchFieldSet legend { + padding-left: 15px; + color: #0050a0; +} + +p.searchHighlight a { + padding-left: 20px; + background: url(../images/highlighter.png) no-repeat left center; + font-size: 90%; + padding-top: 5px; + padding-bottom: 5px; +} diff --git a/www/common/images/book_open.png b/www/common/images/book_open.png new file mode 100644 index 0000000000000000000000000000000000000000..1086fbeb6336b6474f48a5510a0582e3d790348a GIT binary patch literal 1211 zcmV;s1VsCZP)BoUbkKpjg@lVct@!o$9i@X!`8?U``aBEkT zti&Wd4~6~%7=Gf&yQ80dG*s*mYM)5b*ngiwe>+oGSBu#;S3Q`bks+1l(_WU3_b^`_EBPULuEq0@~c+*!L|`AQ2}vkFCd_=+HWpT+Tz@9IZ!umB-5i2+PRu?ZiGQx|#z%qu6KJsuFq z3TYqpy(&A*qE?z_?2v>m5tPuW8IOod%!}aGE1VgURgn;;$swz0BUOdSc0n;wVOmE6 z>>z(vYvTBn8Xr_SfRDOFxpqhmMyQn(* znS|RFP|ZUS?1)0_BQY*S2^^U$p<#hYVl$}09EHghBdS?K>_ZO3%YDZ}l(K-oFHhj+ z>etVQ$QpNQC!FK_gQf2Ygn3Fz}(EQFzqY`9(ocz{X^jWGY*(*Qd;X_ZOqo>#sypG;&N+&|Fy%5osq!o}n z>yDg>LfXO1U1(=CMy>Qz%Wq z;HRtqtYYHoH}EO0+ad~FtVWt=6CSf1R&o7?K2B;yv_l4%FRkIm!V0Fw$8}=ITW=U1 zlU2#v0p?IlK=SN=yOly+nRh)Ah(>O3YdE*6`=-i;U>$9~yW99w&DWSQ0XXY#{nXvj z>XLqcWEt0;PMjRiw_FYm-0!Y82o=~K41UF0Sk&^+tDnAkvnG$}U#PS{3G6CTVkuX;DdiGP~K}{4{|yipQtr3pT*Jge*Uij Z0{~;&23{aS+7bW&002ovPDHLkV1ng#K&=1( literal 0 HcmV?d00001 diff --git a/www/common/images/breadcrumb-arrow.png b/www/common/images/breadcrumb-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..0b22b35fea398dd9fd8077174c50b102d083b427 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ;0V1_0*t`W&k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X{5)M8Ln>}1{rUgjo;i$Rl81)}2SXBLN}-xYF2fN?2T%4H zEZmcn_!P<*yqZLG6P%2HG7G$q*pP6LeMX`;OXk;vd$@?2>?v2G2j3I literal 0 HcmV?d00001 diff --git a/www/common/images/compute-admin.png b/www/common/images/compute-admin.png new file mode 100644 index 0000000000000000000000000000000000000000..42496731000fec47a30883f8d02def7abf7da7a1 GIT binary patch literal 30330 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

NTz;41+XrGfK!eo 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 literal 0 HcmV?d00001 diff --git a/www/common/images/highlight-blue.gif b/www/common/images/highlight-blue.gif new file mode 100644 index 0000000000000000000000000000000000000000..4fdabde69252ba43e8b658c74a72775caaf304f4 GIT binary patch literal 471 zcmZ?wbhEHb)L_tNI3mh0b>*rn_bz?>^5NvQ+|z#z(?15yRD zlY#Yrf@+_NCr7*Rnu7}!QgzNx-55}@F4$S|f`i~ggBz0NjqwI*2{Q9{vnE;=IjrB+ zDCD7$u;0?zfI%<#i1GTJdsHRM1Uh5*=AKsEeQ?SYjaMqdjg0|KjY4kRs^-=Wtu3wX zZqXd>y-od16RmlavwB*EXSDg-v-nSI_Fpi|n$>jqfB1PxT?^`t?fQfg*PWROT z?4=7Bj-NPj$bb8e1?SIiu}ay0;o4&VD^suExnz0EZN;6_?hnqjm6bhlW2}3)ao5bl z&nzEpx@W<5 literal 0 HcmV?d00001 diff --git a/www/common/images/highlight-yellow.gif b/www/common/images/highlight-yellow.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e847e7e01623b08e9a7e7d823fcb97104e76194 GIT binary patch literal 331 zcmV-R0kr-{Nk%w1VJrYF0HOc@`{bSf|Nr^cZTH48_|8oJ^wtd=`2yXqN@dAW)FA{*9 z0^lo>f-$0TSwVV~Os3NTjY>HMo^?sUEofV-pivzGA!zUjgNA5FQ#EN!ZcP>Pwa!Lg z*&TUsLwr0%X>V dfG2i6;P)aBqN^Dbjd|Rq0Yr!k5L_hy06YHIk5T{t literal 0 HcmV?d00001 diff --git a/www/common/images/highlighter.png b/www/common/images/highlighter.png new file mode 100644 index 0000000000000000000000000000000000000000..7d875fa9dcd97b72fa1af5da642985460f90e3aa GIT binary patch literal 598 zcmV-c0;&CpP)Xr) z)G!FiX)rMUy3L^B62~B{q?ZqK2_wi9Vl@Bzw4LG4j}Hug{z)+W`XkA3_uz7dPfxE+ z#A*O8%|E|>V)*j@3&XF!3Jm|488Ut@TGb2Bgo{<^`vFn8`;W=2NFKTJ$a3^wMR42mL`82)^{gQ@w+ zb%yshHi0!eHT>QUcR_M;^55^@zaMdNabehZ_#?xOhjI+Re{-Q|200t5*%PE0qz}al zKYsks{PX7zgR`?U!~PS$8Lm9kV)*`D0IvDn^$j4+K0wVoV0z$Qn9$pq!pOog8)Sg1 zt1AO1Cnv+EO`90Bq`xpoGTi`bUJui}71>fIXvll~`*MFa$oWc2N??s2K73&C@$q4} z_<)_^`L*33&Hm_`!7czMOAjVy*6sgwav6?ZO!TdHKSRKjK-FCQUj{OhyB{07z#7u^$jm k2jUu_ZSNR}1ONdB0IJ<--%Qgiw*UYD07*qoM6N<$g7%;i{r~^~ literal 0 HcmV?d00001 diff --git a/www/common/images/large-manual.png b/www/common/images/large-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..b99c8d77d54e20d6e42b61592a83ed2d96fd8d1a GIT binary patch literal 5219 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 literal 0 HcmV?d00001 diff --git a/www/common/images/loading.gif b/www/common/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a56815b224f865a176ee02259209bbe734a7c66 GIT binary patch literal 729 zcmZ?wbhEHb6krfw*v!vRRaN!<`}eM{u04D9OrAXX?AfzTO-;|9J-c`B-kLRQjvhVw z?%liDvuAJFvSsn&#sB~RSNzZI=Nc01>=@u`q-Vg)$iTp$_>+Z`gMptx2gn8*D!{ui!K?FQ=} zH?Xd{pt$&AAhW_8|9KxoF0L)FVBuPK^2Fx|Eyj5b!A2T$_)fYrI-Fn;YEaSX(VW82 zk<8BB^ zyg~ZU!^v%pW2>hJf)$GceOB@lW%IqbM+#%`yV*4 zSpoDBFs3Ycm>47vZsmyO|lq3pQPK+9JJ1v_kOAB<7PPOi?B$_+<{i4+h5@D_X*USQo*^ zaDpSuK*RrF;UPy+wgi?0O$Mhka~zylKP%{ViMg8^3Tnt4Ind5xl01vC$yt$sYs%r1 o3nDTyF1RxtpYS1rRbWl(0YARY!rMM@@~&Y>OFO^ag@M5u0Ak7h$N&HU literal 0 HcmV?d00001 diff --git a/www/common/images/next-arrow.png b/www/common/images/next-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..db595f465da4d03955dfcb11980a279b6ab6ccad GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8<0HkD{mW+k}PqJC<)F_D=AMbN@Z|N$xljE z@XSq2PYp^7*cU7>Bs;7_RJjWDk>HR4;U0G)l~k~EqL_RVNHXt zp|F%aL&tk&QFDfk40f#s0sKdvH+BhgXtFR)5Pp>CcW~(kW&w4*hz$n>JLDT!A~tAb uu{`2*V3nW1I#D!_;gQn}&KC>{2N>!FRd(cyzWN5Vl)=;0&t;ucLK6V+=s$P> literal 0 HcmV?d00001 diff --git a/www/common/images/note.png b/www/common/images/note.png new file mode 100644 index 0000000000000000000000000000000000000000..d0776fa5f4ca827839dc364092f9a8bec2b5c24d GIT binary patch literal 3709 zcmV-@4ubKCP)X+uL$Nkc;* zP;zf(X>4Tx0C)kNmUmQB*%pV-y*Itk5+Wca^cs2zAksTX6$DXM^`x7XQc?|s+0 z08spb1j2M!0f022SQPH-!CVp(%f$Br7!UytSOLJ{W@ZFO_(THK{JlMynW#v{v-a*T zfMmPdEWc1DbJqWVks>!kBnAKqMb$PuekK>?0+ds;#ThdH1j_W4DKdsJG8Ul;qO2n0 z#IJ1jr{*iW$(WZWsE0n`c;fQ!l&-AnmjxZO1uWyz`0VP>&nP`#itsL#`S=Q!g`M=rU9)45( zJ;-|dRq-b5&z?byo>|{)?5r=n76A4nTALlSzLiw~v~31J<>9PP?;rs31pu_(obw)r zY+jPY;tVGXi|p)da{-@gE-UCa`=5eu%D;v=_nFJ?`&K)q7e9d`Nfk3?MdhZarb|T3 z%nS~f&t(1g5dY)AIcd$w!z`Siz!&j_=v7hZlnI21XuE|xfmo0(WD10T)!}~_HYW!e zew}L+XmwuzeT6wtxJd`dZ#@7*BLgIEKY9Xv>st^p3dp{^Xswa2bB{85{^$B13tWnB z;Y>jyQ|9&zk7RNsqAVGs--K+z0uqo1bf5|}fi5rtEMN^BfHQCd-XH*kfJhJnmIE$G z0%<@5vOzxB0181d*a3EfYH$G5fqKvcPJ%XY23!PJzzuK<41h;K3WmW;Fah3yX$XSw z5EY_9s*o0>51B&N5F1(uc|$=^I1~fLLy3?Ol0f;;Ca4%HgQ}rJP(Ab`bQ-z{U4#0d z2hboi2K@njgb|nm(_szR0JebHusa+GN5aeCM0gdP2N%HG;Yzp`J`T6S7vUT504#-H z!jlL<$Or?`Mpy_N@kBz9SR?@vA#0H$qyni$nvf2p8@Y{0k#Xb$28W?xm>3qu8RLgp zjNxKdVb)?wFx8l2m{v>|<~C*!GlBVnrDD~wrdTJeKXwT=5u1%I#8zOBU|X=4u>;s) z>^mF|$G{ol9B_WP7+f-LHLe7=57&&lfa}8z;U@8Tyei%l?}87(bMRt(A-)QK9Dg3) zj~~XrCy)tR1Z#p1A(kK{Y$Q|=8VKhI{e%(1G*N-5Pjn)N5P8I0VkxnX*g?EW941ba z6iJ387g8iCnY4jaNopcpCOsy-A(P2EWJhusSwLP-t|XrzUnLKcKTwn?CKOLf97RIe zPB}`sKzTrUL#0v;sBY9)s+hW+T2H-1eM)^VN0T#`^Oxhvt&^*fYnAJldnHel*Ozyf zUoM{~Um<@={-*r60#U(0!Bc^wuvVc);k3d%g-J!4qLpHZVwz%!VuRu}#Ze`^l7W)9 z5>Kf>>9Eozr6C$Z)1`URxU@~QI@)F0FdauXr2Es8>BaOP=)Lp_WhG@>R;lZ?BJkMlIuMhw8ApiF&yDYW2hFJ?fJhni{?u z85&g@mo&yT8JcdI$(rSw=QPK(Xj%)k1X|@<=e1rim6`6$RAwc!i#egKuI;BS(LSWz zt39n_sIypSqfWEV6J3%nTQ@-4i zi$R;gsG*9XzhRzXqv2yCs*$VFDx+GXJH|L;wsDH_KI2;^u!)^Xl1YupO;gy^-c(?^ z&$Q1BYvyPsG^;hc$D**@Sy`+`)}T4VJji^bd7Jqw3q6Zii=7tT7GEswEK@D(EFW1Z zSp`^awCb?>!`j4}Yh7b~$A)U-W3$et-R8BesV(1jzwLcHnq9En7Q0Tn&-M=XBKs!$ zF$X<|c!#|X_tWYh)GZit z(Q)Cp9CDE^WG;+fcyOWARoj*0TI>4EP1lX*cEoMO-Pk?Z{kZ!p4@(b`M~lalr<3Oz z&kJ6Nm#vN_+kA5{dW4@^Vjg_`q%qU1ULk& z3Fr!>1V#i_2R;ij2@(Z$1jE4r!MlPVFVbHmT+|iPIq0wy5aS{>yK?9ZAjVh%SOwMWgFjair&;wpi!{CU}&@N=Eg#~ zLQ&zpEzVmGY{hI9Z0+4-0xS$$Xe-OToc?Y*V;rTcf_ zb_jRe-RZjXSeas3UfIyD;9afd%<`i0x4T#DzE)vdabOQ=k7SRuGN`h>O0Q~1)u-yD z>VX=Mn&!Rgd$;YK+Q-}1zu#?t(*cbG#Ronf6db&N$oEidtwC+YVcg-Y!_VuY>bk#Y ze_ww@?MU&F&qswvrN_dLb=5o6*Egs)ls3YRlE$&)amR1{;Ppd$6RYV^Go!iq1UMl% z@#4q$AMc(FJlT1QeX8jv{h#)>&{~RGq1N2iiMFIRX?sk2-|2wUogK~{EkB$8eDsX= znVPf8XG_nK&J~=SIiGia@9y}|z3FhX{g&gcj=lwb=lWgyFW&aLedUh- zof`v-2Kw$UzI*>(+&$@i-u=-BsSjR1%z8NeX#HdC`Hh-Z(6xI-`hmHDqv!v)W&&nrf>M(RhcN6(D;jNN*%^u_SYjF;2ng}*8Ow)d6M ztDk;%`@Lsk$;9w$(d(H%O5UixIr`T2ZRcd@Hkmo4Fr=W z97qF+H#wurrrOJ<-JEaJKSnNmIXm5tHN%)Gd#=C++y6y$-vGhdl1Zk=ytB-IuR|@@q#- zl7~?@mMNW{iE1csH?D3sls~cEj$!u4s5X=Js#8g#{oAueF8VrORSob$K;nnOl7${~S>};Gossm($LvVfNH4Ki8 zncYbl{er{cm_xrWq!I88QYTbHzdMX_T z0s(Nl-SU|ekX262)_`Duc2gaQ*{liqjQVUgD;<(-wsEqZ6bJ^=>2#bN>7$)xwCg4y z+2wM{XHKxPxANLJDHtf1%c7!5l`GUS1+5ffis-e1VzDR+vA4IEiz{_@00;(3rIM@x zyskQ`m;%OPjh+(@hdb;t@)?391G~GsP^;DC@oYtkQlRESqfjVFot5D6cvuq$KrnE8 zd>q#S;9(6o?ww+S-x~&;jl(FgrR+ zwqk$-AQ(6}IEd^0K7WiU2ykSb71prReZdV5fM5Ut$jT@BtSIE1ayqN?900*UDwT@s zMMw^FOe5j~S?Q>?bAtmQ7@#}eNCAEc1zPU{&e`8|!C;UzbBRr1i@igX>DQ{J8nUjl zyEaqM=-nnLEev2_x>GOW=I6;|QZhjM^Tzjw>3H{IGo4VF>eeMdPx bG1tH!FmIV0QM9yc00000NkvXXu0mjf1v($z literal 0 HcmV?d00001 diff --git a/www/common/images/openstack-logo.png b/www/common/images/openstack-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c08a93ca691b3bbad9db68e5fcf4036b58fcd4a2 GIT binary patch literal 3666 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 literal 0 HcmV?d00001 diff --git a/www/common/images/openstack-manual.png b/www/common/images/openstack-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..705fe88b10a0678a3569b230b0a9828493712906 GIT binary patch literal 13449 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 literal 0 HcmV?d00001 diff --git a/www/common/images/page_white_text.png b/www/common/images/page_white_text.png new file mode 100644 index 0000000000000000000000000000000000000000..6a890d57d41b8f8b48f51d4dc8f9f125fe8a25be GIT binary patch literal 406 zcmV;H0crk;P)&`!w9?sbz+m9WrnCkSMm&uibfu%@h)g+l2cCVj>Ew$ahtL)@HiA?s7Jf>WiIwKVC OPViJK@$z6`um%8VeJP>< literal 0 HcmV?d00001 diff --git a/www/common/images/previous-arrow.png b/www/common/images/previous-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..347bc53474ce6f9246e45a2784623ac3c55203fa GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8<0HkD{mW+k}PqJC<)F_D=AMbN@Z|N$xljE z@XSq2PYp^(7*cU7>Bs;7_RM+{CQNw1Fo``;OomIOA;eyQoxxDq zqleYEkzs-s!=tK_vpODKLJPP=Hrzbak`ij8=UULpEv8e!aHP*6O-Z2sz)AtOhAwdi tO;?4yBLSV-6%OYZAAQ~MfRV$1!EulJ!>J6GyMcBxc)I$ztaD0e0sv`WKHvZV literal 0 HcmV?d00001 diff --git a/www/common/images/search-icon.png b/www/common/images/search-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dfd5bb9f9e85540166383c79ed2b586933e7ae7b GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngj!3HE3xL=O}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigtLqIEGZ*O8WEvzdiHL2G(NLxWAHc0U{T&Y#~*3Na6`RKRDn`d%%-sL|c+&ImWsgQX>E=LjLg$9-+6KjT# zEE4P)2iPYhI^_8GJmU}8uf$xt!ou{BhJe4U3Qsw@ICB=BbI}l0lx%od)4;&Y Z5NvL9miyVke?UJlc)I$ztaD0e0s!+=V1fVu literal 0 HcmV?d00001 diff --git a/www/common/images/selection-arrow.png b/www/common/images/selection-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..81d9bfa1e740bb07bc5f40c9e93dd346672a5856 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^f|6H_V+Po~-c6;1MVaSW-rm1Oh(&s;`k=EHRgVhIYeH4I74YR;YuxgFY+ zLmEPuWg36U8#Gn~G;?{Hs0gm=Z{$>C5{YnVa#Ub8J7CfCV$%VGS^P_cK1gg}$Z$~F z#Gq^z>d<_Rc_l**-gZCXZ*{)1IWuWUAJYD@<);T3K0RVLIOb-A6 literal 0 HcmV?d00001 diff --git a/www/common/images/showHideTreeIcons.png b/www/common/images/showHideTreeIcons.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ec1f96a4c519610064feea6de06358e9f6e38a GIT binary patch literal 726 zcmV;{0xA88P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igY> z6BZ`#&b%i800LG?L_t(Y$L-b2ZW2)($MNr6N{|8D3Y1Hs4@EXeks5%$)hVFkKicx7iruNhXt=oZtVGoO9+s+TNG1A|i+gzW?(r z;&VCo>%25YWQu^ooPi>ZYKsMQ;c$770xZ9<{Y za&RV{W_@jq+J2p0|9r0P^L-zuT0<$HaIF053r`_&Cm&Q{H+i}n| zol>cYVHoql>ual|Qz?#HE!v&VQa5(ux>Ov8(8>zsVgXIlX2aP`n!#Ym;n8uR&t)_k zQLER9MlBNY8?)il(=L`3A(==7fXLs^cFj7>-y*CeEhVB^3=@cQL(EGFNSj+i#gA^xvn=?v5V2@-~JyT1jz=0 z-v`KkSQhRWhVf$AEbx3$xCy)l?!;ozMYp;QyaDb$+P#1H11-^gON17#t^fc407*qo IM6N<$g5CR900000 literal 0 HcmV?d00001 diff --git a/www/common/images/sidebar.png b/www/common/images/sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..5492671871c1fdb7c149bf233e34ebddd074c777 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp@K+MU(1SHcW3~hmwWQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8U{4pvkcwMLbBxo^O;mQ5C}5VBp8e!WN?S`y%iQnt-qwGU z>u7lMf5n5>*VhX;sx9C%(%2aC{q^zkm`nHf)ixVQbn@6YFfcQ; Xxf$LLJ^5Y}Xgq_btDnm{r-UW|fBilp literal 0 HcmV?d00001 diff --git a/www/common/images/small-manual.png b/www/common/images/small-manual.png new file mode 100644 index 0000000000000000000000000000000000000000..a61ef2c96d29a33805b16003f10510106e3d33df GIT binary patch literal 1368 zcmV-e1*iInP)P000~a0ssI28%BeN0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$`bk7VRCwBqRZCCfRv5LN#Llw}Cd`OV zC=HMVQWzKpApsKVED%yFv0~ZBrYofWfc^s3`~cJi{SU3G(oHLMK!s9Bc?bxvz%WV1 z@%wds?S9v$%#cBJuA&|Dw_s2u9Wm&o;S=B4! zFD4{B9&^A z$ut@bRaFDGenW&v@F9^Tj}CIMgAuTU-GM7$c)V9X*n^8EUQB;~f1@F>9B138PDd_m z960F9!G0*w2UsRT8nTITnyBxW48v%~DijJV8|GLRo~LMf%LZ!KKn|%+4AGj6G}{JV zA)0c?4aeTwl7-jJSowT@Y-~(bwQx8L3SPJo3lUimFPWBVBNI8QWgUz1m8KI?jt$z) zqkpP9C7^!`E167AO-P-Oi^T@E*s7K4=B+DJBG&LD=@T z*JN2vr_*n+ptG{sEXX`KIMP)u9*zCY#d>K>Gt9GMG0e9^F6anrysD_@Wm^#)Lq*6U zc22x7>ZSbh%vK~)^rS|xOL+)<1S}8A1i@e8A1lK2 z=N%m#LD3RkK(e#5v#+mDRusbkX2yo$X{v-Y#q}!|YQuqee|HFKP#8!py?9kVxXI?V zRG1+{Lqn%0$FW#UH}!Mdt=XiXF^MGI;|AUB`8_~-0s0GDno!$VHBIvt7Ra2LnGr=1 z(yB;u!?HHC>!v|aPy`V$Y=qE%B?gjRn8?!aKhCeG!EHno~ta&&d$y*EG*D8BS~U7!fuJ?U@GiDVZxvxUR!iDk!sJh4vwau zj6ED4KXTjm~`iO)z8Wx6d?ySYBS9pP!GBl_+GpzWpfCUVNI&^>ghV zIF@MCs`biQ?esX&+SWTZ(K|E@B?+@XDE(Vl@cZ!a5ZZHOWTa5&o0yy|c6GwPm-{)hPj7hiq_O?p%=E2RxaQ_}gq?C@w;zVLwO zp=j(N>n(P7XLGq0o`=i;#JlI%eORyzf5H2~Gcfi3__x=; a0t^6Tr|Tc-oc7)T0000D#{n~mfSE+!<1gKIgF6|lZ-MmA0;YUV z`IbdLClNq%zP0#!!S|~>5vXs0^v(cg5`nS8w<_P{-zonc0&?Eo8ho4Me?yy9eG8;- zeZAqp6j0Xet&4AUzTy4ZPj4UD{R_{Ze2l?45#0;}^^S~D)mw?v9RW-MV>jP=@V2R^ zYx$=~Hr#V?*}z?+z1@2VefE4lJ2CaOpMUw{FFt$r+)MVZ%l0;IZ?o+Fi?=}f*4LW_ z%w7U!ch`y^-n{PcT|@l`_6!b;8H=|`AHH|_(BV~GwKa&pyeQ~s2urk}DoG)+ z;6zJ`W>FhWU`3}`OiaL`4eRcOV<-NOKF6>|yl+4kRByAmi`RlL72&YRb( z)%w5Pw(&cD@%X7r{M?m0(dEAd(%S&c?_a-q=lj;IxMy#F-@YLW%&Ne@=iKDmoa4T0L4%gIT&Z{zwy7NlQlbNTsO?*1)c-T=&x zY*@4N2R5y{e`kO1{=PIF)DlPH|0~xlLfk2`hUnfCfu#MP@{M?W@`4`7zq0>TvWf$% z{kz11yC@8SwKX{oV{6vzV|U-puTQ#DcZ|z_3#2y(W=!B%G%!E9aqUhUW8Od3XMvfe zgQ<-l$xSmr1(*eBpP?IuA_C4O>*&4<$PGoD)~ee7PgGPxGX9wIH)uuWZ>yC`{oiig zc;pvfICb$(b@^|B^ybW>MFaE0>(}i3m<8spfxi6%)ykj)qO)w8<441BX02L<)B>y3 zY5{q9WxN~51PLFDRx_n|)V-nrM2AGfE}wo^7_!0+r4GQYiR*CBhP8*_g*(^fXKw+s zbW5`fUPQcDJtM6!+pS=alj?AJgvYNGp zfO+rm(4iguz5A+4)dftR#Hqw3yCf#H0K_6usvN*Dbw_~eLX-9Lbx!u>0af(%>y}0mx~GxPSLGrX=Wdz z$r4sLRG@@U7g12woa>#=8j&%9iw>dC7 zF^hy+-X2 zV_+`8Eb1Qq^vH(8cP}42Fw)aC+TYz>&#n7xv~tLlWaP$!Gc~UGj&9ud&-pQmV@b4j zCQ-hG1Ig$OfjUuA4RC#X3<;!5l`8kV z7?S*y&GLWg4$ShiZ*ySwGB8(sa`XDb2Q4tS_4ST9ckK>3XTgc)2`y+5m5m(E41+GP z$lTosq{Ou_(VC&#)deKRW$kP{p~+pN3foj2)k&N7d8s^wVL&K01+a2bg*DPv-lEu6 z@r3|UB|$9v{P=Y^JUVjdm+rtUKl^qD=BGy1A3n5f@WA%|-mwBZJN8H|{_bK&%(8P3 z7f4MWgik=i)(%0H;W2gL>zwGuk$zXT zmK9%%90RRrX0!M-OD&+A9=y^<%{eSc*~-pdx(K^>@7o7|{pCB(v_=5T7Zh6%@?nma?7< zrjFhW9;+#>Q6)fCzCcD( zFWpftKl|qn%p)t75wmFj;K2U1UG))w5La^2O#V)4P-w}FlHaon=kKu#%~ay!Kuxir zqKw^T*Wdw4j3tnAkp*bsx<_caGjK6vE*&VP!toRE>6Igv7~jj6608HG@*|=6d$P9t z+BL_m6qBa*^-fJ$m%sUt1?e5-^0R-Azni^mg2QK|mPF(|b+?N3FniG`Ga_wqhb@d=jweadgoFc^t6(&ky|e*S$%)c{v3 zP<%XtApjrKaOsKSQu{u#g3P?XkbuJse1CGWq-h3?b7x@t<}G(zmY@A|0p@+f%Qil+ zaqZ!ImJc3YQLC;=*fQnp`i!uH*tKIvM=9{xwF(|J)H3-+wTwfcFq0@IRSxL$_UF2C z{q!_RT`LnA^8{`Ozgn$M_veM-dMF}7kws0THmTyICui8k6Frg;DF&#-CQ`&Fi=5~F zLzVYT;f8%(^?D7ar>CLIK>a61)*boflV|T3m!I8cV7{(C`P(fpKe}(>yoNC+I1$#RURFylqH7u}b!h0Mjx zsz4$pmkj}^xd{mr0iLX;_BBwcgKDy>4vd=pJZ13~PzA?;#8#rVk0Any6yRlO4gpVp zlRK-6T_*eh3grq+X#LP4`;dd{tz@aeg)J2_|IV7WxGrkAVc5PIAp+(CbYxewE z*tva|b@~5v$GH6L7P)cN!Iet|<`oGXA6mb9=K~wo-appgyT7-R4W?`vb3P$88*dqA zqZeG>!4q3g6&2Kl#jd5s8O4_so1H6UA{DOulO~~@R8UOER+cjs1Vn{VP1!uZ2E~MB z%~lt!R+0qE=1)C`0l6-GVc*qA9WF3d#rqK0GBYAgwZblrk6A zPL=zd6t`>LX9M*gA6a|kznwgHN4Wg#O$25;vnYi!iKFsLz_iKF{X4A1?8~yjuGCos zh~l?|UHY^=34NK12l1p-*y?d)M<+0IK9;Oy!C^qcE?skm9C|_=!*ZzyxC+^{aV&y3 zVb+pZP>OA}@vJ54v-5XpO-jfi?MpPM1yk|J@^Mu_%C3gvU|>QD*?pc2b@6cOE+RfY z{-(u0V@Oaa$D+!NOS;4pP^>;NPKA97(mTTCXSWELS%+SEJ?fP^lJJJLJAZIw!~J7} z{rjs$F(|!p2h3mzLQogRn{vZINgxn~1>n+2 z(%P`ab9B1gIIk$}O*fO|UTeZFQidFtv%pz&04~&X;T~%xE}|OHGNv>+*N)+-+U{*X{_HpS=O#T*!@AB3IrH z$}X{-LqkJH>h=1e-`cZv@1}aSjus*ppUfwQ+Jjii!E%fJJ+>;7sANOgvh#2bAUHa~ zv0)PR%ZVb#Mejs8z#Be0@{SPLl`KlYjO&k+o6jl)o@TS)WQT!m|EpJAM=0lBJ3c;1 zdE~e#N=$rwZDKi9R7EhpCaZkwlnV6H+2V2-9(#U%-oL(rN13U+q>K-HQs$bX_dwoh z!Q>V${MUbM^O_^S^3wSw@A9+P2+Z~v^VL{Ox@y<0Tfb+;iWT3{+uL{G{P}a;_5@-D z2OgYm!1`L1NEMhg7!}2a!3&dB@h?JgaL8bb8Z$osP5HiN;h08v*eaVHj2p$J%BZlC zf<2QpW$?;j>+;0IO= zlJzh~mwMv(EfY%!I`r0w_@TG}4nCQnQjN7<^B5x7TOEOkF)PJz>{8?Us84QG;DxfK z7BL1a=j5%Ntd^t9xl&NU^rgntD+Dl?ys%ZqvJf$q47coEY>62+7VMi^OcrPS7-Qq} z8Fyu&<<2pIVsN_)BB7EJjhuL(OCetpFxTM{_LOU-GHsBp`pmgAu#;T=($Dg&DZBgbbVo!vC}Ag_-GT0?LW`CS0*6 zc}1G|CzbAu0C64@9`2`CIKGNYNWQD2-5gLQm>HjWOPnd48^sn+>YJgt-F(TqCt&rWq2D?fLsxn^zzC)t4?TX_ue90zlgnpLnFg zCp`SUw^FIBu%J9_E$0CX%rT5FiI5?N%QM*>Q0?RChV?-F`lsCg8r&Er%>fm$b{zUICz4huAW+bGGS3ZVr z(OCflCdw8}WI&LQ9mh+ecDKA>?9?6$_4&TQm}qP@7XT zBMO++B#nJ%p;`G3T>G=4wRhzNY;HzqUvXf-(?#XFQgwZXz{^EJqvupo8_`9z!X_vo{B^9?`XE3698$eKs)y%TWihJ(4=i~P0 zgHJv6ly4dOlVJpi#%G}=pz`Coy1HR@c7{HWCmT(evOwwMZVx_aE_bY^UDt zF{7P^)cCoi+|x24PQep}F={Pw$&RRoC~lA9#ZXIJtuX}`Zz@p)LC|9Sm}t*%66>C_ zEA4O_LZmH%Ih zr{GWnUq8mViEkzZwv;4(F+oH=FU`-LFc2M)r68d)N~lc8`Nc5cYnp2|UHz8B8My=~ z$+OQji$i+*_a0*7(-m1$wbb2x%5ENC_%eID$KHOP-vrd_bsI}oiB*F?_x1HtT$v=* z0M1thRQGQ@#_a4Y{qw<@d3f(YkGHhdBmgKbw9DMNVo5~BmZCz|(EYB)u~^Op_9VJ0 zC4tD;W%{8uDG34i5e)(de>6EyX43P@nPfmqOkA)RkYp+0*O_u@$(tyCj4-t{*J+iI zNtE>eU5&Vz=e|ji5#y?G$s~kXe$j?<98xzwijT_+XKm^4cutC*`@&h+vG=YeP2Wov z0BIJ1bjaR*P5_Eu7)OfbyL|aFY}&Muip!!3|x0`Z$D_{2&5RKQ_`PV6fIp>*S|P?ow94t9Oy*%;_ZASRMCe^6->$jUW) z!Kvu+5))&VUx4z}0B6BnxlEEv;JPls6ki7tN0`J+38HV=LYN?hD5(>rz38Ho$7^Bs z`wQM#XM7B0`I}ZBfiNjsf$}xIWZZpwJF~`D*Spx7`Y$O^j6}k|GTe@ zgyz4YVLO)CNtxl~vwH}HZuxvO@gjV#DrpL$k0NC&0ZkV{&&)T^{K!E$R+Fdy?#}y9!PhmrCk;-7X;pqR=edT7h`Fh9OjXh$8Fkq z?XrGUYRDuWW}fLh#)?$zFHd#GRT1f$Q8`SC^EgS$)d9ndDWM-ibn$2oT^vCL^`>$v zQON}%`~j>pPoFyj+ZLAMf!ht%g%T$fm7q4X{}CoiXgPz+zXF>#k64#K*Jep2KMM0X z9-yU?6vm~I%b#w*^|^VnT#`uOz+1|y#-1H7R*j4N6?VsBIj|;3ah?z~NQQ<18`1Y< zS`(5W+2CrRu9lgFo`8?}q-j-46n*TPFE*M1PAk2C7@ixbfn9vm5kFRi? zEr3eN#3rty0pU2_D@bh2ZQeMLG^C2+%1=2@uNHhR(86~mQ2)%vRZG(4C$G?PN*20` zrlux6sLr21Z$Y|=N*bM9zAxrO8K7}V3IP~gegfZWH0{4rKcNYco0TL0|AvbFCa|1J zg{ZSkC$e(7@MSl-4_{}Ngj~jtFLQlZv8QMjxmSD!KdTQE zw+mk(We+i$a@H{G4#t3*vO0D?<93M<5& zqotwDzwnA9m83kTEU!sNv7YgBMIj@WNa_)d*`o{D!3h9$qj>n4evL$;BT$x9QI?(p$*;z9*mevU~~^5fL=G?%Li zYxN55cyR)yln+x3zy2mocRGMmotBlLTUtlnhPCq{2&73|Oo_7M=6ce zMJ^}_E+4Os2d&F*@#JI5cypJn%RjKRT>dM8w8@tA!G#Vm zIXUSq*VU_6t;=6)U4F*AP7{eTgsZwEP@{iiH^#@MHh~i18flGsOX6#T%GUWHA_Y8TPE{>P>lUPR@sJ)U6SG-9TrmX?!G}bbG)=v= zmrPtj6t6D@F7B+OD+fm(^hs|t=Z=|JTp2diTp|-KR9P$` zN`D0p^8vSa=gyyn(bX%Ll*?ZzyN@j?g7k{LJ=^I3b8`){oC2zA*RE2Vbbh|+-6@nT zDReC6Lqv?0mMCTUO-+S)vK}&rs?1eZxJp;3O%O_`2)kwHrD}8gX7scf*6|oF5PPi1u%=n&aRCeQwi7Yb& zt^5+vgiC0J5J(J3{1p7Y@O@Sy!b_4S5!DbPnM&Y2Q7Uxmj3@@CbOCl%D%Rx>FBzAg z+@wZYM3xi@pGOzArW0*0|He{ON0)yCP+2vOKQM9m56!ihmR5L~Ls7%a#LbhSY)Y)D zjOXcFk`$?MVc;#-CMu4*Y0QF$@6uRGToMvgdY+wjEdIQ3ogwYon<`SmlNKknbUE1* z8ep?9e9Ta*MP6u&Yq>JMf>jFiL=L#hOX#^+(t$Q(b!P--DpLf!-ziSUyq*+)Mo488 zb4(!S4<{a}!EmEtUH*{+`E&XfQaA5Y~WC1epNu$wbo&S&6J6+n-MI`5o)$s4}*mLL4!Ol$^myF9_2&B3Vq-fACFXZwYjRv(u z1yl&sk&zK9_P1yFF*B-DdsObvDuEUCSWCN@l8F{lGfg96ux6H2d8rp`C$W^cv<^kP zQ&>atJhTJ>$s>Gm(O8OTJu!=k3dl@x6XLU&YH8Ift`bmNQv`9jlSG!1t)POis6k0d zh%Is^+w-DUtx5u|&ri9^1!terj>qTjrxCLqEbp^!2Ya7;} z#{Q?4NMV1W#0jE~6T1A_S919i6XX7aLy(S+Zng31T#2w;vZx)pPcd-g6Fz6p#Dh)k z>x{XuhoTqjnEEEvYuLpXoZJ|p{6*kWkrnn9iosiOvAtl%RL&WDm9(c)3P+&y_t8RH z9($&cB~hN#5>|mH{`Kidgn~kv+%fH2%#Fpk6-nVzDvGTo{{H-26P}oyg~unS>GiFs zW~D(zQ8%FoHBp{-09>w1B6gZcMPgz$d+9vffB2py;qqUpcOS>4(>HhdS0hV$4OXpM z<=IN1|82@2$O3(Q`FG4QeKKc_Cu2garodZK&G#E`>73;O9zhmnKE;aGdPqTtx=xx$ zh*i9Y$yq)mI9Hhf9m_)|T-pirxIoC3jUxqjv@~BV!Zm2Ig>CZioTtwD&R0xYwsE;l zPJ@7&fn$?1@aXkPcyxT4o_}|57wqltft9sNnIXiokP;eTJdNI_39f8bP`kKA37C#0 zr0wsgPM?CUYu79Zmw&Ul`Rn*8Bq{NA+A{c*hFo~*G^tY6QuF%d|lEvce77T+rm(Mj!BF7o5k z4Va=NOTlPQ9eS|TMPtQfa(W z=HDUAD0%v|{c+Y_JadgX%KUS-R4o?9C597M1?0pdwQasR@2PY`am%8OA)@^3EM?(J zTtWP`LDQ7W{T8p{bTFL$Wy>MW#7y4|xjsR6$U68OP z`?kCMR|&LD&TcBnbSMv3&#_n6}Z-`Sm!iwWFA^TZFN}SBv&cD>nkhsBd7X#!pq$~$@L5#AN0%@CZ;0Yu zvAnW&27ywi@=eHE#X4!O3t~c1Wu-Y_c9CrO5Iv|CwF3GHYr9@y% zMX$pFxxyOtKCxjDTs+R){CuDhvU*;VZ!I1n_Cdu;JwAX>l&uTH>2*PJWgKh#U$ z++{7MjweaMF}BcB7R-wkSxdL+*#WP`TU4$!ZD>*i9;*!b`A{Qq9WBk}FgjiY1R|Fk z@I)Q_{ASOef&2FEx~(q%)m#mW%JNPfa$R-$%&FV%@?Q-|7v=KNddl7;{5~@? zMM+vB>rS5IGXdy8lm2?EohlA{!1|>w^8F{E%4^06H~B@6lvYJf zVf@J;m6%Ys@k|S`=3HZ>ZkUawXDvV2a_RJ$9c#Mi{ z4VUfCQI`xLD6+_m({I0g9%hJaqAmDm;P6l%J#L;kqK==Cgt2SoHucepAgy`K8A1pH zu2WYUleS4?rcM1*qw8*)%YQYA)1qBI0yTE|Teps~c*Kn*sGAk{V^WIDK3%gf`LyP3 zBJw)}UO72Vlr+!WlQjet#fyqMTEIF=g^x#dxz))(OBc#Bh!B)qC>OT7D}om=Wr2yH ze8jqQEVLgU9)v^725e^D6V&b6H3&Qr8$2ixWVNi~IzsmM58JTdbLXzYSFTNvL^;0h z71b)dFf~gT!V*_HIWzP$NLc3DmcA;z~%&get;zS^Ar~Xv`zn$9OeP zcs#o23_@}tVz-{BDw?X%RudAzF+C6qZT+JYs_)iX9_M@EA}?Z$opVhZ#P+Fk(6xlW@QN>JQ-Q)oa}KV zmOO2b`{JydcEEU6Q6Ya8cJ$O?xSGMchX-JvwU}skH+R)w%6`5C-022<(^_vKbW8GN zcqf!dSa=}{2$Gm-nuTOD_FUX}Fs&w1w(37}n_T{@O`I0(@)4-9%SVugxO5?%DAVSm z;#O&x1|7E_;3eg@Z_4FdN7)@=AwjtzK(18D7Ci9!^uUTBz9>#D(=Zu;^Hw5Ap{Y+k z4-Z>+`>+KAx?6PN9+(ihQalEa*Fd!4S=_o-95PrSkK4ywwjh^eD z$g1#Odz-M9RJVl(_Je8# z#3^*)MK17h)9CW|+@36dF;~H&T>jOoR~B&j8ahctmgRS#TtD^hIb^gC>XhO&;+1M0 zW!>CYkM!bwjOllBMsKN2iwQ+%Gg6-}==GkNZIBy(>EVwa580oIU)04B%ZU68iYnQ_=o0NU=(l}h^sa>UH0#yfofRLWk)W_-) z2FT}2x&_gC^l9tzx2<1yTU`EPK)NWGkKL!(<)c+W(h040xk1Ym+7zJU%s&FHSP&H4 zwJx9dqx^TXxOBnK69t(Z$e9-o|nqm$EAs={&+X60+G z)uPs;pPPy)d(Oq@zQF)q3P_fR;fepcwZeaL_A;EYz(ni%<6G9j9&3>^rXJ$gs#+Dc zTKE2!7p_uG72W!aGjo)b;c?GeEBp6XCMii8?d^hTYdNP`L}G7m9X`2kIV{W4P}}A5 zn0&sTdBs0BSsqi8$5b+Wj=%9jEG+0zeeaW7*4}cLznH{nA(wyCHfeDA*J0<*G2hEC zm7>}$Y2^0(_bAzsEdMOHg1n!5YMb%*bURLZ1k^6pEF#Nd;5iG(2d`X*FP}U`JlKQF z2jSq*0Icb%2L%!1PNF11CGjtw3{8Z|#6Wmtd=fr;<}&=*g)7#D&%=TKZunQ5SHt^P z48cWvF`&DbStQ{aAgJ!QNzzoSfG6z5g5>7|gFWzP)|FqMZ^CICv-bLSaRT4Fb{P!T ztK_ONj`g%bX@hbfUuL4bgb$a^OvI~or8LI_s3@7Hb#W|a`S z(PBPi!8vSQ{J~`dbX(usLl)F=I(6jDjPFc|qMg5j(PH8FN~OZRZv#)-V?S@R?{}{p zgtgW>Ua?lO&fr2$>Q-y@p0kgUy-V_%Putk?OP8)g!vgDD*QY46zsH6dTdZ~cyUXL& zqH4H*xZkTtZ^W3GM`Ds_UqB|>SX{h!yQmT`KS_(xaDss+P{msr;llFgT;&D@y8Iot zp|HPLkalwU$B+Qk>A@(l>wT)e05zclY)9oh71!eR9 zV1bDV&fEIC;6tm2;Jb$VpsHL63@swY&Q10b1<&+*nMnXIJtX~qiQV0H7bZocTThcx zman5RYO=ESc{0%TPmHX&r7nN5iPJ(Z|M8pC_rOa;j*abN!CkX3P}^&z0A*{+AN+Zn z;a}sLAjM4_i)s_J?ePs_4fC<<6I3$7cn_1GLqq-0Z>?G(YiZc+PtDB2taZyG*-e&) zm`#ai%u9C(FTaQFvH$eEjlWr;1SxgTTMLbyn*;Vap0Pjw_Nj~H^1o@5rAh0;F#*D3 zZ|Uix%pNTx5p&q`VY_s*wVL=CvdSR_W*4D z!B4`54}Q4R$@4qcXr)ew?=_RP3ogOsyf+GeH*xx9IDCt<{MUm1PA>l|3qAPqbF}Lj>UGgO8wS4|JdfWHohEyvA!DNWslIp$mV(K3)_>M!IV-Y=O?o z{JsH!r7#p5bJ954s|@pO$^v!?@@n}V)9%f|kCnhEqr1$B0mgv@{jt;Wd5g>}0@WA?=3DeVr*la``mp4C4 zLgHG7KvweeXRg8vHbmIo*A07Ywm)jYgePx%e=j^SJ_Q?W29DYId#rmNuR%gxtcwSYcv0lwb;Jpy2-4L2mVMPOhR!N^J+Wq35&0khf6BP~_ODb*$# zqvfyF?|2ss-+dp9Kld!W_}SlqYZjcT3cLk5o+z6nNg8b+;Gsj@Z+3!s=eV7JBVXnh`SVf9Mos6A}_P%B@;?U<0 z;%0^CJtQSU5QYL1r)-u#w&Rw${MQ=nF3RO2NMpX~jvYIrQdF38YOk4^5{=K?;Pz$g z;@PC)3C2RblfFAK;jswr=d8k1CW1^DKzJzZ`G5ZWRroJ2o`%P5{QB8b=im=sItPuZ zDHy3`#AL!`=pmbUAqZtf_}-yDI6gTG?^`uQrwIZ5lno2;wfEWQKr8!=s}u071?dOv zW2#(G$C8*~ol)>R>sjxKCQY4M-@Hwvq$`9MRPWmLu;Vj73EO`3U(;>t4}S*Idfi{r zjSJ_YIWZ0cJI4I!stydo!1gg`rMVIy9VX4=FY&4%tZwMYFa)79&hke#-!hl~T0y#~ zEI$S*x_lhW6PJJUnyJ`VQz}JC=SIFBg=*xgl%F6KzptWRJjGgkLasC#aB6nW9}B^A zZgv(vY^~+{R}R4^Hm;)j={XBXBqTp#6Q4ggeG$ejXojr?#bgKH4`$-%^6~Y)f8{bb z+nA>WX@c6K0Eev$e_-t}d}!?oVlGLBO-&9=O2BO`A&<(VCHU&+@)pdsa$g$4!aiOW z>pt)yD6A)X{Qv$x;P`L<8YI;k3~U<x6R0V zGB;@|J$?U1_#&YtxX8jv!)UbPkrzNNf_BT+5*BYj=yt7G4PC3&z{P+1M=qO67!jX5ed}EQ>p}gZUA}+>yHDG;Z6~p_GT_>Py3h^EAeAg%W{pHJHV*u$ltPRo zS91EAb-$k)-2gu_vd+5WI{e)w$AQHbj@Q;_r;SX&r`GM8TVX&If6}h#i%ewU$ za(#G3J~loBk4?Hv{_V>Lo#Hb%#?&@yb*B9ML3c{BWwcsY4XCCWi%2A%HMQ!y-Uqw? z-TwkBEWi}6#t{H#?AGVUuZ1OPjQ@gV$MJtN7tYaRW~}Q!_19m3>GNlO0@TVi7xKfP zB96nzg{-4A%Ea=O;NoQD;-cX0&Mmjb<-Z<~F4E;+^lunHjNaZ}7#J8RS=0EYZw68? ztrJ}SBdS6KjhuBxRm7UQ;nTABVfIaRQfncOSj&hpByMhAS+COB!9l)HZCp*D75?R( zfgY-X{-(9SU$}6cVp{B-W8D(Do!GTfs6_>`86}9*7LoLM+@(Sg*6l@t`vN3Rtgl>6 z?i@=;wc%AR=}D4^?_i+PKj7qaIAKhB`(VZ0_d@TQbw1R=>>gcy*46Db0k8^Ewa+&+ zG8zm4xW#OKz>s&Jk_a4Wa)rrT889>$vrbLcKRLGLO?UaPCvjSo%g1hv02ObTKy|XF zVhxRCoWhH2ziH#+B_Nhd3X_Q&HP%syN=KXK5^DW9MdlT?3OqYLqpdahnu%dDha*>6hqn{oBWQH<^L$HhJ3pQ$GXi-}^xr z+_T?*W>=nglpc#fO)W52?0*}KKJdeE@aO&`jDF~W$T})7t0|wAR1D-ZbexC6ulzwi z?i3dGckO)BUHsb9y0c7p zqv5z}1$r!)x_f%5?ODw#uw$T?$i%b;$DWK$)|Jl~2g+R*q&Su#N+8-x+-SJVTGl=+ z1>wY~4GUU4ap3njF%PxEO#>O)!!NXu=*qYL5C0?V{<)uregENqgTApnFk_Q7)UucO zd(K|Wn2n$Q;^!c-0A2q*-|v}JMv|f(yXbvj-E92%XW`|~{Q*o^P!De3<;zwx=dH`1 zxDIRX|1P-eXa6H?djIzlf%%2c{ti6$|NbX1F(ZM?R0TH&y@f~15UFOUG&=SE;wwnbe%f>Cic}4bhxyl ziaqu$5DaV?o<_x5ne3UpL!goPrVE$?QxF&KmRA3__IHv$KvPWWqqOxAP}R$(+)Ex&XA}D z3uEB1QHrN(KfX`xesi<@*PA#kioS=yLB@V?`PbOx&n;|4OKxA6t*I%y{HKi#=y9iK zlR?TnR-F5vnVN*D>1mj@7sUAN3{>q2`p)42_{|fi;m^)ogvYNm*&mi^_A$+?m+9nQ{L){*xCLp$0`$!1KTBZf z+dN9gz=VXXf94V?Y$D9tgy;Ivhhg&vJ_LiCM(83j_E-pTj9CXaY<8Yv%~}}Ve~`j~ z;eBuO1Be$bfX{!)CQc`g)9Y|+;49>Da62}>7gU=@(BXxG;C8RUwP5jQyf`bI{l_be z&`eI8e9>n4Z?4PF-hg9ta`_M2+dZAF=>=H6e7R>y?b@{q9(m*u=+ z*CFWMvK6j9@tBJRF4DKkC#{tT#CJTmKDSvd=ee zt>lS6{#_fx{wclR*^B30qkwf>eZ3k@Nu3nW z(@#I+CCEL&BC?_cSl;ultu<9`)>J@;F2BJ$>RCwK^U;bzl`d-mp|I&o8MtULQF*4I zcZcw-uUrGm_umCQquW7Q7kLa55c{}+jho4(Ubof^PbRMC-u|!u9jrL=PB{JNpQGbV zJohXtvzB)EzyDudi_^N^%MX4Xa{HOkJ1AtkvIUO~fi8UI?vb+z2KRtc^Iywu%cd}&$X+& zo6eK8LzOCj)^Qn)5;^<6@7=xY?%zH3(w8D@imoVMD(-&KF8}P=GuC>JvHQPF9MeZ1 zebm0;{>Yl%==MtqQw&tJyh(T|2-LgmOL6?mBy3%VXiAj%0u%zI?l>5K$-4y(T7U2x&6 z|3H6p^@&Ge*`dSa?l1iPU%|5dZ-aFo_rXyT&)dIkr`zgb-7tc+YC`~gZP%YT3a9_#bM`q7S_}CR zD!PmPuMIAvYJ-rsb)kcANEEk!na1aJCY6^w_a}yH#(0cprW^3=)EqoL)qow{6??0} zj-G00r?N*vzAuFXQMpO1s)-#qZ{lmsOxrlWsDFC@&UbW3ppvDMI4$JzpR~8TJG=Y| zYfbxo&2(gB3miZGJY|wDK{7WaPrxe@DHP!3C%#W)5}&niYYMkM;|bNqyEu8JBFj@m zg>{TGhj#BJH(pp*JO0#B(AGjU&z^!8e*Kq;S%i<;x_%?{ZQTJ=Pd^#-RqfwSSogks z?*Tfg6pN9c8}|KNwAwqg|=|D9ih zE05a*=*xfSRQ+URg%w70A;5{WsiIv0!V$$+Hf3YsmuKgF8E&kn9?1up^4XJ3X4;M6 zNSrSdzlztUd)+fAJ~kwi$C_6NA>3%OvQ4HPe|Fo`*hb85Oaaz;6p_SSyP$CIZ;4>2cM7$&)Wq z7GH3Zf*Cm8k2E?-)Gj~%2ps?IU!{UPl1B2WaRR9J8~2pohng^3-nWKJ`&1Q7=LI}F zGjHR}23%VEEZipF0hEM>ZW? zU9YZYmtThB^) z0*1oJf^LPRTdUJR?_q(7apuLjCINC+Zyh$)9fuajUq}X0YtP0i*fIl%+H}}E8ow_I zg{V}9?OPUZ6EchD9j)`zQzRMvecLzR_eR%DlQ$5crp@Iy;3gZMCCe}O^0(Rh=Ss;_ z*_yVMr~y(ot;tOJ{&+44EooCZ%h9)NIdu2*_zzx3yFO`!PPOKCIN1!n#K<)Te)P`TvE@o6|eI|tjlD%PFXU=so}+B1c( zvB9lp_j$UOCzaxOU5~_S#%mJfyzl}_q-Vv8(2_)XfSZVSI%&Php*_0}Fi7K?>Fa8f zzR?6#arv<|U2wzmxpU_{xF#khVC&XxG*%KPPXa`3%J+2wsy5}hs1r8jN3Hs%y&#-& zilMI0e8Cds$a=RwU$dDyf?~r*e~3y%=;piZjcTm?w!GfH1<2&{$6(NcG_BR$Qd?fd zGkfAVOg;M~tbFHtVC#?m1Z?}vPf`eg;1%mg78XgvV$t~n^K(m)6;nK8CFk~XGlyqp z=E!Q|Uv8^sHZy07i6)E3V?5E@>#8bVhpED>5*RN8fl~`fB*-fqQeXuWuVEmusfj0f z13PL8%Wj)DjjgDrE25g|>u!@~Zvsdq%a1oae{vz0k8M%>!glH1cORl!X}nN3BvEmq zWNz#@aWWOx3ZE(x7*(!<0Nj1TW0QsCIE<(m)`Fh-+#kZKcfAi*+M6%xQyJ+SaN(=} zNSgX$HPGcRKXe#+w(X#wt0{Jl+-pAjm!F61(FdVt!)A(aC!cu|TJ|CdJ5fXKkTNJL zTnfTcSmKw~y7e`e=38)qybHi^HHDqsRX?{SS-F-PD1#dkoMcX%HsU|3neFhRDL(4MO#2nHM0If%E$G_8lxHeCC@UE2=-+R>G_)=<4b!k)cnXJi)u4T-F{y$VF+c(`l^;z~C)v+~U(D5&6-~ zt)eNIcj?-KhNSajdB|y-ouY*#@mgy|ac+KS&pudj0J} zCPG-Q@$%m`Zkx67<`6$P8wdMGySY#jL8GP__ zUqxB1j{!PQqtZ@KA2(UiDj#cIg%~>n3@KQN1p$f=YVv|!B+OvPOGMuc zb>gz1#7BJ81jbLk0Ec$(I$%Ni=N*_)#cRp(-wf4>MQwP-{=Ha4w5F&EJ?CSnGTSM( zoF%ufqYPgMDI7{DjAO?Wg|Dm5Bh8^uUGTp6D#xWn%07JxTIbKe8Jk4SSwQw|+Uy6^ zq%w`g{Mz84%eytp+i0f+T1hjG@!V=00ttr%SrWQ6)HqwEgU{rbfUt1f$O zA2x>xXY~o!F2#idcgP%L-z8-&o-{4^f|d#hU8G=20>5(X7PH5&PcLK?qfNAWJn=Qu zM8?PQILs-)1-c*FyW{X1mF2$~AYIgkXWaE9ePX?!TUg~p-;g}TT`1j&!YAut zI5vGoCscEsBeFz6g?}aMwpmKjN%R!t+BbguQ!r%X&AQFf*M0a0i0E(QG zN?1D}{uvXzL|T}v_AFXY39t0=qbNkvOZl0y59f-RPqRJ?CMswFv3#*zTW zi_gQsU1JB{C^Gb$k=-xEF6Xo zk!)kaTauNZdc`*6F$>J6?QNNjk$3fW!F~(Oo;306Bgs-{6~7M1ZHU%>5rr=g$!0zD z4$PUAOgv)E__g6~&PowMo8Bwy_xm|}JV~Y6v<`JzCSOa9m86W=6Xd!mHLP6t;{Fz0 z{^;se*5zk!h|AC5&G}kL75d|yUH(N_yLKG|_6i(6eAta8lTem&$x}o)3CWWQ*}n&> zqAGyf^x-VhQ-yV44|=7F6QI;zuuRQYf>(27uEV;f#xqR$6wY&UHn>P8el1?*F?a7ml<5d1x>Vr=giFff7 z%Xy$^;(CgOa;_Ch$wbPTIcD&)Y`Jn?3W0*Pvo?%qalHHF)GRzP*`Ur30uyi8`4NJL zv>An&gds-4LvP68MDKy$6W*^xR)pO%J7DJoHA zmmg6pg66#xu@n9GgO*KvEr35bw)J&q`EMpj7jpS0JG=au(s(nv z|IM2>dBNRM@}%2HCmoX~vK^7xuV39QLbV((EET_b@%zZ7``sSPK1lwZtRR zhHIi;1K%_0!2`)x2ci)YsefilmDCH9pt|Kq(6X^4>d~jX#!|C@uWysG$ADVh1NPdB z$F0lX`MOLL3-VCGF|b#@Jh=G zk3Y*XC>i6#sfbr8%GIuo*I9Lz-S;?Me9Q4=8f{Xcfk58Nq}mDqkunv{g2htnqH7TC z((t5lzjGC27ggcuiq7~Zena8-sgtmE?V8u^^55)jW{Yz9arX&9ipi5N@pw{6hvbPn zCpZ2+#DY{aEfOYIu$$wb@j{T6A|7YL0u+TKuvCOrb4z#4ClZdAA}+Hakf$oF-;uG4 zu;Ig5O?oZ%zFM^sZRRt6Ttr@1tko|TIcJHU7RQ&lHeRnu!XL#e7G(#jyuS*sWXw$< zl*mObHPOuTQyKKW^c8_Ru1W|ijLTy}ut6`O=NkOFHPQD_f$w|9Mqii9f3rclsNGMq zvon5b6u(bRO%YJtlCrpFsyntz+ugngDsR?!DvvT*6c*!{4FNibQ;^!NEypDfm;@E< z!ZB9FXd#ap3YdWT4^g&!u&{20Eo2_?MWvlcx~R-7BES_U>dVV&8wE|&(brDRE|tau zyJ1g+_B>h@6!Jv2kuAFSjILchHk`e7 zmwzkvl`qQW#~>A#A674#8)x&)jWMZiOP-`Qi7(~BW_VGR%TvtZ4SF)MHmfXO{Q6k zsEgBiBq7NjghL64LIknuCaz-eg^_a{Tcxdj&cf#WnqqBJ&u4|ONm>>OXQbGYQQ2yC zuIWE#Axq$iPOG)>IvTUkvLV0+#mwzijx+s@FK7QS?)7j-uOiaOs4I6!yUy3

!nuRu{y`W^7 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

H>9d*+zitw%PT@AN&z2 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 UWregeV*mgE07*qoM6N<$g7Sebi~s-t literal 0 HcmV?d00001 diff --git a/www/common/images/toc-icon.png b/www/common/images/toc-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb88d26b247234e8afc59327e335cc4b4687794 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngj!3HE3xL=O}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jio88t978H@CH?vT-=2AALuVtC!^AW(31vgWLi-6t5gQU1 zlbxKH{Pv%jZ$Dq~SX#@^nG+{Y)VMw2Fh`#81+zstY&VTNa^#{u@(3g_n8m93GL~+8 Q3N)6%)78&qol`;+09K7RssI20 literal 0 HcmV?d00001 diff --git a/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.css b/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.css new file mode 100755 index 0000000000..3f3e8d4ee1 --- /dev/null +++ b/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.css @@ -0,0 +1,295 @@ +/* + * jTweetsAnywhere V1.2.1 + * http://thomasbillenstein.com/jTweetsAnywhere/ + * + * Copyright 2010, Thomas Billenstein + * Licensed under the MIT license. + * http://thomasbillenstein.com/jTweetsAnywhere/license.txt + */ + +.jta-tweet-list +{ + padding: 0; + list-style: none; +} + +.jta-tweet-list-item +{ + background: #fafafa; + border-bottom: 1px solid #e4e4e4; + padding: 8px 0px 8px 0px; + overflow: hidden; +} + +.jta-tweet-list-item:first-child +{ + border-top: 1px solid #e4e4e4; +} + +.jta-tweet-profile-image +{ + width: 48px; + display: inline; + float: left; +} + +.jta-tweet-profile-image-link +{ +} + +.jta-tweet-profile-image img +{ + width: 48px; + height: 48px; +} + +.jta-tweet-body +{ +} + +.jta-tweet-body-list-profile-image-present +{ + margin-left: 58px; +} + +.jta-tweet-user-name +{ + font-weight: bold; +} + +.jta-tweet-user-screen-name +{ +} + +.jta-tweet-user-full-name +{ + color: #900; +} + +.jta-tweet-text +{ +} + +.jta-tweet-user-screen-name-link, +.jta-tweet-user-full-name-link, +.jta-tweet-a, +.twitter-anywhere-user +{ + color: #900; + text-decoration: none; +} + +.jta-tweet-user-screen-name-link:hover, +.jta-tweet-user-full-name-link:hover, +.jta-tweet-a:hover, +.twitter-anywhere-user:hover +{ + color: #900; + text-decoration: underline; +} + +.jta-tweet-link +{ +} + +.jta-tweet-link:hover +{ +} + +.jta-tweet-hashtag +{ +} + +.jta-tweet-hashtag:hover +{ +} + +.jta-tweet-attributes +{ + display: block; + color: #999; + font-size: 11px; + margin-top: 3px; +} + +.jta-tweet-timestamp +{ +} + +.jta-tweet-source +{ +} + +.jta-tweet-inreplyto +{ +} + +.jta-tweet-location +{ +} + +.jta-tweet-retweeter +{ +} + +.jta-tweet-timestamp-link, +.jta-tweet-source-link a, +.jta-tweet-inreplyto-link, +.jta-tweet-location-link, +.jta-tweet-retweeter-link +{ + color: #999; + text-decoration: none; +} + +.jta-tweet-timestamp-link:hover, +.jta-tweet-source-link a:hover, +.jta-tweet-inreplyto-link:hover, +.jta-tweet-location-link:hover, +.jta-tweet-retweeter-link:hover +{ + color: #999; + text-decoration: underline; +} + +.jta-tweet-list-controls +{ + margin-top: 20px; +} + +.jta-tweet-list-controls-button +{ + padding: 5px; + padding-left: 20px; + padding-right: 20px; + text-align: center; + border: 1px solid #999; +} + +.jta-tweet-list-controls-button:hover +{ + color: black; + background-color: #999; + cursor: pointer; +} + +.jta-tweet-list-controls-button-more +{ +} + +.jta-tweet-list-controls-button-prev +{ +} + +.jta-tweet-list-controls-button-next +{ + margin-left: 10px; +} + +.jta-tweet-list-autorefresh-trigger +{ + padding: 8px 0px 8px 0px; + margin-bottom: 10px; + text-align: center; + border: 1px solid #999; +} + +.jta-tweet-list-autorefresh-trigger:hover +{ + color: black; + background-color: #999; + cursor: pointer; +} + +.jta-tweet-list-autorefresh-trigger-content +{ +} + +.jta-follow-button +{ +} + + +.jta-tweet-box +{ +} + + +.jta-connect-button +{ +} + + +.jta-login-info +{ +} + +.jta-login-info-profile-image +{ + width: 48px; + display: inline; + float: left; +} + +.jta-login-info-profile-image img +{ + width: 48px; + height: 48px; +} + +.jta-login-info-block +{ + margin-left: 58px; +} + +.jta-login-info-screen-name +{ +} + +.jta-login-info-sign-out +{ + width: 97px; + margin-top: 2px; + padding: 1px; + text-align: center; + border: 1px solid #999; +} + +.jta-login-info-sign-out:hover +{ + color: black; + background-color: #999; + cursor: pointer; +} + + +.jta-loading +{ + margin: 0; + padding: 8px 0px 8px 0px; +} + +.jta-error +{ + margin: 0; + padding: 8px; + color: #000; + background-color: #f00 +} + +.jta-nodata +{ + margin: 0; + padding-top: 8px; + padding-bottom: 8px; +} + +.jta-clear +{ + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; +} diff --git a/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.js b/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.js new file mode 100755 index 0000000000..32903d65bc --- /dev/null +++ b/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.js @@ -0,0 +1,1807 @@ +/* + * jTweetsAnywhere V1.2.1 + * http://thomasbillenstein.com/jTweetsAnywhere/ + * + * Copyright 2010, Thomas Billenstein + * Licensed under the MIT license. + * http://thomasbillenstein.com/jTweetsAnywhere/license.txt + */ +(function($) +{ + $.fn.jTweetsAnywhere = function(options) + { + // setup the default options + var options = $.extend( + { + /** + * The user's name who's tweet feed or list feed is displayed. This + * param is also used when a Twitter "Follow Button" is displayed. Usually + * this param is a string, but can also be an array of strings. If an array + * is supplied (and the params 'list' and 'searchParams' are null), a + * combined feed of all users is displayed. + * + * Sample: 'tbillenstein' or ['twitterapi', '...', '...'] + */ + username: 'tbillenstein', + + /** + * The name of a user's list where the tweet feed is generated from + */ + list: null, + + /** + * A single search param string or an array of search params, to be used in + * a Twitter search call. All Twitter Search Params are supported + * See here for the details: + * http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search + * + * Sample: 'q=twitter' or ['q=twitter', 'geocode=48.856667,2.350833,30km'] + */ + searchParams: null, + + /** + * The number of tweets shown in the tweet feed. If this param is 0, no feed + * is displayed. For user or list feeds the maximum count is 20, for search + * results the maximum count is 100. + * + * Unlike in previous releases, since 1.2.0 jTweetsAnywhere is based on a + * tweets caching algorithm that will always deliver the requested count of + * tweets accepting that this request can only be fullfilled by calling Twitter + * more than once. + * + * IMPORTANT: Please always keep in mind, that the use of the Twitter API is + * rate limited. Non-authenticated users are rated IP-based and you have only + * 150 calls per hour available. Every retrieval of tweets counts and so does + * for example hovering over a profile image to show the hovercard. + * jTweetsAnywhere will always check the remaining count of free API calls before + * actually calling Twitter to avoid black listing your visitor's IP. + */ + count: 0, + + /** + * A flag (true/false) that specifies whether to display a profile image in + * tweets. If the param is set to null (the default value), a profile image + * is displayed only if the feed represents a user's list or the result of a + * Twitter search. + * + * THIS OPTION IS DEPRECATED. You should use showTweetFeed.showProfileImages + * instead. + */ + tweetProfileImagePresent: null, + + /** + * Each tweet that is loaded from Twitter will pass the tweetFilter. if + * the filter returns true, the tweet will be added to the tweets cache + * otherwise it is ignored. The defaultTweetFilter alsways retruns true + * but you can supply your own tweet filter to customize the tweet feed. + */ + tweetFilter: defaultTweetFilter, + + /** + * A flag (true/false) that specifies whether to display a Tweet Feed + * or an object literal representing the configuration options for the + * Tweet Feed. This flag works in conjunction with the count parameter: + * - if count equals 0, no feed is displayed, ignoring showTweetFeed + * - if count not equals 0 and showTweetFeed equals false, no feed + * is displayed + * { + * expandHovercards: false, // Boolean - Show Hovercards in expanded mode. + * + * showTimestamp: true, // A flag (true/false) that specifies whether to display a tweet's timestamp + * // or an object literal representing the configuration options for the + * // timestamp. + * // { + * // refreshInterval: 0, // Time in seconds to be waited until the + * // // timestamps of the displayed tweets get refreshed + * // // 0 means no refreshing. + * // } + * + * showSource: false, // Boolean - Show info about the source of the tweet. + * + * showGeoLocation: true, // Boolean - Show geolocation info and link to Google maps. + * + * showInReplyTo: true, // Boolean - Show link to the "replied to" tweet (if available). + * + * showProfileImages: null, // A flag (true/false) that specifies whether to display a profile image in + * // tweets. If the param is set to null (the default value), a profile image + * // is displayed only if the feed represents a user's list or the result of a + * // Twitter search. + * + * showUserScreenNames: null, // A flag (true/false/null) that specifies whether to display a username in + * // tweets. If the param is set to null (the default value), a username + * // is displayed only if the feed represents a user's list or the result of a + * // Twitter search. + * + * showUserFullNames: false, // A flag (true/false/null) that specifies whether to display a user's full name + * // in tweets. If the param is set to null, a user's full name + * // is displayed only if the feed represents a user's list or the result of a + * // Twitter search. + * + * includeRetweets: true, // Boolean - Include native retweets in a user's tweet feed + * + * paging: // An object literal representing the configuration options for the + * { // paging support, that specifies how more/earlier tweets can be loaded + * mode: "none" // by using the supplied UI controls (more/next buttons, scrollbar). + * }, // Accepted values for mode are: "none" | "more" | "prev-next" | "endless-scroll" + * // if mode equals "endless-scroll" you have to set the height of the tweet feed + * // element (.jta-tweet-list) in your CSS to get a scrollbar! You should also set + * // the "overflow" attribute to "auto". + * + * autorefresh: // An object literal representing the configuration options for the + * { // autorefresh behaviour. + * + * // IMPORTANT: Please always keep in mind, that using the Twitter API is rate + * // limited. Non-authenticated users are rated IP-based and you have only 150 + * // calls per hour available. Every retrieval of tweets counts and so does for + * // example hovering over a profile image to show the hovercard. jTweetsAnywhere will + * // always check the remaining count of free API calls before actually calling + * // Twitter to avoid black listing your visitor's IP. + * + * // However - choose your settings wisely to keep your visitors happy. An update + * // interval of 30 seconds on a feed that is updated averaged once per hour + * // does not make sense and is a total waste of remaining API calls! + * + * mode: "none", // Accepted values for mode are: "none" | "auto-insert" | "trigger-insert" + * // "none" (the default value) - disables the autorefresh feature + * // "auto-insert" - automatically insert the new tweets on top of the tweet feed + * // "trigger-insert" - if new tweets arrived, show or update a button that displays + * // the number of new tweets. These new tweets are inserted on top of the tweet + * // feed, if the user clicks on the button. + * + * interval: 60, // Time in seconds to be waited until the next request for new tweets. Minimum + * // value is 30. + * + * duration: 3600 // Time in seconds for how long the autorefresh will be active. After + * // this period of time, autorefreshing will stop. A value of -1 means + * // autorefresh for ever. + * } + * } + */ + showTweetFeed: true, + + /** + * A flag (true/false) that specifies whether to display a Twitter "Follow + * Button". + */ + showFollowButton: false, + + /** + * A flag (true/false) that specifies whether to display a Twitter "Connect + * Button" or an object literal representing the configuration options for + * the "Tweet Box". + * { + * size: 'medium' // String - The size of the Connect Button. Valid values are: small, medium, large, xlarge + * } + */ + showConnectButton: false, + + /** + * A flag (true/false) that specifies whether to display Login Infos. + */ + showLoginInfo: false, + + /** + * A flag (true/false) that specifies whether to display a Twitter "Tweet + * Box" or an object literal representing the configuration options for + * the "Tweet Box". + * { + * counter: true, // Boolean - Display a counter in the Tweet Box for counting characters + * width: 515, // Number - The width of the Tweet Box in pixels + * height: 65, // Number - The height of the Tweet Box in pixels + * label: "What's happening", // String - The text above the Tweet Box, a call to action + * defaultContent: , // String - Pre-populated text in the Tweet Box. Useful for an @mention, a #hashtag, a link, etc. + * onTweet: // Function - Specify a listener for when a tweet is sent from the Tweet Box. The listener receives two arguments: a plaintext tweet and an HTML tweet + * } + */ + showTweetBox: false, + + /** + * A decorator is a function that is responsible for constructing a certain + * element of the widget. Most of the decorators return a HTML string. + * Exceptions are the mainDecorator, which defines the basic sequence of + * the widget's components, plus the linkDecorator, the usernameDecorator + * and the hashtagDecorator which return the string that is supplied as a + * function param, enriched with the HTML tags. + * + * For details, see the implementations of the default decorators. Each + * default decorator can be overwritten by your own implementation. + */ + mainDecorator: defaultMainDecorator, + + tweetFeedDecorator: defaultTweetFeedDecorator, + + tweetDecorator: defaultTweetDecorator, + tweetProfileImageDecorator: defaultTweetProfileImageDecorator, + tweetBodyDecorator: defaultTweetBodyDecorator, + tweetUsernameDecorator: defaultTweetUsernameDecorator, + tweetTextDecorator: defaultTweetTextDecorator, + tweetAttributesDecorator: defaultTweetAttributesDecorator, + tweetTimestampDecorator: defaultTweetTimestampDecorator, + tweetSourceDecorator: defaultTweetSourceDecorator, + tweetGeoLocationDecorator: defaultTweetGeoLocationDecorator, + tweetInReplyToDecorator: defaultTweetInReplyToDecorator, + tweetRetweeterDecorator: defaultTweetRetweeterDecorator, + + tweetFeedControlsDecorator: defaultTweetFeedControlsDecorator, + tweetFeedControlsMoreBtnDecorator: defaultTweetFeedControlsMoreBtnDecorator, + tweetFeedControlsPrevBtnDecorator: defaultTweetFeedControlsPrevBtnDecorator, + tweetFeedControlsNextBtnDecorator: defaultTweetFeedControlsNextBtnDecorator, + + tweetFeedAutorefreshTriggerDecorator: defaultTweetFeedAutorefreshTriggerDecorator, + tweetFeedAutorefreshTriggerContentDecorator: defaultTweetFeedAutorefreshTriggerContentDecorator, + + connectButtonDecorator: defaultConnectButtonDecorator, + + loginInfoDecorator: defaultLoginInfoDecorator, + loginInfoContentDecorator: defaultLoginInfoContentDecorator, + + followButtonDecorator: defaultFollowButtonDecorator, + + tweetBoxDecorator: defaultTweetBoxDecorator, + + linkDecorator: defaultLinkDecorator, + usernameDecorator: defaultUsernameDecorator, + hashtagDecorator: defaultHashtagDecorator, + + loadingDecorator: defaultLoadingDecorator, + errorDecorator: defaultErrorDecorator, + noDataDecorator: defaultNoDataDecorator, + + /** + * Formatters are currently used for date format processing only. + * + * The tweetTimestampFormatter formats the tweet's timestamp to be shown + * in the tweet attributes section + * + * For details, see the implementation of the defaultTweetTimestampFormatter. + */ + tweetTimestampFormatter : defaultTweetTimestampFormatter, + + /** + * The tweetTimestampTooltipFormatter formats the tweet's timestamp to be shown + * in the tooltip when hovering over the timestamp link. + */ + tweetTimestampTooltipFormatter : defaultTweetTimestampTooltipFormatter, + + /** + * A visualizer is a function that is responsible for adding one or more + * elements to the DOM and thereby making them visible to the user. + * A visualizer might also be responsible to do the opposite effect: + * To remove one or more elements from the DOM. + * + * The tweetVisualizer gets called each time a tweet element should be + * appended or prepended to the tweet feed element. + * + * For details, see the implementation of the defaultTweetVisualizer. + * + * Each default visualizer can be overwritten by your own implementation. + */ + tweetVisualizer: defaultTweetVisualizer, + + /** + * The loadingIndicatorVisualizer gets called each time data is retrieved + * from Twitter to visualize the loading indicator. This visualizer is also + * used to hide the loading indicator. + * + * For details, see the implementation of the defaultLoadingIndicatorVisualizer. + */ + loadingIndicatorVisualizer: defaultLoadingIndicatorVisualizer, + + /** + * The autorefreshTriggerVisualizer will be called if the autorefresh + * trigger should be visualized or hidden. + * + * For details, see the implementation of the autorefreshTriggerVisualizer. + */ + autorefreshTriggerVisualizer: defaultAutorefreshTriggerVisualizer, + + /** + * An event handler is a function that gets called whenever the event you + * are interested in, occurs. + * + * The onDataRequest event handler will be called immediatly before calling + * Twitter to retrieve new data and gives you the opportunity to deny + * the call by returning false from the function. + * + * This feature might be used in conjunction with the paging feature, + * especially when using the "endless-scroll" paging mode, to avoid the + * exhaustion of remaining Twitter API calls, before the rate limit is + * reached. The stats parameter contains statistical infos and counters + * that you can examine to base your decision whether to return true or + * false. + */ + onDataRequestHandler: defaultOnDataRequestHandler, + + /** + * The onRateLimitData event handler is called each time + * jTweetsAnywhere retrieved the rate limit data from Twitter. The actual + * rate limit data is contained in the stats object. + */ + onRateLimitDataHandler: defaultOnRateLimitDataHandler, + + _tweetFeedConfig: + { + expandHovercards: false, + showTimestamp: + { + refreshInterval: 0 + }, + showSource: false, + showGeoLocation: true, + showInReplyTo: true, + showProfileImages: null, + showUserScreenNames: null, + showUserFullNames: false, + includeRetweets: true, + paging: + { + mode: "none", + _limit: 0, + _offset: 0 + }, + autorefresh: + { + mode: "none", + interval: 60, + duration: 3600, + _startTime: null, + _triggerElement: null + }, + _pageParam: 0, + _maxId: null, + _recLevel: 0, + _noData: false, + _clearBeforePopulate: false + }, + _tweetBoxConfig: + { + counter: true, + width: 515, + height: 65, + label: "What's happening?", + defaultContent: '', + onTweet: function(textTweet, htmlTweet) {} + }, + _connectButtonConfig: + { + size: "medium" + }, + _baseSelector: null, + _baseElement: null, + _tweetFeedElement: null, + _tweetFeedControlsElement: null, + _followButtonElement: null, + _loginInfoElement: null, + _connectButtonElement: null, + _tweetBoxElement: null, + _loadingIndicatorElement: null, + _noDataElement: null, + _tweetsCache: [], + _autorefreshTweetsCache: [], + _stats: + { + dataRequestCount: 0, + rateLimitPreventionCount: 0, + rateLimit: + { + remaining_hits: 150, + hourly_limit: 150 + } + } + }, options); + + // no main decorator? nothing to do! + if (!options.mainDecorator) + { + return; + } + + options._baseSelector = this.selector; + + // if username is an array, create the search query and flatten username + if (typeof(options.username) != 'string') + { + if (!options.searchParams) + { + options.searchParams = ['q=from:' + options.username.join(" OR from:")]; + } + + options.username = options.username[0]; + } + + // if showTweetFeed is not set to a boolean value, we expect the configuration of + // the tweet feed + if (typeof(options.showTweetFeed) == 'object') + { + $.extend(true, options._tweetFeedConfig, options.showTweetFeed); + } + + // if showTweetBox is not set to a boolean value, we expect the configuration of + // the TweetBox + if (typeof(options.showTweetBox) == 'object') + { + options._tweetBoxConfig = options.showTweetBox; + options.showTweetBox = true; + } + + // if showConnectButton is not set to a boolean value, we expect the + // configuration of the Connect Button + if (typeof(options.showConnectButton) == 'object') + { + options._connectButtonConfig = options.showConnectButton; + options.showConnectButton = true; + } + + // to be compatible, check the deprecated option 'tweetProfileImagePresent' + if (options._tweetFeedConfig.showProfileImages == null) + { + options._tweetFeedConfig.showProfileImages = options.tweetProfileImagePresent; + } + + // if _tweetFeedConfig.showProfileImages is not set to a boolean value, + // we decide to show a profile image if the feed represents a user's + // list or the results of a Twitter search + if (options._tweetFeedConfig.showProfileImages == null) + { + options._tweetFeedConfig.showProfileImages = (options.list || options.searchParams) && options.tweetProfileImageDecorator; + } + + // if _tweetFeedConfig.showUserScreenNames is not set to a boolean value, + // we decide to show a username if the feed represents a user's + // list or the results of a Twitter search or a tweet is a native retweet + if (options._tweetFeedConfig.showUserScreenNames == null) + { + if (options.list || options.searchParams) + { + options._tweetFeedConfig.showUserScreenNames = true; + } + + if (!options.tweetUsernameDecorator) + { + options._tweetFeedConfig.showUserScreenNames = false; + } + } + + // if _tweetFeedConfig.showUserFullNames is not set to a boolean value, + // we decide to show a user's full name if the feed represents a user's + // list or the results of a Twitter search or a tweet is a native retweet + if (options._tweetFeedConfig.showUserFullNames == null) + { + if (options.list || options.searchParams) + { + options._tweetFeedConfig.showUserFullNames = true; + } + + if (!options.tweetUsernameDecorator) + { + options._tweetFeedConfig.showUserFullNames = false; + } + } + + options.count = validateRange(options.count, 0, options.searchParams ? 100 : 20); + + options._tweetFeedConfig.autorefresh.interval = Math.max(30, options._tweetFeedConfig.autorefresh.interval); + + options._tweetFeedConfig.paging._offset = 0; + options._tweetFeedConfig.paging._limit = options.count; + + // internally, the decision of what parts of a widget are to be + // displayed is based on the existence of the decorators + if (options.count == 0 || !options.showTweetFeed) + { + options.tweetFeedDecorator = null; + options.tweetFeedControlsDecorator = null; + } + + if (options._tweetFeedConfig.paging.mode == 'none') + { + options.tweetFeedControlsDecorator = null; + } + + if (!options.showFollowButton) + { + options.followButtonDecorator = null; + } + + if (!options.showTweetBox) + { + options.tweetBoxDecorator = null; + } + + if (!options.showConnectButton) + { + options.connectButtonDecorator = null; + } + + if (!options.showLoginInfo) + { + options.loginInfoDecorator = null; + } + + if (!options._tweetFeedConfig.showTimestamp) + { + options.tweetTimestampDecorator = null; + } + + if (!options._tweetFeedConfig.showSource) + { + options.tweetSourceDecorator = null; + } + + if (!options._tweetFeedConfig.showGeoLocation) + { + options.tweetGeoLocationDecorator = null; + } + + if (!options._tweetFeedConfig.showInReplyTo) + { + options.tweetInReplyToDecorator = null; + } + + // setup ajax + $.ajaxSetup({ cache: true }); + + return this.each(function() + { + // the DOM element, where to display the widget + options._baseElement = $(this); + + // create the widget's necessary sub DOM elements + options._tweetFeedElement = options.tweetFeedDecorator ? $(options.tweetFeedDecorator(options)) : null; + options._tweetFeedControlsElement = options.tweetFeedControlsDecorator ? $(options.tweetFeedControlsDecorator(options)) : null; + options._followButtonElement = options.followButtonDecorator ? $(options.followButtonDecorator(options)) : null; + options._tweetBoxElement = options.tweetBoxDecorator ? $(options.tweetBoxDecorator(options)) : null; + options._connectButtonElement = options.connectButtonDecorator ? $(options.connectButtonDecorator(options)): null; + options._loginInfoElement = options.loginInfoDecorator ? $(options.loginInfoDecorator(options)) : null; + + // add the widget to the DOM + options.mainDecorator(options); + + populateTweetFeed(options); + populateAnywhereControls(options); + + // bind event handlers to support paging + bindEventHandlers(options); + + // install autorefresh support + options._tweetFeedConfig.autorefresh._startTime = new Date().getTime(); + startAutorefresh(options); + startTimestampRefresh(options); + }); + }; + defaultMainDecorator = function(options) + { + // defines the default sequence of the widget's elements + if (options._tweetFeedElement) + { + options._baseElement.append(options._tweetFeedElement); + } + + if (options._tweetFeedControlsElement) + { + options._baseElement.append(options._tweetFeedControlsElement); + } + + if (options._connectButtonElement) + { + options._baseElement.append(options._connectButtonElement); + } + + if (options._loginInfoElement) + { + options._baseElement.append(options._loginInfoElement); + } + + if (options._followButtonElement) + { + options._baseElement.append(options._followButtonElement); + } + + if (options._tweetBoxElement) + { + options._baseElement.append(options._tweetBoxElement); + } + }; + defaultTweetFeedControlsDecorator = function(options) + { + // the default tweet feed's paging controls + var html = ''; + + if (options._tweetFeedConfig.paging.mode == 'prev-next') + { + if (options.tweetFeedControlsPrevBtnDecorator) + { + html += options.tweetFeedControlsPrevBtnDecorator(options); + } + + if (options.tweetFeedControlsNextBtnDecorator) + { + html += options.tweetFeedControlsNextBtnDecorator(options); + } + } + else if (options._tweetFeedConfig.paging.mode == 'endless-scroll') + { + // nothing to do here atm + } + else + { + if (options.tweetFeedControlsMoreBtnDecorator) + { + html += options.tweetFeedControlsMoreBtnDecorator(options); + } + } + + return '

'; + }; + defaultTweetFeedControlsMoreBtnDecorator = function(options) + { + return '' + 'More' + ''; + }; + defaultTweetFeedControlsPrevBtnDecorator = function(options) + { + return '' + 'Prev' + ''; + }; + defaultTweetFeedControlsNextBtnDecorator = function(options) + { + return '' + 'Next' + ''; + }; + defaultTweetFeedAutorefreshTriggerDecorator = function(count, options) + { + var html = ''; + + if (options.tweetFeedAutorefreshTriggerContentDecorator) + { + html = options.tweetFeedAutorefreshTriggerContentDecorator(count, options); + } + + return '
  • ' + html + '
  • '; + }; + defaultTweetFeedAutorefreshTriggerContentDecorator = function(count, options) + { + var content = '' + count + ' new ' + (count > 1 ? ' tweets' : ' tweet'); + + return '' + content + ''; + }; + defaultTweetFeedDecorator = function(options) + { + // the default placeholder for the tweet feed is an unordered list + return '
      '; + }; + defaultTweetDecorator = function(tweet, options) + { + // the default tweet is made of the optional user's profile image and the + // tweet body inside a list item element + var html = ''; + + if (options._tweetFeedConfig.showProfileImages) + { + html += options.tweetProfileImageDecorator(tweet, options); + } + + if (options.tweetBodyDecorator) + { + html += options.tweetBodyDecorator(tweet, options); + } + + html += '
       
      '; + + return '
    • ' + html + '
    • '; + }; + defaultTweetProfileImageDecorator = function(tweet, options) + { + // if tweet is a native retweet, use the retweet's profile + var t = tweet.retweeted_status || tweet; + + // the default profile image decorator simply adds a link to the user's Twitter profile + var screenName = t.user ? t.user.screen_name : false || t.from_user; + var imageUrl = t.user ? t.user.profile_image_url : false || t.profile_image_url; + + var html = + '
      ' + + '' + screenName + '' + + ''; + + return '
      ' + html + '
      '; + }; + defaultTweetBodyDecorator = function(tweet, options) + { + // the default tweet body contains the tweet text and the tweet's creation date + var html = ''; + + if (options.tweetTextDecorator) + { + html += options.tweetTextDecorator(tweet, options); + } + + if (options.tweetAttributesDecorator) + { + html += options.tweetAttributesDecorator(tweet, options); + } + + return '
      ' + html + '
      '; + }; + defaultTweetTextDecorator = function(tweet, options) + { + var tweetText = tweet.text; + + // if usernames should be visible and tweet is a native retweet, use + // the original tweet text + if (tweet.retweeted_status && + ( + options._tweetFeedConfig.showUserScreenNames || + options._tweetFeedConfig.showUserScreenNames == null || + options._tweetFeedConfig.showUserFullNames || + options._tweetFeedConfig.showUserFullNames == null + ) + ) + { + tweetText = tweet.retweeted_status.text; + } + + // the default tweet text decorator optionally marks links, @usernames, + // and #hashtags + if (options.linkDecorator) + { + tweetText = options.linkDecorator(tweetText, options); + } + + if (options.usernameDecorator) + { + tweetText = options.usernameDecorator(tweetText, options); + } + + if (options.hashtagDecorator) + { + tweetText = options.hashtagDecorator(tweetText, options); + } + + if (options._tweetFeedConfig.showUserScreenNames || + options._tweetFeedConfig.showUserFullNames || + tweet.retweeted_status && + ( + options._tweetFeedConfig.showUserScreenNames == null || + options._tweetFeedConfig.showUserFullNames == null + ) + ) + { + tweetText = options.tweetUsernameDecorator(tweet, options) + ' ' + tweetText; + } + + return '' + tweetText + ''; + }; + defaultTweetUsernameDecorator = function(tweet, options) + { + // if tweet is a native retweet, use the retweet's profile + var t = tweet.retweeted_status || tweet; + var screenName = t.user ? t.user.screen_name : false || t.from_user; + var fullName = t.user ? t.user.name : null; + + var htmlScreenName; + if (screenName && (options._tweetFeedConfig.showUserScreenNames || (options._tweetFeedConfig.showUserScreenNames == null && tweet.retweeted_status))) + { + htmlScreenName = + '' + + '' + + screenName + + '' + + ''; + } + + var htmlFullName; + if (fullName && (options._tweetFeedConfig.showUserFullNames || (options._tweetFeedConfig.showUserFullNames == null && tweet.retweeted_status))) + { + htmlFullName = + '' + + (htmlScreenName ? ' (' : '') + + '' + + fullName + + '' + + (htmlScreenName ? ')' : '') + + ''; + } + + var html = ""; + + if (htmlScreenName) + { + html += htmlScreenName; + } + + if (htmlFullName) + { + if (htmlScreenName) + { + html += ' '; + } + + html += htmlFullName; + } + + if (htmlScreenName || htmlFullName) + { + html = + '' + + (tweet.retweeted_status ? 'RT ' : '') + + html + + ''; + } + + return html; + }; + defaultTweetAttributesDecorator = function(tweet, options) + { + var html = ''; + + if (options.tweetTimestampDecorator || + options.tweetSourceDecorator || + options.tweetGeoLocationDecorator || + options.tweetInReplyToDecorator || + (tweet.retweeted_status && options.tweetRetweeterDecorator) + ) + { + html += ''; + + if (options.tweetTimestampDecorator) + { + html += options.tweetTimestampDecorator(tweet, options); + } + + if (options.tweetSourceDecorator) + { + html += options.tweetSourceDecorator(tweet, options); + } + + if (options.tweetGeoLocationDecorator) + { + html += options.tweetGeoLocationDecorator(tweet, options); + } + + if (options.tweetInReplyToDecorator) + { + html += options.tweetInReplyToDecorator(tweet, options); + } + + if (tweet.retweeted_status && options.tweetRetweeterDecorator) + { + html += options.tweetRetweeterDecorator(tweet, options); + } + + html += ''; + } + + return html; + }; + defaultTweetTimestampDecorator = function(tweet, options) + { + // the default tweet timestamp decorator does a little bit of Twitter like formatting. + + // if tweet is a native retweet, use the retweet's timestamp + var tw = tweet.retweeted_status || tweet; + + // reformat timestamp from Twitter, so IE is happy + var createdAt = formatDate(tw.created_at); + + // format the timestamp by the tweetTimestampFormatter + var tweetTimestamp = options.tweetTimestampFormatter(createdAt); + var tweetTimestampTooltip = options.tweetTimestampTooltipFormatter(createdAt); + + var screenName = tw.user ? tw.user.screen_name : false || tw.from_user; + var html = + '' + + '' + + tweetTimestamp + + '' + + ''; + + return html; + }; + defaultTweetTimestampTooltipFormatter = function(timeStamp) + { + var d = new Date(timeStamp); + + return d.toLocaleString(); + }; + defaultTweetTimestampFormatter = function(timeStamp) + { + var now = new Date(); + + var diff = parseInt((now.getTime() - Date.parse(timeStamp)) / 1000); + + var tweetTimestamp = ''; + if (diff < 60) + { + tweetTimestamp += diff + ' second' + (diff == 1 ? '' : 's') + ' ago'; + } + else if (diff < 3600) + { + var t = parseInt((diff + 30) / 60); + tweetTimestamp += t + ' minute' + (t == 1 ? '' : 's') + ' ago'; + } + else if (diff < 86400) + { + var t = parseInt((diff + 1800) / 3600); + tweetTimestamp += t + ' hour' + (t == 1 ? '' : 's') + ' ago'; + } + else + { + var d = new Date(timeStamp); + var period = 'AM'; + + var hours = d.getHours(); + if (hours > 12) + { + hours -= 12; + period = 'PM'; + } + + var mins = d.getMinutes(); + var minutes = (mins < 10 ? '0' : '') + mins; + + var monthName = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; + + tweetTimestamp += monthName[d.getMonth()] + ' ' + d.getDate(); + + if (d.getFullYear() < now.getFullYear()) + { + tweetTimestamp += ', ' + d.getFullYear(); + } + + var t = parseInt((diff + 43200) / 86400); + tweetTimestamp += ' (' + t + ' day' + (t == 1 ? '' : 's') + ' ago)'; + } + + return tweetTimestamp; + }; + exTimestampFormatter = function(timeStamp) + { + var diff = parseInt((new Date().getTime() - Date.parse(timeStamp)) / 1000); + + var tweetTimestamp = ''; + if (diff < 60) + { + tweetTimestamp += 'less than a minute ago'; + } + else if (diff < 3600) + { + var t = parseInt((diff + 30) / 60); + tweetTimestamp += t + ' minute' + (t == 1 ? '' : 's') + ' ago'; + } + else if (diff < 86400) + { + var t = parseInt((diff + 1800) / 3600); + tweetTimestamp += 'about ' + t + ' hour' + (t == 1 ? '' : 's') + ' ago'; + } + else + { + var t = parseInt((diff + 43200) / 86400); + tweetTimestamp += 'about ' + t + ' day' + (t == 1 ? '' : 's') + ' ago'; + + var d = new Date(timeStamp); + var period = 'AM'; + + var hours = d.getHours(); + if (hours > 12) + { + hours -= 12; + period = 'PM'; + } + + var mins = d.getMinutes(); + var minutes = (mins < 10 ? '0' : '') + mins; + + tweetTimestamp += ' (' + hours + ':' + minutes + ' ' + period + ' ' + (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear() + ')'; + } + + return tweetTimestamp; + }; + defaultTweetSourceDecorator = function(tweet, options) + { + // if tweet is a native retweet, use the retweet's source + var tw = tweet.retweeted_status || tweet; + + var source = tw.source.replace(/\<\;/gi,'<').replace(/\>\;/gi,'>').replace(/\"\;/gi,'"'); + var html = + '' + + ' via ' + + '' + + source + + '' + + ''; + + return html; + }; + defaultTweetGeoLocationDecorator = function(tweet, options) + { + var html = ''; + + // if tweet is a native retweet, use the retweet's source + var tw = tweet.retweeted_status || tweet; + + var q; + if (tw.geo && tw.geo.coordinates) + { + q = tw.geo.coordinates.join(); + } + else if (tw.place && tw.place.full_name) + { + q = tw.place.full_name; + } + + if (q) + { + var location = 'here'; + if (tw.place && tw.place.full_name) + { + location = tw.place.full_name; + } + + var link = 'http://maps.google.com/maps?q=' + q; + + html = + '' + + ' from ' + + '' + + location + + '' + + ''; + } + + return html; + }; + defaultTweetInReplyToDecorator = function(tweet, options) + { + // if tweet is a native retweet, use the retweet's source + var tw = tweet.retweeted_status || tweet; + + var html = ''; + if (tw.in_reply_to_status_id && tw.in_reply_to_screen_name) + { + html = + '' + + ' ' + + '' + + 'in reply to ' + tw.in_reply_to_screen_name + + '' + + ''; + } + + return html; + }; + defaultTweetRetweeterDecorator = function(tweet, options) + { + var html = ''; + + if (tweet.retweeted_status) + { + var screenName = tweet.user ? tweet.user.screen_name : false || tweet.from_user; + var rtc = (tweet.retweeted_status.retweet_count || 0) - 1; + + var link = + '' + + screenName + + ''; + var rtcount = ' and ' + rtc + (rtc > 1 ? ' others' : ' other'); + html = + '
      ' + + '' + + 'Retweeted by ' + link + + (rtc > 0 ? rtcount : '') + + ''; + } + + return html; + }; + defaultConnectButtonDecorator = function(options) + { + // the default placeholder for the @Anywhere ConnectButton + return '
      '; + }; + defaultLoginInfoDecorator = function(options) + { + // the default placeholder for the LoginInfo + return ''; + }; + defaultLoginInfoContentDecorator = function(options, T) + { + // the default markup of the LoginInfo content: the user's profile image, the + // user's screen_name and a "button" to sign out + var html = ''; + + if (T.isConnected()) + { + var screenName = T.currentUser.data('screen_name'); + var imageUrl = T.currentUser.data('profile_image_url'); + + html = + '' + + '' + + '
       
      ' + ; + } + + return html; + }; + defaultFollowButtonDecorator = function(options) + { + // the default placeholder for the @Anywhere FollowButton + return '
      '; + }; + defaultTweetBoxDecorator = function(options) + { + // the default placeholder for the @Anywhere TweetBox + return '
      '; + }; + defaultLinkDecorator = function(text, options) + { + // the regex to markup links + return text.replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi,'$1<\/a>'); + }; + defaultUsernameDecorator = function(text, options) + { + // the regex to markup @usernames. if @Anywhere is present the task is left to + // them + return isAnywherePresent() ? text : text.replace(/@([a-zA-Z0-9_]+)/gi,'@#$1<\/a>'); + }; + defaultLoadingDecorator = function(options) + { + // the default loading decorator simply says: loading ... + return '
    • loading ...
    • '; + }; + defaultErrorDecorator = function(errorText, options) + { + // the default error decorator shows the error message + return '
    • ERROR: ' + errorText + '
    • '; + }; + defaultNoDataDecorator = function(options) + { + // the default no-data decorator simply says: No more data + return '
    • No more data
    • '; + }; + + defaultTweetFilter = function(tweet, options) + { + return true; + }; + + defaultTweetVisualizer = function(tweetFeedElement, tweetElement, inserter, options) + { + // insert (append/prepend) the tweetElement to the tweetFeedElement + tweetFeedElement[inserter](tweetElement); + }; + defaultLoadingIndicatorVisualizer = function(tweetFeedElement, loadingIndicatorElement, options, callback) + { + defaultVisualizer(tweetFeedElement, loadingIndicatorElement, 'append', 'fadeIn', 600, 'fadeOut', 200, callback); + }; + defaultAutorefreshTriggerVisualizer = function(tweetFeedElement, triggerElement, options, callback) + { + defaultVisualizer(tweetFeedElement, triggerElement, 'prepend', 'slideDown', 600, 'fadeOut', 200, callback); + }; + defaultVisualizer = function(container, element, inserter, effectIn, durationIn, effectOut, durationOut, callback) + { + // if param container is null element has to be removed from + // the DOM, else element has to be inserted in container + + // if param callback is not null, the callback function must be called + // in any case, if the visualizer is done + + var cb = function() + { + if (callback) + { + callback(); + } + }; + + if (container) + { + element.hide(); + container[inserter](element); + element[effectIn](durationIn, cb); + } + else + { + element[effectOut](durationOut, function() + { + element.remove(); + cb(); + }); + } + }; + + defaultOnDataRequestHandler = function(stats, options) + { + return true; + }; + defaultOnRateLimitDataHandler = function(stats, options) + { + }; + + updateLoginInfoElement = function(options, T) + { + // update the content of the LoginInfo element + if (options._loginInfoElement && options.loginInfoContentDecorator) + { + options._loginInfoElement.children().remove(); + options._loginInfoElement.append(options.loginInfoContentDecorator(options, T)); + $(options._baseSelector + ' .jta-login-info-sign-out').bind('click', function() + { + twttr.anywhere.signOut(); + }); + } + }; + getFeedUrl = function(options, flPaging) + { + // create the Twitter API URL based on the configuration options + var url = ('https:' == document.location.protocol ? 'https:' : 'http:'); + + if (options.searchParams) + { + url += '//search.twitter.com/search.json?' + + ((options.searchParams instanceof Array) ? options.searchParams.join('&') : options.searchParams) + + '&rpp=100'; + } + else if (options.list) + { + url += '//api.twitter.com/1/' + options.username + '/lists/' + options.list + '/statuses.json?per_page=20'; + } + else + { + url += '//api.twitter.com/1/statuses/user_timeline.json?screen_name=' + options.username + '&count=20'; + if (options._tweetFeedConfig.includeRetweets) + url += '&include_rts=true'; + } + + if (flPaging) + { + url += + (options._tweetFeedConfig._maxId ? '&max_id=' + options._tweetFeedConfig._maxId : '') + + '&page=' + options._tweetFeedConfig._pageParam; + } + + url += '&callback=?'; + + return url; + }; + isAnywherePresent = function() + { + // check, if @Anywhere is present + return typeof(twttr) != 'undefined'; + }; + clearTweetFeed = function(options) + { + if (options._tweetFeedElement) + { + options._tweetFeedElement.empty(); + } + }; + populateTweetFeed = function(options) + { + // if a tweet feed is to be displayed, get the tweets and show them + if (options.tweetDecorator && options._tweetFeedElement) + { + getPagedTweets(options, function(tweets, options) + { + if (options._tweetFeedConfig._clearBeforePopulate) + { + clearTweetFeed(options); + } + + hideLoadingIndicator(options, function() + { + // process the tweets + $.each(tweets, function(idx, tweet) + { + // decorate the tweet and give it to the tweet visualizer + options.tweetVisualizer( + options._tweetFeedElement, + $(options.tweetDecorator(tweet, options)), + 'append', + options + ); + }); + + if (options._tweetFeedConfig._noData && options.noDataDecorator && !options._tweetFeedConfig._noDataElement) + { + options._tweetFeedConfig._noDataElement = $(options.noDataDecorator(options)); + options._tweetFeedElement.append(options._tweetFeedConfig._noDataElement); + } + + if (options._tweetFeedConfig._clearBeforePopulate) + { + options._tweetFeedElement.scrollTop(0); + } + + addHovercards(options); + }); + }); + } + }; + populateTweetFeed2 = function(options) + { + if (options._tweetFeedElement && options._autorefreshTweetsCache.length > 0) + { + if (options._tweetFeedConfig.autorefresh.mode == 'trigger-insert') + { + if (options._tweetFeedConfig.autorefresh._triggerElement) + { + if (options.tweetFeedAutorefreshTriggerContentDecorator) + { + options._tweetFeedConfig.autorefresh._triggerElement.html( + options.tweetFeedAutorefreshTriggerContentDecorator(options._autorefreshTweetsCache.length, options) + ); + } + } + else + { + if (options.tweetFeedAutorefreshTriggerDecorator) + { + options._tweetFeedConfig.autorefresh._triggerElement = + $(options.tweetFeedAutorefreshTriggerDecorator(options._autorefreshTweetsCache.length, options)); + options._tweetFeedConfig.autorefresh._triggerElement.bind('click', function() + { + options.autorefreshTriggerVisualizer( + null, + options._tweetFeedConfig.autorefresh._triggerElement, + options, + function() + { + insertTriggerTweets(options); + } + ); + options._tweetFeedConfig.autorefresh._triggerElement = null; + }); + + options.autorefreshTriggerVisualizer(options._tweetFeedElement, options._tweetFeedConfig.autorefresh._triggerElement, options); + } + } + } + else + { + insertTriggerTweets(options); + } + } + }; + insertTriggerTweets = function(options) + { + // populate the tweet feed with tweets from the autorefresh cache + if (options.tweetDecorator && options._autorefreshTweetsCache.length > 0) + { + // process the autorefresh cache + while (options._autorefreshTweetsCache.length > 0) + { + // get the last tweet and remove it from the autorefresh cache + var tweet = options._autorefreshTweetsCache.pop(); + + // put that tweet on top of the tweets cache + options._tweetsCache.unshift(tweet); + + // adjust paging offset + options._tweetFeedConfig.paging._offset++; + + // decorate the tweet and give it to the tweet visualizer + options.tweetVisualizer( + options._tweetFeedElement, + $(options.tweetDecorator(tweet, options)), + 'prepend', + options + ); + } + + addHovercards(options); + } + }; + addHovercards = function(options) + { + if (isAnywherePresent()) + { + // if @Anywhere is present, append Hovercards to @username and + // profile images + twttr.anywhere(function(T) + { + T(options._baseSelector + ' .jta-tweet-list').hovercards({expanded: options._tweetFeedConfig.expandHovercards}); + T(options._baseSelector + ' .jta-tweet-profile-image img').hovercards( + { + expanded: options._tweetFeedConfig.expandHovercards, + username: function(node) { return node.alt; } + }); + T(options._baseSelector + ' .jta-tweet-retweeter-link').hovercards( + { + expanded: options._tweetFeedConfig.expandHovercards, + username: function(node) { return node.text; } + }); + T(options._baseSelector + ' .jta-tweet-user-screen-name-link').hovercards( + { + expanded: options._tweetFeedConfig.expandHovercards, + username: function(node) { return node.text; } + }); + T(options._baseSelector + ' .jta-tweet-user-full-name-link').hovercards( + { + expanded: options._tweetFeedConfig.expandHovercards, + username: function(node) { return node.name; } + }); + }); + } + }; + populateAnywhereControls = function(options) + { + if (isAnywherePresent()) + { + twttr.anywhere(function(T) + { + // optionally add an @Anywhere TweetBox + if (options.tweetBoxDecorator) + { + T(options._baseSelector + ' .jta-tweet-box').tweetBox(options._tweetBoxConfig); + } + + // optionally add an @Anywhere FollowButton + if (options.followButtonDecorator) + { + T(options._baseSelector + ' .jta-follow-button').followButton(options.username); + } + + // optionally add an @Anywhere ConnectButton + if (options.connectButtonDecorator) + { + var o = $.extend( + { + authComplete: function(user) + { + // display/update login infos on connect/signin event + updateLoginInfoElement(options, T); + }, + signOut: function() + { + // display/update login infos on signout event + updateLoginInfoElement(options, T); + } + }, options._connectButtonConfig); + + T(options._baseSelector + ' .jta-connect-button').connectButton(o); + + // display/update login infos + updateLoginInfoElement(options, T); + } + }); + } + }; + bindEventHandlers = function(options) + { + if (options.tweetFeedControlsDecorator) + { + if (options._tweetFeedConfig.paging.mode == 'prev-next') + { + $(options._baseSelector + ' .jta-tweet-list-controls-button-prev').bind('click', function() + { + if (!isLoading(options) && options._tweetFeedConfig.paging._offset > 0) + { + prevPage(options, true); + } + }); + $(options._baseSelector + ' .jta-tweet-list-controls-button-next').bind('click', function() + { + if (!isLoading(options)) + { + nextPage(options, true); + } + }); + } + else if (options._tweetFeedConfig.paging.mode == 'endless-scroll') + { + options._tweetFeedElement.bind("scroll", function() + { + if (!isLoading(options) && ($(this)[0].scrollHeight - $(this).scrollTop() == $(this).outerHeight())) + { + nextPage(options, false); + } + }); + } + else + { + $(options._baseSelector + ' .jta-tweet-list-controls-button-more').bind('click', function() + { + if (!isLoading(options)) + { + nextPage(options, false); + } + }); + } + } + }; + nextPage = function(options, flClear) + { + doPage(options, flClear, Math.min(options._tweetFeedConfig.paging._offset + options._tweetFeedConfig.paging._limit, options._tweetsCache.length)); + }; + prevPage = function(options, flClear) + { + doPage(options, flClear, Math.max(0, options._tweetFeedConfig.paging._offset - options._tweetFeedConfig.paging._limit)); + }; + doPage = function(options, flClear, newOffset) + { + options._tweetFeedConfig.paging._offset = newOffset; + options._tweetFeedConfig._clearBeforePopulate = flClear; + + populateTweetFeed(options); + }; + startAutorefresh = function(options) + { + if (options._tweetFeedConfig.autorefresh.mode != 'none' && + options._tweetFeedConfig.paging.mode != 'prev-next' && + options._tweetFeedConfig.autorefresh.duration != 0 && + ( + options._tweetFeedConfig.autorefresh.duration < 0 || + (new Date().getTime() - options._tweetFeedConfig.autorefresh._startTime) <= options._tweetFeedConfig.autorefresh.duration * 1000 + ) + ) + { + window.setTimeout(function() { processAutorefresh(options); }, options._tweetFeedConfig.autorefresh.interval * 1000); + } + }; + stopAutorefresh = function(options) + { + options._tweetFeedConfig.autorefresh.duration = 0; + }; + processAutorefresh = function(options) + { + if (options._tweetFeedConfig.autorefresh.duration != 0) + { + // load the data ... + getRateLimitedData(options, true, getFeedUrl(options, false), function(data, options) + { + // reverse the sequence of the autorefresh tweets ... + var tweets = (data.results || data).slice(0); + tweets.reverse(); + + // ...then process them + $.each(tweets, function(idx, tweet) + { + // if this tweet is already in the standard tweets cache, ignore + if (!isTweetInCache(tweet, options)) + { + // optionally filter tweet ... + if (options.tweetFilter(tweet, options)) + { + // ... then put it to the top of the autorefresh cache + options._autorefreshTweetsCache.unshift(tweet); + } + } + }); + + populateTweetFeed2(options); + }); + + // restart autorefresh + startAutorefresh(options); + } + }; + startTimestampRefresh = function(options) + { + if ( + options.tweetTimestampDecorator && + typeof(options._tweetFeedConfig.showTimestamp) == 'object' && + options._tweetFeedConfig.showTimestamp.refreshInterval > 0 + ) + { + window.setTimeout(function() { processTimestampRefresh(options); }, options._tweetFeedConfig.showTimestamp.refreshInterval * 1000); + } + }; + processTimestampRefresh = function(options) + { + $.each(options._tweetFeedElement.find('.jta-tweet-timestamp-link'), function(idx, element) + { + var dataTimestamp = $(element).attr('data-timestamp'); + + $(element).html(options.tweetTimestampFormatter(dataTimestamp)); + }); + + startTimestampRefresh(options); + }; + isTweetInCache = function(tweet, options) + { + var l = options._tweetsCache.length; + + for (var i = 0; i < l; i++) + { + if (tweet.id == options._tweetsCache[i].id) + { + return true; + } + } + + return false; + }; + showLoadingIndicator = function(options) + { + if (options._tweetFeedElement && options.loadingDecorator && !options._loadingIndicatorElement) + { + options._loadingIndicatorElement = $(options.loadingDecorator(options)); + options.loadingIndicatorVisualizer(options._tweetFeedElement, options._loadingIndicatorElement, options, null); + options._tweetFeedElement.scrollTop(1000000); + } + }; + hideLoadingIndicator = function(options, callback) + { + if (options._loadingIndicatorElement) + { + options.loadingIndicatorVisualizer(null, options._loadingIndicatorElement, options, callback); + options._loadingIndicatorElement = null; + } + else + { + if (callback) + { + callback(); + } + } + }; + isLoading = function(options) + { + return options._loadingIndicatorElement != null; + }; + formatDate = function(dateStr) + { + return dateStr.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3'); + }; + validateRange = function(num, lo, hi) + { + if (num < lo) + num = lo; + + if (num > hi) + num = hi; + + return num; + }; + showError = function(options, errorText) + { + if (options.errorDecorator && options._tweetFeedElement) + { + options._tweetFeedElement.append(options.errorDecorator(errorText, options)); + } + }; + getPagedTweets = function(options, callback) + { + options._tweetFeedConfig._recLevel = 0; + + getRecPagedTweets(options, options._tweetFeedConfig.paging._offset, options._tweetFeedConfig.paging._limit, callback); + }; + getRecPagedTweets = function(options, offset, limit, callback) + { + ++options._tweetFeedConfig._recLevel; + + if (offset + limit <= options._tweetsCache.length || + options._tweetFeedConfig._recLevel > 3 || + options._tweetFeedConfig._noData + ) + { + // if the requested data is already cached or the max. no. of + // consecutive API calls is reached, use the records + + if (offset + limit > options._tweetsCache.length) + { + limit = Math.max(0, options._tweetsCache.length - offset); + } + + var tweets = []; + + for (var i = 0; i < limit; i++) + { + tweets[i] = options._tweetsCache[offset + i]; + } + + callback(tweets, options); + } + else + { + // ... if not, load the data, fill the cache and try again + ++options._tweetFeedConfig._pageParam; + + getRateLimitedData(options, false, getFeedUrl(options, true), function(data, options) + { + var tweets = data.results || data; + + if (tweets.length == 0) + { + options._tweetFeedConfig._noData = true; + } + else + { + $.each(tweets, function(idx, tweet) + { + // Snowflake support: just update ids that are currently used + if (tweet.id_str) { tweet.id = tweet.id_str; } + if (tweet.in_reply_to_status_id_str) { tweet.in_reply_to_status_id = tweet.in_reply_to_status_id_str; } + + // save the first tweet id for subsequent paging requests + if (!options._tweetFeedConfig._maxId) + { + options._tweetFeedConfig._maxId = tweet.id; + } + + // optionally filter tweet ... + if (options.tweetFilter(tweet, options)) + { + // then put it into the cache + options._tweetsCache.push(tweet); + } + }); + } + + getRecPagedTweets(options, offset, limit, callback); + }); + } + }; + getRateLimitedData = function(options, flAutorefresh, url, callback) + { + getRateLimit(options, function(rateLimit) + { + if (rateLimit && rateLimit.remaining_hits <= 0) + { + options._stats.rateLimitPreventionCount++; + hideLoadingIndicator(options, null); + return; + } + + getData(options, flAutorefresh, url, callback); + }); + }; + getData = function(options, flAutorefresh, url, callback) + { + options._stats.dataRequestCount++; + + if (!options.onDataRequestHandler(options._stats, options)) + { + hideLoadingIndicator(options, null); + return; + } + + if (!flAutorefresh) + { + showLoadingIndicator(options); + } + + $.getJSON(url, function(data) + { + if (data.error) + { + // in case of an error, display the error message + showError(options, data.error); + } + else + { + callback(data, options); + } + }); + }; + getRateLimit = function(options, callback) + { + $.getJSON("http://api.twitter.com/1/account/rate_limit_status.json?callback=?", function(rateLimit) + { + options._stats.rateLimit = rateLimit; + + options.onRateLimitDataHandler(options._stats, options); + + callback(rateLimit); + }); + }; +})(jQuery); \ No newline at end of file diff --git a/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.min.js b/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.min.js new file mode 100755 index 0000000000..6bfd41b13b --- /dev/null +++ b/www/common/jquery/jTweetsAnywhere/jquery.jtweetsanywhere-1.2.1.min.js @@ -0,0 +1 @@ +(function(e){e.fn.jTweetsAnywhere=function(a){a=e.extend({username:"tbillenstein",list:null,searchParams:null,count:0,tweetProfileImagePresent:null,tweetFilter:defaultTweetFilter,showTweetFeed:true,showFollowButton:false,showConnectButton:false,showLoginInfo:false,showTweetBox:false,mainDecorator:defaultMainDecorator,tweetFeedDecorator:defaultTweetFeedDecorator,tweetDecorator:defaultTweetDecorator,tweetProfileImageDecorator:defaultTweetProfileImageDecorator,tweetBodyDecorator:defaultTweetBodyDecorator, tweetUsernameDecorator:defaultTweetUsernameDecorator,tweetTextDecorator:defaultTweetTextDecorator,tweetAttributesDecorator:defaultTweetAttributesDecorator,tweetTimestampDecorator:defaultTweetTimestampDecorator,tweetSourceDecorator:defaultTweetSourceDecorator,tweetGeoLocationDecorator:defaultTweetGeoLocationDecorator,tweetInReplyToDecorator:defaultTweetInReplyToDecorator,tweetRetweeterDecorator:defaultTweetRetweeterDecorator,tweetFeedControlsDecorator:defaultTweetFeedControlsDecorator,tweetFeedControlsMoreBtnDecorator:defaultTweetFeedControlsMoreBtnDecorator, tweetFeedControlsPrevBtnDecorator:defaultTweetFeedControlsPrevBtnDecorator,tweetFeedControlsNextBtnDecorator:defaultTweetFeedControlsNextBtnDecorator,tweetFeedAutorefreshTriggerDecorator:defaultTweetFeedAutorefreshTriggerDecorator,tweetFeedAutorefreshTriggerContentDecorator:defaultTweetFeedAutorefreshTriggerContentDecorator,connectButtonDecorator:defaultConnectButtonDecorator,loginInfoDecorator:defaultLoginInfoDecorator,loginInfoContentDecorator:defaultLoginInfoContentDecorator,followButtonDecorator:defaultFollowButtonDecorator, tweetBoxDecorator:defaultTweetBoxDecorator,linkDecorator:defaultLinkDecorator,usernameDecorator:defaultUsernameDecorator,hashtagDecorator:defaultHashtagDecorator,loadingDecorator:defaultLoadingDecorator,errorDecorator:defaultErrorDecorator,noDataDecorator:defaultNoDataDecorator,tweetTimestampFormatter:defaultTweetTimestampFormatter,tweetTimestampTooltipFormatter:defaultTweetTimestampTooltipFormatter,tweetVisualizer:defaultTweetVisualizer,loadingIndicatorVisualizer:defaultLoadingIndicatorVisualizer, autorefreshTriggerVisualizer:defaultAutorefreshTriggerVisualizer,onDataRequestHandler:defaultOnDataRequestHandler,onRateLimitDataHandler:defaultOnRateLimitDataHandler,_tweetFeedConfig:{expandHovercards:false,showTimestamp:{refreshInterval:0},showSource:false,showGeoLocation:true,showInReplyTo:true,showProfileImages:null,showUserScreenNames:null,showUserFullNames:false,includeRetweets:true,paging:{mode:"none",_limit:0,_offset:0},autorefresh:{mode:"none",interval:60,duration:3600,_startTime:null,_triggerElement:null}, _pageParam:0,_maxId:null,_recLevel:0,_noData:false,_clearBeforePopulate:false},_tweetBoxConfig:{counter:true,width:515,height:65,label:"What's happening?",defaultContent:"",onTweet:function(){}},_connectButtonConfig:{size:"medium"},_baseSelector:null,_baseElement:null,_tweetFeedElement:null,_tweetFeedControlsElement:null,_followButtonElement:null,_loginInfoElement:null,_connectButtonElement:null,_tweetBoxElement:null,_loadingIndicatorElement:null,_noDataElement:null,_tweetsCache:[],_autorefreshTweetsCache:[], _stats:{dataRequestCount:0,rateLimitPreventionCount:0,rateLimit:{remaining_hits:150,hourly_limit:150}}},a);if(a.mainDecorator){a._baseSelector=this.selector;if(typeof a.username!="string"){if(!a.searchParams)a.searchParams=["q=from:"+a.username.join(" OR from:")];a.username=a.username[0]}typeof a.showTweetFeed=="object"&&e.extend(true,a._tweetFeedConfig,a.showTweetFeed);if(typeof a.showTweetBox=="object"){a._tweetBoxConfig=a.showTweetBox;a.showTweetBox=true}if(typeof a.showConnectButton=="object"){a._connectButtonConfig= a.showConnectButton;a.showConnectButton=true}if(a._tweetFeedConfig.showProfileImages==null)a._tweetFeedConfig.showProfileImages=a.tweetProfileImagePresent;if(a._tweetFeedConfig.showProfileImages==null)a._tweetFeedConfig.showProfileImages=(a.list||a.searchParams)&&a.tweetProfileImageDecorator;if(a._tweetFeedConfig.showUserScreenNames==null){if(a.list||a.searchParams)a._tweetFeedConfig.showUserScreenNames=true;if(!a.tweetUsernameDecorator)a._tweetFeedConfig.showUserScreenNames=false}if(a._tweetFeedConfig.showUserFullNames== null){if(a.list||a.searchParams)a._tweetFeedConfig.showUserFullNames=true;if(!a.tweetUsernameDecorator)a._tweetFeedConfig.showUserFullNames=false}a.count=validateRange(a.count,0,a.searchParams?100:20);a._tweetFeedConfig.autorefresh.interval=Math.max(30,a._tweetFeedConfig.autorefresh.interval);a._tweetFeedConfig.paging._offset=0;a._tweetFeedConfig.paging._limit=a.count;if(a.count==0||!a.showTweetFeed){a.tweetFeedDecorator=null;a.tweetFeedControlsDecorator=null}if(a._tweetFeedConfig.paging.mode=="none")a.tweetFeedControlsDecorator= null;if(!a.showFollowButton)a.followButtonDecorator=null;if(!a.showTweetBox)a.tweetBoxDecorator=null;if(!a.showConnectButton)a.connectButtonDecorator=null;if(!a.showLoginInfo)a.loginInfoDecorator=null;if(!a._tweetFeedConfig.showTimestamp)a.tweetTimestampDecorator=null;if(!a._tweetFeedConfig.showSource)a.tweetSourceDecorator=null;if(!a._tweetFeedConfig.showGeoLocation)a.tweetGeoLocationDecorator=null;if(!a._tweetFeedConfig.showInReplyTo)a.tweetInReplyToDecorator=null;e.ajaxSetup({cache:true});return this.each(function(){a._baseElement= e(this);a._tweetFeedElement=a.tweetFeedDecorator?e(a.tweetFeedDecorator(a)):null;a._tweetFeedControlsElement=a.tweetFeedControlsDecorator?e(a.tweetFeedControlsDecorator(a)):null;a._followButtonElement=a.followButtonDecorator?e(a.followButtonDecorator(a)):null;a._tweetBoxElement=a.tweetBoxDecorator?e(a.tweetBoxDecorator(a)):null;a._connectButtonElement=a.connectButtonDecorator?e(a.connectButtonDecorator(a)):null;a._loginInfoElement=a.loginInfoDecorator?e(a.loginInfoDecorator(a)):null;a.mainDecorator(a); populateTweetFeed(a);populateAnywhereControls(a);bindEventHandlers(a);a._tweetFeedConfig.autorefresh._startTime=(new Date).getTime();startAutorefresh(a);startTimestampRefresh(a)})}};defaultMainDecorator=function(a){a._tweetFeedElement&&a._baseElement.append(a._tweetFeedElement);a._tweetFeedControlsElement&&a._baseElement.append(a._tweetFeedControlsElement);a._connectButtonElement&&a._baseElement.append(a._connectButtonElement);a._loginInfoElement&&a._baseElement.append(a._loginInfoElement);a._followButtonElement&& a._baseElement.append(a._followButtonElement);a._tweetBoxElement&&a._baseElement.append(a._tweetBoxElement)};defaultTweetFeedControlsDecorator=function(a){var b="";if(a._tweetFeedConfig.paging.mode=="prev-next"){if(a.tweetFeedControlsPrevBtnDecorator)b+=a.tweetFeedControlsPrevBtnDecorator(a);if(a.tweetFeedControlsNextBtnDecorator)b+=a.tweetFeedControlsNextBtnDecorator(a)}else if(a._tweetFeedConfig.paging.mode!="endless-scroll")if(a.tweetFeedControlsMoreBtnDecorator)b+=a.tweetFeedControlsMoreBtnDecorator(a); return'
      '+b+"
      "};defaultTweetFeedControlsMoreBtnDecorator=function(){return'More'};defaultTweetFeedControlsPrevBtnDecorator=function(){return'Prev'};defaultTweetFeedControlsNextBtnDecorator=function(){return'Next'}; defaultTweetFeedAutorefreshTriggerDecorator=function(a,b){var c="";if(b.tweetFeedAutorefreshTriggerContentDecorator)c=b.tweetFeedAutorefreshTriggerContentDecorator(a,b);return'
    • '+c+"
    • "};defaultTweetFeedAutorefreshTriggerContentDecorator=function(a){return''+(""+a+" new "+(a>1?" tweets":" tweet"))+""};defaultTweetFeedDecorator=function(){return'
        '};defaultTweetDecorator= function(a,b){var c="";if(b._tweetFeedConfig.showProfileImages)c+=b.tweetProfileImageDecorator(a,b);if(b.tweetBodyDecorator)c+=b.tweetBodyDecorator(a,b);c+='
         
        ';return'
      • '+c+"
      • "};defaultTweetProfileImageDecorator=function(a){a=a.retweeted_status||a;var b=a.user?a.user.screen_name:a.from_user;return'
        '+(''+b+'")+"
        "};defaultTweetBodyDecorator=function(a,b){var c="";if(b.tweetTextDecorator)c+=b.tweetTextDecorator(a,b);if(b.tweetAttributesDecorator)c+=b.tweetAttributesDecorator(a,b);return'
        '+c+"
        "};defaultTweetTextDecorator=function(a,b){var c=a.text;if(a.retweeted_status&& (b._tweetFeedConfig.showUserScreenNames||b._tweetFeedConfig.showUserScreenNames==null||b._tweetFeedConfig.showUserFullNames||b._tweetFeedConfig.showUserFullNames==null))c=a.retweeted_status.text;if(b.linkDecorator)c=b.linkDecorator(c,b);if(b.usernameDecorator)c=b.usernameDecorator(c,b);if(b.hashtagDecorator)c=b.hashtagDecorator(c,b);if(b._tweetFeedConfig.showUserScreenNames||b._tweetFeedConfig.showUserFullNames||a.retweeted_status&&(b._tweetFeedConfig.showUserScreenNames==null||b._tweetFeedConfig.showUserFullNames== null))c=b.tweetUsernameDecorator(a,b)+" "+c;return''+c+""};defaultTweetUsernameDecorator=function(a,b){var c=a.retweeted_status||a,d=c.user?c.user.screen_name:c.from_user;c=c.user?c.user.name:null;var f;if(d&&(b._tweetFeedConfig.showUserScreenNames||b._tweetFeedConfig.showUserScreenNames==null&&a.retweeted_status))f=''+d+""; var g;if(c&&(b._tweetFeedConfig.showUserFullNames||b._tweetFeedConfig.showUserFullNames==null&&a.retweeted_status))g=''+(f?" (":"")+''+c+""+(f?")":"")+"";d="";if(f)d+=f;if(g){if(f)d+=" ";d+=g}if(f||g)d=''+(a.retweeted_status?"RT ":"")+d+"";return d};defaultTweetAttributesDecorator=function(a,b){var c="";if(b.tweetTimestampDecorator|| b.tweetSourceDecorator||b.tweetGeoLocationDecorator||b.tweetInReplyToDecorator||a.retweeted_status&&b.tweetRetweeterDecorator){c+='';if(b.tweetTimestampDecorator)c+=b.tweetTimestampDecorator(a,b);if(b.tweetSourceDecorator)c+=b.tweetSourceDecorator(a,b);if(b.tweetGeoLocationDecorator)c+=b.tweetGeoLocationDecorator(a,b);if(b.tweetInReplyToDecorator)c+=b.tweetInReplyToDecorator(a,b);if(a.retweeted_status&&b.tweetRetweeterDecorator)c+=b.tweetRetweeterDecorator(a,b); c+=""}return c};defaultTweetTimestampDecorator=function(a,b){var c=a.retweeted_status||a,d=formatDate(c.created_at),f=b.tweetTimestampFormatter(d),g=b.tweetTimestampTooltipFormatter(d);return''+f+""};defaultTweetTimestampTooltipFormatter=function(a){return(new Date(a)).toLocaleString()}; defaultTweetTimestampFormatter=function(a){var b=new Date,c=parseInt((b.getTime()-Date.parse(a))/1E3),d="";if(c<60)d+=c+" second"+(c==1?"":"s")+" ago";else if(c<3600){b=parseInt((c+30)/60);d+=b+" minute"+(b==1?"":"s")+" ago"}else if(c<86400){b=parseInt((c+1800)/3600);d+=b+" hour"+(b==1?"":"s")+" ago"}else{a=new Date(a);a.getHours();a.getMinutes();d+=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][a.getMonth()]+" "+a.getDate();if(a.getFullYear()12){d-=12;b="PM"}var f= a.getMinutes();c+=" ("+d+":"+((f<10?"0":"")+f)+" "+b+" "+(a.getMonth()+1)+"/"+a.getDate()+"/"+a.getFullYear()+")"}return c};defaultTweetSourceDecorator=function(a){return' via '+(a.retweeted_status||a).source.replace(/\<\;/gi,"<").replace(/\>\;/gi,">").replace(/\"\;/gi,'"')+""};defaultTweetGeoLocationDecorator=function(a){var b="";a=a.retweeted_status||a;var c;if(a.geo&&a.geo.coordinates)c=a.geo.coordinates.join(); else if(a.place&&a.place.full_name)c=a.place.full_name;if(c){b="here";if(a.place&&a.place.full_name)b=a.place.full_name;b=' from '+b+""}return b};defaultTweetInReplyToDecorator=function(a){a=a.retweeted_status||a;var b="";if(a.in_reply_to_status_id&&a.in_reply_to_screen_name)b=' in reply to '+a.in_reply_to_screen_name+"";return b};defaultTweetRetweeterDecorator=function(a){var b="";if(a.retweeted_status){b=a.user?a.user.screen_name:a.from_user;a=(a.retweeted_status.retweet_count||0)-1;var c=" and "+a+(a>1?" others":" other");b='
        Retweeted by '+(''+b+"")+(a>0? c:"")+""}return b};defaultConnectButtonDecorator=function(){return'
        '};defaultLoginInfoDecorator=function(){return''};defaultLoginInfoContentDecorator=function(a,b){var c="";if(b.isConnected()){c=b.currentUser.data("screen_name");var d=b.currentUser.data("profile_image_url");c='
         
        '}return c};defaultFollowButtonDecorator=function(){return'
        '};defaultTweetBoxDecorator=function(){return'
        '};defaultLinkDecorator=function(a){return a.replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi,'$1')}; defaultUsernameDecorator=function(a){return isAnywherePresent()?a:a.replace(/@([a-zA-Z0-9_]+)/gi,'@')};defaultHashtagDecorator=function(a){return a.replace(/#([a-zA-Z0-9_]+)/gi,'#$1')};defaultLoadingDecorator=function(){return'
      • loading ...
      • '}; defaultErrorDecorator=function(a){return'
      • ERROR: '+a+"
      • "};defaultNoDataDecorator=function(){return'
      • No more data
      • '};defaultTweetFilter=function(){return true};defaultTweetVisualizer=function(a,b,c){a[c](b)};defaultLoadingIndicatorVisualizer=function(a,b,c,d){defaultVisualizer(a,b,"append","fadeIn",600,"fadeOut",200,d)};defaultAutorefreshTriggerVisualizer=function(a,b,c,d){defaultVisualizer(a,b,"prepend","slideDown",600,"fadeOut",200,d)};defaultVisualizer= function(a,b,c,d,f,g,k,h){var j=function(){h&&h()};if(a){b.hide();a[c](b);b[d](f,j)}else b[g](k,function(){b.remove();j()})};defaultOnDataRequestHandler=function(){return true};defaultOnRateLimitDataHandler=function(){};updateLoginInfoElement=function(a,b){if(a._loginInfoElement&&a.loginInfoContentDecorator){a._loginInfoElement.children().remove();a._loginInfoElement.append(a.loginInfoContentDecorator(a,b));e(a._baseSelector+" .jta-login-info-sign-out").bind("click",function(){twttr.anywhere.signOut()})}}; getFeedUrl=function(a,b){var c="https:"==document.location.protocol?"https:":"http:";if(a.searchParams)c+="//search.twitter.com/search.json?"+(a.searchParams instanceof Array?a.searchParams.join("&"):a.searchParams)+"&rpp=100";else if(a.list)c+="//api.twitter.com/1/"+a.username+"/lists/"+a.list+"/statuses.json?per_page=20";else{c+="//api.twitter.com/1/statuses/user_timeline.json?screen_name="+a.username+"&count=20";if(a._tweetFeedConfig.includeRetweets)c+="&include_rts=true"}if(b)c+=(a._tweetFeedConfig._maxId? "&max_id="+a._tweetFeedConfig._maxId:"")+"&page="+a._tweetFeedConfig._pageParam;c+="&callback=?";return c};isAnywherePresent=function(){return typeof twttr!="undefined"};clearTweetFeed=function(a){a._tweetFeedElement&&a._tweetFeedElement.empty()};populateTweetFeed=function(a){a.tweetDecorator&&a._tweetFeedElement&&getPagedTweets(a,function(b,c){c._tweetFeedConfig._clearBeforePopulate&&clearTweetFeed(c);hideLoadingIndicator(c,function(){e.each(b,function(d,f){c.tweetVisualizer(c._tweetFeedElement, e(c.tweetDecorator(f,c)),"append",c)});if(c._tweetFeedConfig._noData&&c.noDataDecorator&&!c._tweetFeedConfig._noDataElement){c._tweetFeedConfig._noDataElement=e(c.noDataDecorator(c));c._tweetFeedElement.append(c._tweetFeedConfig._noDataElement)}c._tweetFeedConfig._clearBeforePopulate&&c._tweetFeedElement.scrollTop(0);addHovercards(c)})})};populateTweetFeed2=function(a){if(a._tweetFeedElement&&a._autorefreshTweetsCache.length>0)if(a._tweetFeedConfig.autorefresh.mode=="trigger-insert")if(a._tweetFeedConfig.autorefresh._triggerElement)a.tweetFeedAutorefreshTriggerContentDecorator&& a._tweetFeedConfig.autorefresh._triggerElement.html(a.tweetFeedAutorefreshTriggerContentDecorator(a._autorefreshTweetsCache.length,a));else{if(a.tweetFeedAutorefreshTriggerDecorator){a._tweetFeedConfig.autorefresh._triggerElement=e(a.tweetFeedAutorefreshTriggerDecorator(a._autorefreshTweetsCache.length,a));a._tweetFeedConfig.autorefresh._triggerElement.bind("click",function(){a.autorefreshTriggerVisualizer(null,a._tweetFeedConfig.autorefresh._triggerElement,a,function(){insertTriggerTweets(a)});a._tweetFeedConfig.autorefresh._triggerElement= null});a.autorefreshTriggerVisualizer(a._tweetFeedElement,a._tweetFeedConfig.autorefresh._triggerElement,a)}}else insertTriggerTweets(a)};insertTriggerTweets=function(a){if(a.tweetDecorator&&a._autorefreshTweetsCache.length>0){for(;a._autorefreshTweetsCache.length>0;){var b=a._autorefreshTweetsCache.pop();a._tweetsCache.unshift(b);a._tweetFeedConfig.paging._offset++;a.tweetVisualizer(a._tweetFeedElement,e(a.tweetDecorator(b,a)),"prepend",a)}addHovercards(a)}};addHovercards=function(a){isAnywherePresent()&& twttr.anywhere(function(b){b(a._baseSelector+" .jta-tweet-list").hovercards({expanded:a._tweetFeedConfig.expandHovercards});b(a._baseSelector+" .jta-tweet-profile-image img").hovercards({expanded:a._tweetFeedConfig.expandHovercards,username:function(c){return c.alt}});b(a._baseSelector+" .jta-tweet-retweeter-link").hovercards({expanded:a._tweetFeedConfig.expandHovercards,username:function(c){return c.text}});b(a._baseSelector+" .jta-tweet-user-screen-name-link").hovercards({expanded:a._tweetFeedConfig.expandHovercards, username:function(c){return c.text}});b(a._baseSelector+" .jta-tweet-user-full-name-link").hovercards({expanded:a._tweetFeedConfig.expandHovercards,username:function(c){return c.name}})})};populateAnywhereControls=function(a){isAnywherePresent()&&twttr.anywhere(function(b){a.tweetBoxDecorator&&b(a._baseSelector+" .jta-tweet-box").tweetBox(a._tweetBoxConfig);a.followButtonDecorator&&b(a._baseSelector+" .jta-follow-button").followButton(a.username);if(a.connectButtonDecorator){var c=e.extend({authComplete:function(){updateLoginInfoElement(a, b)},signOut:function(){updateLoginInfoElement(a,b)}},a._connectButtonConfig);b(a._baseSelector+" .jta-connect-button").connectButton(c);updateLoginInfoElement(a,b)}})};bindEventHandlers=function(a){if(a.tweetFeedControlsDecorator)if(a._tweetFeedConfig.paging.mode=="prev-next"){e(a._baseSelector+" .jta-tweet-list-controls-button-prev").bind("click",function(){!isLoading(a)&&a._tweetFeedConfig.paging._offset>0&&prevPage(a,true)});e(a._baseSelector+" .jta-tweet-list-controls-button-next").bind("click", function(){isLoading(a)||nextPage(a,true)})}else a._tweetFeedConfig.paging.mode=="endless-scroll"?a._tweetFeedElement.bind("scroll",function(){!isLoading(a)&&e(this)[0].scrollHeight-e(this).scrollTop()==e(this).outerHeight()&&nextPage(a,false)}):e(a._baseSelector+" .jta-tweet-list-controls-button-more").bind("click",function(){isLoading(a)||nextPage(a,false)})};nextPage=function(a,b){doPage(a,b,Math.min(a._tweetFeedConfig.paging._offset+a._tweetFeedConfig.paging._limit,a._tweetsCache.length))};prevPage= function(a,b){doPage(a,b,Math.max(0,a._tweetFeedConfig.paging._offset-a._tweetFeedConfig.paging._limit))};doPage=function(a,b,c){a._tweetFeedConfig.paging._offset=c;a._tweetFeedConfig._clearBeforePopulate=b;populateTweetFeed(a)};startAutorefresh=function(a){if(a._tweetFeedConfig.autorefresh.mode!="none"&&a._tweetFeedConfig.paging.mode!="prev-next"&&a._tweetFeedConfig.autorefresh.duration!=0&&(a._tweetFeedConfig.autorefresh.duration<0||(new Date).getTime()-a._tweetFeedConfig.autorefresh._startTime<= a._tweetFeedConfig.autorefresh.duration*1E3))window.setTimeout(function(){processAutorefresh(a)},a._tweetFeedConfig.autorefresh.interval*1E3)};stopAutorefresh=function(a){a._tweetFeedConfig.autorefresh.duration=0};processAutorefresh=function(a){if(a._tweetFeedConfig.autorefresh.duration!=0){getRateLimitedData(a,true,getFeedUrl(a,false),function(b,c){var d=(b.results||b).slice(0);d.reverse();e.each(d,function(f,g){isTweetInCache(g,c)||c.tweetFilter(g,c)&&c._autorefreshTweetsCache.unshift(g)});populateTweetFeed2(c)}); startAutorefresh(a)}};startTimestampRefresh=function(a){a.tweetTimestampDecorator&&typeof a._tweetFeedConfig.showTimestamp=="object"&&a._tweetFeedConfig.showTimestamp.refreshInterval>0&&window.setTimeout(function(){processTimestampRefresh(a)},a._tweetFeedConfig.showTimestamp.refreshInterval*1E3)};processTimestampRefresh=function(a){e.each(a._tweetFeedElement.find(".jta-tweet-timestamp-link"),function(b,c){var d=e(c).attr("data-timestamp");e(c).html(a.tweetTimestampFormatter(d))});startTimestampRefresh(a)}; isTweetInCache=function(a,b){for(var c=b._tweetsCache.length,d=0;dc)a=c;return a};showError=function(a,b){a.errorDecorator&&a._tweetFeedElement&&a._tweetFeedElement.append(a.errorDecorator(b,a))};getPagedTweets=function(a,b){a._tweetFeedConfig._recLevel=0;getRecPagedTweets(a,a._tweetFeedConfig.paging._offset, a._tweetFeedConfig.paging._limit,b)};getRecPagedTweets=function(a,b,c,d){++a._tweetFeedConfig._recLevel;if(b+c<=a._tweetsCache.length||a._tweetFeedConfig._recLevel>3||a._tweetFeedConfig._noData){if(b+c>a._tweetsCache.length)c=Math.max(0,a._tweetsCache.length-b);for(var f=[],g=0;g)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
        a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

        ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
        ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
        ","
        "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
        ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
        "; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/www/common/jquery/jquery-ui-1.8.2.custom.min.js b/www/common/jquery/jquery-ui-1.8.2.custom.min.js new file mode 100644 index 0000000000..fec53e8e08 --- /dev/null +++ b/www/common/jquery/jquery-ui-1.8.2.custom.min.js @@ -0,0 +1,321 @@ +/*! + * jQuery UI 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +(function(c){c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.2",plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=0)&&c(a).is(":focusable")}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Widget + */ +(function(b){var j=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add(this).each(function(){b(this).triggerHandler("remove")});return j.call(b(this),a,c)})};b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend({},c.options);b[e][a].prototype= +b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==undefined){h=i;return false}}):this.each(function(){var g= +b.data(this,a);if(g){d&&g.option(d);g._init()}else b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){this.element=b(c).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create(); +this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===undefined)return this.options[a];d={};d[a]=c}b.each(d,function(f, +h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a= +b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); +;/*! + * jQuery UI Mouse 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&& +this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault(); +return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&& +this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX- +a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var m=/left|center|right/,n=/top|center|bottom/,p=c.fn.position,q=c.fn.offset;c.fn.position=function(a){if(!a||!a.of)return p.apply(this,arguments);a=c.extend({},a);var b=c(a.of),d=(a.collision||"flip").split(" "),e=a.offset?a.offset.split(" "):[0,0],g,h,i;if(a.of.nodeType===9){g=b.width();h=b.height();i={top:0,left:0}}else if(a.of.scrollTo&&a.of.document){g=b.width();h=b.height();i={top:b.scrollTop(),left:b.scrollLeft()}}else if(a.of.preventDefault){a.at="left top";g=h= +0;i={top:a.of.pageY,left:a.of.pageX}}else{g=b.outerWidth();h=b.outerHeight();i=b.offset()}c.each(["my","at"],function(){var f=(a[this]||"").split(" ");if(f.length===1)f=m.test(f[0])?f.concat(["center"]):n.test(f[0])?["center"].concat(f):["center","center"];f[0]=m.test(f[0])?f[0]:"center";f[1]=n.test(f[1])?f[1]:"center";a[this]=f});if(d.length===1)d[1]=d[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(a.at[0]==="right")i.left+=g;else if(a.at[0]==="center")i.left+= +g/2;if(a.at[1]==="bottom")i.top+=h;else if(a.at[1]==="center")i.top+=h/2;i.left+=e[0];i.top+=e[1];return this.each(function(){var f=c(this),k=f.outerWidth(),l=f.outerHeight(),j=c.extend({},i);if(a.my[0]==="right")j.left-=k;else if(a.my[0]==="center")j.left-=k/2;if(a.my[1]==="bottom")j.top-=l;else if(a.my[1]==="center")j.top-=l/2;j.left=parseInt(j.left);j.top=parseInt(j.top);c.each(["left","top"],function(o,r){c.ui.position[d[o]]&&c.ui.position[d[o]][r](j,{targetWidth:g,targetHeight:h,elemWidth:k, +elemHeight:l,offset:e,my:a.my,at:a.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(j,{using:a.using}))})};c.ui.position={fit:{left:function(a,b){var d=c(window);b=a.left+b.elemWidth-d.width()-d.scrollLeft();a.left=b>0?a.left-b:Math.max(0,a.left)},top:function(a,b){var d=c(window);b=a.top+b.elemHeight-d.height()-d.scrollTop();a.top=b>0?a.top-b:Math.max(0,a.top)}},flip:{left:function(a,b){if(b.at[0]!=="center"){var d=c(window);d=a.left+b.elemWidth-d.width()-d.scrollLeft();var e=b.my[0]==="left"? +-b.elemWidth:b.my[0]==="right"?b.elemWidth:0,g=-2*b.offset[0];a.left+=a.left<0?e+b.targetWidth+g:d>0?e-b.targetWidth+g:0}},top:function(a,b){if(b.at[1]!=="center"){var d=c(window);d=a.top+b.elemHeight-d.height()-d.scrollTop();var e=b.my[1]==="top"?-b.elemHeight:b.my[1]==="bottom"?b.elemHeight:0,g=b.at[1]==="top"?b.targetHeight:-b.targetHeight,h=-2*b.offset[1];a.top+=a.top<0?e+b.targetHeight+h:d>0?e+g+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(a,b){if(/static/.test(c.curCSS(a,"position")))a.style.position= +"relative";var d=c(a),e=d.offset(),g=parseInt(c.curCSS(a,"top",true),10)||0,h=parseInt(c.curCSS(a,"left",true),10)||0;e={top:b.top-e.top+g,left:b.left-e.left+h};"using"in b?b.using.call(a,e):d.css(e)};c.fn.offset=function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(){c.offset.setOffset(this,a)});return q.call(this)}}})(jQuery); +;/* + * jQuery UI Resizable 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.resizable",d.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");d.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element, +_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&d.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(d('
        ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!d(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(g)&&f.css({zIndex:++a.zIndex});"se"==g&&f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[g]=".ui-resizable-"+g;this.element.append(f)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=d(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=d(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}d(this.handles[i])}};this._renderAxis(this.element);this._handles=d(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();d(this.element).addClass("ui-resizable-autohide").hover(function(){d(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){d(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(d(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), +e=this.element;this.resizing=true;this.documentScroll={top:d(document).scrollTop(),left:d(document).scrollLeft()};if(e.is(".ui-draggable")||/absolute/.test(e.css("position")))e.css({position:"absolute",top:c.top,left:c.left});d.browser.opera&&/relative/.test(e.css("position"))&&e.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var g=m(this.helper.css("top"));if(a.containment){c+=d(a.containment).scrollLeft()||0;g+=d(a.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:c,top:g};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:c,top:g};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: +this.originalSize.width/this.originalSize.height||1;a=d(".ui-resizable-"+this.axis).css("cursor");d("body").css("cursor",a=="auto"?this.axis+"-resize":a);e.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,e=this._change[this.axis];if(!e)return false;c=e.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", +b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var e=this._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName);e=g&&d.ui.hasScroll(e[0],"left")?0:c.sizeDiff.height; +g={width:c.size.width-(g?0:c.sizeDiff.width),height:c.size.height-e};e=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var f=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(d.extend(g,{top:f,left:e}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}d("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", +b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,e=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(e=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(e=="nw"){b.top= +a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,e=k(b.width)&&a.maxWidth&&a.maxWidthb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(f)b.width=a.minWidth;if(h)b.height=a.minHeight;if(e)b.width=a.maxWidth;if(g)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height, +l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(f&&l)b.left=i-a.minWidth;if(e&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(g&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=d.browser.msie&&d.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+ +a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return d.extend(this._change.n.apply(this, +arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return d.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){d.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});d.extend(d.ui.resizable, +{version:"1.8.2"});d.ui.plugin.add("resizable","alsoResize",{start:function(){var b=d(this).data("resizable").options,a=function(c){d(c).each(function(){d(this).data("resizable-alsoresize",{width:parseInt(d(this).width(),10),height:parseInt(d(this).height(),10),left:parseInt(d(this).css("left"),10),top:parseInt(d(this).css("top"),10)})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else d.each(b.alsoResize,function(c){a(c)}); +else a(b.alsoResize)},resize:function(){var b=d(this).data("resizable"),a=b.options,c=b.originalSize,e=b.originalPosition,g={height:b.size.height-c.height||0,width:b.size.width-c.width||0,top:b.position.top-e.top||0,left:b.position.left-e.left||0},f=function(h,i){d(h).each(function(){var j=d(this),l=d(this).data("resizable-alsoresize"),p={};d.each((i&&i.length?i:["width","height","top","left"])||["width","height","top","left"],function(n,o){if((n=(l[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(/relative/.test(j.css("position"))&& +d.browser.opera){b._revertToRelativePosition=true;j.css({position:"absolute",top:"auto",left:"auto"})}j.css(p)})};typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?d.each(a.alsoResize,function(h,i){f(h,i)}):f(a.alsoResize)},stop:function(){var b=d(this).data("resizable");if(b._revertToRelativePosition&&d.browser.opera){b._revertToRelativePosition=false;el.css({position:"relative"})}d(this).removeData("resizable-alsoresize-start")}});d.ui.plugin.add("resizable","animate",{stop:function(b){var a= +d(this).data("resizable"),c=a.options,e=a._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName),f=g&&d.ui.hasScroll(e[0],"left")?0:a.sizeDiff.height;g={width:a.size.width-(g?0:a.sizeDiff.width),height:a.size.height-f};f=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(d.extend(g,h&&f?{top:h,left:f}:{}),{duration:c.animateDuration,easing:c.animateEasing, +step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};e&&e.length&&d(e[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});d.ui.plugin.add("resizable","containment",{start:function(){var b=d(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof d?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= +d(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:d(document),left:0,top:0,width:d(document).width(),height:d(document).height()||document.body.parentNode.scrollHeight}}else{var e=d(a),g=[];d(["Top","Right","Left","Bottom"]).each(function(i,j){g[i]=m(e.css("padding"+j))});b.containerOffset=e.offset();b.containerPosition=e.position();b.containerSize={height:e.innerHeight()-g[3],width:e.innerWidth()-g[1]};c=b.containerOffset; +var f=b.containerSize.height,h=b.containerSize.width;h=d.ui.hasScroll(a,"left")?a.scrollWidth:h;f=d.ui.hasScroll(a)?a.scrollHeight:f;b.parentData={element:a,left:c.left,top:c.top,width:h,height:f}}}},resize:function(b){var a=d(this).data("resizable"),c=a.options,e=a.containerOffset,g=a.position;b=a._aspectRatio||b.shiftKey;var f={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))f=e;if(g.left<(a._helper?e.left:0)){a.size.width+=a._helper?a.position.left-e.left: +a.position.left-f.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?e.left:0}if(g.top<(a._helper?e.top:0)){a.size.height+=a._helper?a.position.top-e.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?e.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-f.left:a.offset.left-f.left)+a.sizeDiff.width);e=Math.abs((a._helper?a.offset.top-f.top:a.offset.top- +e.top)+a.sizeDiff.height);g=a.containerElement.get(0)==a.element.parent().get(0);f=/relative|absolute/.test(a.containerElement.css("position"));if(g&&f)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(e+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-e;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=d(this).data("resizable"),a=b.options,c=b.containerOffset,e=b.containerPosition, +g=b.containerElement,f=d(b.helper),h=f.offset(),i=f.outerWidth()-b.sizeDiff.width;f=f.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f});b._helper&&!a.animate&&/static/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f})}});d.ui.plugin.add("resizable","ghost",{start:function(){var b=d(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, +display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=d(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=d(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});d.ui.plugin.add("resizable","grid",{resize:function(){var b= +d(this).data("resizable"),a=b.options,c=b.size,e=b.originalSize,g=b.originalPosition,f=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-e.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-e.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a}else if(/^(ne)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}else{if(/^(sw)$/.test(f)){b.size.width=e.width+h;b.size.height= +e.height+a}else{b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}b.position.left=g.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +; +/* + * jQuery UI Selectable 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
        ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting"); +b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f= +this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting"); +b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f= +this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom").addClass("ui-autocomplete").appendTo("body",c).mousedown(function(){setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(d,b){b=b.item.data("item.autocomplete"); +false!==a._trigger("focus",null,{item:b})&&/^key/.test(d.originalEvent.type)&&a.element.val(b.value)},selected:function(d,b){b=b.item.data("item.autocomplete");false!==a._trigger("select",d,{item:b})&&a.element.val(b.value);a.close(d);d=a.previous;if(a.element[0]!==c.activeElement){a.element.focus();a.previous=d}a.selectedItem=b},blur:function(){a.menu.element.is(":visible")&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()}, +destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource()},_initSource:function(){var a,c;if(e.isArray(this.options.source)){a=this.options.source;this.source=function(d,b){b(e.ui.autocomplete.filter(a,d.term))}}else if(typeof this.options.source=== +"string"){c=this.options.source;this.source=function(d,b){e.getJSON(c,d,b)}}else this.source=this.options.source},search:function(a,c){a=a!=null?a:this.element.val();if(a.length").data("item.autocomplete", +c).append(""+c.label+"").appendTo(a)},_move:function(a,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](c);else this.search(null,c)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")},filter:function(a,c){var d=new RegExp(e.ui.autocomplete.escapeRegex(c), +"i");return e.grep(a,function(b){return d.test(b.label||b.value||b)})}})})(jQuery); +(function(e){e.widget("ui.menu",{_create:function(){var a=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(e(c.target).closest(".ui-menu-item a").length){c.preventDefault();a.select(c)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(c){a.activate(c,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,c){this.deactivate();if(this.hasScroll()){var d=c.offset().top-this.element.offset().top,b=this.element.attr("scrollTop"),f=this.element.height();if(d<0)this.element.attr("scrollTop",b+d);else d>f&&this.element.attr("scrollTop",b+d-f+c.height())}this.active=c.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:c})},deactivate:function(){if(this.active){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.prev().length},last:function(){return this.active&&!this.active.next().length},move:function(a,c,d){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);a.length?this.activate(d,a):this.activate(d,this.element.children(c))}else this.activate(d,this.element.children(c))},nextPage:function(a){if(this.hasScroll())if(!this.active|| +this.last())this.activate(a,this.element.children(":first"));else{var c=this.active.offset().top,d=this.element.height(),b=this.element.children("li").filter(function(){var f=e(this).offset().top-c-d+e(this).height();return f<10&&f>-10});b.length||(b=this.element.children(":last"));this.activate(a,b)}else this.activate(a,this.element.children(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last")); +else{var c=this.active.offset().top,d=this.element.height();result=this.element.children("li").filter(function(){var b=e(this).offset().top-c+d-e(this).height();return b<10&&b>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":""));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon"); +this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_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(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").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("ui-corner-left").end().filter(":last").addClass("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 Dialog 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");var a=this,b=a.options,d=b.title||a.originalTitle||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
        ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ +b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
        ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), +h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", +e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); +a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== +b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index", +c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== +f[0]&&e.shiftKey){g.focus(1);return false}}});c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();a._trigger("open");a._isOpen=true;return a}},_createButtons:function(a){var b=this,d=false,e=c("
        ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a, +function(g,f){g=c('').text(g).click(function(){f.apply(b.element[0],arguments)}).appendTo(e);c.fn.button&&g.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging"); +b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,position:f.position,size:f.size}}a=a===undefined?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position"); +a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop", +f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0];a=a||c.ui.dialog.prototype.options.position;if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(e,g){if(+b[e]===b[e]){d[e]=b[e];b[e]= +g}})}else if(typeof a==="object"){if("left"in a){b[0]="left";d[0]=a.left}else if("right"in a){b[0]="right";d[0]=-a.right}if("top"in a){b[1]="top";d[1]=a.top}else if("bottom"in a){b[1]="bottom";d[1]=-a.bottom}}(a=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position({my:b.join(" "),at:b.join(" "),offset:d.join(" "),of:window,collision:"fit",using:function(e){var g=c(this).css(e).offset().top;g<0&&c(this).css("top",e.top-g)}});a||this.uiDialog.hide()},_setOption:function(a, +b){var d=this,e=d.uiDialog,g=e.is(":data(resizable)"),f=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");break;case "draggable":b?d._makeDraggable():e.draggable("destroy");break; +case "height":f=true;break;case "maxHeight":g&&e.resizable("option","maxHeight",b);f=true;break;case "maxWidth":g&&e.resizable("option","maxWidth",b);f=true;break;case "minHeight":g&&e.resizable("option","minHeight",b);f=true;break;case "minWidth":g&&e.resizable("option","minWidth",b);f=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title", +d.uiDialogTitlebar).html(""+(b||" "));break;case "width":f=true;break}c.Widget.prototype._setOption.apply(d,arguments);f&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:"auto"}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight", +this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.2",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&& +c(document).bind(c.ui.dialog.overlay.events,function(d){return c(d.target).zIndex()>=c.ui.dialog.overlay.maxZ})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("
        ").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&& +b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight, +document.body.offsetHeight);return a",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:'
      • #{label}
      • '},_create:function(){this._tabify(true)},_setOption:function(c,e){if(c=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[c]=e;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+s()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+v());return d.cookie.apply(null,[c].concat(d.makeArray(arguments)))},_ui:function(c,e){return{tab:c,panel:e,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c= +d(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function e(g,f){g.css({display:""});!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}this.list=this.element.find("ol,ul").eq(0);this.lis=d("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);var a=this,b=this.options,h=/^#.+/;this.anchors.each(function(g,f){var j=d(f).attr("href"),l=j.split("#")[0],p;if(l&&(l===location.toString().split("#")[0]|| +(p=d("base")[0])&&l===p.href)){j=f.hash;f.href=j}if(h.test(j))a.panels=a.panels.add(a._sanitizeSelector(j));else if(j!="#"){d.data(f,"href.tabs",j);d.data(f,"load.tabs",j.replace(/#.*$/,""));j=a._tabId(f);f.href="#"+j;f=d("#"+j);if(!f.length){f=d(b.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else b.disabled.push(g)});if(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");if(b.selected===undefined){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){b.selected=g;return false}});if(typeof b.selected!="number"&&b.cookie)b.selected=parseInt(a._cookie(),10);if(typeof b.selected!="number"&&this.lis.filter(".ui-tabs-selected").length)b.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));b.selected=b.selected||(this.lis.length?0:-1)}else if(b.selected===null)b.selected=-1;b.selected=b.selected>=0&&this.anchors[b.selected]||b.selected<0?b.selected:0;b.disabled=d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(b.selected,b.disabled)!=-1&&b.disabled.splice(d.inArray(b.selected,b.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(b.selected>=0&&this.anchors.length){this.panels.eq(b.selected).removeClass("ui-tabs-hide");this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[b.selected],a.panels[b.selected]))});this.load(b.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else b.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[b.collapsible?"addClass": +"removeClass"]("ui-tabs-collapsible");b.cookie&&this._cookie(b.selected,b.cookie);c=0;for(var i;i=this.lis[c];c++)d(i)[d.inArray(c,b.disabled)!=-1&&!d(i).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");b.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(b.event!="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs", +function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(b.fx)if(d.isArray(b.fx)){m=b.fx[0];o=b.fx[1]}else m=o=b.fx;var q=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);a._trigger("show", +null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},r=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};this.anchors.bind(b.event+".tabs", +function(){var g=this,f=d(this).closest("li"),j=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(this.hash));if(f.hasClass("ui-tabs-selected")&&!b.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}b.selected=a.anchors.index(this);a.abort();if(b.collapsible)if(f.hasClass("ui-tabs-selected")){b.selected=-1;b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){r(g, +j)}).dequeue("tabs");this.blur();return false}else if(!j.length){b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this));this.blur();return false}b.cookie&&a._cookie(b.selected,b.cookie);if(l.length){j.length&&a.element.queue("tabs",function(){r(g,j)});a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs", +function(){return false})},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(b,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this, +"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c,e,a){if(a===undefined)a=this.anchors.length;var b=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,e));c=!c.indexOf("#")?c.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", +true);var i=d("#"+c);i.length||(i=d(h.panelTemplate).attr("id",c).data("destroy.tabs",true));i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);i.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");i.removeClass("ui-tabs-hide"); +this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(c){var e=this.options,a=this.lis.eq(c).remove(),b=this.panels.eq(c).remove();if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1=c?--h:h});this._tabify();this._trigger("remove", +null,this._ui(a.find("a")[0],b[0]));return this},enable:function(c){var e=this.options;if(d.inArray(c,e.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=c});this._trigger("enable",null,this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){var e=this.options;if(c!=e.selected){this.lis.eq(c).addClass("ui-state-disabled");e.disabled.push(c);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this}, +select:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));else if(c===null)c=-1;if(c==-1&&this.options.collapsible)c=this.options.selected;this.anchors.eq(c).trigger(this.options.event+".tabs");return this},load:function(c){var e=this,a=this.options,b=this.anchors.eq(c)[0],h=d.data(b,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(b,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing"); +if(a.spinner){var i=d("span",b);i.data("label.tabs",i.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(b.hash)).html(k);e._cleanup();a.cache&&d.data(b,"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.error(k,n,c,b)}catch(m){}}}));e.element.dequeue("tabs");return this}}, +abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(c,e){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.2"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(c,e){var a=this,b=this.options,h=a._rotate||(a._rotate= +function(i){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=b.selected;a.select(++k").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"}); +c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=j.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c|| +typeof c=="number"||f.fx.speeds[c])return this._show.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c])return this._hide.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||typeof c=="boolean"||f.isFunction(c))return this.__toggle.apply(this, +arguments);else{var a=j.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c, +a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+ +b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2, +10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)* +a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(hnb99Af5rT)t{mCEg5urg=A(g z{C|6SPb~9Xage|wB`SrZk2FOMYM!buln2sX?5Y+T78iB(Zu9cS7|LZyZ++}u$^oi1 z_j@S}bW9OzU2R+RMy&~OT>X-oZ98$jq#ogNfJ!BM-42wHGZk*6s2KD}U*IA%epmxb zm}|6BK9YoIF;*xSL!+z@<64lB7->LTW2Vi4ostCA(z&2XniwNIv}fFo-`MbG;)u4G z^p@F!)|9HhZprHd_vXjDoxs6WkK-6P0@lfxnGT>*p(QHoUV=u1FAqb@b%*W=a3{`LsH5k^AvQNL>6fPpy#oU(&MuH(*aEX4b35*} zn4n7)`I2U%=+Z=?BVZQ?vjQFW4gD@~XSOO6b{qu81`4&LFuU2(ilxW+1|ZkNMnWe79C$gs zWT?Ele|HR{JGPe)5BTW>0Ey?-Ls6S#GoV0tbt6ku7B&*0 z;i9QM$W1Rj*rRIdceL)rAOSl+sDe3LkB87<%){;ZdHp6|SNlopDXRx< zxBDF9-lTo&v`8$humFygUij@qgT=Qzhj8{ym2-{Xciwqq_Xwk%=O3B-MNAL_6e`3U zyxwmXex4`g0^1RYw~Dth3av3Dl^AAlpO3mG!nLr#&ZZ7c_wUboI+deC+&%TFjK2Lm z!Y&f1h|T_On%RCV&=4bx`!>(YezqGVhl&QpED?N6GV)HmzJ9&rh$x*i?*@o9#6QI< z5ZI_MRX;0+pY8$`j)eF#TlUyG(eE%E7S!rj;mj^M5vhUicPm zVWQ2z+imFyg}SRABmOBY_@osR!>7Ov!ioK`NB6_Rv}7Ud?35ed5Sb@?yND?kv~RCa wqs^a3Sh>&&L4)!LKI?D2&k@))k(LESaga|C278ChSzn3NWVkcuNoY&{0f?~U_5c6? literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png b/www/common/jquery/theme-redmond/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png b/www/common/jquery/theme-redmond/images/ui-bg_flat_55_fbec88_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..47acaadd737478ddb090f47f618810712163317b GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA993)+ za~~)OO5|O5sDCi_{N8&XlRv*c;OQ6|AR59NN?mFzWBXJVGojypu|S6~c)I$ztaD0e F0syyrGF|`x literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png b/www/common/jquery/theme-redmond/images/ui-bg_glass_75_d0e5f5_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..9d149b1c61fdee2de5cb342741c243abb9058bb3 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAGVZ#9R3S1u{Kd978O6pI&z4VlotPxp?2+ z_9ElQf7546?+BK3Q+%u|q&R!~TD`8c>Nm?7lq=+T^Fw3At=o;a{QQ?&v0rW43t78u zKLhT~Z`;~2oo9{ezlW>%eD?g@v!}03FhOcY)5-`I-U~CHGCzC3{y9?4*Y0Z~JJ3=F MPgg&ebxsLQ09`{nxc~qF literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png b/www/common/jquery/theme-redmond/images/ui-bg_glass_85_dfeffc_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..014951529c315d6042e72febc310a4d2db5b4a82 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|lm978O6-<~(*YA_IRxoBVf zfAX@vsV!R#l$@#*eLnw)_Sv|_?i7P!ORnX)SxaXh+BPpZ!Fw~yjr&#G|Jw^YMHDhV X&EsZx`7bsSXc~j3tDnm{r-UW|&(SK+ literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png b/www/common/jquery/theme-redmond/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..4443fdc1a156babad4336f004eaf5ca5dfa0f9ab GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/www/common/jquery/theme-redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png new file mode 100644 index 0000000000000000000000000000000000000000..81ecc362d50ef5abbc0420aacd5345822f1f6098 GIT binary patch literal 3457 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 literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png b/www/common/jquery/theme-redmond/images/ui-icons_217bc0_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..6f4bd87c041453ef037c4a9a1a698f0105d02eba GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png b/www/common/jquery/theme-redmond/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png b/www/common/jquery/theme-redmond/images/ui-icons_469bdd_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..bd2cf079add1ca236adeb509698adabbffb08acb GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/www/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png b/www/common/jquery/theme-redmond/images/ui-icons_f9bd01_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..c7c53cb11904843e176e4ce1f4e7247cd90b3590 GIT binary patch literal 5355 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 t>_S@PWkKlK01oMw@pjEVpN literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/folder-closed.gif b/www/common/jquery/treeview/images/folder-closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..be6b59c2bafc37724de6a8904caf8ddb52185f07 GIT binary patch literal 631 zcmV--0*L)bNk%w1VGsZi0OoZ7Zc+gM@owbb(D(J~{kRkV=)C^@`FC9q$-khblVJYv z)5ozv$hAcOfX1|Jz_gHwZxsLR$M*H` z)5VgcjVaB&g#X~Bn}|^6)K>kvApXNk{?U8w>frwL-;#Ym&AMUr=V$)PW&YTa>#Gp{ z$5^hOaMH=J$FMm5$62+73I57t#-KOer4h}bD~WS3yQMU?q;vkxak`{N&AEBc#G?Jc zKK|H{jB+E}qY%KYW|e?Jt%4WhuRrYIzx}uttbPdi>1gcRT)?bi*~ygsy)VYKbl=sl z!LDb`w?4L^YVzd5|KO(4ze~WaWw4)Z<=wvhxEIZ>RsZvV+R0MBjTPX{P^5)3t(IEZ zo(`LK71O>%%$yd@ws6O^WdH2Q^sy2D_NBk8J;AJDcUuPR<<6~{Vg0!m{?dHMvTC`j zfZ5BO|NGMa|Nj6000000000000000000000000000000000000A^8LW004CWEC2ui z01yBW06+)SfOUcbFM}==AarS4f^`T0To+{@4nGeh6)G`B2p9kiNn<+@0|r=5Yepst zIgKY#WJd%9EJPL?t^m4h5ez8-Aqy8z25mic2N?k#R&i4b8U+nh4l7`S2^}ajGc6+$ z6C!V6UyXu5K{9S7=8Z222f8;D0KLCn3s7|l^;H1@N?@2FHGqSVIadS#=nw*efr3kz ztU4o2N*xdYmhp(zfYOQwaCBG@bU+OXEtfKR^UfI%4+*Z?OY3oS7i+9AMEg8&*N RE^xJLBxeY_p@ISd06U6)DM0`L literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/folder-closed2.gif b/www/common/jquery/treeview/images/folder-closed2.gif new file mode 100644 index 0000000000000000000000000000000000000000..541107888e6739a7b367ad3d208e1efa933f877d GIT binary patch literal 105 zcmZ?wbhEHb6ky4lrdiO0bk3ZcRLy6E?4f Hg~1vCyv-@{ literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/folder.gif b/www/common/jquery/treeview/images/folder.gif new file mode 100644 index 0000000000000000000000000000000000000000..be6b59c2bafc37724de6a8904caf8ddb52185f07 GIT binary patch literal 631 zcmV--0*L)bNk%w1VGsZi0OoZ7Zc+gM@owbb(D(J~{kRkV=)C^@`FC9q$-khblVJYv z)5ozv$hAcOfX1|Jz_gHwZxsLR$M*H` z)5VgcjVaB&g#X~Bn}|^6)K>kvApXNk{?U8w>frwL-;#Ym&AMUr=V$)PW&YTa>#Gp{ z$5^hOaMH=J$FMm5$62+73I57t#-KOer4h}bD~WS3yQMU?q;vkxak`{N&AEBc#G?Jc zKK|H{jB+E}qY%KYW|e?Jt%4WhuRrYIzx}uttbPdi>1gcRT)?bi*~ygsy)VYKbl=sl z!LDb`w?4L^YVzd5|KO(4ze~WaWw4)Z<=wvhxEIZ>RsZvV+R0MBjTPX{P^5)3t(IEZ zo(`LK71O>%%$yd@ws6O^WdH2Q^sy2D_NBk8J;AJDcUuPR<<6~{Vg0!m{?dHMvTC`j zfZ5BO|NGMa|Nj6000000000000000000000000000000000000A^8LW004CWEC2ui z01yBW06+)SfOUcbFM}==AarS4f^`T0To+{@4nGeh6)G`B2p9kiNn<+@0|r=5Yepst zIgKY#WJd%9EJPL?t^m4h5ez8-Aqy8z25mic2N?k#R&i4b8U+nh4l7`S2^}ajGc6+$ z6C!V6UyXu5K{9S7=8Z222f8;D0KLCn3s7|l^;H1@N?@2FHGqSVIadS#=nw*efr3kz ztU4o2N*xdYmhp(zfYOQwaCBG@bU+OXEtfKR^UfI%4+*Z?OY3oS7i+9AMEg8&*N RE^xJLBxeY_p@ISd06U6)DM0`L literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/folder2.gif b/www/common/jquery/treeview/images/folder2.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b31631ca2bfec3a8afb1bfdd4f8ed4c5bcc3a18 GIT binary patch literal 106 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 literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/treeview-gray-line.gif b/www/common/jquery/treeview/images/treeview-gray-line.gif new file mode 100644 index 0000000000000000000000000000000000000000..37600447dc002bbc0dd16e1391b711360aae2e34 GIT binary patch literal 1877 zcmeH``8OK|0LL@bF~qSc#n50?JXNI+k>{#)#go3O{g`&sTA06+?`JRv{%1VB*=kSggPTmbZ?E2@Hm10RaqGJr~M_swEK9(fuU z9bXMur@nY#Xn3Qp;v6X2AT> zA>EM+>y@m1^a49s_E1X&+bZH^!_a=e{N6Su)s&U>sDnd!~=b?JFEB#FT8 zioZMFaK52~t&52oqdWW~2MJ1ue%%?en#qCfU7u!nC|sSJi5E`}X3h8)ly{+5*|mp+ zYqNE`8MkZN-)k};oze-j%*tB&sNuZif|=0wM%!=l0sXF(V)Zg+3_ zjbW;EBEX2ytHG=$Dx2Ha{HE%5V3a1hHnd2R32m%R*9#gFWf^4tEW&~!6yIiV)*e*l zireg~b4-8KL1b9Tn<4TQc-aUN7>=bBxE!0Aep)ES$dA>bZ zlac_>GSf$}Amq|xpG2f_X<$)PU0E=BExZ&}FuYP8&bwD%fgJCOsK5%!A}jIpO{>+( zGV75wBp|A>JOyOlNY1dq-7SE-P1iq3bVQx6%Yk<{*5}84F?-+_`Yq}S#U}_=SCzX? zX`+&GsCqhDsvFh7AWWM#ck=(Rps}W(-f3)-hf$w$i>58wymeug)RAsnbE^=j9L-?f zpi-Z);Tuuyqj4L}9YcZxTIWO&p4K%*X3?0-?f4ef8jtm%XgkyEBd6Ds8uOK?%`{)>0D(Cr`A4IcZoG`&U18YKqjoYtzQo|Dt=**7zk597IbK9sJXFyhNi zwtW@gRcSW?gGKMW@kxrlG#OY-do~qJ*-V&3Js8`Y3GYwom_@$iB+g=ml}U5>1u1QR zAzAiA(jrL>&74Uwwqm}`xJ1AT;O_GsONn5#!*ULyhq;oEIkp%2g#mF(6lf@Jxhn4i zV~t87;8y4{2KZG5ao+KL=SUTJlQq*4|E@_PjJ3`!o(GG)^}?JsMpy*)mQYPCf1;Sk`8-A8at@Xm#Gb>oe(v%3b{156)aykj?nu&|IbZfh z!lZx$?iVd}BHwuNSkmco3iwy5Drr$xV-lid6PqT(u95$N>8c#Jm2RMN_SB1WJe9Oq z(x$uU@TQLQX@QVr>U~Sa;vEmbZ_QL7odp^*-BsqVXSqmf)oqYES3tl*66F0YO=#d1 rlgk$~puxAlhuJ^ZHqgioD1o1DVtQEUit~KllU0$5nh)jV0N{TCC3Zqn literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/treeview-gray.gif b/www/common/jquery/treeview/images/treeview-gray.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfb8a2f0961b880d9ecc9e59f831d0c0bf9d06db GIT binary patch literal 1230 zcmZ?wbhEHbOkikb_|5F}1vNN-#bFE}n2rob1X65+pkEe*DZwLSXy)sc-G6LrLE|#j%ny@ltx#{|>*k3`b zudj+f+$8$@s#fHh^zF++cYjOsT#=i)PgZ*SBbQFk<=6g7TzYe_x%fYqoR5WW_>5Nf zsIRkcJbHA@c(c>D3XzqU)=k#8J9nngIK5|{y|vw$2$RE?mT4~XtDRLEe|<_~c?_?$ zLGJZ!!S{W4%zp58Z=>w%X})`Qe0&`0sXRUALwVLJuj#KvHA1S2+ow&BYJYdfr2O^1 zna!)!@5=7^`T51=)#j2iwbhrWRX*39_q(R{^Y??#w#k`8!n#b?Ah=gT4^b_6Je!p-pqnUi6)T{Kw4)JLb3tD)cb}Z;R&ALM=NKo^J zQum3S7LQAK7iB!^v-vhdvhxz-&N&k%mqtvOXdV2 literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/treeview-red-line.gif b/www/common/jquery/treeview/images/treeview-red-line.gif new file mode 100644 index 0000000000000000000000000000000000000000..df9e749a8f1f58862588efc64988003efad01d51 GIT binary patch literal 1877 zcmeH``BxGK0LPh{$5cGF%CuRcF0W^1+Eb91Y0har@ns%QJPI-bCps}CP-u#GY96he zH{=x}8cR_?6wMSBHp}~@d8B5Ec_ztT`#0A2hwu02&*#0br`JzT&Np-c8>+j2FWJW9 z|J$$i)xiJGfXTkfHvoVFVDp9i%O?Qp3V=f6d5==7Sk4KMl>Ucik`YxtvJ<)$%#TPKR% zdeBegW3Nr-TZ$_DvX!7#=EQu`)|{{_NO4?Hnuz--`I}N3UjF&+?uwLk+=>GJd{B_Tc2OKbjN9H> z96NPSF%oo|+^NT@plDh-RsN>!ws$&N>eV+-RSK`GN-+xQlcpP|{VXMbZmGY?Sg+bE z&yqDeRb-m~Xn;($Rkc9os0lNWR0x7V&viYtFw425?`)O{#Xnxi^Z-rV%z`xuPf1K3U`ignx^9LiY{9RF`M1 z((4&CBBq9gRTxIqvdNQH4XvU-teM=&r#I{BRpE@Mf`UowW*aYDTj; zR~d}wJj7bmv%$EvhL%3@95+YnP@jZFjkyaK?LZqem&Cp}E@#J}7%>obDszfKXbSed{!N zqe%A5h1G9<<|OWgt(pyPNUi%mt_OllWQ$!DHV#9VzJogSLla83`aMi%;zcml$vXr7 zf<%YcL08HgN8s@2tufz(==0;jh0Ny@q4f1T-P5MdE9;FzHSA-Pm3Wn^KX5K-#%-h+YndE*c}A#} z97|nymmXX*xOhw~p_=<#*Rp;q1c;i_)TkyvQ;xgVtY5mTyh_&|ZEzU`%%?)%UDt;N sUpBjNE)^Df<9oQ%i{r+6SwTgJWAz*lYeQMK?>m|{T3!EviV6VoFXq=mv;Y7A literal 0 HcmV?d00001 diff --git a/www/common/jquery/treeview/images/treeview-red.gif b/www/common/jquery/treeview/images/treeview-red.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bbb3a157f1568d59d6db02b55a3b3fe9a1ff7a7 GIT binary patch literal 1230 zcmZ?wbhEHbOkikb_|5q9rFMYXq;dkzBCUd%AXV z7f->2WoKqf=UU0E5MF-1&C2oHA5RfQ-wyu&du5`wWCYCfT`X0jHDP7Qa?|x$vA=>= zUtbk}xJmT)RjtT1>D!lu?*5kMxgs}ppRDxuM=qV7%dh>Fxb)^;bMb#JIUft%@ENV{ zQD0}@c=YI)@n)xQ6(TDyt(&ZGckWD~aeB`@duzKh5hjN(Ez?}&S39dT{`!=}@)%xg zgWT)eg75q8nEl}G-bUHi(|q^r`1m-~Q+ayKhw`jdUejNTYJ^l3w@;fM)&A~|N%`x2 zGn-ed-<93-^Ye?#tIZ{4YO60#t9-6I?{`h@=kEuf$II8+R(@HSYaUSgyf$2+OgK}0 zZsRjUi+L5dHILtK5edt9=qI|b{eIzIMl<7PRm>?O4!tnstX#kf7!b zrS20uEgqNfF3Nb+XY*}_WalNuopUBkE{&Kl(L5+ZuF(6`HI*Fyu5b4nE$kweHiYk+ hA)Dse=Ki!azG~*").attr("id", this.id || "").html("" + this.text + "").appendTo(parent); + if (this.classes) { + current.children("span").addClass(this.classes); + } + if (this.expanded) { + current.addClass("open"); + } + if (this.hasChildren || this.children && this.children.length) { + var branch = $("

          ").appendTo(current); + if (this.hasChildren) { + current.addClass("hasChildren"); + createNode.call({ + text:"placeholder", + id:"placeholder", + children:[] + }, branch); + } + if (this.children && this.children.length) { + $.each(this.children, createNode, [branch]) + } + } + } + $.each(response, createNode, [child]); + $(container).treeview({add: child}); + }); +} + +var proxied = $.fn.treeview; +$.fn.treeview = function(settings) { + if (!settings.url) { + return proxied.apply(this, arguments); + } + var container = this; + load(settings, "source", this, container); + var userToggle = settings.toggle; + return proxied.call(this, $.extend({}, settings, { + collapsed: true, + toggle: function() { + var $this = $(this); + if ($this.hasClass("hasChildren")) { + var childList = $this.removeClass("hasChildren").find("ul"); + childList.empty(); + load(settings, this.id, childList, container); + } + if (userToggle) { + userToggle.apply(this, arguments); + } + } + })); +}; + +})(jQuery); \ No newline at end of file diff --git a/www/common/jquery/treeview/jquery.treeview.css b/www/common/jquery/treeview/jquery.treeview.css new file mode 100644 index 0000000000..36d0394bbe --- /dev/null +++ b/www/common/jquery/treeview/jquery.treeview.css @@ -0,0 +1,90 @@ +.treeview, .treeview ul { + padding: 0; + margin: 0; + list-style: none; +} + +.treeview ul { + margin-top: 4px; +} + +.treeview .hitarea { + background: url(images/treeview-default.gif) -64px -25px no-repeat; + height: 16px; + width: 16px; + margin-left: -16px; + float: left; + cursor: pointer; +} +/* fix for IE6 */ +* html .hitarea { + display: inline; + float:none; +} + +.treeview li { + margin: 0; + padding: 3px 0 3px 16px; +} + +.treeview a.selected { + background-color: #eee; +} + +#treecontrol { margin: 1em 0; display: none; } + +.treeview .hover { color: black; cursor: pointer; } + +.treeview li { background: url(images/treeview-default-line.gif) 0 0 no-repeat; } +.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; } + +.treeview .expandable-hitarea { background-position: -80px -3px; } + +.treeview li.last { background-position: 0 -1766px } +.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(images/treeview-default.gif); } +.treeview li.lastCollapsable { background-position: 0 -111px } +.treeview li.lastExpandable { background-position: -32px -67px } + +.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; } + +.treeview-red li { background-image: url(images/treeview-red-line.gif); } +.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(images/treeview-red.gif); } + +.treeview-black li { background-image: url(images/treeview-black-line.gif); } +.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(images/treeview-black.gif); } + +.treeview-gray li { background-image: url(images/treeview-gray-line.gif); } +.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(images/treeview-gray.gif); } + +.treeview-famfamfam li { background-image: url(images/treeview-famfamfam-line.gif); } +.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(images/treeview-famfamfam.gif); } + + +.filetree li { padding: 3px 0 2px 16px; } +.filetree span.folder, .filetree span.file { padding: 1px 0 1px 20px; display: block; } +.filetree span.folder { background: url(images/folder.gif) 0 0 no-repeat; } +.filetree li.expandable span.folder { background: url(images/folder-closed.gif) 0 0 no-repeat; } +.filetree span.file { background: url(images/page_white_text.png) 0 0 no-repeat; } + +.filetree li span a { + text-decoration: none; + font-size: 12px; + color: #517291; +} + +html, body {height:100%; margin: 0; padding: 0; } + +/* +html>body { + font-size: 16px; + font-size: 68.75%; +} Reset Base Font Size */ + /* +body { + font-family: Verdana, helvetica, arial, sans-serif; + font-size: 68.75%; + background: #fff; + color: #333; +} */ + +a img { border: none; } \ No newline at end of file diff --git a/www/common/jquery/treeview/jquery.treeview.js b/www/common/jquery/treeview/jquery.treeview.js new file mode 100644 index 0000000000..248e725b38 --- /dev/null +++ b/www/common/jquery/treeview/jquery.treeview.js @@ -0,0 +1,255 @@ +/* + * Treeview 1.4 - jQuery plugin to hide and show branches of a tree + * + * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/ + * http://docs.jquery.com/Plugins/Treeview + * + * Copyright (c) 2007 Jörn Zaefferer + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $ + * + */ + +;(function($) { + + $.extend($.fn, { + swapClass: function(c1, c2) { + var c1Elements = this.filter('.' + c1); + this.filter('.' + c2).removeClass(c2).addClass(c1); + c1Elements.removeClass(c1).addClass(c2); + return this; + }, + replaceClass: function(c1, c2) { + return this.filter('.' + c1).removeClass(c1).addClass(c2).end(); + }, + hoverClass: function(className) { + className = className || "hover"; + return this.hover(function() { + $(this).addClass(className); + }, function() { + $(this).removeClass(className); + }); + }, + heightToggle: function(animated, callback) { + animated ? + this.animate({ height: "toggle" }, animated, callback) : + this.each(function(){ + jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ](); + if(callback) + callback.apply(this, arguments); + }); + }, + heightHide: function(animated, callback) { + if (animated) { + this.animate({ height: "hide" }, animated, callback); + } else { + this.hide(); + if (callback) + this.each(callback); + } + }, + prepareBranches: function(settings) { + if (!settings.prerendered) { + // mark last tree items + this.filter(":last-child:not(ul)").addClass(CLASSES.last); + // collapse whole tree, or only those marked as closed, anyway except those marked as open + this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide(); + } + // return all items with sublists + return this.filter(":has(>ul)"); + }, + applyClasses: function(settings, toggler) { + this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) { + toggler.apply($(this).next()); + }).add( $("a", this) ).hoverClass(); + + if (!settings.prerendered) { + // handle closed ones first + this.filter(":has(>ul:hidden)") + .addClass(CLASSES.expandable) + .replaceClass(CLASSES.last, CLASSES.lastExpandable); + + // handle open ones + this.not(":has(>ul:hidden)") + .addClass(CLASSES.collapsable) + .replaceClass(CLASSES.last, CLASSES.lastCollapsable); + + // create hitarea + this.prepend("
          ").find("div." + CLASSES.hitarea).each(function() { + var classes = ""; + $.each($(this).parent().attr("class").split(" "), function() { + classes += this + "-hitarea "; + }); + $(this).addClass( classes ); + }); + } + + // apply event to hitarea + this.find("div." + CLASSES.hitarea).click( toggler ); + }, + treeview: function(settings) { + + if(typeof(window.treeCookieId) !== 'undefined' || window.treeCookieId === ""){ + treeCookieId = "treeview"; + } + + settings = $.extend({ + cookieId: treeCookieId + }, settings); + + if (settings.add) { + return this.trigger("add", [settings.add]); + } + + if ( settings.toggle ) { + var callback = settings.toggle; + settings.toggle = function() { + return callback.apply($(this).parent()[0], arguments); + }; + } + + // factory for treecontroller + function treeController(tree, control) { + // factory for click handlers + function handler(filter) { + return function() { + // reuse toggle event handler, applying the elements to toggle + // start searching for all hitareas + toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() { + // for plain toggle, no filter is provided, otherwise we need to check the parent element + return filter ? $(this).parent("." + filter).length : true; + }) ); + return false; + }; + } + // click on first element to collapse tree + $("a:eq(0)", control).click( handler(CLASSES.collapsable) ); + // click on second to expand tree + $("a:eq(1)", control).click( handler(CLASSES.expandable) ); + // click on third to toggle tree + $("a:eq(2)", control).click( handler() ); + } + + // handle toggle event + function toggler() { + $(this) + .parent() + // swap classes for hitarea + .find(">.hitarea") + .swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea ) + .swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea ) + .end() + // swap classes for parent li + .swapClass( CLASSES.collapsable, CLASSES.expandable ) + .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable ) + // find child lists + .find( ">ul" ) + // toggle them + .heightToggle( settings.animated, settings.toggle ); + if ( settings.unique ) { + $(this).parent() + .siblings() + // swap classes for hitarea + .find(">.hitarea") + .replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea ) + .replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea ) + .end() + .replaceClass( CLASSES.collapsable, CLASSES.expandable ) + .replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable ) + .find( ">ul" ) + .heightHide( settings.animated, settings.toggle ); + } + } + //Cookie Persistence + function serialize() { + function binary(arg) { + return arg ? 1 : 0; + } + var data = []; + branches.each(function(i, e) { + data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0; + }); + $.cookie(settings.cookieId, data.join("") ); + } + + function deserialize() { + var stored = $.cookie(settings.cookieId); + if ( stored ) { + var data = stored.split(""); + branches.each(function(i, e) { + $(e).find(">ul")[ parseInt(data[i]) ? "show" : "hide" ](); + }); + } + } + + // add treeview class to activate styles + this.addClass("treeview"); + + // prepare branches and find all tree items with child lists + var branches = this.find("li").prepareBranches(settings); + + switch(settings.persist) { + case "cookie": + var toggleCallback = settings.toggle; + settings.toggle = function() { + serialize(); + if (toggleCallback) { + toggleCallback.apply(this, arguments); + } + }; + deserialize(); + break; + case "location": + var current = this.find("a").filter(function() { return this.href.toLowerCase() == location.href.toLowerCase(); }); + if ( current.length ) { + current.addClass("selected").parents("ul, li").add( current.next() ).show(); + } + break; + } + + branches.applyClasses(settings, toggler); + + // if control option is set, create the treecontroller and show it + if ( settings.control ) { + treeController(this, settings.control); + $(settings.control).show(); + } + + return this.bind("add", function(event, branches) { + $(branches).prev() + .removeClass(CLASSES.last) + .removeClass(CLASSES.lastCollapsable) + .removeClass(CLASSES.lastExpandable) + .find(">.hitarea") + .removeClass(CLASSES.lastCollapsableHitarea) + .removeClass(CLASSES.lastExpandableHitarea); + $(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, toggler); + }); + } + }); + + // classes used by the plugin + // need to be styled via external stylesheet, see first example + var CLASSES = $.fn.treeview.classes = { + open: "open", + closed: "closed", + expandable: "expandable", + expandableHitarea: "expandable-hitarea", + lastExpandableHitarea: "lastExpandable-hitarea", + collapsable: "collapsable", + collapsableHitarea: "collapsable-hitarea", + lastCollapsableHitarea: "lastCollapsable-hitarea", + lastCollapsable: "lastCollapsable", + lastExpandable: "lastExpandable", + last: "last", + hitarea: "hitarea" + }; + + // provide backwards compability + $.fn.Treeview = $.fn.treeview; + +})(jQuery); \ No newline at end of file diff --git a/www/common/jquery/treeview/jquery.treeview.min.js b/www/common/jquery/treeview/jquery.treeview.min.js new file mode 100644 index 0000000000..e693321dd0 --- /dev/null +++ b/www/common/jquery/treeview/jquery.treeview.min.js @@ -0,0 +1,16 @@ +/* + * Treeview 1.4 - jQuery plugin to hide and show branches of a tree + * + * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/ + * http://docs.jquery.com/Plugins/Treeview + * + * Copyright (c) 2007 Jörn Zaefferer + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $ + * kasunbg: changed the cookieid name + * + */;(function($){$.extend($.fn,{swapClass:function(c1,c2){var c1Elements=this.filter('.'+c1);this.filter('.'+c2).removeClass(c2).addClass(c1);c1Elements.removeClass(c1).addClass(c2);return this;},replaceClass:function(c1,c2){return this.filter('.'+c1).removeClass(c1).addClass(c2).end();},hoverClass:function(className){className=className||"hover";return this.hover(function(){$(this).addClass(className);},function(){$(this).removeClass(className);});},heightToggle:function(animated,callback){animated?this.animate({height:"toggle"},animated,callback):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();if(callback)callback.apply(this,arguments);});},heightHide:function(animated,callback){if(animated){this.animate({height:"hide"},animated,callback);}else{this.hide();if(callback)this.each(callback);}},prepareBranches:function(settings){if(!settings.prerendered){this.filter(":last-child:not(ul)").addClass(CLASSES.last);this.filter((settings.collapsed?"":"."+CLASSES.closed)+":not(."+CLASSES.open+")").find(">ul").hide();}return this.filter(":has(>ul)");},applyClasses:function(settings,toggler){this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event){toggler.apply($(this).next());}).add($("a",this)).hoverClass();if(!settings.prerendered){this.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).replaceClass(CLASSES.last,CLASSES.lastExpandable);this.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).replaceClass(CLASSES.last,CLASSES.lastCollapsable);this.prepend("
          ").find("div."+CLASSES.hitarea).each(function(){var classes="";$.each($(this).parent().attr("class").split(" "),function(){classes+=this+"-hitarea ";});$(this).addClass(classes);});}this.find("div."+CLASSES.hitarea).click(toggler);},treeview:function(settings){if(typeof(window.treeCookieId) === 'undefined' || window.treeCookieId === ""){treeCookieId = "treeview";} settings=$.extend({cookieId: treeCookieId},settings);if(settings.add){return this.trigger("add",[settings.add]);}if(settings.toggle){var callback=settings.toggle;settings.toggle=function(){return callback.apply($(this).parent()[0],arguments);};}function treeController(tree,control){function handler(filter){return function(){toggler.apply($("div."+CLASSES.hitarea,tree).filter(function(){return filter?$(this).parent("."+filter).length:true;}));return false;};}$("a:eq(0)",control).click(handler(CLASSES.collapsable));$("a:eq(1)",control).click(handler(CLASSES.expandable));$("a:eq(2)",control).click(handler());}function toggler(){$(this).parent().find(">.hitarea").swapClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().swapClass(CLASSES.collapsable,CLASSES.expandable).swapClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightToggle(settings.animated,settings.toggle);if(settings.unique){$(this).parent().siblings().find(">.hitarea").replaceClass(CLASSES.collapsableHitarea,CLASSES.expandableHitarea).replaceClass(CLASSES.lastCollapsableHitarea,CLASSES.lastExpandableHitarea).end().replaceClass(CLASSES.collapsable,CLASSES.expandable).replaceClass(CLASSES.lastCollapsable,CLASSES.lastExpandable).find(">ul").heightHide(settings.animated,settings.toggle);}}function serialize(){function binary(arg){return arg?1:0;}var data=[];branches.each(function(i,e){data[i]=$(e).is(":has(>ul:visible)")?1:0;});$.cookie(settings.cookieId,data.join(""));}function deserialize(){var stored=$.cookie(settings.cookieId);if(stored){var data=stored.split("");branches.each(function(i,e){$(e).find(">ul")[parseInt(data[i])?"show":"hide"]();});}}this.addClass("treeview");var branches=this.find("li").prepareBranches(settings);switch(settings.persist){case"cookie":var toggleCallback=settings.toggle;settings.toggle=function(){serialize();if(toggleCallback){toggleCallback.apply(this,arguments);}};deserialize();break;case"location":var current=this.find("a").filter(function(){return this.href.toLowerCase()==location.href.toLowerCase();});if(current.length){current.addClass("selected").parents("ul, li").add(current.next()).show();}break;}branches.applyClasses(settings,toggler);if(settings.control){treeController(this,settings.control);$(settings.control).show();}return this.bind("add",function(event,branches){$(branches).prev().removeClass(CLASSES.last).removeClass(CLASSES.lastCollapsable).removeClass(CLASSES.lastExpandable).find(">.hitarea").removeClass(CLASSES.lastCollapsableHitarea).removeClass(CLASSES.lastExpandableHitarea);$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings,toggler);});}});var CLASSES=$.fn.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"};$.fn.Treeview=$.fn.treeview;})(jQuery); \ No newline at end of file diff --git a/www/common/jquery/treeview/jquery.treeview.pack.js b/www/common/jquery/treeview/jquery.treeview.pack.js new file mode 100644 index 0000000000..eddac491f7 --- /dev/null +++ b/www/common/jquery/treeview/jquery.treeview.pack.js @@ -0,0 +1,16 @@ +/* + * Treeview 1.4 - jQuery plugin to hide and show branches of a tree + * + * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/ + * http://docs.jquery.com/Plugins/Treeview + * + * Copyright (c) 2007 Jörn Zaefferer + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $ + * + */ +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}(';(4($){$.1l($.F,{E:4(b,c){l a=3.n(\'.\'+b);3.n(\'.\'+c).o(c).m(b);a.o(b).m(c);8 3},s:4(a,b){8 3.n(\'.\'+a).o(a).m(b).P()},1n:4(a){a=a||"1j";8 3.1j(4(){$(3).m(a)},4(){$(3).o(a)})},1h:4(b,a){b?3.1g({1e:"p"},b,a):3.x(4(){T(3)[T(3).1a(":U")?"H":"D"]();7(a)a.A(3,O)})},12:4(b,a){7(b){3.1g({1e:"D"},b,a)}1L{3.D();7(a)3.x(a)}},11:4(a){7(!a.1k){3.n(":r-1H:G(9)").m(k.r);3.n((a.1F?"":"."+k.X)+":G(."+k.W+")").6(">9").D()}8 3.n(":y(>9)")},S:4(b,c){3.n(":y(>9):G(:y(>a))").6(">1z").C(4(a){c.A($(3).19())}).w($("a",3)).1n();7(!b.1k){3.n(":y(>9:U)").m(k.q).s(k.r,k.t);3.G(":y(>9:U)").m(k.u).s(k.r,k.v);3.1r("").6("J."+k.5).x(4(){l a="";$.x($(3).B().1o("14").13(" "),4(){a+=3+"-5 "});$(3).m(a)})}3.6("J."+k.5).C(c)},z:4(g){g=$.1l({N:"z"},g);7(g.w){8 3.1K("w",[g.w])}7(g.p){l d=g.p;g.p=4(){8 d.A($(3).B()[0],O)}}4 1m(b,c){4 L(a){8 4(){K.A($("J."+k.5,b).n(4(){8 a?$(3).B("."+a).1i:1I}));8 1G}}$("a:10(0)",c).C(L(k.u));$("a:10(1)",c).C(L(k.q));$("a:10(2)",c).C(L())}4 K(){$(3).B().6(">.5").E(k.Z,k.Y).E(k.I,k.M).P().E(k.u,k.q).E(k.v,k.t).6(">9").1h(g.1f,g.p);7(g.1E){$(3).B().1D().6(">.5").s(k.Z,k.Y).s(k.I,k.M).P().s(k.u,k.q).s(k.v,k.t).6(">9").12(g.1f,g.p)}}4 1d(){4 1C(a){8 a?1:0}l b=[];j.x(4(i,e){b[i]=$(e).1a(":y(>9:1B)")?1:0});$.V(g.N,b.1A(""))}4 1c(){l b=$.V(g.N);7(b){l a=b.13("");j.x(4(i,e){$(e).6(">9")[1y(a[i])?"H":"D"]()})}}3.m("z");l j=3.6("Q").11(g);1x(g.1w){18"V":l h=g.p;g.p=4(){1d();7(h){h.A(3,O)}};1c();17;18"1b":l f=3.6("a").n(4(){8 3.16.15()==1b.16.15()});7(f.1i){f.m("1v").1u("9, Q").w(f.19()).H()}17}j.S(g,K);7(g.R){1m(3,g.R);$(g.R).H()}8 3.1t("w",4(a,b){$(b).1s().o(k.r).o(k.v).o(k.t).6(">.5").o(k.I).o(k.M);$(b).6("Q").1q().11(g).S(g,K)})}});l k=$.F.z.1J={W:"W",X:"X",q:"q",Y:"q-5",M:"t-5",u:"u",Z:"u-5",I:"v-5",v:"v",t:"t",r:"r",5:"5"};$.F.1p=$.F.z})(T);',62,110,'|||this|function|hitarea|find|if|return|ul||||||||||||var|addClass|filter|removeClass|toggle|expandable|last|replaceClass|lastExpandable|collapsable|lastCollapsable|add|each|has|treeview|apply|parent|click|hide|swapClass|fn|not|show|lastCollapsableHitarea|div|toggler|handler|lastExpandableHitarea|cookieId|arguments|end|li|control|applyClasses|jQuery|hidden|cookie|open|closed|expandableHitarea|collapsableHitarea|eq|prepareBranches|heightHide|split|class|toLowerCase|href|break|case|next|is|location|deserialize|serialize|height|animated|animate|heightToggle|length|hover|prerendered|extend|treeController|hoverClass|attr|Treeview|andSelf|prepend|prev|bind|parents|selected|persist|switch|parseInt|span|join|visible|binary|siblings|unique|collapsed|false|child|true|classes|trigger|else'.split('|'),0,{})) \ No newline at end of file diff --git a/www/common/main.js b/www/common/main.js new file mode 100644 index 0000000000..0c061fb538 --- /dev/null +++ b/www/common/main.js @@ -0,0 +1,161 @@ +/** + * Miscellaneous js functions for WebHelp + * Kasun Gajasinghe, http://kasunbg.blogspot.com + * David Cramer, http://www.thingbag.net + * + */ + +$(document).ready(function() { + // $("#showHideHighlight").button(); //add jquery button styling to 'Go' button + //Generate tabs in nav-pane with JQuery + $(function() { + $("#tabs").tabs({ + cookie: { + // store cookie for 2 days. + expires: 2 + } + }); + }); + + //Generate the tree + $("#ulTreeDiv").attr("style",""); + $("#tree").treeview({ + collapsed: true, + animated: "medium", + control: "#sidetreecontrol", + persist: "cookie" + }); + + //after toc fully styled, display it. Until loading, a 'loading' image will be displayed + $("#tocLoading").attr("style","display:none;"); +// $("#ulTreeDiv").attr("style","display:block;"); + + //.searchButton is the css class applied to 'Go' button + $(function() { + $("button", ".searchButton").button(); + + $("button", ".searchButton").click(function() { return false; }); + }); + + //'ui-tabs-1' is the cookie name which is used for the persistence of the tabs.(Content/Search tab) + if ($.cookie('ui-tabs-1') === '1') { //search tab is visible + if ($.cookie('textToSearch') != undefined && $.cookie('textToSearch').length > 0) { + document.getElementById('textToSearch').value = $.cookie('textToSearch'); + Verifie('diaSearch_Form'); + searchHighlight($.cookie('textToSearch')); + $("#showHideHighlight").css("display","block"); + } + } + + syncToc(); //Synchronize the toc tree with the content pane, when loading the page. + //$("#doSearch").button(); //add jquery button styling to 'Go' button +}); + +/** + * Synchronize with the tableOfContents + */ +function syncToc(){ + var a = document.getElementById("webhelp-currentid"); + if (a != undefined) { + var b = a.getElementsByTagName("a")[0]; + + if (b != undefined) { + //Setting the background for selected node. + var style = a.getAttribute("style"); + if (style != null && !style.match(/background-color: Background;/)) { + a.setAttribute("style", "background-color: #DEE9E9; " + style); + b.setAttribute("style", "color: black;"); + } else if (style != null) { + a.setAttribute("style", "background-color: #DEE9E9; " + style); + b.setAttribute("style", "color: black;"); + } else { + a.setAttribute("style", "background-color: #DEE9E9; "); + b.setAttribute("style", "color: black;"); + } + } + + //shows the node related to current content. + //goes a recursive call from current node to ancestor nodes, displaying all of them. + while (a.parentNode && a.parentNode.nodeName) { + var parentNode = a.parentNode; + var nodeName = parentNode.nodeName; + + if (nodeName.toLowerCase() == "ul") { + parentNode.setAttribute("style", "display: block;"); + } else if (nodeName.toLocaleLowerCase() == "li") { + parentNode.setAttribute("class", "collapsable"); + parentNode.firstChild.setAttribute("class", "hitarea collapsable-hitarea "); + } + a = parentNode; + } + } +} + +/** + * Code for Show/Hide TOC + * + */ +function showHideToc() { + var showHideButton = $("#showHideButton"); + var leftNavigation = $("#leftnavigation"); + var content = $("#content"); + + if (showHideButton != undefined && showHideButton.hasClass("pointLeft")) { + //Hide TOC + showHideButton.removeClass('pointLeft').addClass('pointRight'); + content.css("margin", "0 0 0 0"); + leftNavigation.css("display","none"); + showHideButton.attr("title", "Show the TOC tree"); + } else { + //Show the TOC + showHideButton.removeClass('pointRight').addClass('pointLeft'); + content.css("margin", "0 0 0 280px"); + leftNavigation.css("display","block"); + showHideButton.attr("title", "Hide the TOC Tree"); + } +} + +/** + * Code for search highlighting + */ +var highlightOn = true; +function searchHighlight(searchText) { + highlightOn = true; + if (searchText != undefined) { + var wList; + var sList = new Array(); //stem list + //Highlight the search terms + searchText = searchText.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, " + + + + + + OpenStack Documentation - Diablo + + + + + + + + + + + + + + + + + + + +
          + +
          + + +
          +
          +

          Search All OpenStack Manuals

          + +
          Loading
          + +
          + + + +
          +

          Related Resources

          + + +
          + +
          + +
          + +
          + + + + + + + + + + \ No newline at end of file diff --git a/www/favicon.ico b/www/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f3b9bf9c440bad810cf0508569216543bb96bf11 GIT binary patch literal 1150 zcmb``T}V?=00;0Z^jxCtqdT|VeYwrKHC@=MrDj-^FGe2(JtRF@5Y$6vSPCXRq}ie* z5Gt@t5g&Tclxb3_HYMFl|oUQl>_suD^JebAf{;zoM zpU3Mr-!buFiTOOUjD-b}q{4{ij}^O-%->;@IvNcNGJW3fKk5XCUk95swY z;fBpViu^tC`IGo_&=?z;&0AmMa_!_Fd9$M$)LKayc?LIj?ro3Vqq9~)Z*F0>=LX5x zA)GutiHgc8xNpp$;odB4S&fX&+zeOFD2^PRh~*_@{aRBKL-YUQ%6W&v1OG2C6E2bc z*2)+xy)at)VX=E*b&!3U<;Nyx08ZBkL+8%U8^iv??_=xFE9i#7*2U;7T@XxUj~Y5b z_pMxLhg|)uHl*m<&^Iu}^3i{AZhjfm^z;%!6Y~fR&%x{ag6=0XxZgU7n(HCvRA~Uc L&mvil16JcFha9?* literal 0 HcmV?d00001 diff --git a/www/incubation/index.html b/www/incubation/index.html new file mode 100644 index 0000000000..8f21394fd1 --- /dev/null +++ b/www/incubation/index.html @@ -0,0 +1,216 @@ + + + + + + + + OpenStack Open Source Cloud Computing Software - Incubated Projects + + + + + + + + + + + + + + + + + + + + + +
          + +
          + + +
          +
          +

          Search All OpenStack Manuals

          + +
          Loading
          + +
          + + +
          +

          OpenStack Manuals

          +
          +

          1. Pick a release.

          + +
          +
          +

          2. Choose from the manuals below.

          +

          OpenStack Network Connectivity Manuals (Quantum)

          + + +
          +
          +
          +

          Related Resources

          + + +
          + +
          + +
          + +
          + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000000..9ffd737276 --- /dev/null +++ b/www/index.html @@ -0,0 +1,262 @@ + + + + + + + + OpenStack Documentation - Diablo + + + + + + + + + + + + + + + + + + + +
          + +
          + + +
          +
          +

          Search All OpenStack Manuals

          + +
          Loading
          + +
          + + + +
          +

          Related Resources

          + + +
          + +
          + +
          + +
          + + + + + + + + + + \ No newline at end of file diff --git a/www/robots.txt b/www/robots.txt new file mode 100644 index 0000000000..bc1164092c --- /dev/null +++ b/www/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Allow: / + diff --git a/www/trunk/index.html b/www/trunk/index.html new file mode 100644 index 0000000000..935a699510 --- /dev/null +++ b/www/trunk/index.html @@ -0,0 +1,243 @@ + + + + + + + + OpenStack Open Source Cloud Computing Software + + + + + + + + + + + + + + + + + + + + + +
          + +
          + + +
          +
          +

          Notice: This page contains only links to Trunk builds of OpenStack Manuals, these are the latest manuals and may or may not be accurate for the trunk code as it changes daily. Comments are not enabled on this site, go to a release site to comment on a document.

          + +
          +
          +

          OpenStack Manuals

          +
          +
          +

          Software Manuals

          +

          A great starting point for deployers and cloud administrators.

          +
          +
          +
          +
          +

          API Developer Manuals

          +

          A great starting point for developers and integrators.

          +
          +
          + +
          + + +
          +
          +

          Related Resources

          + + +
          + +
          + +

          OpenStack Related Manuals

          + + + +
          + +
          + + + + + + + + + + + + + + + + + \ No newline at end of file