From 3b065dde1ac918e81a336baf8fb1f67477b364ff Mon Sep 17 00:00:00 2001 From: Tiago Bortoletto Vaz Date: Sat, 25 Jun 2011 17:27:38 -0300 Subject: [PATCH] New web interface based on screenshots.debian.net. --- src/web/server.py | 4 ++-- src/web/static/Pics/AppRecommender-logo.jpg | Bin 32883 -> 0 bytes src/web/static/Pics/gradient.png | Bin 247 -> 0 bytes src/web/static/Pics/greydot.png | Bin 197 -> 0 bytes src/web/static/Pics/openlogo-50.png | Bin 2006 -> 0 bytes src/web/static/Pics/reddot.png | Bin 146 -> 0 bytes src/web/static/css/local.css | 9 +++++++++ src/web/static/css/style.css | 512 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/web/static/debhome.css | 203 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/web/static/debian.css | 832 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/web/static/images/AppRecommender-logo.jpg | Bin 0 -> 32883 bytes src/web/static/images/gradient.png | Bin 0 -> 247 bytes src/web/static/images/greydot.png | Bin 0 -> 197 bytes src/web/static/images/logo-gray-gradient.png | Bin 0 -> 287 bytes src/web/static/images/openlogo-50.png | Bin 0 -> 2006 bytes src/web/static/images/reddot.png | Bin 0 -> 146 bytes src/web/static/images/spinner.gif | Bin 0 -> 1553 bytes src/web/static/js/handlers.js | 36 ++++++++++++++++++++++++++++++++++++ src/web/static/js/jquery.autocomplete.js | 15 +++++++++++++++ src/web/static/js/jquery.cycle.js | 1 + src/web/static/js/jquery.flyout.js | 2 ++ src/web/static/js/jquery.jgrowl.js | 3 +++ src/web/static/js/jquery.js | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/web/static/js/jquery.tooltip.js | 19 +++++++++++++++++++ src/web/static/json/screenshots.json | 1 + src/web/static/local.css | 68 -------------------------------------------------------------------- src/web/templates/apprec.html | 65 +++++++++++++++++++++++++++++++++++------------------------------ src/web/templates/index.html | 16 +++++++--------- src/web/templates/layout.html | 193 +++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------- 29 files changed, 835 insertions(+), 1298 deletions(-) delete mode 100644 src/web/static/Pics/AppRecommender-logo.jpg delete mode 100644 src/web/static/Pics/gradient.png delete mode 100644 src/web/static/Pics/greydot.png delete mode 100644 src/web/static/Pics/openlogo-50.png delete mode 100644 src/web/static/Pics/reddot.png create mode 100644 src/web/static/css/local.css create mode 100644 src/web/static/css/style.css delete mode 100644 src/web/static/debhome.css delete mode 100644 src/web/static/debian.css create mode 100644 src/web/static/images/AppRecommender-logo.jpg create mode 100644 src/web/static/images/gradient.png create mode 100644 src/web/static/images/greydot.png create mode 100644 src/web/static/images/logo-gray-gradient.png create mode 100644 src/web/static/images/openlogo-50.png create mode 100644 src/web/static/images/reddot.png create mode 100644 src/web/static/images/spinner.gif create mode 100644 src/web/static/js/handlers.js create mode 100644 src/web/static/js/jquery.autocomplete.js create mode 100755 src/web/static/js/jquery.cycle.js create mode 100644 src/web/static/js/jquery.flyout.js create mode 100644 src/web/static/js/jquery.jgrowl.js create mode 100644 src/web/static/js/jquery.js create mode 100644 src/web/static/js/jquery.tooltip.js create mode 100644 src/web/static/json/screenshots.json delete mode 100644 src/web/static/local.css diff --git a/src/web/server.py b/src/web/server.py index 2f46399..5f5c7c1 100755 --- a/src/web/server.py +++ b/src/web/server.py @@ -14,9 +14,9 @@ from user import * class RequestForm(form.Form): def __init__(self): form.Form.__init__(self, \ - form.File("pkgs_file", description="Upload file"), + form.File("pkgs_file", size=35, description="Upload file"), form.Textarea("pkgs_list", description="Packages", - rows="4", cols="40"), + rows="4", cols="52"), form.Dropdown('limit', [(5, '05'), (10, '10'), (20, '20')], description = "Limit"), form.Checkbox("strategy_cb", value=1, checked=False, diff --git a/src/web/static/Pics/AppRecommender-logo.jpg b/src/web/static/Pics/AppRecommender-logo.jpg deleted file mode 100644 index ce38e2e..0000000 Binary files a/src/web/static/Pics/AppRecommender-logo.jpg and /dev/null differ diff --git a/src/web/static/Pics/gradient.png b/src/web/static/Pics/gradient.png deleted file mode 100644 index dc4a8b8..0000000 Binary files a/src/web/static/Pics/gradient.png and /dev/null differ diff --git a/src/web/static/Pics/greydot.png b/src/web/static/Pics/greydot.png deleted file mode 100644 index ec23c01..0000000 Binary files a/src/web/static/Pics/greydot.png and /dev/null differ diff --git a/src/web/static/Pics/openlogo-50.png b/src/web/static/Pics/openlogo-50.png deleted file mode 100644 index 20d490f..0000000 Binary files a/src/web/static/Pics/openlogo-50.png and /dev/null differ diff --git a/src/web/static/Pics/reddot.png b/src/web/static/Pics/reddot.png deleted file mode 100644 index 76cc993..0000000 Binary files a/src/web/static/Pics/reddot.png and /dev/null differ diff --git a/src/web/static/css/local.css b/src/web/static/css/local.css new file mode 100644 index 0000000..09d728f --- /dev/null +++ b/src/web/static/css/local.css @@ -0,0 +1,9 @@ +/* Add local styling here, instead of modifying debian.css. */ + +.align-left { + float:left; +} + +.align-right { + float:right; +} diff --git a/src/web/static/css/style.css b/src/web/static/css/style.css new file mode 100644 index 0000000..b3cb056 --- /dev/null +++ b/src/web/static/css/style.css @@ -0,0 +1,512 @@ +/* debshots style sheet */ +/* Yahoo's CSS reset */ +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { + margin: 0; + padding: 0; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +fieldset, img { + border: 0; +} + +address, caption, cite, code, dfn, em, strong, th, var { + font-style: normal; + font-weight: normal; +} + +ol, ul { + list-style: none; +} + +caption, th { + text-align: left; +} + +h1, h2, h3, h4, h5, h6 { + font-size: 100%; + font-weight: normal; +} + +q:before, q:after { + content: ''; +} + +abbr, acronym { + border: 0; +} + +/*-----------------------------------------*/ +body { + font-family: sans-serif; + font-size: 11pt; + background-color: #ebedef; + margin: 0; + padding: 0; +} + +td { + border: 1px solid #d0d0d0; + padding: 2px 2px; + vertical-align: top; +} + +td.noborder { + border: none; +} + +th { + border: 1px solid #d0d0d0; + background-color: #404040; + color: #ffffff; + padding: 0.2em 0.5em; +} + +fieldset { + border: 1px solid #a0a0a0; + padding: 0.5em 1em 0.5em 1em; + margin: 0.5em 0 0.5em 0; + -moz-border-radius: .5em; + -webkit-border-radius: .5em; + border-radius: .5em; + background-color: #f0f0f0; +} + +legend { + border: 1px solid #a0a0a0; + background-color: #f0f0f0; +} + +input, textarea { + border: 1px solid #a0a0a0; +} + +input:focus, textarea:focus { + border: 1px solid #c70036; +} + +em { + font-style: italic; +} + +ul { + list-style: square; + padding-left: 1em; + /*color: #909090;*/ +} + +li { + padding-bottom: .2em; +} + +h1 { + font-size: 150%; + margin: 0.5em 0 0.5em 0; + color: #757575; + font-weight: bolder; +} + +h1.huge { + font-size: 200%; +} + +h2 { + font-size: 120%; + margin: 1em 0 0.4em 0; + color: #c70036; +} + +h3 { + font-size: 120%; + margin: 1em 0 0.2em 0; +} + +#page { + background-color: #ffffff; + /*margin-left: 5%;*/ + /*margin-right: 5%;*/ + margin-top: 0.5em; + padding-bottom: 10px; + width: 980px; + margin-left: auto; + margin-right: auto; +} + +#maincontent { + /*padding-left: 10px;*/ + /*padding-right: 10px;*/ + padding: 0.7em 4em 0.2em 4em; +} + +#header { + /*background-color: #000000;*/ + background: repeat-x url(/static/images/logo-gray-gradient.png); + color: #f0f0f0; + padding: 0.7em 4em 0.2em 4em; + /*margin-bottom: 1em;*/ + white-space: nowrap; + /*border-bottom: 1em solid #c70036;*/ +} + +/* Navigation bar below the header */ +#nav { + /*background-color: #e6e6e6;*/ + /*border-bottom: 1px solid #000;*/ + padding: 0.1em 4em; + background-color: #c70036; + color: #ffffff; + font-weight: bolder; +/* width: 980px; */ +} + +#nav a { + color: #ffffff; + text-decoration: none; +} + +#headernav { + margin: 0.5em 0 0 0; + padding: 0; +} + +/* Kasten mit Text */ +.textbox { + float: left; + width: 25em; + margin: 0 3em 0.5em 0; +} + +/* Kasten mit grauem Hintergrund */ +.graybox { + background-color: #e6e6e6; + padding: 0.5em 1em; + margin: 1em 0; + -moz-border-radius: .5em; + -webkit-border-radius: .5em; + border-radius: .5em; +} + +#footer { + color: #808080; + padding: 0.2em 4em 0.2em 4em; + text-align: center; + clear: both; + margin-top: 1em; + font-size: 80%; +} + +p { + /*color: #909090;*/ + margin: 0.3em 0em 0.5em 0; + padding: 0 0 0 0; + line-height: 1.4em; +} + +pre { + background-color: #f0f0f0; +} + +a, a:visited { + color: #000000; + border-bottom: 1px dashed #b0b0b0; + text-decoration: none; +} + +/* Do not display a border if the link contains an image */ +a.image, a.image:hover { + border: none; + /*background-color: #ffffff;*/ + text-decoration: none; +} + +/* Name of a package */ +.namelink { + font-weight: bolder; + background-color: #E6E6E6; +} + +.warning { + color: red; + font-weight: bolder; +} + +.error-message { + color: red; +} + +.ok { + color: green; + font-weight: bolder; +} + +/* Highlighting debtags and its facets */ +.facet { + font-weight: bolder; +} + +.debtag { + background-color: #d0d0d0; + margin-right: 0.5em; +} + +/* Red box for HTTP errors (40x) */ +.error-border { + border: 1em solid red; + padding: 1em; + margin-top: 2em; +} + +#teaser-search input { + background-color: #f0f0f0; + font-size: 150%; + border-color: #c70038; + border-width: 0.1em; + -moz-border-radius: .5em; + -webkit-border-radius: .5em; + border-radius: .5em; + padding: 0.2em 0.5em; +} + +/* Paginate pager */ +.pager_curpage { + background-color: #000; + color: #fff; + padding: 0.1em 0.3em; +} + +.pager_link { + background-color: #eee; + padding: 0.1em 0.3em; +} + +/* jQuery autocomplete plugin */ +.ac_results { + padding: 0px; + border: 1px solid black; + background-color: white; + overflow: hidden; + z-index: 99999; +} + +.ac_results ul { + width: 100%; + list-style-position: outside; + list-style: none; + padding: 0; + margin: 0; +} + +.ac_results li { + margin: 0px; + padding: 2px 5px; + cursor: default; + display: block; + /* + if width will be 100% horizontal scrollbar will apear + when scroll mode will be used + */ + /*width: 100%;*/ + font: menu; + font-size: 12px; + /* + it is very important, if line-height not setted or setted + in relative units scroll will be broken in firefox + */ + line-height: 16px; + overflow: hidden; +} + +.ac_loading { + background: white url('/images/spinner.gif') right center no-repeat; +} + +.ac_odd { + background-color: #eee; +} + +.ac_over { + background-color: #0A246A; + color: white; +} + +/* Description in package autocompletion in second line of each result */ +.ac_descr { + font-size: 80%; + /*font-style: italic;*/ +} + +/* Screenshot thumbnails */ +.screenshot { + border: 1px solid #c0c0c0; + /*float: left;*/ + padding: 0.5em; + margin-right: 1em; + margin-bottom: 1em; + display: inline-block; + -moz-border-radius: .5em; + -webkit-border-radius: .5em; + border-radius: .5em; +} + +.screenshots { + clear: both; +} + +/* jQuery jGrowl plugin */ +div.jGrowl { + padding: 10px; + z-index: 9999; +} + +/** Normal Style Positions **/ +body > div.jGrowl { + position: fixed; +} + +body > div.jGrowl.top-left { + left: 0px; + top: 0px; +} + +body > div.jGrowl.top-right { + right: 0px; + top: 0px; +} + +body > div.jGrowl.bottom-left { + left: 0px; + bottom: 0px; +} + +body > div.jGrowl.bottom-right { + right: 0px; + bottom: 0px; +} + +body > div.jGrowl.center { + top: 0px; + width: 50%; + left: 25%; +} + +/** Cross Browser Styling **/ +div.center div.jGrowl-notification, div.center div.jGrowl-closer { + margin-left: auto; + margin-right: auto; +} + +div.jGrowl div.jGrowl-notification, div.jGrowl div.jGrowl-closer { + background-color: #d0d0d0; + border: 2px solid #c70036; + /*color: #000;*/ + opacity: .85; + filter: alpha(opacity = 85); + zoom: 1; + width: 235px; + padding: 10px; + margin-top: 5px; + margin-bottom: 5px; + font-family: Tahoma, Arial, Helvetica, sans-serif; + font-size: 12px; + text-align: left; + display: none; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.jGrowl div.jGrowl-notification { + min-height: 40px; +} + +div.jGrowl div.jGrowl-notification div.header { + font-weight: bold; + font-size: 10px; +} + +div.jGrowl div.jGrowl-notification div.close { + float: right; + font-weight: bold; + font-size: 12px; + cursor: pointer; +} + +div.jGrowl div.jGrowl-closer { + height: 15px; + padding-top: 4px; + padding-bottom: 4px; + cursor: pointer; + font-size: 11px; + font-weight: bold; + text-align: center; +} + +/* jQuery tooltip plugin */ +#tooltip { + position: absolute; + z-index: 3000; + border: 1px solid #111; + background-color: #eee; + padding: 5px; + opacity: 0.85; +} + +#tooltip h3, #tooltip div { + margin: 0; +} + +.textcenter { + text-align: center; +} + +.imgcaption { + text-align: center; + margin-top: 3px; + margin-bottom: 10px; +} + +.imgcaption .smaller { + font-size: 80%; +} + +#debtags-area { + /*border: 1px solid #000;*/ +} + +#debtags-facets { + float: left; + width: 250px; + text-align: right; +} + +#debtags-facets div { + background-color: #f0f0f0; + padding-right: 1em; + cursor: pointer; +} + +#debtags-facets div.selected { + background-color: #000; + color: #f0f0f0; + font-weight: bolder; +} + +#debtags-facets div:hover { + background-color: #aaa; +} + +#tags-box div { + padding: 0.2em 1em; + float: left; + cursor: pointer; + white-space: nowrap; +} + +#admin-warning { + width: 100%; + border: 2px dashed red; + text-align: center; +} diff --git a/src/web/static/debhome.css b/src/web/static/debhome.css deleted file mode 100644 index 34e3038..0000000 --- a/src/web/static/debhome.css +++ /dev/null @@ -1,203 +0,0 @@ -/* - http://www.debian.org Homepage Stylesheet - - Copyright 2011 Kalle Söderman - - This stylesheet is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License, version 2, as published by - the Free Software Foundation. - - This program is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., 51 Franklin - Street, Fifth Floor, Boston, MA 02110-1301 USA. - - The license text can also be found at http://www.gnu.org/copyleft/gpl.html and - /usr/share/common-licenses/GPL-2 on Debian GNU/Linux. -*/ - -@import url("debian.css"); - -#splash { - margin-top: 0; - margin-bottom: 1.5em; - text-align: center; - overflow: hidden; - height: 120px; -} -#splash h1 { - background-image: url('Pics/spacefun.png'); - background-position:top center; - padding-top:130px; - overflow:hidden; - text-align:center; - background-repeat:no-repeat; - display:block; - margin:0; - height:0; -} -span.download { - display: block; - position: absolute; - right: 13px; - font-size: 0.75em; - line-height: 2; - background-color: white; - margin-top: 10px; -} -span.download a { - color: white; - font-weight: bold; - text-decoration: none; - border: 0.15em solid #339900; - display: block; - background: transparent url('Pics/emblem-downloads.png') no-repeat 5px 5px; - padding-left: 30px; - padding-right: 1em; - color:#339900; -} -span.download a:hover { - text-decoration: none; - color: white; - background-color: #339900; -} -span.download a em { - font-size: 0.75em; - font-weight: normal; - clear: right; - color: #339900; - line-height: 0.5em; - font-style: normal; - display: block; - margin-bottom: 1em; -} -span.download a:hover em { - color: white; - background-color: #339900; -} -#content { - background-image: url('Pics/spacefun-bg.png'); - background-position:top center; - background-repeat: repeat-x; -} -#announce { - text-align: center; - float: left; - width: 41%; - min-width: 260px; - margin-bottom: 1.5em; -} -#intro { - padding-top: 0; -} -#intro p { - margin-top: 0em; - padding:0; -} - -/* Homepage Links */ - -#hometoc { - list-style:none; - margin: 0 0 2em 0; - padding: 0; - width:100%; - font-size: 0.75em; - overflow: hidden; - line-height: 1.5em; - border: 0; -} -#hometoc a { - text-decoration: none; -} -#hometoc a:hover { - text-decoration: underline; -} -ul#hometoc-cola a, ul#hometoc-colb a, ul#hometoc-colc a, ul#hometoc-cold a, ul#hometoc-cole a { - padding-left: 5px; - display: block; -} -ul#hometoc-cola, ul#hometoc-colb,ul#hometoc-colc, ul#hometoc-cold, ul#hometoc-cole { - float:left; - width: 19.2%; - min-width: 11em; - height: 12em; /* Update when adding items */ - margin:0 1% 0 0; - padding: 0; - background-position: bottom left; - background-repeat: repeat-x; - background-image: url('Pics/reddot.png'); - list-style: none; -} -ul#hometoc-cole { - width: 18.9%; - margin-right:0; -} -#hometoc-wrap { - padding:1em 1em 1em 1em; - border-top: 1px solid white; -} -#hometoc a { - margin: 0; -} -#hometoc ul{ - list-style: none; - padding: 0 0 0 0; -} -#hometoc ul ul { - padding: 0; -} -#hometoc li { - text-indent:0; - background-color: transparent; - font-weight:bold; -} -#hometoc li ul { - margin: 0; - padding: 0; -} -#hometoc li li { - margin:0; - text-indent:0; - padding:0; - font-weight:normal; - border:0; - background-image:none; - background-color:transparent; -} -li.sponsorbutton { - padding-top: 1.25em; - text-align: left; - display: block; - width: 100%; - background-image: url('/Pics/greydot.png'); - background-position:top left; - background-repeat: repeat-x; -} -.infobar { - margin: 0 0 2em 0; - padding: 0 0 2em 0; - line-height: 1em; - font-size: 0.75em; - background-image: url('Pics/greydot.png'); - background-position: bottom left; - background-repeat: repeat-x; - clear: both; -} -div.trans-note { - position: absolute; - top: 200px; - right: 10px; - left: 52px; - margin: 0; - background-position: 0.5em 2px; - background-image: none; - padding: 0em; - padding-left: 1em; -} -div.trans-note p { - margin:0; -} diff --git a/src/web/static/debian.css b/src/web/static/debian.css deleted file mode 100644 index fcef8be..0000000 --- a/src/web/static/debian.css +++ /dev/null @@ -1,832 +0,0 @@ -/* - http://www.debian.org Stylesheet - - Copyright 2011 Kalle Söderman - - This stylesheet is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License, version 2, as published by - the Free Software Foundation. - - This program is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - this program; if not, write to the Free Software Foundation, Inc., 51 Franklin - Street, Fifth Floor, Boston, MA 02110-1301 USA. - - The license text can also be found at http://www.gnu.org/copyleft/gpl.html and - /usr/share/common-licenses/GPL-2 on Debian GNU/Linux. -*/ - -/* - Font size table (Browser default 16px) - - pixels relative - -------------------- - 36px 2.25em - 31px 0.5161em - 24px 1.5em - 21px 1.3125em - 18px 1.125em - 16px 1em - 14px 0.875em - 12px 0.75em - 11px 0.6875em - 10px 0.625em - 9px 0.5625em - -------------------- -*/ - -/* Reset */ - -html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, -blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, -font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, -dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, -tfoot, thead, tr, th, td { - margin: 0; - padding: 0; - border: 0; - outline: 0; - font-weight: inherit; - font-style: inherit; - font-size: 100%; - font-family: inherit; - vertical-align: baseline; -} - -body { line-height: 1; color: black; background: white; } -ol, ul { list-style: none; } -table { border-collapse: separate; border-spacing: 0; } -blockquote, q { quotes: "" ""; } -html { background-color: transparent; } -:focus { outline: 0; } -caption, th, td { text-align: left; font-weight: normal; } -blockquote:before, blockquote:after, q:before, q:after { content: ""; } - -/* Main */ - -body { - margin: 0; - font: normal 100% sans-serif; - line-height: 1.5; - color: #222; - background-color: white; - background-image:url('Pics/gradient.png'); - background-position: 0 0; - background-repeat: repeat-x; - /* Uncomment to show baseline grid - background-image: url('24grid.png'); - background-position: 30px 9px; - */ -} -#content { - margin: 0 10px 0 52px; -} -#inner { - position: relative; -} -#maincol { - margin: 0 15em 1.5em 0; -} - -/* Header */ - -#header { - margin:0; - padding:0 10px 0 52px; -} -#header a:link -, #header a:visited -, #second-nav a:link -, #second-nav a:visited { - text-decoration: none; -} -#header a:hover -, #second-nav a:hover { - text-decoration: underline; -} -#breadcrumbs { - margin:0; - font-size: 0.75em; - text-transform: lowercase; - line-height: 2; - background-color: transparent; - background-color: #f5f6f7; - border-bottom: 1px solid #d2d3d7 ; - min-height: 20px; -} -#breadcrumbs:before { - content: "/"; - margin-left: 0.5em; - margin-right: 0.5em; -} -p.section { - margin: 0; - padding: 0 5px 0 5px; - font-family:monospace; - line-height: 16px; - color:white; - text-transform: uppercase; - letter-spacing: 0.08em; - position:absolute; - top: 0px; - left:52px; - background-color: #c70036; -} -p.section a { - color: white; - text-decoration: none; -} -p.section a:hover { - color:white; - text-decoration: underline; -} -#navbar { - background-color: transparent; - list-style:none; - display:block; - border-bottom:1px solid #c70036; - text-indent:0; - padding: 0; - margin-top:0; - margin-bottom:0; -} -#navbar ul { - margin: 0; - padding: 0; - clear: both; - overflow: hidden; - min-height: 45px; -} -#navbar li { - list-style: none; - float: left; - padding: 0; - margin: 0; -} -#navbar a:link -, #navbar a:visited { - padding: 1.75em 0.5em 0.25em 0.5em; - border-left: 1px solid transparent; - border-right: 1px solid transparent; - display: block; - text-decoration: none; -} -#navbar a:visited { - color: #54638c; -} -#navbar a:hover -, #navbar a:visited:hover { - background-color: #f5f6f7; - border-left: 1px solid #d2d3d7; - border-right: 1px solid #d2d3d7; - text-decoration: underline; -} -ul.subnav { - list-style: none; - margin-left: 0; - padding-left: 0; - margin-top: 0; -} -ul.subnav li { - display: inline; - margin-right: 1em; -} -#searchbox { - text-align:left; - line-height: 1; - margin: 0 10px 0 0.5em; - padding: 1px 0 1px 0; - position: absolute; - top:0; - right:0; - font-size: 0.75em; -} -#searchbox p { - margin: 0; - padding: 0; -} -#upperheader { - margin:0; - padding:0; -} -#logo { - position:absolute; - top:0; - left:0; - padding: 0; - background-color: transparent; - border: 1px solid transparent; - border-top: 0; - width: 50px; - height: 5.07em; - min-height: 65px; -} -#logo a { - display: block; - position: relative; - padding: 0; - height: 100%; - min-height: 65px; -} -#logo img { - margin-top: 5px; - position: absolute; - bottom: 0.3em; - overflow: auto; -} -#logo:hover { - border: 1px solid #d2d3d7 ; - border-top: 0; - background-color: #f5f6f7; -} - -/* Links */ - -a:link { - color: #0035c7; - text-decoration: underline; -} -a:visited { - color: #54638c; -} -a:link:hover { - text-decoration: none; - color: #00207a; -} -a:visited:hover { - text-decoration: none; -} -a:active { - color:#c2c3c7; -} -a img { - border:0; -} -a.rss_logo { - font-size: 0.75em; - float: right; - width: 35px; - line-height: 10px; - color: #ffffff; - background-color: #ff6600; - font-weight: bold; - font-family: sans-serif; - text-align: center; - text-decoration: none; - padding: 0.25em; - margin-left: 0.25em; - border: 1px solid #ff6600; -} - -a.rss_logo:hover { - background-color: white; - border: 1px solid #ff6600; - color: #ff6600; -} - -a.rss_logo.generic { - background-color: #ff8800; -} - -a.rss_logo.generic:hover { - background-color: #ee7700; -} - - -/* Secondnav */ - -#second-nav { - width: 16em; - font-size: 0.75em; - line-height: 1.5; - float: right; - top: 0; - right: 0; - margin: 3em 0 0 0; - padding: 0 0 0 1em; - border-left: 1px solid #d2d3d7 ; -} -#second-nav ul { - padding:0; - margin:0; - list-style:none; -} -#second-nav ul ul { - margin-left: 1em; -} -#second-nav li { - font-weight: normal; - margin:0; - padding:0; -} -#second-nav p { - line-height: 2; - font-weight: bold; - margin: 0; -} -#second-nav h2 { - margin:0; -} - -/* Typography */ - -p { - margin: 1.5em 0 1.5em 0; -} -strong { - font-weight: bold; -} -em { - font-style: italic; - color: #444; -} -small { - font-size: 0.75em; -} -sup { - font-size: 0.75em; - vertical-align:top; -} -h1 -, h2 -, h3 -, h4 -, h5 -, h6 { - font-weight: 600; - color: black; -} -h1 { - font-weight: normal; - font-size: 1.8em; - line-height: 0.83333; - margin: 0.83333em 0 0.83333em 0; -} -h2 { - font-size: 1.4em; - font-weight: normal; - line-height: 1.0714286; - margin: 1.0714286em 0 1.0714286em 0; -} -h3 { - font-size: 1.125em; - line-height: 1.333em; - margin: 1.333em 0 0 0; -} -h4 { - font-weight: normal; - font-style: italic; - margin: 1.5em 0 1.5em 0; - color: #444; -} -h5 { - font-style: italic; - font-size: 0.75em; - margin: 2em 0 2em 0; -} -ol,ul { - padding-left: 1.5em; - margin-left:0; - margin: 1.5em 0 1.5em 0; -} -ol>ol, ul>ul, li>ol, li>ul { - margin: 0; -} - -ol { - list-style-type: decimal; -} -ul { - list-style-type: disc; -} -th { - font-weight: bold; - margin: 1.5em 0 1.5em 0; -} -hr { - border: none; - background-color: #bbb; - height: 1px; - margin: 1.4375em 0 1.5em 0; -} -pre { - margin: 1.5em 0 1.5em 0; - overflow: auto; - font-family: monospace; - white-space: pre; - color: black; -} -tt, code { - font-family: monospace; - white-space: pre; - color: black; -} -dt { - margin: 1.5em 0 0 0; - font-weight: bold; -} -dd { - margin: 0 0 0 1.5em; -} -blockquote { - font-size: 0.75em; - margin: 2em; - line-height: 2; -} -cite { - font-style: italic; - color: #444; -} -acronym, abbr { - text-transform: uppercase; - font-size: 0.9em; -} -.toc { - font-size: 0.75em; - list-style:none; - background-image: url('Pics/greydot.png'); - background-position: bottom left; - background-repeat: repeat-x; - line-height:1.833; - padding: 0; - max-width: 62%; - margin: 2em 0 2em 0; -} -.toc li { - background-image: url('Pics/greydot.png'); - background-position: top left; - background-repeat: repeat-x; - padding: 0.0833em 0 0.0833em 0; - } -.toc a { - display:block; - text-decoration: none; -} -.toc a:hover { - display:block; - background-color: #f0f0f4; - text-decoration: underline; -} -.toc dt { - margin: 0; - background-image: url('Pics/greydot.png'); - background-position: top left; - background-repeat: repeat-x; - padding: 0.0833em 0 0.0833em 0; -} - -/* Sitemap */ - -.card { - clear:both; - margin:1.5em 0 1.5em 0; - background-position: 0 -50px; - background-repeat: repeat-x; - padding:0; -} -.card ul { -} -.card ul li { - list-style:none; -} -.card h2 { -} -.lefthalf { - float:left; -} -.righthalf { - margin-left:50%; -} -.lefthalf ul { - margin-top:0; -} - -/* Footer */ - -#footer { - font-size: 0.75em; - border: 1px solid #dfdfe0; - padding:1em; - background-color: #f5f6f7; - margin: 0 10px 0 52px; - line-height: 1.5em; - border-left: 0; - border-right: 0; -} -#content #footer { - margin-left: 0; -} -#footer p { - margin: 1em 0 1em 0; -} -#footer hr { - border-top: 1px solid #d2d3d7; - border-bottom: 1px solid white; - height: 0; -} -#footer .editbar li { - display: inline; - margin-right: 2em; -} -#footer .info { -} -#fineprint { - margin-bottom: 1em; -} -#footermap { - list-style:none; - margin: 0 0 0 0; - padding: 0; - width:100%; - overflow: hidden; - border: 0; -} -ul#footermap-cola a -, ul#footermap-colb a -, ul#footermap-colc a -, ul#footermap-cold a -, ul#footermap-cole a { - padding-left: 0; -} -ul#footermap-cola -, ul#footermap-colb -, ul#footermap-colc -, ul#footermap-cold -, ul#footermap-cole { - float:left; - width: 19%; - min-width: 11em; - height: 12em; /* Update when adding items */ - margin:0 1% 0 0; - padding: 2em 0 0 0; - list-style: none; -} -ul#footermap-cole { - width: 18.9%; - margin-right:0; -} -#footermap-wrap { - padding:2em; - border-top: 1px solid white; -} -#footermap a { - margin: 0; -} -#footermap ul{ - list-style: none; - padding:0; -} -#footermap li { - text-indent:0; - background-color: transparent; - font-weight:bold; -} -#footermap li ul { - margin: 0; - padding: 0; -} -#footermap li li { - margin:0; - text-indent:0; - padding:0; - font-weight:normal; - border:0; - background-image:none; - background-color:transparent; -} -#serverselect { -} -#serverselect input -, #serverselect option -, #serverselect select { -} -#serverselect ul { - display: inline; - margin-left: 2em; -} -#serverselect li { - list-style: none; - display: inline; - padding:0 1em 0 1em; - margin:0; -} -#serverselect form p { - margin:0; - padding:0; - line-height: 1; -} -.lcol50 { - float: left; - width: 49%; - font-size:0.75em; - margin:0 0 0 0; - padding:0 0.5em 0 0; -} -.lcol50 h2 { - margin-top:0; -} -.rcol50 { - margin:0 0 0 51%; - padding:0; - font-size:0.75em; -} -form#pageLang { - display: inline; -} - -/* Extras */ - -input:focus { - background-color:#FFFFCB; - -} -.hidecss { - display: none; -} -.clear { - clear:both -} -#clear { - clear:both; - border:0; - height:1px; - display:block; -} -.quicklist:before { - content: "Quick Links: "; - font-weight: bold; -} -.quicklist { - list-style: none; - font-size: 0.75em; - margin: 2em 0 2em 0; - padding:0; - text-indent:0; - line-height: 2em; -} -.quicklist li { - display:inline; -} -.item p{ - margin: 0; -} -.item h2 -, .item p -, .item ul{ - margin-right: 10px -} -.item h2 -, .item h3 -, .item h4 -, .item h5 { - margin-top: 0; -} -.line { - padding: 0; - width: auto; - overflow: hidden; - } -div.downloads { - border-top: 0.17em solid #339900; - margin: 1.33em 0 0 0; -} -.downloads ul.downlist { - margin:0; -} -div.downloads .col50 { - border-top: 0.15em solid #339900; -} -ul.downlist { - padding-left: 30px; - text-indent:0; - background: url('Pics/emblem-downloads.png') no-repeat 0 0.15em; - /* - * border-top: 0.17em solid #339900; - */ -} -ul.quicklist.downlist { - border-top: 0.17em solid #339900; - padding-top: 0.25em; - margin-top: 1.6em; -} -ul.downlist li { - display: inline; -} -ul.downlist li:after { - content: ', '; -} -ul.downlist li:last-child:after { - content: ''; -} -div.tip -, div.important -, div.warning -, div.note -, p.trans-note { - padding:0 2em 0 4em; - margin: 1.85em 0 1.85em 0; - background-repeat: no-repeat; - background-position: 0.5em 1em; - font-size: 0.75em; - line-height: 2em; - background-color:#FFFFCB; - border:0.15em solid #CCCCA3; -} -div.tip p -, div.important p -, div.warning p -, div.note p { - margin: 1em 0 1em 0; -} -div.tip -, p.trans-note { - background-image: url('Pics/admon-tip.png'); -} -div.important{ - background-image: url('Pics/admon-important.png'); -} -div.warning { - background-image: url('Pics/admon-warning.png'); -} -div.note { - background-image: url('Pics/admon-note.png'); -} - -/* Layout Elements */ - -.col50 -, .cardleft -, .cardright { - width:47.5%; - float: left; - padding-bottom: 1.5em; -} -.lastcol -, .cardright { - margin: auto; - width: 47.5%; - float:left; - padding-right: 0; - margin-left: 5%; -} -.lastcol h2 -, .lastcol p -, .lastcol ul { - margin-right:0; -} -.cardleft h2 { - margin-right: 1em; -} -.cardright div { - margin-left: 1.5em; -} -.cardright h2 { - margin-left: 1em; -} -.votemenu a { - display:block; -} -table.vote td, table.vote th { - padding-right: 1.5em; -} -#maincol.with-toolbox { - margin-right: 14em; -} -div.tabular table, table.tabular, table.vendors { -/* border-bottom: 1px solid #a9abb3; - border-top: 1px solid #a9abb3; */ - border-bottom: 0.15em solid #666; - border-top: 0.15em solid #666; - width: auto; - font-size: 0.75em; - line-height: 2em; - margin-bottom: 4em; - margin-top: -0.169em; -} -table td { - padding-right: 1.5em; -} -div.tabular table tr, table.tabular tr, table.vendors tr { - width: 100%; -} -table th { - padding-right: 1.5em; -} -div.tabular table td, table.tabular td, table.vendors td { - background-image: url(Pics/greydot.png); - background-position: top left; - background-repeat: repeat-x; -} -div.tabular table > td:fist-child, table.tabular > td:fist-child, table.vendors > td:fist-child { - background-image: none; -} -#pageLang p, #pageLang form { - display: inline; -} -.inline a { - float: left; - margin-right: 1em; -} diff --git a/src/web/static/images/AppRecommender-logo.jpg b/src/web/static/images/AppRecommender-logo.jpg new file mode 100644 index 0000000..ce38e2e Binary files /dev/null and b/src/web/static/images/AppRecommender-logo.jpg differ diff --git a/src/web/static/images/gradient.png b/src/web/static/images/gradient.png new file mode 100644 index 0000000..dc4a8b8 Binary files /dev/null and b/src/web/static/images/gradient.png differ diff --git a/src/web/static/images/greydot.png b/src/web/static/images/greydot.png new file mode 100644 index 0000000..ec23c01 Binary files /dev/null and b/src/web/static/images/greydot.png differ diff --git a/src/web/static/images/logo-gray-gradient.png b/src/web/static/images/logo-gray-gradient.png new file mode 100644 index 0000000..014d3dd Binary files /dev/null and b/src/web/static/images/logo-gray-gradient.png differ diff --git a/src/web/static/images/openlogo-50.png b/src/web/static/images/openlogo-50.png new file mode 100644 index 0000000..20d490f Binary files /dev/null and b/src/web/static/images/openlogo-50.png differ diff --git a/src/web/static/images/reddot.png b/src/web/static/images/reddot.png new file mode 100644 index 0000000..76cc993 Binary files /dev/null and b/src/web/static/images/reddot.png differ diff --git a/src/web/static/images/spinner.gif b/src/web/static/images/spinner.gif new file mode 100644 index 0000000..085ccae Binary files /dev/null and b/src/web/static/images/spinner.gif differ diff --git a/src/web/static/js/handlers.js b/src/web/static/js/handlers.js new file mode 100644 index 0000000..5c77f45 --- /dev/null +++ b/src/web/static/js/handlers.js @@ -0,0 +1,36 @@ +/* +Define a Javascript function to set up handlers and plugins. It is called when the +page is loaded and upon every AJAX subrequest. +*/ +function inithandlers() { + /* + ## Bug: Thumbnails of different sizes don't get centered properly. + ## Bug: After a cycle animation occured and another thumbnail is currently displayed + ## then when clicking on the full-size screenshot it does not just shrink but move + ## to the top left position of the browser window. Probably because its reference + ## thumbnail image is currently not displayed or something. + ## + Use 'cycle' plugin to rotate thumbnails if multiple exist for one package. + */ + $(".cycle").cycle({ + fx: 'fade', + timeout: 3000, + speed: 500 + }); + + // Flyout shows the large screenshots when clicking on the thumbnails + $('.screenshots a.image').flyout({ + loadingSrc:'/static/images/spinner.gif', + outSpeed: 300, + inSpeed: 300 + }); + + + // Add tooltip behavior to IMG with class 'tooltip' + $(document).ready(function() { + $('.tooltip').tooltip({ + showURL: false, + fade: 150 + }); + }); +}; diff --git a/src/web/static/js/jquery.autocomplete.js b/src/web/static/js/jquery.autocomplete.js new file mode 100644 index 0000000..c9ddfb2 --- /dev/null +++ b/src/web/static/js/jquery.autocomplete.js @@ -0,0 +1,15 @@ +/* + * Autocomplete - jQuery plugin 1.0.2 + * + * Copyright (c) 2007 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, 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.autocomplete.js 5747 2008-06-25 18:30:55Z joern.zaefferer $ + * + */;(function($){$.fn.extend({autocomplete:function(urlOrData,options){var isUrl=typeof urlOrData=="string";options=$.extend({},$.Autocompleter.defaults,{url:isUrl?urlOrData:null,data:isUrl?null:urlOrData,delay:isUrl?$.Autocompleter.defaults.delay:10,max:options&&!options.scroll?10:150},options);options.highlight=options.highlight||function(value){return value;};options.formatMatch=options.formatMatch||options.formatItem;return this.each(function(){new $.Autocompleter(this,options);});},result:function(handler){return this.bind("result",handler);},search:function(handler){return this.trigger("search",[handler]);},flushCache:function(){return this.trigger("flushCache");},setOptions:function(options){return this.trigger("setOptions",[options]);},unautocomplete:function(){return this.trigger("unautocomplete");}});$.Autocompleter=function(input,options){var KEY={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);var timeout;var previousValue="";var cache=$.Autocompleter.Cache(options);var hasFocus=0;var lastKeyPressCode;var config={mouseDownOnSelect:false};var select=$.Autocompleter.Select(options,input,selectCurrent,config);var blockSubmit;$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){if(blockSubmit){blockSubmit=false;return false;}});$input.bind(($.browser.opera?"keypress":"keydown")+".autocomplete",function(event){lastKeyPressCode=event.keyCode;switch(event.keyCode){case KEY.UP:event.preventDefault();if(select.visible()){select.prev();}else{onChange(0,true);}break;case KEY.DOWN:event.preventDefault();if(select.visible()){select.next();}else{onChange(0,true);}break;case KEY.PAGEUP:event.preventDefault();if(select.visible()){select.pageUp();}else{onChange(0,true);}break;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){select.pageDown();}else{onChange(0,true);}break;case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.RETURN:if(selectCurrent()){event.preventDefault();blockSubmit=true;return false;}break;case KEY.ESC:select.hide();break;default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break;}}).focus(function(){hasFocus++;}).blur(function(){hasFocus=0;if(!config.mouseDownOnSelect){hideResults();}}).click(function(){if(hasFocus++>1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i1){v=words.slice(0,words.length-1).join(options.multipleSeparator)+options.multipleSeparator+v;}v+=options.multipleSeparator;}$input.val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.value]);return true;}function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}var currentValue=$input.val();if(!skipPrevCheck&¤tValue==previousValue)return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value){return[""];}var words=value.split(options.multipleSeparator);var result=[];$.each(words,function(i,value){if($.trim(value))result[i]=$.trim(value);});return result;}function lastWord(value){if(!options.multiple)return value;var words=trimWords(value);return words[words.length-1];}function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$.Autocompleter.Selection(input,previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){var wasVisible=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result){if(options.multiple){var words=trimWords($input.val()).slice(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));}else +$input.val("");}});}if(wasVisible)$.Autocompleter.Selection(input,input.value.length,input.value.length);};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={timestamp:+new Date()};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.emptyList();failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"$1");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=function(options){var data={};var length=0;function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(i==-1)return false;return i==0||options.matchContains;};function add(q,value){if(length>options.cacheLength){flush();}if(!data[q]){length++;}data[q]=value;}function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}return csub;}else +if(data[q]){return data[q];}else +if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)return;element=$("
").hide().addClass(options.resultsClass).css("position","absolute").appendTo(document.body);list=$("
    ").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();input.focus();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.width>0)element.css("width",options.width);needsInit=false;}function target(event){var element=event.target;while(element&&element.tagName!="LI")element=element.parentNode;if(!element)return[];return element;}function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset=listItems.size()){active=0;}}function limitNumberOfItems(available){return options.max&&options.max").html(options.highlight(formatted,term)).addClass(i%2==0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"ac_data",data[i]);}listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}if($.fn.bgiframe)list.bgiframe();}return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&&listItems.removeClass(CLASSES.ACTIVE);active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);return selected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:function(){list&&list.empty();},unbind:function(){element&&element.remove();}};};$.Autocompleter.Selection=function(field,start,end){if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}else if(field.setSelectionRange){field.setSelectionRange(start,end);}else{if(field.selectionStart){field.selectionStart=start;field.selectionEnd=end;}}field.focus();};})(jQuery); \ No newline at end of file diff --git a/src/web/static/js/jquery.cycle.js b/src/web/static/js/jquery.cycle.js new file mode 100755 index 0000000..22c80ff --- /dev/null +++ b/src/web/static/js/jquery.cycle.js @@ -0,0 +1 @@ +(function(D){var A="Lite-1.0";D.fn.cycle=function(E){return this.each(function(){E=E||{};if(this.cycleTimeout){clearTimeout(this.cycleTimeout)}this.cycleTimeout=0;this.cyclePause=0;var I=D(this);var J=E.slideExpr?D(E.slideExpr,this):I.children();var G=J.get();if(G.length<2){if(window.console&&window.console.log){window.console.log("terminating; too few slides: "+G.length)}return }var H=D.extend({},D.fn.cycle.defaults,E||{},D.metadata?I.metadata():D.meta?I.data():{});H.before=H.before?[H.before]:[];H.after=H.after?[H.after]:[];H.after.unshift(function(){H.busy=0});var F=this.className;H.width=parseInt((F.match(/w:(\d+)/)||[])[1])||H.width;H.height=parseInt((F.match(/h:(\d+)/)||[])[1])||H.height;H.timeout=parseInt((F.match(/t:(\d+)/)||[])[1])||H.timeout;if(I.css("position")=="static"){I.css("position","relative")}if(H.width){I.width(H.width)}if(H.height&&H.height!="auto"){I.height(H.height)}var K=0;J.css({position:"absolute",top:0,left:0}).hide().each(function(M){D(this).css("z-index",G.length-M)});D(G[K]).css("opacity",1).show();if(D.browser.msie){G[K].style.removeAttribute("filter")}if(H.fit&&H.width){J.width(H.width)}if(H.fit&&H.height&&H.height!="auto"){J.height(H.height)}if(H.pause){I.hover(function(){this.cyclePause=1},function(){this.cyclePause=0})}D.fn.cycle.transitions.fade(I,J,H);J.each(function(){var M=D(this);this.cycleH=(H.fit&&H.height)?H.height:M.height();this.cycleW=(H.fit&&H.width)?H.width:M.width()});J.not(":eq("+K+")").css({opacity:0});if(H.cssFirst){D(J[K]).css(H.cssFirst)}if(H.timeout){if(H.speed.constructor==String){H.speed={slow:600,fast:200}[H.speed]||400}if(!H.sync){H.speed=H.speed/2}while((H.timeout-H.speed)<250){H.timeout+=H.speed}}H.speedIn=H.speed;H.speedOut=H.speed;H.slideCount=G.length;H.currSlide=K;H.nextSlide=1;var L=J[K];if(H.before.length){H.before[0].apply(L,[L,L,H,true])}if(H.after.length>1){H.after[1].apply(L,[L,L,H,true])}if(H.click&&!H.next){H.next=H.click}if(H.next){D(H.next).bind("click",function(){return C(G,H,H.rev?-1:1)})}if(H.prev){D(H.prev).bind("click",function(){return C(G,H,H.rev?1:-1)})}if(H.timeout){this.cycleTimeout=setTimeout(function(){B(G,H,0,!H.rev)},H.timeout+(H.delay||0))}})};function B(J,E,I,K){if(E.busy){return }var H=J[0].parentNode,M=J[E.currSlide],L=J[E.nextSlide];if(H.cycleTimeout===0&&!I){return }if(I||!H.cyclePause){if(E.before.length){D.each(E.before,function(N,O){O.apply(L,[M,L,E,K])})}var F=function(){if(D.browser.msie){this.style.removeAttribute("filter")}D.each(E.after,function(N,O){O.apply(L,[M,L,E,K])})};if(E.nextSlide!=E.currSlide){E.busy=1;D.fn.cycle.custom(M,L,E,F)}var G=(E.nextSlide+1)==J.length;E.nextSlide=G?0:E.nextSlide+1;E.currSlide=G?J.length-1:E.nextSlide-1}if(E.timeout){H.cycleTimeout=setTimeout(function(){B(J,E,0,!E.rev)},E.timeout)}}function C(E,F,I){var H=E[0].parentNode,G=H.cycleTimeout;if(G){clearTimeout(G);H.cycleTimeout=0}F.nextSlide=F.currSlide+I;if(F.nextSlide<0){F.nextSlide=E.length-1}else{if(F.nextSlide>=E.length){F.nextSlide=0}}B(E,F,1,I>=0);return false}D.fn.cycle.custom=function(K,H,I,E){var J=D(K),G=D(H);G.css({opacity:0});var F=function(){G.animate({opacity:1},I.speedIn,I.easeIn,E)};J.animate({opacity:0},I.speedOut,I.easeOut,function(){J.css({display:"none"});if(!I.sync){F()}});if(I.sync){F()}};D.fn.cycle.transitions={fade:function(F,G,E){G.not(":eq(0)").css("opacity",0);E.before.push(function(){D(this).show()})}};D.fn.cycle.ver=function(){return A};D.fn.cycle.defaults={timeout:4000,speed:1000,next:null,prev:null,before:null,after:null,height:"auto",sync:1,fit:0,pause:0,delay:0,slideExpr:null}})(jQuery) \ No newline at end of file diff --git a/src/web/static/js/jquery.flyout.js b/src/web/static/js/jquery.flyout.js new file mode 100644 index 0000000..44247a3 --- /dev/null +++ b/src/web/static/js/jquery.flyout.js @@ -0,0 +1,2 @@ +/* jQuery FlyOut - Jolyon Terwilliger, Nixbox Web Designs - http://nixboxdesigns.com/jquery.flyout.php */ +$.fn.extend({flyout:function(c){var d=false;var e=false;var f;var g;var h;var i;var j;var k=new Image();var l='img';var m;this.click(function(){if(e==true){return false}if(d){putAway(this)}else{flyOut(this)}return false});var o=jQuery.extend({outSpeed:1000,inSpeed:500,outEase:'swing',inEase:'swing',loadingSrc:null,loader:'loader',loaderZIndex:500,widthMargin:40,heightMargin:40,loadingText:"Loading...",closeTip:" - Click here to close",destPadding:20,startOffsetX:0,startOffsetY:0,startHeight:0,startWidth:0,flyOutStart:function(){},flyOutFinish:function(){},putAwayStart:function(){},putAwayFinish:function(){},shownClass:'shown'},c);function flyOut(b){e=true;f=$(b);g=$('img',b);k=new Image();sL=$(window).scrollLeft();sT=$(window).scrollTop();h=g.offset();h.left+=o.startOffsetX;h.top+=o.startOffsetY;i=(o.startHeight>0?o.startHeight:g.height());j=(o.startWidth>0?o.startWidth:g.width());$('
    ').attr('id',o.loader).appendTo('body').css({'position':'absolute','top':h.top,'left':h.left,'height':i,'width':j,'opacity':.5,'display':'block','z-index':o.loaderZIndex});if(o.loadingSrc){$('#'+o.loader).append($('').load(function(){$(this).css({'position':'relative','top':i/2-(this.height/2),'left':j/2-(this.width/2)}).attr('alt',o.loadingText)}).attr('src',o.loadingSrc))}else{$('#'+o.loader).css('background-color','#000').append($('').text(o.loadingText).css({'position':'relative','top':'2px','left':'2px','color':'#FFF','font-size':'9px'}))}$(k).load(function(){imgtag=$('').attr('src',f.attr('href')).attr('title',g.attr('title')+o.closeTip).attr('alt',g.attr('alt')+o.closeTip).height(i).width(j);o.flyOutStart.call(b);if(o.destElement){var a=$(o.destElement);max_x=a.innerWidth()-(o.destPadding*2);max_y=a.innerHeight()-(o.destPadding*2)}else{max_x=$(window).width()-o.widthMargin;if($.browser.opera)wh=document.getElementsByTagName('html')[0].clientHeight;else wh=$(window).height();max_y=wh-o.heightMargin}width=k.width;height=k.height;x_dim=max_x/width;y_dim=max_y/height;if(x_dim<=y_dim){y_dim=x_dim}else{x_dim=y_dim}dw=Math.round(width*x_dim);dh=Math.round(height*y_dim);if(dw>width){dw=width}if(dh>height){dh=height}if(o.destElement){dPos=a.offset();dl=Math.round((a.outerWidth()/2)-(dw/2)+dPos.left);dt=Math.round((a.outerHeight()/2)-(dh/2)+dPos.top)}else{dl=Math.round(($(window).width()/2)-(dw/2)+sL);if($.browser.opera)wh=document.getElementsByTagName('html')[0].clientHeight;else wh=$(window).height();dt=Math.round((wh/2)-(dh/2)+sT)}$('#'+o.loader).empty().css('opacity',1).append(imgtag).width('auto').height('auto').animate({top:dt,left:dl},{duration:o.outSpeed,queue:false,easing:o.outEase});$('#'+o.loader+' '+l).animate({height:dh,width:dw},o.outSpeed,o.outEase,function(){o.flyOutFinish.call(b);d=b;f.addClass(o.shownClass);e=false;$('#'+o.loader+' '+l).click(function(){putAway(null)})})});k.src=f.attr('href')}function putAway(a){if(e==true||d==false){return false}o.putAwayStart.call(d);e=true;h=g.offset();h.left+=o.startOffsetX;h.top+=o.startOffsetY;$('#'+o.loader).animate({top:h.top,left:h.left},{duration:o.inSpeed,queue:false,easing:o.inEase});$('#'+o.loader+' '+l).animate({height:i,width:j},o.inSpeed,o.inEase,function(){$('#'+o.loader).css('display','none').remove();o.putAwayFinish.call(d);e=false;k=null;if(a&&a!=d){d=false;flyOut(a)}d=false;f.removeClass(o.shownClass)})}return this}}); \ No newline at end of file diff --git a/src/web/static/js/jquery.jgrowl.js b/src/web/static/js/jquery.jgrowl.js new file mode 100644 index 0000000..a045005 --- /dev/null +++ b/src/web/static/js/jquery.jgrowl.js @@ -0,0 +1,3 @@ + +(function($){$.jGrowl=function(m,o){if($('#jGrowl').size()==0)$('
    ').addClass($.jGrowl.defaults.position).appendTo('body');$('#jGrowl').jGrowl(m,o);};$.fn.jGrowl=function(m,o){if($.isFunction(this.each)){var args=arguments;return this.each(function(){var self=this;if($(this).data('jGrowl.instance')==undefined){$(this).data('jGrowl.instance',new $.fn.jGrowl());$(this).data('jGrowl.instance').startup(this);} +if($.isFunction($(this).data('jGrowl.instance')[m])){$(this).data('jGrowl.instance')[m].apply($(this).data('jGrowl.instance'),$.makeArray(args).slice(1));}else{$(this).data('jGrowl.instance').notification(m,o);}});};};$.extend($.fn.jGrowl.prototype,{defaults:{header:'',sticky:false,position:'top-right',glue:'after',theme:'default',corners:'10px',check:500,life:3000,speed:'normal',easing:'swing',closer:true,log:function(e,m,o){},beforeOpen:function(e,m,o){},open:function(e,m,o){},beforeClose:function(e,m,o){},close:function(e,m,o){},animateOpen:{opacity:'show'},animateClose:{opacity:'hide'}},element:null,interval:null,notification:function(message,o){var self=this;var o=$.extend({},this.defaults,o);o.log.apply(this.element,[this.element,message,o]);var notification=$('
    ×
    '+o.header+'
    '+message+'
    ').data("jGrowl",o).addClass(o.theme).children('div.close').bind("click.jGrowl",function(){$(this).unbind('click.jGrowl').parent().trigger('jGrowl.beforeClose').animate(o.animateClose,o.speed,o.easing,function(){$(this).trigger('jGrowl.close').remove();});}).parent();(o.glue=='after')?$('div.jGrowl-notification:last',this.element).after(notification):$('div.jGrowl-notification:first',this.element).before(notification);$(notification).bind("mouseover.jGrowl",function(){$(this).data("jGrowl").pause=true;}).bind("mouseout.jGrowl",function(){$(this).data("jGrowl").pause=false;}).bind('jGrowl.beforeOpen',function(){o.beforeOpen.apply(self.element,[self.element,message,o]);}).bind('jGrowl.open',function(){o.open.apply(self.element,[self.element,message,o]);}).bind('jGrowl.beforeClose',function(){o.beforeClose.apply(self.element,[self.element,message,o]);}).bind('jGrowl.close',function(){o.close.apply(self.element,[self.element,message,o]);}).trigger('jGrowl.beforeOpen').animate(o.animateOpen,o.speed,o.easing,function(){$(this).data("jGrowl").created=new Date();}).trigger('jGrowl.open');if($.fn.corner!=undefined)$(notification).corner(o.corners);if($('div.jGrowl-notification:parent',this.element).size()>1&&$('div.jGrowl-closer',this.element).size()==0&&this.defaults.closer!=false){$('
    [ close all ]
    ').addClass(this.defaults.theme).appendTo(this.element).animate(this.defaults.animateOpen,this.defaults.speed,this.defaults.easing).bind("click.jGrowl",function(){$(this).siblings().children('div.close').trigger("click.jGrowl");if($.isFunction(self.defaults.closer))self.defaults.closer.apply($(this).parent()[0],[$(this).parent()[0]]);});};},update:function(){$(this.element).find('div.jGrowl-notification:parent').each(function(){if($(this).data("jGrowl")!=undefined&&$(this).data("jGrowl").created!=undefined&&($(this).data("jGrowl").created.getTime()+$(this).data("jGrowl").life)<(new Date()).getTime()&&$(this).data("jGrowl").sticky!=true&&($(this).data("jGrowl").pause==undefined||$(this).data("jGrowl").pause!=true)){$(this).children('div.close').trigger('click.jGrowl');}});if($(this.element).find('div.jGrowl-notification:parent').size()<2){$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose,this.defaults.speed,this.defaults.easing,function(){$(this).remove();});};},startup:function(e){this.element=$(e).addClass('jGrowl').append('
    ');this.interval=setInterval(function(){jQuery(e).data('jGrowl.instance').update();},this.defaults.check);if($.browser.msie&&parseInt($.browser.version)<7)$(this.element).addClass('ie6');},shutdown:function(){$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();clearInterval(this.interval);}});$.jGrowl.defaults=$.fn.jGrowl.prototype.defaults;})(jQuery); \ No newline at end of file diff --git a/src/web/static/js/jquery.js b/src/web/static/js/jquery.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/src/web/static/js/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\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/src/web/static/js/jquery.tooltip.js b/src/web/static/js/jquery.tooltip.js new file mode 100644 index 0000000..a8d0cc6 --- /dev/null +++ b/src/web/static/js/jquery.tooltip.js @@ -0,0 +1,19 @@ +/* + * jQuery Tooltip plugin 1.3 + * + * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/ + * http://docs.jquery.com/Plugins/Tooltip + * + * Copyright (c) 2006 - 2008 Jörn Zaefferer + * + * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */;(function($){var helper={},current,title,tID,IE=$.browser.msie&&/MSIE\s(5\.5|6\.)/.test(navigator.userAgent),track=false;$.tooltip={blocked:false,defaults:{delay:200,fade:false,showURL:true,extraClass:"",top:15,left:15,id:"tooltip"},block:function(){$.tooltip.blocked=!$.tooltip.blocked;}};$.fn.extend({tooltip:function(settings){settings=$.extend({},$.tooltip.defaults,settings);createHelper(settings);return this.each(function(){$.data(this,"tooltip",settings);this.tOpacity=helper.parent.css("opacity");this.tooltipText=this.title;$(this).removeAttr("title");this.alt="";}).mouseover(save).mouseout(hide).click(hide);},fixPNG:IE?function(){return this.each(function(){var image=$(this).css('backgroundImage');if(image.match(/^url\(["']?(.*\.png)["']?\)$/i)){image=RegExp.$1;$(this).css({'backgroundImage':'none','filter':"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='"+image+"')"}).each(function(){var position=$(this).css('position');if(position!='absolute'&&position!='relative')$(this).css('position','relative');});}});}:function(){return this;},unfixPNG:IE?function(){return this.each(function(){$(this).css({'filter':'',backgroundImage:''});});}:function(){return this;},hideWhenEmpty:function(){return this.each(function(){$(this)[$(this).html()?"show":"hide"]();});},url:function(){return this.attr('href')||this.attr('src');}});function createHelper(settings){if(helper.parent)return;helper.parent=$('

    ').appendTo(document.body).hide();if($.fn.bgiframe)helper.parent.bgiframe();helper.title=$('h3',helper.parent);helper.body=$('div.body',helper.parent);helper.url=$('div.url',helper.parent);}function settings(element){return $.data(element,"tooltip");}function handle(event){if(settings(this).delay)tID=setTimeout(show,settings(this).delay);else +show();track=!!settings(this).track;$(document.body).bind('mousemove',update);update(event);}function save(){if($.tooltip.blocked||this==current||(!this.tooltipText&&!settings(this).bodyHandler))return;current=this;title=this.tooltipText;if(settings(this).bodyHandler){helper.title.hide();var bodyContent=settings(this).bodyHandler.call(this);if(bodyContent.nodeType||bodyContent.jquery){helper.body.empty().append(bodyContent)}else{helper.body.html(bodyContent);}helper.body.show();}else if(settings(this).showBody){var parts=title.split(settings(this).showBody);helper.title.html(parts.shift()).show();helper.body.empty();for(var i=0,part;(part=parts[i]);i++){if(i>0)helper.body.append("
    ");helper.body.append(part);}helper.body.hideWhenEmpty();}else{helper.title.html(title).show();helper.body.hide();}if(settings(this).showURL&&$(this).url())helper.url.html($(this).url().replace('http://','')).show();else +helper.url.hide();helper.parent.addClass(settings(this).extraClass);if(settings(this).fixPNG)helper.parent.fixPNG();handle.apply(this,arguments);}function show(){tID=null;if((!IE||!$.fn.bgiframe)&&settings(current).fade){if(helper.parent.is(":animated"))helper.parent.stop().show().fadeTo(settings(current).fade,current.tOpacity);else +helper.parent.is(':visible')?helper.parent.fadeTo(settings(current).fade,current.tOpacity):helper.parent.fadeIn(settings(current).fade);}else{helper.parent.show();}update();}function update(event){if($.tooltip.blocked)return;if(event&&event.target.tagName=="OPTION"){return;}if(!track&&helper.parent.is(":visible")){$(document.body).unbind('mousemove',update)}if(current==null){$(document.body).unbind('mousemove',update);return;}helper.parent.removeClass("viewport-right").removeClass("viewport-bottom");var left=helper.parent[0].offsetLeft;var top=helper.parent[0].offsetTop;if(event){left=event.pageX+settings(current).left;top=event.pageY+settings(current).top;var right='auto';if(settings(current).positionLeft){right=$(window).width()-left;left='auto';}helper.parent.css({left:left,right:right,top:top});}var v=viewport(),h=helper.parent[0];if(v.x+v.cx