diff options
author | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2014-04-03 14:42:03 +0200 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2014-04-03 14:42:03 +0200 |
commit | 0d67b00d5d3b7ce1b76b639dcc65c415a5f13439 (patch) | |
tree | 7c4d113bb1c3d90ef53e08138a2850576395780f /themes | |
parent | 99679d06884120c57f43b44e55e03595f1f87bed (diff) | |
parent | 7d2f1aa2793595aa6cdc58a58260184234cfa809 (diff) | |
download | wallabag-0d67b00d5d3b7ce1b76b639dcc65c415a5f13439.tar.gz wallabag-0d67b00d5d3b7ce1b76b639dcc65c415a5f13439.tar.zst wallabag-0d67b00d5d3b7ce1b76b639dcc65c415a5f13439.zip |
wallabag 1.6.0
Diffstat (limited to 'themes')
63 files changed, 3954 insertions, 142 deletions
diff --git a/themes/baggy/_display-mode.twig b/themes/baggy/_display-mode.twig new file mode 100755 index 00000000..382dd5f1 --- /dev/null +++ b/themes/baggy/_display-mode.twig | |||
@@ -0,0 +1,5 @@ | |||
1 | <div id="display-mode"> | ||
2 | <a href="javascript: void(null);" id="listmode" class="listmode"> | ||
3 | <img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/blank.png" alt="{% trans "toggle view mode" %}" title="{% trans "toggle view mode" %}" width="16" height="16"> | ||
4 | </a> | ||
5 | </div> | ||
diff --git a/themes/baggy/_head.twig b/themes/baggy/_head.twig index 206d5aae..04898d85 100644..100755 --- a/themes/baggy/_head.twig +++ b/themes/baggy/_head.twig | |||
@@ -1,12 +1,15 @@ | |||
1 | <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/{{theme}}/img/favicon.ico" /> | 1 | <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/{{theme}}/img/favicon.ico" /> |
2 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-144x144-precomposed.png"> | 2 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-144x144-precomposed.png"> |
3 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-72x72-precomposed.png"> | 3 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-72x72-precomposed.png"> |
4 | <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-precomposed.png"> | 4 | <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-precomposed.png"> |
5 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/ratatouille.css" media="all"> | 5 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/ratatouille.css" media="all"> |
6 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/font.css" media="all"> | 6 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/font.css" media="all"> |
7 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/main.css" media="all"> | 7 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/main.css" media="all"> |
8 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/messages.css" media="all"> | 8 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/messages.css" media="all"> |
9 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/print.css" media="print"> | 9 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/print.css" media="print"> |
10 | <script src="{{ poche_url }}/themes/{{theme}}/js/jquery-2.0.3.min.js"></script> | 10 | <script src="{{ poche_url }}themes/default/js/jquery-2.0.3.min.js"></script> |
11 | <script src="{{ poche_url }}/themes/{{theme}}/js/init.js"></script> | 11 | <script src="{{ poche_url }}themes/default/js/autoClose.js"></script> |
12 | <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/closeMessage.js"></script> | 12 | <script src="{{ poche_url }}themes/{{theme}}/js/jquery.cookie.js"></script> |
13 | <script src="{{ poche_url }}themes/{{theme}}/js/init.js"></script> | ||
14 | <script src="{{ poche_url }}themes/default/js/saveLink.js"></script> | ||
15 | <script src="{{ poche_url }}themes/{{theme}}/js/closeMessage.js"></script> | ||
diff --git a/themes/baggy/_menu.twig b/themes/baggy/_menu.twig index e9cd9d4a..f1b75cd5 100644 --- a/themes/baggy/_menu.twig +++ b/themes/baggy/_menu.twig | |||
@@ -4,9 +4,13 @@ | |||
4 | <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li> | 4 | <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li> |
5 | <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li> | 5 | <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li> |
6 | <li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li> | 6 | <li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li> |
7 | <li><a href="javascript: void(null);" id="pocheit">{% trans "save a link" %}</a></li> | 7 | <li style="position: relative;"><a href="javascript: void(null);" id="bagit">{% trans "save a link" %}</a> |
8 | {% include '_pocheit-form.twig' %} | ||
9 | </li> | ||
10 | <li style="position: relative;"><a href="javascript: void(null);" id="search">{% trans "search" %}</a> | ||
11 | {% include '_search-form.twig' %} | ||
12 | </li> | ||
8 | <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> | 13 | <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> |
9 | <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> | 14 | <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> |
10 | </ul> | 15 | </ul> |
11 | 16 | ||
12 | {% include '_pocheit-form.twig' %} | ||
diff --git a/themes/baggy/_pocheit-form.twig b/themes/baggy/_pocheit-form.twig new file mode 100755 index 00000000..505ec368 --- /dev/null +++ b/themes/baggy/_pocheit-form.twig | |||
@@ -0,0 +1,10 @@ | |||
1 | <div id="bagit-form" class="messages info"> | ||
2 | <form method="get" action="index.php" target="_blank" id="bagit-form-form"> | ||
3 | <h2><a href="javascript: void(null);" id="bagit-form-close">X</a> | ||
4 | {% trans "Save a link" %}</h2> | ||
5 | <input type="hidden" name="autoclose" value="1" /> | ||
6 | <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> | ||
7 | <input type="submit" value="{% trans "save link!" %}" /> | ||
8 | <div id="add-link-result"></div> | ||
9 | </form> | ||
10 | </div> | ||
diff --git a/themes/baggy/_search-form.twig b/themes/baggy/_search-form.twig new file mode 100644 index 00000000..1fd4154e --- /dev/null +++ b/themes/baggy/_search-form.twig | |||
@@ -0,0 +1,21 @@ | |||
1 | <div id="search-form" class="messages info"> | ||
2 | <form method="get" action="index.php"> | ||
3 | <input type="hidden" name="view" value="search"></input> | ||
4 | <label><a href="javascript: void(null);" id="search-form-close">X</a>{% trans "Search" %}</label> : <input type="text" name="search" /> | ||
5 | <input id="submit-search" type="submit" value="{% trans "Search" %} !"></input> | ||
6 | </form> | ||
7 | </div> | ||
8 | <script type="text/javascript"> | ||
9 | $(document).ready(function() { | ||
10 | |||
11 | $("#search-form").hide(); | ||
12 | |||
13 | $("#search").click(function(){ | ||
14 | $("#search-form").toggle(); | ||
15 | $("#search").toggleClass("current"); | ||
16 | $("#search-arrow").toggleClass("arrow-down"); | ||
17 | }); | ||
18 | |||
19 | |||
20 | }); | ||
21 | </script> \ No newline at end of file | ||
diff --git a/themes/baggy/_top.twig b/themes/baggy/_top.twig index 4f476a37..a31c0925 100644..100755 --- a/themes/baggy/_top.twig +++ b/themes/baggy/_top.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | <header class="w600p center mbm"> | 1 | <header class="w600p center mbm"> |
2 | <h1 class="logo"> | 2 | <h1 class="logo"> |
3 | {% if view == 'home' %}{% block logo %}<img width="100" height="100" src="{{ poche_url }}/themes/{{theme}}/img/logo-w.png" alt="logo poche" />{% endblock %} | 3 | {% if view == 'home' %}{% block logo %}<img width="100" height="100" src="{{ poche_url }}themes/{{theme}}/img/logo-w.png" alt="wallabag logo" />{% endblock %} |
4 | {% else %}<a href="./" title="{% trans "return home" %}" >{{ block('logo') }}</a> | 4 | {% else %}<a href="./" title="{% trans "return home" %}" >{{ block('logo') }}</a> |
5 | {% endif %} | 5 | {% endif %} |
6 | </h1> | 6 | </h1> |
diff --git a/themes/baggy/config.twig b/themes/baggy/config.twig index b37ac115..d441de7c 100644..100755 --- a/themes/baggy/config.twig +++ b/themes/baggy/config.twig | |||
@@ -8,10 +8,11 @@ | |||
8 | <h2>{% trans "Saving articles" %}</h2> | 8 | <h2>{% trans "Saving articles" %}</h2> |
9 | <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> | 9 | <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> |
10 | <ul> | 10 | <ul> |
11 | <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/poche/" title="download the firefox extension">{% trans "download the extension" %}</a></li> | 11 | <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" title="download the firefox extension">{% trans "download the extension" %}</a></li> |
12 | <li>Chrome: <a href="http://doc.wallabag.org/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li> | 12 | <li>Chrome: <a href="http://doc.wallabag.org/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li> |
13 | <li>Android: <a href="https://f-droid.org/repository/browse/?fdid=fr.gaulupeau.apps.Poche" title="download the application">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via Google Play" %}</a></li> | 13 | <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via Google Play" %}</a></li> |
14 | <li>Windows Phone: <a href="https://www.windowsphone.com/en-us/store/app/poche/334de2f0-51b5-4826-8549-a3d805a37e83" title="download the window phone application">{% trans "download the application" %}</a></li> | 14 | <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li> |
15 | <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" title="download the window phone application">{% trans "download the application" %}</a></li> | ||
15 | <li> | 16 | <li> |
16 | <form method="get" action="index.php"> | 17 | <form method="get" action="index.php"> |
17 | <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label> | 18 | <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label> |
@@ -25,9 +26,10 @@ | |||
25 | <h2>{% trans "Upgrading wallabag" %}</h2> | 26 | <h2>{% trans "Upgrading wallabag" %}</h2> |
26 | <ul> | 27 | <ul> |
27 | <li>{% trans "Installed version" %} : <strong>{{ constant('POCHE') }}</strong></li> | 28 | <li>{% trans "Installed version" %} : <strong>{{ constant('POCHE') }}</strong></li> |
28 | <li>{% trans "Latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent stable version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %}</li> | 29 | <li>{% trans "Latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent stable version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_prod }})</li> |
29 | {% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "Latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent development version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %}</li>{% endif %} | 30 | {% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "Latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent development version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}</li> |
30 | </ul> | 31 | </ul> |
32 | <p>{% trans "You can clear cache to check the latest release." %}</p> | ||
31 | 33 | ||
32 | <h2>{% trans "Feeds" %}</h2> | 34 | <h2>{% trans "Feeds" %}</h2> |
33 | {% if token == '' %} | 35 | {% if token == '' %} |
@@ -42,7 +44,7 @@ | |||
42 | <p>{% trans "Your user id:" %} <strong>{{user_id}}</strong></p> | 44 | <p>{% trans "Your user id:" %} <strong>{{user_id}}</strong></p> |
43 | <p>{% trans "You can regenerate your token: <a href='?feed&action=generate'>generate!</a>." %}</p> | 45 | <p>{% trans "You can regenerate your token: <a href='?feed&action=generate'>generate!</a>." %}</p> |
44 | {% endif %} | 46 | {% endif %} |
45 | 47 | ||
46 | <h2>{% trans "Change your theme" %}</h2> | 48 | <h2>{% trans "Change your theme" %}</h2> |
47 | <form method="post" action="?updatetheme" name="changethemeform"> | 49 | <form method="post" action="?updatetheme" name="changethemeform"> |
48 | <fieldset class="w500p inline"> | 50 | <fieldset class="w500p inline"> |
@@ -103,15 +105,21 @@ | |||
103 | {% endif %} | 105 | {% endif %} |
104 | 106 | ||
105 | <h2>{% trans "Import" %}</h2> | 107 | <h2>{% trans "Import" %}</h2> |
106 | <p>{% trans "Please execute the import script locally as it can take a very long time." %}</p> | 108 | <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p> |
107 | <p>{% trans "More info in the official documentation:" %} <a href="http://doc.wallabag.org/doku.php?id=users:migrate">wallabag.org</a></p> | 109 | <p>{% trans "Please select export file on your computer and press \"Import\" button below.<br>Wallabag will parse your file, insert all URLs and start fetching of articles if required.<br>Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p> |
108 | <ul> | 110 | <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data"> |
109 | <li><a href="./?import&from=pocket">{% trans "Import from Pocket" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCKET_FILE')) }}</li> | 111 | <fieldset class="w500p"> |
110 | <li><a href="./?import&from=readability">{% trans "Import from Readability" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('READABILITY_FILE')) }}</li> | 112 | <div class="row"> |
111 | <li><a href="./?import&from=instapaper">{% trans "Import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li> | 113 | <label class="col w150p" for="file">{% trans "File:" %}</label> |
112 | <li><a href="./?import&from=poche">{% trans "Import from wallabag" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCHE_FILE')) }}</li> | 114 | <input class="col" type="file" id="file" name="file" tabindex="4"> |
113 | </ul> | 115 | </div> |
114 | 116 | <div class="row mts txtcenter"> | |
117 | <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button> | ||
118 | </div> | ||
119 | </fieldset> | ||
120 | </form> | ||
121 | <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p> | ||
122 | |||
115 | <h2>{% trans "Export your wallabag data" %}</h2> | 123 | <h2>{% trans "Export your wallabag data" %}</h2> |
116 | {% if constant('STORAGE') == 'sqlite' %} | 124 | {% if constant('STORAGE') == 'sqlite' %} |
117 | <p><a href="?download" target="_blank">{% trans "Click here" %}</a> {% trans "to download your database." %}</p>{% endif %} | 125 | <p><a href="?download" target="_blank">{% trans "Click here" %}</a> {% trans "to download your database." %}</p>{% endif %} |
diff --git a/themes/baggy/css/main.css b/themes/baggy/css/main.css index 3e128b08..0dd552de 100755 --- a/themes/baggy/css/main.css +++ b/themes/baggy/css/main.css | |||
@@ -173,21 +173,22 @@ h2:after { | |||
173 | #links { | 173 | #links { |
174 | position: fixed; | 174 | position: fixed; |
175 | top: 0; | 175 | top: 0; |
176 | width: 9em; | 176 | width: 10em; |
177 | left: 0; | 177 | left: 0; |
178 | text-align: right; | 178 | text-align: right; |
179 | background: #333; | 179 | background: #333; |
180 | padding-top: 9em; | 180 | padding-top: 9.5em; |
181 | height: 100%; | 181 | height: 100%; |
182 | box-shadow:inset -4px 0 20px rgba(0,0,0,0.6); | 182 | box-shadow:inset -4px 0 20px rgba(0,0,0,0.6); |
183 | z-index: 10; | 183 | z-index: 10; |
184 | } | 184 | } |
185 | 185 | ||
186 | #main { | 186 | #main { |
187 | margin-left: 12em; | 187 | margin-left: 13em; |
188 | position: relative; | 188 | position: relative; |
189 | z-index: 10; | 189 | z-index: 10; |
190 | padding-right: 5%; | 190 | padding-right: 5%; |
191 | padding-bottom: 1em; | ||
191 | } | 192 | } |
192 | 193 | ||
193 | #links a { | 194 | #links a { |
@@ -227,7 +228,7 @@ h2:after { | |||
227 | #links li:last-child { | 228 | #links li:last-child { |
228 | position: fixed; | 229 | position: fixed; |
229 | bottom: 1em; | 230 | bottom: 1em; |
230 | width: 10%; | 231 | width: 10em; |
231 | } | 232 | } |
232 | 233 | ||
233 | #links li:last-child a:before { | 234 | #links li:last-child a:before { |
@@ -237,6 +238,61 @@ h2:after { | |||
237 | } | 238 | } |
238 | 239 | ||
239 | 240 | ||
241 | #sort { | ||
242 | padding: 0; | ||
243 | list-style-type: none; | ||
244 | opacity: 0.5; | ||
245 | display: inline-block; | ||
246 | } | ||
247 | |||
248 | #sort li { | ||
249 | display: inline; | ||
250 | font-size: 0.9em; | ||
251 | } | ||
252 | |||
253 | #sort li + li { | ||
254 | margin-left: 10px; | ||
255 | } | ||
256 | |||
257 | #sort a { | ||
258 | padding: 2px 2px 0; | ||
259 | vertical-align: middle; | ||
260 | } | ||
261 | |||
262 | #sort img { | ||
263 | vertical-align: baseline; | ||
264 | } | ||
265 | #sort img:hover { | ||
266 | cursor: pointer; | ||
267 | } | ||
268 | |||
269 | #display-mode { | ||
270 | float: right; | ||
271 | vertical-align: middle; | ||
272 | margin-top: 10px; | ||
273 | margin-bottom: 10px; | ||
274 | opacity: 0.5; | ||
275 | } | ||
276 | #listmode { | ||
277 | width: 16px; | ||
278 | display: inline-block; | ||
279 | text-decoration: none; | ||
280 | } | ||
281 | #listmode a:hover { | ||
282 | opacity: 1; | ||
283 | } | ||
284 | .tablemode { | ||
285 | background-image: url("../img/baggy/table.png"); | ||
286 | background-repeat: no-repeat; | ||
287 | background-position: bottom; | ||
288 | } | ||
289 | .listmode { | ||
290 | background-image: url("../img/baggy/list.png"); | ||
291 | background-repeat: no-repeat; | ||
292 | background-position: bottom; | ||
293 | } | ||
294 | |||
295 | |||
240 | /* ========================================================================== | 296 | /* ========================================================================== |
241 | 2 = Layout | 297 | 2 = Layout |
242 | ========================================================================== */ | 298 | ========================================================================== */ |
@@ -248,7 +304,7 @@ h2:after { | |||
248 | 304 | ||
249 | footer { | 305 | footer { |
250 | text-align: right; | 306 | text-align: right; |
251 | position: fixed; | 307 | position: relative; |
252 | bottom: 0; | 308 | bottom: 0; |
253 | right: 5em; | 309 | right: 5em; |
254 | color: #999; | 310 | color: #999; |
@@ -266,6 +322,15 @@ footer a { | |||
266 | letter-spacing:-5px; | 322 | letter-spacing:-5px; |
267 | } | 323 | } |
268 | 324 | ||
325 | .listmode .entrie { | ||
326 | width: 100%!important; | ||
327 | margin-left: 0!important; | ||
328 | } | ||
329 | |||
330 | .listmode .entrie p { | ||
331 | display: none; | ||
332 | } | ||
333 | |||
269 | .list-entries + .results { | 334 | .list-entries + .results { |
270 | margin-bottom: 2em; | 335 | margin-bottom: 2em; |
271 | } | 336 | } |
@@ -287,10 +352,10 @@ footer a { | |||
287 | letter-spacing:normal; | 352 | letter-spacing:normal; |
288 | box-shadow: 0 3px 7px rgba(0,0,0,0.3); | 353 | box-shadow: 0 3px 7px rgba(0,0,0,0.3); |
289 | display: inline-block; | 354 | display: inline-block; |
290 | width: 32%; | 355 | width: 32%!important; |
291 | margin-bottom: 1.5em; | 356 | margin-bottom: 1.5em; |
292 | vertical-align: top; | 357 | vertical-align: top; |
293 | margin-left: 1.5%; | 358 | margin-left: 1.5%!important; |
294 | position: relative; | 359 | position: relative; |
295 | overflow: hidden; | 360 | overflow: hidden; |
296 | padding: 1.5em 1.5em 3em 1.5em; | 361 | padding: 1.5em 1.5em 3em 1.5em; |
@@ -359,6 +424,7 @@ footer a { | |||
359 | content: none; | 424 | content: none; |
360 | } | 425 | } |
361 | 426 | ||
427 | |||
362 | .entrie h2 a { | 428 | .entrie h2 a { |
363 | display: block; | 429 | display: block; |
364 | text-decoration: none; | 430 | text-decoration: none; |
@@ -370,7 +436,7 @@ footer a { | |||
370 | -o-transition: all 0.5s ease; | 436 | -o-transition: all 0.5s ease; |
371 | transition: all 0.5s ease; | 437 | transition: all 0.5s ease; |
372 | } | 438 | } |
373 | 439 | /* | |
374 | .entrie h2 a:after { | 440 | .entrie h2 a:after { |
375 | content: ""; | 441 | content: ""; |
376 | position: absolute; | 442 | position: absolute; |
@@ -379,6 +445,7 @@ footer a { | |||
379 | height: 100%; | 445 | height: 100%; |
380 | left: 0; | 446 | left: 0; |
381 | } | 447 | } |
448 | */ | ||
382 | 449 | ||
383 | .entrie p { | 450 | .entrie p { |
384 | color: #666; | 451 | color: #666; |
@@ -425,7 +492,7 @@ footer a { | |||
425 | } | 492 | } |
426 | 493 | ||
427 | .entrie:nth-child(3n+1) { | 494 | .entrie:nth-child(3n+1) { |
428 | margin-left: 0; | 495 | margin-left: 0!important; |
429 | } | 496 | } |
430 | 497 | ||
431 | .results { | 498 | .results { |
@@ -442,6 +509,7 @@ footer a { | |||
442 | 509 | ||
443 | .pagination { | 510 | .pagination { |
444 | text-align: right; | 511 | text-align: right; |
512 | margin-bottom:50px; | ||
445 | } | 513 | } |
446 | 514 | ||
447 | .nb-results { | 515 | .nb-results { |
@@ -469,6 +537,134 @@ footer a { | |||
469 | } | 537 | } |
470 | 538 | ||
471 | /* ========================================================================== | 539 | /* ========================================================================== |
540 | 2.1 = "save a link" popup div related styles | ||
541 | ========================================================================== */ | ||
542 | |||
543 | #bagit-form { | ||
544 | background: rgba(0,0,0,0.5); | ||
545 | position: absolute; | ||
546 | top: 0; | ||
547 | left: 10em; | ||
548 | z-index: 20; | ||
549 | height: 100%; | ||
550 | width: 100%; | ||
551 | margin: 0; | ||
552 | margin-top: -30%; | ||
553 | padding: 2em; | ||
554 | display: none; | ||
555 | border-left: 1px #EEE solid; | ||
556 | } | ||
557 | |||
558 | #bagit-form form { | ||
559 | background: #FFF; | ||
560 | position: absolute; | ||
561 | top: 0; | ||
562 | left: 0; | ||
563 | z-index: 20; | ||
564 | border: 10px solid #000; | ||
565 | width: 400px; | ||
566 | height: 200px; | ||
567 | /* margin: -150px 0 0 -300px; */ | ||
568 | padding: 2em; | ||
569 | } | ||
570 | |||
571 | a#bagit-form-close { | ||
572 | background: #000; | ||
573 | color: #FFF; | ||
574 | padding: 0.2em 0.5em; | ||
575 | text-decoration: none; | ||
576 | display: inline-block; | ||
577 | float: right; | ||
578 | font-size: 0.6em; | ||
579 | } | ||
580 | a#bagit-form-close:hover { | ||
581 | background: #999; | ||
582 | color: #000; | ||
583 | } | ||
584 | |||
585 | .active-current { | ||
586 | background-color: #999; | ||
587 | } | ||
588 | |||
589 | .active-current:after { | ||
590 | content: ""; | ||
591 | width: 0; | ||
592 | height: 0; | ||
593 | position: absolute; | ||
594 | border-style: solid; | ||
595 | border-width: 10px; | ||
596 | border-color: transparent #EEE transparent transparent; | ||
597 | right: 0; | ||
598 | top: 50%; | ||
599 | margin-top: -10px; | ||
600 | } | ||
601 | |||
602 | .opacity03 { | ||
603 | opacity: 0.3; | ||
604 | } | ||
605 | |||
606 | .add-to-wallabag-link-after { | ||
607 | background-color: #000; | ||
608 | color: #fff; | ||
609 | padding: 0 3px 2px 3px; | ||
610 | } | ||
611 | |||
612 | #add-link-result { | ||
613 | font-weight: bold; | ||
614 | margin-top: 10px; | ||
615 | } | ||
616 | |||
617 | /* ========================================================================== | ||
618 | 2.2 = "search for articles" popup div related styles | ||
619 | ========================================================================== */ | ||
620 | #search-form { | ||
621 | background: rgba(0,0,0,0.5); | ||
622 | position: absolute; | ||
623 | top: 0; | ||
624 | left: 10em; | ||
625 | z-index: 20; | ||
626 | height: 100%; | ||
627 | width: 100%; | ||
628 | margin: 0; | ||
629 | margin-top: -30%; | ||
630 | padding: 2em; | ||
631 | display: none; | ||
632 | border-left: 1px #EEE solid; | ||
633 | } | ||
634 | |||
635 | #search-form form { | ||
636 | background: #FFF; | ||
637 | position: absolute; | ||
638 | top: 0; | ||
639 | left: 0; | ||
640 | z-index: 20; | ||
641 | border: 10px solid #000; | ||
642 | width: 400px; | ||
643 | height: 200px; | ||
644 | /* margin: -150px 0 0 -300px; */ | ||
645 | padding: 2em; | ||
646 | } | ||
647 | |||
648 | a#search-form-close { | ||
649 | background: #000; | ||
650 | color: #FFF; | ||
651 | padding: 0.2em 0.5em; | ||
652 | text-decoration: none; | ||
653 | display: inline-block; | ||
654 | float: right; | ||
655 | font-size: 1.2em; | ||
656 | } | ||
657 | a#search-form-close:hover { | ||
658 | background: #999; | ||
659 | color: #000; | ||
660 | } | ||
661 | |||
662 | #submit-search{ | ||
663 | margin-left: 4em; | ||
664 | margin-top:1em; | ||
665 | } | ||
666 | |||
667 | /* ========================================================================== | ||
472 | 3 = Pictos | 668 | 3 = Pictos |
473 | ========================================================================== */ | 669 | ========================================================================== */ |
474 | 670 | ||
@@ -583,7 +779,7 @@ footer a { | |||
583 | } | 779 | } |
584 | 780 | ||
585 | .warning { | 781 | .warning { |
586 | font-size: 3em; | 782 | /* font-size: 3em; |
587 | color: #999; | 783 | color: #999; |
588 | font-style: italic; | 784 | font-style: italic; |
589 | position: absolute; | 785 | position: absolute; |
@@ -592,7 +788,10 @@ footer a { | |||
592 | width: 100%; | 788 | width: 100%; |
593 | text-align: center; | 789 | text-align: center; |
594 | padding-right: 5%; | 790 | padding-right: 5%; |
595 | margin-top: -2em; | 791 | margin-top: -2em;*/ |
792 | font-weight: bold; | ||
793 | display: block; | ||
794 | width: 100%; | ||
596 | } | 795 | } |
597 | 796 | ||
598 | /* ========================================================================== | 797 | /* ========================================================================== |
@@ -602,6 +801,7 @@ footer a { | |||
602 | #article { | 801 | #article { |
603 | width: 70%; | 802 | width: 70%; |
604 | margin-bottom: 3em; | 803 | margin-bottom: 3em; |
804 | text-align: justify; | ||
605 | } | 805 | } |
606 | 806 | ||
607 | #article .tags { | 807 | #article .tags { |
@@ -731,6 +931,9 @@ blockquote { | |||
731 | width: 100%; | 931 | width: 100%; |
732 | margin-left: 0; | 932 | margin-left: 0; |
733 | } | 933 | } |
934 | #display-mode { | ||
935 | display: none; | ||
936 | } | ||
734 | } | 937 | } |
735 | 938 | ||
736 | @media screen and (max-width: 500px) { | 939 | @media screen and (max-width: 500px) { |
@@ -820,4 +1023,12 @@ blockquote { | |||
820 | #article_toolbar a { | 1023 | #article_toolbar a { |
821 | padding: 0.3em 0.4em 0.2em; | 1024 | padding: 0.3em 0.4em 0.2em; |
822 | } | 1025 | } |
1026 | |||
1027 | #display-mode { | ||
1028 | display: none; | ||
1029 | } | ||
1030 | |||
1031 | #bagit-form { | ||
1032 | left: 0; | ||
1033 | } | ||
823 | } | 1034 | } |
diff --git a/themes/baggy/edit-tags.twig b/themes/baggy/edit-tags.twig index 9e9012ee..2113e964 100644..100755 --- a/themes/baggy/edit-tags.twig +++ b/themes/baggy/edit-tags.twig | |||
@@ -4,6 +4,11 @@ | |||
4 | {% include '_menu.twig' %} | 4 | {% include '_menu.twig' %} |
5 | {% endblock %} | 5 | {% endblock %} |
6 | {% block content %} | 6 | {% block content %} |
7 | |||
8 | <script src="{{ poche_url }}themes/default/js/jquery-ui-1.10.4.custom.min.js"></script> | ||
9 | <script src="{{ poche_url }}themes/default/js/autoCompleteTags.js"></script> | ||
10 | <link rel="stylesheet" href="{{ poche_url }}themes/default/css/jquery-ui-1.10.4.custom.min.css" media="all"> | ||
11 | |||
7 | <div id="article"> | 12 | <div id="article"> |
8 | <h2>{{ entry.title|raw }}</21> | 13 | <h2>{{ entry.title|raw }}</21> |
9 | </div> | 14 | </div> |
@@ -17,7 +22,8 @@ | |||
17 | <input type="hidden" name="entry_id" value="{{ entry_id }}" /> | 22 | <input type="hidden" name="entry_id" value="{{ entry_id }}" /> |
18 | <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> | 23 | <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> |
19 | <input type="submit" value="Tag" /> | 24 | <input type="submit" value="Tag" /> |
20 | <p>{% trans "You can enter multiple tags, separated by commas." %}</p> | 25 | <p>{% trans "Start typing for auto complete." %}<br> |
26 | {% trans "You can enter multiple tags, separated by commas." %}</p> | ||
21 | </form> | 27 | </form> |
22 | <a class="icon icon-reply return" href="./?view=view&id={{ entry_id }}">{% trans "return to article" %}</a> | 28 | <a class="icon icon-reply return" href="./?view=view&id={{ entry_id }}">{% trans "return to article" %}</a> |
23 | {% endblock %} | 29 | {% endblock %} |
diff --git a/themes/baggy/home.twig b/themes/baggy/home.twig index 4f9db063..5dd91307 100644..100755 --- a/themes/baggy/home.twig +++ b/themes/baggy/home.twig | |||
@@ -18,17 +18,27 @@ | |||
18 | {% if entries is empty %} | 18 | {% if entries is empty %} |
19 | <div class="messages warning"><p>{% trans "No articles found." %}</p></div> | 19 | <div class="messages warning"><p>{% trans "No articles found." %}</p></div> |
20 | {% else %} | 20 | {% else %} |
21 | <div> | ||
22 | {% include '_display-mode.twig' %} | ||
23 | {% include '_sorting.twig' %} | ||
24 | </div> | ||
21 | {% block pager %} | 25 | {% block pager %} |
22 | {% if nb_results > 1 %} | 26 | {% if nb_results > 1 %} |
23 | <div class="results"> | 27 | <div class="results"> |
24 | <div class="nb-results">{{ nb_results }} {% trans "results" %}</div> | 28 | <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div> |
25 | {{ page_links | raw }} | 29 | {{ page_links | raw }} |
26 | </div> | 30 | </div> |
31 | {% elseif nb_results == 1 %} | ||
32 | {% if search_term is defined %} | ||
33 | <div class="results"> | ||
34 | <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div> | ||
35 | </div> | ||
36 | {% endif %} | ||
27 | {% endif %} | 37 | {% endif %} |
28 | {% endblock %} | 38 | {% endblock %} |
29 | <div class="list-entries"> | 39 | <div id="list-entries" class="list-entries"> |
30 | {% for entry in entries %} | 40 | {% for entry in entries %} |
31 | <div id="entry-{{ entry.id|e }}" class="entrie"> | 41 | <div id="entry-{{ entry.id|e }}" class="entrie"{% if listmode %} style="width:100%; margin-left:0;"{% endif %}> |
32 | <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> | 42 | <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> |
33 | {% if entry.content| getReadingTime > 0 %} | 43 | {% if entry.content| getReadingTime > 0 %} |
34 | <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min</span></div> | 44 | <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min</span></div> |
diff --git a/themes/baggy/img/baggy/blank.png b/themes/baggy/img/baggy/blank.png new file mode 100755 index 00000000..63e09844 --- /dev/null +++ b/themes/baggy/img/baggy/blank.png | |||
Binary files differ | |||
diff --git a/themes/baggy/img/baggy/down.png b/themes/baggy/img/baggy/down.png new file mode 100644 index 00000000..b9d536a7 --- /dev/null +++ b/themes/baggy/img/baggy/down.png | |||
Binary files differ | |||
diff --git a/themes/baggy/img/baggy/list.png b/themes/baggy/img/baggy/list.png new file mode 100755 index 00000000..bd5aff5a --- /dev/null +++ b/themes/baggy/img/baggy/list.png | |||
Binary files differ | |||
diff --git a/themes/baggy/img/baggy/table.png b/themes/baggy/img/baggy/table.png new file mode 100755 index 00000000..859c4cd8 --- /dev/null +++ b/themes/baggy/img/baggy/table.png | |||
Binary files differ | |||
diff --git a/themes/baggy/img/baggy/top.png b/themes/baggy/img/baggy/top.png new file mode 100644 index 00000000..954a8c0a --- /dev/null +++ b/themes/baggy/img/baggy/top.png | |||
Binary files differ | |||
diff --git a/themes/baggy/img/logo-other_themes.png b/themes/baggy/img/logo-other_themes.png new file mode 100755 index 00000000..32543a44 --- /dev/null +++ b/themes/baggy/img/logo-other_themes.png | |||
Binary files differ | |||
diff --git a/themes/baggy/js/autoClose.js b/themes/baggy/js/autoClose.js deleted file mode 100644 index e9145b7e..00000000 --- a/themes/baggy/js/autoClose.js +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | $(document).ready(function() { | ||
2 | current_url = window.location.href | ||
3 | if (current_url.match("&closewin=true")) { | ||
4 | window.close(); | ||
5 | } | ||
6 | }); | ||
diff --git a/themes/baggy/js/init.js b/themes/baggy/js/init.js index c1d3c0ec..00470fbf 100755 --- a/themes/baggy/js/init.js +++ b/themes/baggy/js/init.js | |||
@@ -1,12 +1,48 @@ | |||
1 | document.addEventListener('DOMContentLoaded', function() { | 1 | $.fn.ready(function() { |
2 | var menu = document.getElementById('menu'); | 2 | |
3 | 3 | var $listmode = $('#listmode'), | |
4 | menu.addEventListener('click', function(){ | 4 | $listentries = $("#list-entries"); |
5 | if(this.nextElementSibling.style.display === "block") { | 5 | |
6 | this.nextElementSibling.style.display = "none"; | 6 | /* ========================================================================== |
7 | }else { | 7 | Menu |
8 | this.nextElementSibling.style.display = "block"; | 8 | ========================================================================== */ |
9 | |||
10 | $("#menu").click(function(){ | ||
11 | $("#links").toggle(); | ||
12 | }); | ||
13 | |||
14 | /* ========================================================================== | ||
15 | List mode or Table Mode | ||
16 | ========================================================================== */ | ||
17 | |||
18 | $listmode.click(function(){ | ||
19 | if ( $.cookie("listmode") == 1 ) { | ||
20 | // Cookie | ||
21 | $.removeCookie("listmode"); | ||
22 | |||
23 | $listentries.removeClass("listmode"); | ||
24 | $listmode.removeClass("tablemode"); | ||
25 | $listmode.addClass("listmode"); | ||
9 | } | 26 | } |
10 | 27 | else { | |
28 | // Cookie | ||
29 | $.cookie("listmode", 1, {expires: 365}); | ||
30 | |||
31 | $listentries.addClass("listmode"); | ||
32 | $listmode.removeClass("listmode"); | ||
33 | $listmode.addClass("tablemode"); | ||
34 | } | ||
35 | |||
11 | }); | 36 | }); |
12 | }); \ No newline at end of file | 37 | |
38 | /* ========================================================================== | ||
39 | Cookie listmode | ||
40 | ========================================================================== */ | ||
41 | |||
42 | if ( $.cookie("listmode") == 1 ) { | ||
43 | $listentries.addClass("listmode"); | ||
44 | $listmode.removeClass("listmode"); | ||
45 | $listmode.addClass("tablemode"); | ||
46 | } | ||
47 | |||
48 | }); | ||
diff --git a/themes/baggy/js/jquery-2.0.3.min.js b/themes/baggy/js/jquery-2.0.3.min.js deleted file mode 100644 index a4dd0a2f..00000000 --- a/themes/baggy/js/jquery-2.0.3.min.js +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | (function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.attachEvent&&r!==r.top&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ut(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[v]&&(r=bt(r)),i&&!i[v]&&(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=yt(function(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return bt(l>1&&vt(f),l>1&&mt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&wt(e.slice(l,r)),o>r&&wt(e=e.slice(r)),o>r&&mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split("").sort(S).join("")===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||lt("type|href|height|width",function(e,t,n){return n?undefined:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||lt("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&&"string"==typeof t&&n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ct={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1></$2>")+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[q.expando],o&&(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&&delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=q.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(xt[0].contentWindow||xt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=Mt(e,t),xt.detach()),Nt[e]=n),n}function Mt(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,t){x.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&bt.test(x.css(e,"display"))?x.swap(e,Et,function(){return Pt(e,t,r)}):Pt(e,t,r):undefined},set:function(e,n,r){var i=r&&qt(e);return Ot(e,n,r?Ft(e,t,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,t){return t?x.swap(e,{display:"inline-block"},vt,[e,"marginRight"]):undefined}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,t){x.cssHooks[t]={get:function(e,n){return n?(n=vt(e,t),Ct.test(n)?x(e).position()[t]+"px":n):undefined}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+jt[r]+t]=o[r]||o[r-2]||o[0];return i}},wt.test(e)||(x.cssHooks[e+t].set=Ot)});var Wt=/%20/g,$t=/\[\]$/,Bt=/\r?\n/g,It=/^(?:submit|button|image|reset|file)$/i,zt=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&zt.test(this.nodeName)&&!It.test(e)&&(this.checked||!ot.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(Bt,"\r\n")}}):{name:t.name,value:n.replace(Bt,"\r\n")}}).get()}}),x.param=function(e,t){var n,r=[],i=function(e,t){t=x.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(t===undefined&&(t=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){i(this.name,this.value)});else for(n in e)_t(n,e[n],t,i);return r.join("&").replace(Wt,"+")};function _t(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||$t.test(e)?r(e,i):_t(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)_t(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Xt,Ut,Yt=x.now(),Vt=/\?/,Gt=/#.*$/,Jt=/([?&])_=[^&]*/,Qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Kt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Zt=/^(?:GET|HEAD)$/,en=/^\/\//,tn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,nn=x.fn.load,rn={},on={},sn="*/".concat("*");try{Ut=i.href}catch(an){Ut=o.createElement("a"),Ut.href="",Ut=Ut.href}Xt=tn.exec(Ut.toLowerCase())||[];function un(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function ln(e,t,n,r){var i={},o=e===on;function s(a){var u;return i[a]=!0,x.each(e[a]||[],function(e,a){var l=a(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):undefined:(t.dataTypes.unshift(l),s(l),!1)}),u}return s(t.dataTypes[0])||!i["*"]&&s("*")}function cn(e,t){var n,r,i=x.ajaxSettings.flatOptions||{};for(n in t)t[n]!==undefined&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,t,n){if("string"!=typeof e&&nn)return nn.apply(this,arguments);var r,i,o,s=this,a=e.indexOf(" ");return a>=0&&(r=e.slice(a),e=e.slice(0,a)),x.isFunction(t)?(n=t,t=undefined):t&&"object"==typeof t&&(i="POST"),s.length>0&&x.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){o=arguments,s.html(r?x("<div>").append(x.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){s.each(n,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ut,type:"GET",isLocal:Kt.test(Xt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":sn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?cn(cn(e,x.ajaxSettings),t):cn(x.ajaxSettings,e)},ajaxPrefilter:un(rn),ajaxTransport:un(on),ajax:function(e,t){"object"==typeof e&&(t=e,e=undefined),t=t||{};var n,r,i,o,s,a,u,l,c=x.ajaxSetup({},t),p=c.context||c,f=c.context&&(p.nodeType||p.jquery)?x(p):x.event,h=x.Deferred(),d=x.Callbacks("once memory"),g=c.statusCode||{},m={},y={},v=0,b="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===v){if(!o){o={};while(t=Qt.exec(i))o[t[1].toLowerCase()]=t[2]}t=o[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===v?i:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return v||(e=y[n]=y[n]||e,m[e]=t),this},overrideMimeType:function(e){return v||(c.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>v)for(t in e)g[t]=[g[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||b;return n&&n.abort(t),k(0,t),this}};if(h.promise(T).complete=d.add,T.success=T.done,T.error=T.fail,c.url=((e||c.url||Ut)+"").replace(Gt,"").replace(en,Xt[1]+"//"),c.type=t.method||t.type||c.method||c.type,c.dataTypes=x.trim(c.dataType||"*").toLowerCase().match(w)||[""],null==c.crossDomain&&(a=tn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===Xt[1]&&a[2]===Xt[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(Xt[3]||("http:"===Xt[1]?"80":"443")))),c.data&&c.processData&&"string"!=typeof c.data&&(c.data=x.param(c.data,c.traditional)),ln(rn,c,t,T),2===v)return T;u=c.global,u&&0===x.active++&&x.event.trigger("ajaxStart"),c.type=c.type.toUpperCase(),c.hasContent=!Zt.test(c.type),r=c.url,c.hasContent||(c.data&&(r=c.url+=(Vt.test(r)?"&":"?")+c.data,delete c.data),c.cache===!1&&(c.url=Jt.test(r)?r.replace(Jt,"$1_="+Yt++):r+(Vt.test(r)?"&":"?")+"_="+Yt++)),c.ifModified&&(x.lastModified[r]&&T.setRequestHeader("If-Modified-Since",x.lastModified[r]),x.etag[r]&&T.setRequestHeader("If-None-Match",x.etag[r])),(c.data&&c.hasContent&&c.contentType!==!1||t.contentType)&&T.setRequestHeader("Content-Type",c.contentType),T.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+("*"!==c.dataTypes[0]?", "+sn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)T.setRequestHeader(l,c.headers[l]);if(c.beforeSend&&(c.beforeSend.call(p,T,c)===!1||2===v))return T.abort();b="abort";for(l in{success:1,error:1,complete:1})T[l](c[l]);if(n=ln(on,c,t,T)){T.readyState=1,u&&f.trigger("ajaxSend",[T,c]),c.async&&c.timeout>0&&(s=setTimeout(function(){T.abort("timeout")},c.timeout));try{v=1,n.send(m,k)}catch(C){if(!(2>v))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,t,o,a){var l,m,y,b,w,C=t;2!==v&&(v=2,s&&clearTimeout(s),n=undefined,i=a||"",T.readyState=e>0?4:0,l=e>=200&&300>e||304===e,o&&(b=pn(c,T,o)),b=fn(c,b,T,l),l?(c.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(x.lastModified[r]=w),w=T.getResponseHeader("etag"),w&&(x.etag[r]=w)),204===e||"HEAD"===c.type?C="nocontent":304===e?C="notmodified":(C=b.state,m=b.data,y=b.error,l=!y)):(y=C,(e||!C)&&(C="error",0>e&&(e=0))),T.status=e,T.statusText=(t||C)+"",l?h.resolveWith(p,[m,C,T]):h.rejectWith(p,[T,C,y]),T.statusCode(g),g=undefined,u&&f.trigger(l?"ajaxSuccess":"ajaxError",[T,c,l?m:y]),d.fireWith(p,[T,C]),u&&(f.trigger("ajaxComplete",[T,c]),--x.active||x.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,t){return x.get(e,undefined,t,"script")}}),x.each(["get","post"],function(e,t){x[t]=function(e,n,r,i){return x.isFunction(n)&&(i=i||r,r=n,n=undefined),x.ajax({url:e,type:t,dataType:i,data:n,success:r})}});function pn(e,t,n){var r,i,o,s,a=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),r===undefined&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}s||(s=i)}o=o||s}return o?(o!==u[0]&&u.unshift(o),n[o]):undefined}function fn(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(s=l[u+" "+o]||l["* "+o],!s)for(i in l)if(a=i.split(" "),a[1]===o&&(s=l[u+" "+a[0]]||l["* "+a[0]])){s===!0?s=l[i]:l[i]!==!0&&(o=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&e["throws"])t=s(t);else try{t=s(t)}catch(p){return{state:"parsererror",error:s?p:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),x.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=x("<script>").prop({async:!0,charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),o.head.appendChild(t[0])},abort:function(){n&&n()}}}});var hn=[],dn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=hn.pop()||x.expando+"_"+Yt++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,s,a=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");return a||"jsonp"===t.dataTypes[0]?(i=t.jsonpCallback=x.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(Vt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return s||x.error(i+" was not called"),s[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){s=arguments},r.always(function(){e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,hn.push(i)),s&&x.isFunction(o)&&o(s[0]),s=o=undefined}),"script"):undefined}),x.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var gn=x.ajaxSettings.xhr(),mn={0:200,1223:204},yn=0,vn={};e.ActiveXObject&&x(e).on("unload",function(){for(var e in vn)vn[e]();vn=undefined}),x.support.cors=!!gn&&"withCredentials"in gn,x.support.ajax=gn=!!gn,x.ajaxTransport(function(e){var t;return x.support.cors||gn&&!e.crossDomain?{send:function(n,r){var i,o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)s[i]=e.xhrFields[i];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)s.setRequestHeader(i,n[i]);t=function(e){return function(){t&&(delete vn[o],t=s.onload=s.onerror=null,"abort"===e?s.abort():"error"===e?r(s.status||404,s.statusText):r(mn[s.status]||s.status,s.statusText,"string"==typeof s.responseText?{text:s.responseText}:undefined,s.getAllResponseHeaders()))}},s.onload=t(),s.onerror=t("error"),t=vn[o=yn++]=t("abort"),s.send(e.hasContent&&e.data||null)},abort:function(){t&&t()}}:undefined});var xn,bn,wn=/^(?:toggle|show|hide)$/,Tn=RegExp("^(?:([+-])=|)("+b+")([a-z%]*)$","i"),Cn=/queueHooks$/,kn=[An],Nn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Tn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),s=(x.cssNumber[e]||"px"!==o&&+r)&&Tn.exec(x.css(n.elem,e)),a=1,u=20;if(s&&s[3]!==o){o=o||s[3],i=i||[],s=+r||1;do a=a||".5",s/=a,x.style(n.elem,e,s+o);while(a!==(a=n.cur()/r)&&1!==a&&--u)}return i&&(s=n.start=+s||+r||0,n.unit=o,n.end=i[1]?s+(i[1]+1)*i[2]:+i[2]),n}]};function En(){return setTimeout(function(){xn=undefined}),xn=x.now()}function Sn(e,t,n){var r,i=(Nn[t]||[]).concat(Nn["*"]),o=0,s=i.length;for(;s>o;o++)if(r=i[o].call(n,t,e))return r}function jn(e,t,n){var r,i,o=0,s=kn.length,a=x.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=xn||En(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,s=0,u=l.tweens.length;for(;u>s;s++)l.tweens[s].run(o);return a.notifyWith(e,[l,o,n]),1>o&&u?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:xn||En(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),c=l.props;for(Dn(c,l.opts.specialEasing);s>o;o++)if(r=kn[o].call(l,e,c,l.opts))return r;return x.map(c,Sn,l),x.isFunction(l.opts.start)&&l.opts.start.call(e,l),x.fx.timer(x.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function Dn(e,t){var n,r,i,o,s;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),s=x.cssHooks[r],s&&"expand"in s){o=s.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(jn,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Nn[n]=Nn[n]||[],Nn[n].unshift(t)},prefilter:function(e,t){t?kn.unshift(e):kn.push(e)}});function An(e,t,n){var r,i,o,s,a,u,l=this,c={},p=e.style,f=e.nodeType&&Lt(e),h=q.get(e,"fxshow");n.queue||(a=x._queueHooks(e,"fx"),null==a.unqueued&&(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,l.always(function(){l.always(function(){a.unqueued--,x.queue(e,"fx").length||a.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",l.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],wn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show")){if("show"!==i||!h||h[r]===undefined)continue;f=!0}c[r]=h&&h[r]||x.style(e,r)}if(!x.isEmptyObject(c)){h?"hidden"in h&&(f=h.hidden):h=q.access(e,"fxshow",{}),o&&(h.hidden=!f),f?x(e).show():l.done(function(){x(e).hide()}),l.done(function(){var t;q.remove(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)s=Sn(f?h[r]:0,r,l),r in h||(h[r]=s.start,f&&(s.end=s.start,s.start="width"===r||"height"===r?1:0))}}function Ln(e,t,n,r,i){return new Ln.prototype.init(e,t,n,r,i)}x.Tween=Ln,Ln.prototype={constructor:Ln,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=Ln.propHooks[this.prop];return e&&e.get?e.get(this):Ln.propHooks._default.get(this)},run:function(e){var t,n=Ln.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ln.propHooks._default.set(this),this}},Ln.prototype.init.prototype=Ln.prototype,Ln.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Ln.propHooks.scrollTop=Ln.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(qn(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Lt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),s=function(){var t=jn(this,x.extend({},e),o);(i||q.get(this,"finish"))&&t.stop(!0)};return s.finish=s,i||o.queue===!1?this.each(s):this.queue(o.queue,s)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=undefined),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=x.timers,s=q.get(this);if(i)s[i]&&s[i].stop&&r(s[i]);else for(i in s)s[i]&&s[i].stop&&Cn.test(i)&&r(s[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=q.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,s=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;s>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function qn(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=jt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:qn("show"),slideUp:qn("hide"),slideToggle:qn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=Ln.prototype.init,x.fx.tick=function(){var e,t=x.timers,n=0;for(xn=x.now();t.length>n;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||x.fx.stop(),xn=undefined},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){bn||(bn=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(bn),bn=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===undefined?this:this.each(function(t){x.offset.setOffset(this,e,t)});var t,n,i=this[0],o={top:0,left:0},s=i&&i.ownerDocument;if(s)return t=s.documentElement,x.contains(t,i)?(typeof i.getBoundingClientRect!==r&&(o=i.getBoundingClientRect()),n=Hn(s),{top:o.top+n.pageYOffset-t.clientTop,left:o.left+n.pageXOffset-t.clientLeft}):o},x.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,l,c=x.css(e,"position"),p=x(e),f={};"static"===c&&(e.style.position="relative"),a=p.offset(),o=x.css(e,"top"),u=x.css(e,"left"),l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1,l?(r=p.position(),s=r.top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(u)||0),x.isFunction(t)&&(t=t.call(e,n,a)),null!=t.top&&(f.top=t.top-a.top+s),null!=t.left&&(f.left=t.left-a.left+i),"using"in t?t.using.call(e,f):p.css(f)}},x.fn.extend({position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===x.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(r=e.offset()),r.top+=x.css(e[0],"borderTopWidth",!0),r.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-x.css(n,"marginTop",!0),left:t.left-r.left-x.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,n){var r="pageYOffset"===n;x.fn[t]=function(i){return x.access(this,function(t,i,o){var s=Hn(t);return o===undefined?s?s[n]:t[i]:(s?s.scrollTo(r?e.pageXOffset:o,r?o:e.pageYOffset):t[i]=o,undefined)},t,i,arguments.length,null)}});function Hn(e){return x.isWindow(e)?e:9===e.nodeType&&e.defaultView}x.each({Height:"height",Width:"width"},function(e,t){x.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){x.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),s=n||(r===!0||i===!0?"margin":"border");return x.access(this,function(t,n,r){var i;return x.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):r===undefined?x.css(t,n,s):x.style(t,n,r,s)},t,o?r:undefined,o,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}),"object"==typeof e&&"object"==typeof e.document&&(e.jQuery=e.$=x)})(window); \ No newline at end of file | ||
diff --git a/themes/baggy/js/jquery.cookie.js b/themes/baggy/js/jquery.cookie.js new file mode 100755 index 00000000..92719000 --- /dev/null +++ b/themes/baggy/js/jquery.cookie.js | |||
@@ -0,0 +1,117 @@ | |||
1 | /*! | ||
2 | * jQuery Cookie Plugin v1.4.0 | ||
3 | * https://github.com/carhartl/jquery-cookie | ||
4 | * | ||
5 | * Copyright 2013 Klaus Hartl | ||
6 | * Released under the MIT license | ||
7 | */ | ||
8 | (function (factory) { | ||
9 | if (typeof define === 'function' && define.amd) { | ||
10 | // AMD. Register as anonymous module. | ||
11 | define(['jquery'], factory); | ||
12 | } else { | ||
13 | // Browser globals. | ||
14 | factory(jQuery); | ||
15 | } | ||
16 | }(function ($) { | ||
17 | |||
18 | var pluses = /\+/g; | ||
19 | |||
20 | function encode(s) { | ||
21 | return config.raw ? s : encodeURIComponent(s); | ||
22 | } | ||
23 | |||
24 | function decode(s) { | ||
25 | return config.raw ? s : decodeURIComponent(s); | ||
26 | } | ||
27 | |||
28 | function stringifyCookieValue(value) { | ||
29 | return encode(config.json ? JSON.stringify(value) : String(value)); | ||
30 | } | ||
31 | |||
32 | function parseCookieValue(s) { | ||
33 | if (s.indexOf('"') === 0) { | ||
34 | // This is a quoted cookie as according to RFC2068, unescape... | ||
35 | s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); | ||
36 | } | ||
37 | |||
38 | try { | ||
39 | // Replace server-side written pluses with spaces. | ||
40 | // If we can't decode the cookie, ignore it, it's unusable. | ||
41 | s = decodeURIComponent(s.replace(pluses, ' ')); | ||
42 | } catch(e) { | ||
43 | return; | ||
44 | } | ||
45 | |||
46 | try { | ||
47 | // If we can't parse the cookie, ignore it, it's unusable. | ||
48 | return config.json ? JSON.parse(s) : s; | ||
49 | } catch(e) {} | ||
50 | } | ||
51 | |||
52 | function read(s, converter) { | ||
53 | var value = config.raw ? s : parseCookieValue(s); | ||
54 | return $.isFunction(converter) ? converter(value) : value; | ||
55 | } | ||
56 | |||
57 | var config = $.cookie = function (key, value, options) { | ||
58 | |||
59 | // Write | ||
60 | if (value !== undefined && !$.isFunction(value)) { | ||
61 | options = $.extend({}, config.defaults, options); | ||
62 | |||
63 | if (typeof options.expires === 'number') { | ||
64 | var days = options.expires, t = options.expires = new Date(); | ||
65 | t.setDate(t.getDate() + days); | ||
66 | } | ||
67 | |||
68 | return (document.cookie = [ | ||
69 | encode(key), '=', stringifyCookieValue(value), | ||
70 | options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE | ||
71 | options.path ? '; path=' + options.path : '', | ||
72 | options.domain ? '; domain=' + options.domain : '', | ||
73 | options.secure ? '; secure' : '' | ||
74 | ].join('')); | ||
75 | } | ||
76 | |||
77 | // Read | ||
78 | |||
79 | var result = key ? undefined : {}; | ||
80 | |||
81 | // To prevent the for loop in the first place assign an empty array | ||
82 | // in case there are no cookies at all. Also prevents odd result when | ||
83 | // calling $.cookie(). | ||
84 | var cookies = document.cookie ? document.cookie.split('; ') : []; | ||
85 | |||
86 | for (var i = 0, l = cookies.length; i < l; i++) { | ||
87 | var parts = cookies[i].split('='); | ||
88 | var name = decode(parts.shift()); | ||
89 | var cookie = parts.join('='); | ||
90 | |||
91 | if (key && key === name) { | ||
92 | // If second argument (value) is a function it's a converter... | ||
93 | result = read(cookie, value); | ||
94 | break; | ||
95 | } | ||
96 | |||
97 | // Prevent storing a cookie that we couldn't decode. | ||
98 | if (!key && (cookie = read(cookie)) !== undefined) { | ||
99 | result[name] = cookie; | ||
100 | } | ||
101 | } | ||
102 | |||
103 | return result; | ||
104 | }; | ||
105 | |||
106 | config.defaults = {}; | ||
107 | |||
108 | $.removeCookie = function (key, options) { | ||
109 | if ($.cookie(key) !== undefined) { | ||
110 | // Must not alter options, thus extending a fresh object... | ||
111 | $.cookie(key, '', $.extend({}, options, { expires: -1 })); | ||
112 | return true; | ||
113 | } | ||
114 | return false; | ||
115 | }; | ||
116 | |||
117 | })); | ||
diff --git a/themes/baggy/layout.twig b/themes/baggy/layout.twig index dfebc3ea..8de12749 100644..100755 --- a/themes/baggy/layout.twig +++ b/themes/baggy/layout.twig | |||
@@ -21,6 +21,9 @@ | |||
21 | {% block precontent %}{% endblock %} | 21 | {% block precontent %}{% endblock %} |
22 | {% block messages %} | 22 | {% block messages %} |
23 | {% include '_messages.twig' %} | 23 | {% include '_messages.twig' %} |
24 | {% if includeImport %} | ||
25 | {% include '_import.twig' %} | ||
26 | {% endif %} | ||
24 | {% endblock %} | 27 | {% endblock %} |
25 | <div id="content" class="w600p center"> | 28 | <div id="content" class="w600p center"> |
26 | {% block content %}{% endblock %} | 29 | {% block content %}{% endblock %} |
diff --git a/themes/baggy/tags.twig b/themes/baggy/tags.twig index 9df44bb7..9bb93a45 100644..100755 --- a/themes/baggy/tags.twig +++ b/themes/baggy/tags.twig | |||
@@ -6,7 +6,7 @@ | |||
6 | {% block content %} | 6 | {% block content %} |
7 | <h2>{% trans "Tags" %}</h2> | 7 | <h2>{% trans "Tags" %}</h2> |
8 | <ul class="list-tags"> | 8 | <ul class="list-tags"> |
9 | {% for tag in tags %}<li>{% if token != '' %}<a class="icon icon-rss" href="?feed&type=tag&user_id={{ user_id }}&tag_id={{ tag.id }}&token={{ token }}" target="_blank"><span>rss</span></a>{% endif %} <a href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> | 9 | {% for tag in tags %}<li>{% if token != '' %}<a class="icon icon-rss" href="?feed&type=tag&user_id={{ user_id }}&tag_id={{ tag.id }}&token={{ token }}" target="_blank"><span>rss</span></a>{% endif %} <a href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> ({{ tag.entriescount }}) |
10 | </li> | 10 | </li> |
11 | {% endfor %} | 11 | {% endfor %} |
12 | </ul> | 12 | </ul> |
diff --git a/themes/baggy/view.twig b/themes/baggy/view.twig index 4751c4cb..ffb512a3 100644..100755 --- a/themes/baggy/view.twig +++ b/themes/baggy/view.twig | |||
@@ -14,7 +14,7 @@ | |||
14 | {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans "Tweet" %}"><span>{% trans "Tweet" %}</span></a></li>{% endif %} | 14 | {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans "Tweet" %}"><span>{% trans "Tweet" %}</span></a></li>{% endif %} |
15 | {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans "Email" %}"><span>{% trans "Email" %}</span></a></li>{% endif %} | 15 | {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans "Email" %}"><span>{% trans "Email" %}</span></a></li>{% endif %} |
16 | {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %} | 16 | {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %} |
17 | {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span> ({{ flattr.numflattrs }})</a></li>{% endif %}{% endif %} | 17 | {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span> ({{ flattr.numflattrs }})</a></li>{% endif %}{% endif %} |
18 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{% trans "Does this article appear wrong?" %}" class="tool bad-display icon icon-delete"><span>{% trans "Does this article appear wrong?" %}</span></a></li> | 18 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{% trans "Does this article appear wrong?" %}" class="tool bad-display icon icon-delete"><span>{% trans "Does this article appear wrong?" %}</span></a></li> |
19 | </ul> | 19 | </ul> |
20 | </div> | 20 | </div> |
@@ -29,4 +29,23 @@ | |||
29 | {{ content | raw }} | 29 | {{ content | raw }} |
30 | </article> | 30 | </article> |
31 | </div> | 31 | </div> |
32 | <script src="{{ poche_url }}themes/{{theme}}/js/restoreScroll.js"></script> | ||
33 | <script type="text/javascript"> | ||
34 | $(document).ready(function() { | ||
35 | |||
36 | $(window).scroll(function(e){ | ||
37 | var scrollTop = $(window).scrollTop(); | ||
38 | var docHeight = $(document).height(); | ||
39 | var scrollPercent = (scrollTop) / (docHeight); | ||
40 | var scrollPercentRounded = Math.round(scrollPercent*100)/100; | ||
41 | savePercent({{ entry.id|e }}, scrollPercentRounded); | ||
42 | }); | ||
43 | |||
44 | retrievePercent({{ entry.id|e }}); | ||
45 | |||
46 | $(window).resize(function(){ | ||
47 | retrievePercent({{ entry.id|e }}); | ||
48 | }); | ||
49 | }); | ||
50 | </script> | ||
32 | {% endblock %} | 51 | {% endblock %} |
diff --git a/themes/courgette/_head.twig b/themes/courgette/_head.twig index 57b40f41..059936d9 100755 --- a/themes/courgette/_head.twig +++ b/themes/courgette/_head.twig | |||
@@ -1,11 +1,11 @@ | |||
1 | <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/{{theme}}/img/favicon.ico" /> | 1 | <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/{{theme}}/img/favicon.ico" /> |
2 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-144x144-precomposed.png"> | 2 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-144x144-precomposed.png"> |
3 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-72x72-precomposed.png"> | 3 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-72x72-precomposed.png"> |
4 | <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-precomposed.png"> | 4 | <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-precomposed.png"> |
5 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/font.css" media="all"> | 5 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/font.css" media="all"> |
6 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/style.css" media="all"> | 6 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/style.css" media="all"> |
7 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/messages.css" media="all"> | 7 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/messages.css" media="all"> |
8 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/print.css" media="print"> | 8 | <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/print.css" media="print"> |
9 | <link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'> | 9 | <link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'> |
10 | <script src="//codeorigin.jquery.com/jquery-2.0.3.min.js"></script> | 10 | <script src="//codeorigin.jquery.com/jquery-2.0.3.min.js"></script> |
11 | <script src="{{ poche_url }}/themes/{{theme}}/js/init.js"></script> | 11 | <script src="{{ poche_url }}themes/{{theme}}/js/init.js"></script> |
diff --git a/themes/courgette/_top.twig b/themes/courgette/_top.twig index 792687c0..2d41db17 100755 --- a/themes/courgette/_top.twig +++ b/themes/courgette/_top.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | <header> | 1 | <header> |
2 | <h1> | 2 | <h1> |
3 | {% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/logo.svg" alt="logo poche" />{% endblock %} | 3 | {% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}themes/{{theme}}/img/logo.svg" alt="wallabag logo" />{% endblock %} |
4 | {% elseif view == 'fav' %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }} <span>Favoris</span></a> | 4 | {% elseif view == 'fav' %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }} <span>Favoris</span></a> |
5 | {% elseif view == 'archive' %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }} <span>Archive</span></a> | 5 | {% elseif view == 'archive' %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }} <span>Archive</span></a> |
6 | {% else %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }}</a> | 6 | {% else %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }}</a> |
diff --git a/themes/courgette/_view.twig b/themes/courgette/_view.twig index e80829ef..9f9ea4f6 100755 --- a/themes/courgette/_view.twig +++ b/themes/courgette/_view.twig | |||
@@ -23,7 +23,7 @@ | |||
23 | {{ content | raw }} | 23 | {{ content | raw }} |
24 | </article> | 24 | </article> |
25 | </div> | 25 | </div> |
26 | <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/restoreScroll.js"></script> | 26 | <script src="{{ poche_url }}themes/{{theme}}/js/restoreScroll.js"></script> |
27 | <script type="text/javascript"> | 27 | <script type="text/javascript"> |
28 | $(document).ready(function() { | 28 | $(document).ready(function() { |
29 | 29 | ||
diff --git a/themes/courgette/config.twig b/themes/courgette/config.twig index 26da7289..5c0aa4b1 100755 --- a/themes/courgette/config.twig +++ b/themes/courgette/config.twig | |||
@@ -7,7 +7,7 @@ | |||
7 | {% block content %} | 7 | {% block content %} |
8 | <div id="config"> | 8 | <div id="config"> |
9 | <h2>{% trans "Poching a link" %}</h2> | 9 | <h2>{% trans "Poching a link" %}</h2> |
10 | <p>{% trans "You can poche a link by several methods:" %} (<a class="special" href="http://doc.wallabag.org" title="{% trans "read the documentation" %}">?</a>)</p> | 10 | <p>{% trans "There are several ways to save an article:" %} (<a class="special" href="http://doc.wallabag.org" title="{% trans "read the documentation" %}">?</a>)</p> |
11 | <ul> | 11 | <ul> |
12 | <li>firefox: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.xpi" title="download the firefox extension">{% trans "download the extension" %}</a></li> | 12 | <li>firefox: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.xpi" title="download the firefox extension">{% trans "download the extension" %}</a></li> |
13 | <li>chrome: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.crx" title="download the chrome extension">{% trans "download the extension" %}</a></li> | 13 | <li>chrome: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.crx" title="download the chrome extension">{% trans "download the extension" %}</a></li> |
@@ -16,13 +16,13 @@ | |||
16 | <form method="get" action="index.php"> | 16 | <form method="get" action="index.php"> |
17 | <label class="addurl" for="plainurl">{% trans "by filling this field" %}:</label> | 17 | <label class="addurl" for="plainurl">{% trans "by filling this field" %}:</label> |
18 | <input required placeholder="Ex:mywebsite.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> | 18 | <input required placeholder="Ex:mywebsite.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> |
19 | <input type="submit" value="{% trans "poche it!" %}" /> | 19 | <input type="submit" value="{% trans "bag it!" %}" /> |
20 | </form> | 20 | </form> |
21 | </li> | 21 | </li> |
22 | <li>{% trans "bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "poche it!" %}</a></li> | 22 | <li>{% trans "bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "bag it!" %}</a></li> |
23 | </ul> | 23 | </ul> |
24 | 24 | ||
25 | <h2>{% trans "Updating poche" %}</h2> | 25 | <h2>{% trans "Upgrading wallabag" %}</h2> |
26 | <ul> | 26 | <ul> |
27 | <li>{% trans "your version" %} : <strong>{{ constant('POCHE') }}</strong></li> | 27 | <li>{% trans "your version" %} : <strong>{{ constant('POCHE') }}</strong></li> |
28 | <li>{% trans "latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "a more recent stable version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li> | 28 | <li>{% trans "latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "a more recent stable version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li> |
@@ -76,7 +76,7 @@ | |||
76 | <li><a href="./?import&from=instapaper">{% trans "import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li> | 76 | <li><a href="./?import&from=instapaper">{% trans "import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li> |
77 | </ul> | 77 | </ul> |
78 | 78 | ||
79 | <h2>{% trans "Export your poche datas" %}</h2> | 79 | <h2>{% trans "Export your wallabag data" %}</h2> |
80 | <p><a href="./?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your poche datas." %}</p> | 80 | <p><a href="./?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p> |
81 | </div> | 81 | </div> |
82 | {% endblock %} \ No newline at end of file | 82 | {% endblock %} \ No newline at end of file |
diff --git a/themes/courgette/home.twig b/themes/courgette/home.twig index 416cfa43..6ba72d35 100755 --- a/themes/courgette/home.twig +++ b/themes/courgette/home.twig | |||
@@ -14,8 +14,8 @@ | |||
14 | {% block precontent %} | 14 | {% block precontent %} |
15 | {% if entries|length > 1 %} | 15 | {% if entries|length > 1 %} |
16 | <ul id="sort"> | 16 | <ul id="sort"> |
17 | <li><a href="./?sort=ia&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li> | 17 | <li><a href="./?sort=ia&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li> |
18 | <li><a href="./?sort=ta&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li> | 18 | <li><a href="./?sort=ta&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li> |
19 | </ul> | 19 | </ul> |
20 | {% endif %} | 20 | {% endif %} |
21 | {% endblock %} | 21 | {% endblock %} |
@@ -26,9 +26,15 @@ | |||
26 | {% block pager %} | 26 | {% block pager %} |
27 | {% if nb_results > 1 %} | 27 | {% if nb_results > 1 %} |
28 | <div class="results"> | 28 | <div class="results"> |
29 | <div class="nb-results">{{ nb_results }} {% trans "results" %}</div> | 29 | <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div> |
30 | {{ page_links | raw }} | 30 | {{ page_links | raw }} |
31 | </div> | 31 | </div> |
32 | {% elseif nb_results == 1 %} | ||
33 | {% if search_term is defined %} | ||
34 | <div class="results"> | ||
35 | <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div> | ||
36 | </div> | ||
37 | {% endif %} | ||
32 | {% endif %} | 38 | {% endif %} |
33 | {% endblock %} | 39 | {% endblock %} |
34 | {% for entry in entries %} | 40 | {% for entry in entries %} |
diff --git a/themes/courgette/tags.twig b/themes/courgette/tags.twig index 9dfdab52..b11dce28 100644..100755 --- a/themes/courgette/tags.twig +++ b/themes/courgette/tags.twig | |||
@@ -4,5 +4,5 @@ | |||
4 | {% include '_menu.twig' %} | 4 | {% include '_menu.twig' %} |
5 | {% endblock %} | 5 | {% endblock %} |
6 | {% block content %} | 6 | {% block content %} |
7 | {% for tag in tags %}<a class="tag" href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> {% if token != '' %}<a href="?feed&type=tag&user_id={{ user_id }}&tag_id={{ tag.id }}&token={{ token }}" target="_blank"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/rss.png" /></a>{% endif %} {% endfor %} | 7 | {% for tag in tags %}<a class="tag" href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> {% if token != '' %}<a href="?feed&type=tag&user_id={{ user_id }}&tag_id={{ tag.id }}&token={{ token }}" target="_blank"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/rss.png" /></a>{% endif %} {% endfor %} |
8 | {% endblock %} \ No newline at end of file | 8 | {% endblock %} \ No newline at end of file |
diff --git a/themes/default/_bookmarklet.twig b/themes/default/_bookmarklet.twig index 2e3071ad..61996353 100644 --- a/themes/default/_bookmarklet.twig +++ b/themes/default/_bookmarklet.twig | |||
@@ -1,3 +1,3 @@ | |||
1 | <script type="text/javascript"> | 1 | <script type="text/javascript"> |
2 | top["bookmarklet-url@wallabag.org"]=""+"<!DOCTYPE html>"+"<html>"+"<head>"+"<title>poche it !</title>"+'<link rel="icon" href="{{poche_url}}tpl/img/favicon.ico" />'+"</head>"+"<body>"+"<script>"+"window.onload=function(){"+"window.setTimeout(function(){"+"history.back();"+"},250);"+"};"+"</scr"+"ipt>"+"</body>"+"</html>" | 2 | top["bookmarklet-url@wallabag.org"]=""+"<!DOCTYPE html>"+"<html>"+"<head>"+"<title>bag it!</title>"+'<link rel="icon" href="{{poche_url}}tpl/img/favicon.ico" />'+"</head>"+"<body>"+"<script>"+"window.onload=function(){"+"window.setTimeout(function(){"+"history.back();"+"},250);"+"};"+"</scr"+"ipt>"+"</body>"+"</html>" |
3 | </script> \ No newline at end of file | 3 | </script> \ No newline at end of file |
diff --git a/themes/default/_head.twig b/themes/default/_head.twig index f310e420..ffbfc22e 100644..100755 --- a/themes/default/_head.twig +++ b/themes/default/_head.twig | |||
@@ -1,12 +1,13 @@ | |||
1 | <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/default/img/favicon.ico" /> | 1 | <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/default/img/favicon.ico" /> |
2 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/default/img/apple-touch-icon-144x144-precomposed.png"> | 2 | <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}themes/default/img/apple-touch-icon-144x144-precomposed.png"> |
3 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/default/img/apple-touch-icon-72x72-precomposed.png"> | 3 | <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}themes/default/img/apple-touch-icon-72x72-precomposed.png"> |
4 | <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/default/img/apple-touch-icon-precomposed.png"> | 4 | <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}themes/default/img/apple-touch-icon-precomposed.png"> |
5 | <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/knacss.css" media="all"> | 5 | <link rel="stylesheet" href="{{ poche_url }}themes/default/css/knacss.css" media="all"> |
6 | <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/style.css" media="all"> | 6 | <link rel="stylesheet" href="{{ poche_url }}themes/default/css/style.css" media="all"> |
7 | <link rel="stylesheet" href="{{ poche_url }}/themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme"> | 7 | <link rel="stylesheet" href="{{ poche_url }}themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme"> |
8 | <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/messages.css" media="all"> | 8 | <link rel="stylesheet" href="{{ poche_url }}themes/default/css/messages.css" media="all"> |
9 | <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/print.css" media="print"> | 9 | <link rel="stylesheet" href="{{ poche_url }}themes/default/css/print.css" media="print"> |
10 | <script src="{{ poche_url }}/themes/default/js/jquery-2.0.3.min.js"></script> | 10 | <script src="{{ poche_url }}themes/default/js/jquery-2.0.3.min.js"></script> |
11 | <script src="{{ poche_url }}/themes/default/js/autoClose.js"></script> | 11 | <script src="{{ poche_url }}themes/default/js/autoClose.js"></script> |
12 | <script src="{{ poche_url }}/themes/default/js/closeMessage.js"></script> \ No newline at end of file | 12 | <script src="{{ poche_url }}themes/default/js/closeMessage.js"></script> |
13 | <script src="{{ poche_url }}themes/default/js/saveLink.js"></script> | ||
diff --git a/themes/default/_import.twig b/themes/default/_import.twig new file mode 100755 index 00000000..c59b7a15 --- /dev/null +++ b/themes/default/_import.twig | |||
@@ -0,0 +1,15 @@ | |||
1 | <script type="text/javascript"> | ||
2 | <!-- | ||
3 | $(document).ready(function() { | ||
4 | $("body").css("cursor", "wait"); | ||
5 | |||
6 | setTimeout(function(){ | ||
7 | window.location = './?import'; | ||
8 | }, {{ import.delay }} ); | ||
9 | }); | ||
10 | //--> | ||
11 | </script> | ||
12 | <div class="messages warning"> | ||
13 | <p>{% trans "Download required for " %} {{ import.recordsDownloadRequired }} {% trans "records" %}.</p> | ||
14 | <p>{% trans "Downloading next " %} {{ import.recordsUnderDownload }} {% trans "articles, please wait" %}...</p> | ||
15 | </div> | ||
diff --git a/themes/default/_menu.twig b/themes/default/_menu.twig index 55583b3d..0daa0b03 100644 --- a/themes/default/_menu.twig +++ b/themes/default/_menu.twig | |||
@@ -3,9 +3,11 @@ | |||
3 | <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li> | 3 | <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li> |
4 | <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li> | 4 | <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li> |
5 | <li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li> | 5 | <li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li> |
6 | <li><a href="javascript: void(null);" id="pocheit">{% trans "save a link" %}</a><span id="pocheit-arrow"></span></li> | 6 | <li><a href="javascript: void(null);" id="bagit">{% trans "save a link" %}</a><span id="bagit-arrow"></span></li> |
7 | <li><a href="javascript: void(null);" id="search">{% trans "search" %}</a><span id="search-arrow"></span></li> | ||
7 | <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> | 8 | <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> |
8 | <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> | 9 | <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> |
9 | </ul> | 10 | </ul> |
10 | {% include '_pocheit-form.twig' %} | 11 | {% include '_pocheit-form.twig' %} |
12 | {% include '_search-form.twig' %} | ||
11 | 13 | ||
diff --git a/themes/default/_pocheit-form.twig b/themes/default/_pocheit-form.twig index 13096159..8c982db0 100755 --- a/themes/default/_pocheit-form.twig +++ b/themes/default/_pocheit-form.twig | |||
@@ -1,22 +1,8 @@ | |||
1 | <div id="pocheit-form" class="messages info"> | 1 | <div id="bagit-form" class="messages info"> |
2 | <center> | 2 | <a href="javascript: void(null);" id="bagit-form-close"> </a> |
3 | <form method="get" action="index.php"> | 3 | <form method="get" action="index.php" id="bagit-form-form"> |
4 | <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> | 4 | <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> |
5 | <input type="submit" value="{% trans "save link!" %}" /> | 5 | <input type="submit" value="{% trans "save link!" %}" /> |
6 | <div id="add-link-result"></div> | ||
6 | </form> | 7 | </form> |
7 | </center> | ||
8 | </div> | 8 | </div> |
9 | <script type="text/javascript"> | ||
10 | $(document).ready(function() { | ||
11 | |||
12 | $("#pocheit-form").hide(); | ||
13 | |||
14 | $("#pocheit").click(function(){ | ||
15 | $("#pocheit-form").toggle(); | ||
16 | $("#pocheit").toggleClass("current"); | ||
17 | $("#pocheit-arrow").toggleClass("arrow-down"); | ||
18 | }); | ||
19 | |||
20 | |||
21 | }); | ||
22 | </script> | ||
diff --git a/themes/default/_search-form.twig b/themes/default/_search-form.twig new file mode 100644 index 00000000..74f420d0 --- /dev/null +++ b/themes/default/_search-form.twig | |||
@@ -0,0 +1,23 @@ | |||
1 | <div id="search-form" class="messages info"> | ||
2 | <form method="get" action="index.php"> | ||
3 | <p> | ||
4 | <input type="hidden" name="view" value="search"></input> | ||
5 | <label>{% trans "Search" %}</label> : <input type="text" placeholder="{% trans "Enter your search here" %}" name="search" /> | ||
6 | <input type="submit" value="{% trans "Search" %} !"></input> | ||
7 | </p> | ||
8 | </form> | ||
9 | </div> | ||
10 | <script type="text/javascript"> | ||
11 | $(document).ready(function() { | ||
12 | |||
13 | $("#search-form").hide(); | ||
14 | |||
15 | $("#search").click(function(){ | ||
16 | $("#search-form").toggle(); | ||
17 | $("#search").toggleClass("current"); | ||
18 | $("#search-arrow").toggleClass("arrow-down"); | ||
19 | }); | ||
20 | |||
21 | |||
22 | }); | ||
23 | </script> \ No newline at end of file | ||
diff --git a/themes/default/_sorting.twig b/themes/default/_sorting.twig new file mode 100755 index 00000000..ce3d38bc --- /dev/null +++ b/themes/default/_sorting.twig | |||
@@ -0,0 +1,6 @@ | |||
1 | {% if entries|length > 1 %} | ||
2 | <ul id="sort"> | ||
3 | <li><a href="./?sort=ia&view={{ view }}{% if search_term is defined %}&search={{ search_term }}{% endif %}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&view={{ view }}{% if search_term is defined %}&search={{ search_term }}{% endif %}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li> | ||
4 | <li><a href="./?sort=ta&view={{ view }}{% if search_term is defined %}&search={{ search_term }}{% endif %}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&view={{ view }}{% if search_term is defined %}&search={{ search_term }}{% endif %}&id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li> | ||
5 | </ul> | ||
6 | {% endif %} | ||
diff --git a/themes/default/_top.twig b/themes/default/_top.twig index 083be152..45806f01 100644..100755 --- a/themes/default/_top.twig +++ b/themes/default/_top.twig | |||
@@ -1,6 +1,6 @@ | |||
1 | <header class="w600p center mbm"> | 1 | <header class="w600p center mbm"> |
2 | <h1> | 2 | <h1> |
3 | {% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/logo.svg" alt="logo poche" />{% endblock %} | 3 | {% if view == 'home' %}{% block logo %}<img width="100" height="100" src="{{ poche_url }}themes/baggy/img/logo-other_themes.png" alt="wallabag logo" />{% endblock %} |
4 | {% else %}<a href="./" title="{% trans "return home" %}" >{{ block('logo') }}</a> | 4 | {% else %}<a href="./" title="{% trans "return home" %}" >{{ block('logo') }}</a> |
5 | {% endif %} | 5 | {% endif %} |
6 | </h1> | 6 | </h1> |
diff --git a/themes/default/config.twig b/themes/default/config.twig index cd4d074d..bb39dea2 100644..100755 --- a/themes/default/config.twig +++ b/themes/default/config.twig | |||
@@ -8,10 +8,11 @@ | |||
8 | <h2>{% trans "Saving articles" %}</h2> | 8 | <h2>{% trans "Saving articles" %}</h2> |
9 | <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> | 9 | <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> |
10 | <ul> | 10 | <ul> |
11 | <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/poche/" title="download the firefox extension">{% trans "download the extension" %}</a></li> | 11 | <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" title="download the firefox extension">{% trans "download the extension" %}</a></li> |
12 | <li>Chrome: <a href="http://doc.wallabag.org/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li> | 12 | <li>Chrome: <a href="http://doc.wallabag.org/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li> |
13 | <li>Android: <a href="https://f-droid.org/repository/browse/?fdid=fr.gaulupeau.apps.Poche" title="download the application">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via Google Play" %}</a></li> | 13 | <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via Google Play" %}</a></li> |
14 | <li>Windows Phone: <a href="https://www.windowsphone.com/en-us/store/app/poche/334de2f0-51b5-4826-8549-a3d805a37e83" title="download the window phone application">{% trans "download the application" %}</a></li> | 14 | <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li> |
15 | <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" title="download the window phone application">{% trans "download the application" %}</a></li> | ||
15 | <li> | 16 | <li> |
16 | <form method="get" action="index.php"> | 17 | <form method="get" action="index.php"> |
17 | <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label> | 18 | <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label> |
@@ -103,14 +104,20 @@ | |||
103 | {% endif %} | 104 | {% endif %} |
104 | 105 | ||
105 | <h2>{% trans "Import" %}</h2> | 106 | <h2>{% trans "Import" %}</h2> |
106 | <p>{% trans "Please execute the import script locally as it can take a very long time." %}</p> | 107 | <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p> |
107 | <p>{% trans "More info in the official documentation:" %} <a href="http://doc.wallabag.org/doku.php?id=users:migrate">wallabag.org</a></p> | 108 | <p>{% trans "Please select export file on your computer and press \"Import\" button below.<br>Wallabag will parse your file, insert all URLs and start fetching of articles if required.<br>Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p> |
108 | <ul> | 109 | <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data"> |
109 | <li><a href="./?import&from=pocket">{% trans "Import from Pocket" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCKET_FILE')) }}</li> | 110 | <fieldset class="w500p"> |
110 | <li><a href="./?import&from=readability">{% trans "Import from Readability" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('READABILITY_FILE')) }}</li> | 111 | <div class="row"> |
111 | <li><a href="./?import&from=instapaper">{% trans "Import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li> | 112 | <label class="col w150p" for="file">{% trans "File:" %}</label> |
112 | <li><a href="./?import&from=poche">{% trans "Import from wallabag" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCHE_FILE')) }}</li> | 113 | <input class="col" type="file" id="file" name="file" tabindex="4"> |
113 | </ul> | 114 | </div> |
115 | <div class="row mts txtcenter"> | ||
116 | <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button> | ||
117 | </div> | ||
118 | </fieldset> | ||
119 | </form> | ||
120 | <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p> | ||
114 | 121 | ||
115 | <h2>{% trans "Export your wallabag data" %}</h2> | 122 | <h2>{% trans "Export your wallabag data" %}</h2> |
116 | {% if constant('STORAGE') == 'sqlite' %} | 123 | {% if constant('STORAGE') == 'sqlite' %} |
diff --git a/themes/default/css/images/animated-overlay.gif b/themes/default/css/images/animated-overlay.gif new file mode 100644 index 00000000..d441f75e --- /dev/null +++ b/themes/default/css/images/animated-overlay.gif | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/themes/default/css/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 00000000..9f10cb65 --- /dev/null +++ b/themes/default/css/images/ui-bg_flat_0_aaaaaa_40x100.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_flat_75_ffffff_40x100.png b/themes/default/css/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 00000000..b89b914b --- /dev/null +++ b/themes/default/css/images/ui-bg_flat_75_ffffff_40x100.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_glass_55_fbf9ee_1x400.png b/themes/default/css/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 00000000..780d3ffd --- /dev/null +++ b/themes/default/css/images/ui-bg_glass_55_fbf9ee_1x400.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_glass_65_ffffff_1x400.png b/themes/default/css/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 00000000..da53255b --- /dev/null +++ b/themes/default/css/images/ui-bg_glass_65_ffffff_1x400.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_glass_75_dadada_1x400.png b/themes/default/css/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 00000000..f6306608 --- /dev/null +++ b/themes/default/css/images/ui-bg_glass_75_dadada_1x400.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_glass_75_e6e6e6_1x400.png b/themes/default/css/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 00000000..7d347065 --- /dev/null +++ b/themes/default/css/images/ui-bg_glass_75_e6e6e6_1x400.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_glass_95_fef1ec_1x400.png b/themes/default/css/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 00000000..533c4900 --- /dev/null +++ b/themes/default/css/images/ui-bg_glass_95_fef1ec_1x400.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/themes/default/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 00000000..bf3a9481 --- /dev/null +++ b/themes/default/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-icons_222222_256x240.png b/themes/default/css/images/ui-icons_222222_256x240.png new file mode 100644 index 00000000..c1cb1170 --- /dev/null +++ b/themes/default/css/images/ui-icons_222222_256x240.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-icons_2e83ff_256x240.png b/themes/default/css/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 00000000..84b601bf --- /dev/null +++ b/themes/default/css/images/ui-icons_2e83ff_256x240.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-icons_454545_256x240.png b/themes/default/css/images/ui-icons_454545_256x240.png new file mode 100644 index 00000000..b6db1acd --- /dev/null +++ b/themes/default/css/images/ui-icons_454545_256x240.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-icons_888888_256x240.png b/themes/default/css/images/ui-icons_888888_256x240.png new file mode 100644 index 00000000..feea0e20 --- /dev/null +++ b/themes/default/css/images/ui-icons_888888_256x240.png | |||
Binary files differ | |||
diff --git a/themes/default/css/images/ui-icons_cd0a0a_256x240.png b/themes/default/css/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 00000000..ed5b6b09 --- /dev/null +++ b/themes/default/css/images/ui-icons_cd0a0a_256x240.png | |||
Binary files differ | |||
diff --git a/themes/default/css/jquery-ui-1.10.4.custom.css b/themes/default/css/jquery-ui-1.10.4.custom.css new file mode 100644 index 00000000..5690172f --- /dev/null +++ b/themes/default/css/jquery-ui-1.10.4.custom.css | |||
@@ -0,0 +1,560 @@ | |||
1 | /*! jQuery UI - v1.10.4 - 2014-03-09 | ||
2 | * http://jqueryui.com | ||
3 | * Includes: jquery.ui.core.css, jquery.ui.autocomplete.css, jquery.ui.menu.css, jquery.ui.theme.css | ||
4 | * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px | ||
5 | * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ | ||
6 | |||
7 | /* Layout helpers | ||
8 | ----------------------------------*/ | ||
9 | .ui-helper-hidden { | ||
10 | display: none; | ||
11 | } | ||
12 | .ui-helper-hidden-accessible { | ||
13 | border: 0; | ||
14 | clip: rect(0 0 0 0); | ||
15 | height: 1px; | ||
16 | margin: -1px; | ||
17 | overflow: hidden; | ||
18 | padding: 0; | ||
19 | position: absolute; | ||
20 | width: 1px; | ||
21 | } | ||
22 | .ui-helper-reset { | ||
23 | margin: 0; | ||
24 | padding: 0; | ||
25 | border: 0; | ||
26 | outline: 0; | ||
27 | line-height: 1.3; | ||
28 | text-decoration: none; | ||
29 | font-size: 100%; | ||
30 | list-style: none; | ||
31 | } | ||
32 | .ui-helper-clearfix:before, | ||
33 | .ui-helper-clearfix:after { | ||
34 | content: ""; | ||
35 | display: table; | ||
36 | border-collapse: collapse; | ||
37 | } | ||
38 | .ui-helper-clearfix:after { | ||
39 | clear: both; | ||
40 | } | ||
41 | .ui-helper-clearfix { | ||
42 | min-height: 0; /* support: IE7 */ | ||
43 | } | ||
44 | .ui-helper-zfix { | ||
45 | width: 100%; | ||
46 | height: 100%; | ||
47 | top: 0; | ||
48 | left: 0; | ||
49 | position: absolute; | ||
50 | opacity: 0; | ||
51 | filter:Alpha(Opacity=0); | ||
52 | } | ||
53 | |||
54 | .ui-front { | ||
55 | z-index: 100; | ||
56 | } | ||
57 | |||
58 | |||
59 | /* Interaction Cues | ||
60 | ----------------------------------*/ | ||
61 | .ui-state-disabled { | ||
62 | cursor: default !important; | ||
63 | } | ||
64 | |||
65 | |||
66 | /* Icons | ||
67 | ----------------------------------*/ | ||
68 | |||
69 | /* states and images */ | ||
70 | .ui-icon { | ||
71 | display: block; | ||
72 | text-indent: -99999px; | ||
73 | overflow: hidden; | ||
74 | background-repeat: no-repeat; | ||
75 | } | ||
76 | |||
77 | |||
78 | /* Misc visuals | ||
79 | ----------------------------------*/ | ||
80 | |||
81 | /* Overlays */ | ||
82 | .ui-widget-overlay { | ||
83 | position: fixed; | ||
84 | top: 0; | ||
85 | left: 0; | ||
86 | width: 100%; | ||
87 | height: 100%; | ||
88 | } | ||
89 | .ui-autocomplete { | ||
90 | position: absolute; | ||
91 | top: 0; | ||
92 | left: 0; | ||
93 | cursor: default; | ||
94 | } | ||
95 | .ui-menu { | ||
96 | list-style: none; | ||
97 | padding: 2px; | ||
98 | margin: 0; | ||
99 | display: block; | ||
100 | outline: none; | ||
101 | } | ||
102 | .ui-menu .ui-menu { | ||
103 | margin-top: -3px; | ||
104 | position: absolute; | ||
105 | } | ||
106 | .ui-menu .ui-menu-item { | ||
107 | margin: 0; | ||
108 | padding: 0; | ||
109 | width: 100%; | ||
110 | /* support: IE10, see #8844 */ | ||
111 | list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7); | ||
112 | } | ||
113 | .ui-menu .ui-menu-divider { | ||
114 | margin: 5px -2px 5px -2px; | ||
115 | height: 0; | ||
116 | font-size: 0; | ||
117 | line-height: 0; | ||
118 | border-width: 1px 0 0 0; | ||
119 | } | ||
120 | .ui-menu .ui-menu-item a { | ||
121 | text-decoration: none; | ||
122 | display: block; | ||
123 | padding: 2px .4em; | ||
124 | line-height: 1.5; | ||
125 | min-height: 0; /* support: IE7 */ | ||
126 | font-weight: normal; | ||
127 | } | ||
128 | .ui-menu .ui-menu-item a.ui-state-focus, | ||
129 | .ui-menu .ui-menu-item a.ui-state-active { | ||
130 | font-weight: normal; | ||
131 | margin: -1px; | ||
132 | } | ||
133 | |||
134 | .ui-menu .ui-state-disabled { | ||
135 | font-weight: normal; | ||
136 | margin: .4em 0 .2em; | ||
137 | line-height: 1.5; | ||
138 | } | ||
139 | .ui-menu .ui-state-disabled a { | ||
140 | cursor: default; | ||
141 | } | ||
142 | |||
143 | /* icon support */ | ||
144 | .ui-menu-icons { | ||
145 | position: relative; | ||
146 | } | ||
147 | .ui-menu-icons .ui-menu-item a { | ||
148 | position: relative; | ||
149 | padding-left: 2em; | ||
150 | } | ||
151 | |||
152 | /* left-aligned */ | ||
153 | .ui-menu .ui-icon { | ||
154 | position: absolute; | ||
155 | top: .2em; | ||
156 | left: .2em; | ||
157 | } | ||
158 | |||
159 | /* right-aligned */ | ||
160 | .ui-menu .ui-menu-icon { | ||
161 | position: static; | ||
162 | float: right; | ||
163 | } | ||
164 | |||
165 | /* Component containers | ||
166 | ----------------------------------*/ | ||
167 | .ui-widget { | ||
168 | font-family: Verdana,Arial,sans-serif; | ||
169 | font-size: 1.1em; | ||
170 | } | ||
171 | .ui-widget .ui-widget { | ||
172 | font-size: 1em; | ||
173 | } | ||
174 | .ui-widget input, | ||
175 | .ui-widget select, | ||
176 | .ui-widget textarea, | ||
177 | .ui-widget button { | ||
178 | font-family: Verdana,Arial,sans-serif; | ||
179 | font-size: 1em; | ||
180 | } | ||
181 | .ui-widget-content { | ||
182 | border: 1px solid #aaaaaa; | ||
183 | background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; | ||
184 | color: #222222; | ||
185 | } | ||
186 | .ui-widget-content a { | ||
187 | color: #222222; | ||
188 | } | ||
189 | .ui-widget-header { | ||
190 | border: 1px solid #aaaaaa; | ||
191 | background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; | ||
192 | color: #222222; | ||
193 | font-weight: bold; | ||
194 | } | ||
195 | .ui-widget-header a { | ||
196 | color: #222222; | ||
197 | } | ||
198 | |||
199 | /* Interaction states | ||
200 | ----------------------------------*/ | ||
201 | .ui-state-default, | ||
202 | .ui-widget-content .ui-state-default, | ||
203 | .ui-widget-header .ui-state-default { | ||
204 | border: 1px solid #d3d3d3; | ||
205 | background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; | ||
206 | font-weight: normal; | ||
207 | color: #555555; | ||
208 | } | ||
209 | .ui-state-default a, | ||
210 | .ui-state-default a:link, | ||
211 | .ui-state-default a:visited { | ||
212 | color: #555555; | ||
213 | text-decoration: none; | ||
214 | } | ||
215 | .ui-state-hover, | ||
216 | .ui-widget-content .ui-state-hover, | ||
217 | .ui-widget-header .ui-state-hover, | ||
218 | .ui-state-focus, | ||
219 | .ui-widget-content .ui-state-focus, | ||
220 | .ui-widget-header .ui-state-focus { | ||
221 | border: 1px solid #999999; | ||
222 | background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; | ||
223 | font-weight: normal; | ||
224 | color: #212121; | ||
225 | } | ||
226 | .ui-state-hover a, | ||
227 | .ui-state-hover a:hover, | ||
228 | .ui-state-hover a:link, | ||
229 | .ui-state-hover a:visited, | ||
230 | .ui-state-focus a, | ||
231 | .ui-state-focus a:hover, | ||
232 | .ui-state-focus a:link, | ||
233 | .ui-state-focus a:visited { | ||
234 | color: #212121; | ||
235 | text-decoration: none; | ||
236 | } | ||
237 | .ui-state-active, | ||
238 | .ui-widget-content .ui-state-active, | ||
239 | .ui-widget-header .ui-state-active { | ||
240 | border: 1px solid #aaaaaa; | ||
241 | background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; | ||
242 | font-weight: normal; | ||
243 | color: #212121; | ||
244 | } | ||
245 | .ui-state-active a, | ||
246 | .ui-state-active a:link, | ||
247 | .ui-state-active a:visited { | ||
248 | color: #212121; | ||
249 | text-decoration: none; | ||
250 | } | ||
251 | |||
252 | /* Interaction Cues | ||
253 | ----------------------------------*/ | ||
254 | .ui-state-highlight, | ||
255 | .ui-widget-content .ui-state-highlight, | ||
256 | .ui-widget-header .ui-state-highlight { | ||
257 | border: 1px solid #fcefa1; | ||
258 | background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; | ||
259 | color: #363636; | ||
260 | } | ||
261 | .ui-state-highlight a, | ||
262 | .ui-widget-content .ui-state-highlight a, | ||
263 | .ui-widget-header .ui-state-highlight a { | ||
264 | color: #363636; | ||
265 | } | ||
266 | .ui-state-error, | ||
267 | .ui-widget-content .ui-state-error, | ||
268 | .ui-widget-header .ui-state-error { | ||
269 | border: 1px solid #cd0a0a; | ||
270 | background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; | ||
271 | color: #cd0a0a; | ||
272 | } | ||
273 | .ui-state-error a, | ||
274 | .ui-widget-content .ui-state-error a, | ||
275 | .ui-widget-header .ui-state-error a { | ||
276 | color: #cd0a0a; | ||
277 | } | ||
278 | .ui-state-error-text, | ||
279 | .ui-widget-content .ui-state-error-text, | ||
280 | .ui-widget-header .ui-state-error-text { | ||
281 | color: #cd0a0a; | ||
282 | } | ||
283 | .ui-priority-primary, | ||
284 | .ui-widget-content .ui-priority-primary, | ||
285 | .ui-widget-header .ui-priority-primary { | ||
286 | font-weight: bold; | ||
287 | } | ||
288 | .ui-priority-secondary, | ||
289 | .ui-widget-content .ui-priority-secondary, | ||
290 | .ui-widget-header .ui-priority-secondary { | ||
291 | opacity: .7; | ||
292 | filter:Alpha(Opacity=70); | ||
293 | font-weight: normal; | ||
294 | } | ||
295 | .ui-state-disabled, | ||
296 | .ui-widget-content .ui-state-disabled, | ||
297 | .ui-widget-header .ui-state-disabled { | ||
298 | opacity: .35; | ||
299 | filter:Alpha(Opacity=35); | ||
300 | background-image: none; | ||
301 | } | ||
302 | .ui-state-disabled .ui-icon { | ||
303 | filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ | ||
304 | } | ||
305 | |||
306 | /* Icons | ||
307 | ----------------------------------*/ | ||
308 | |||
309 | /* states and images */ | ||
310 | .ui-icon { | ||
311 | width: 16px; | ||
312 | height: 16px; | ||
313 | } | ||
314 | .ui-icon, | ||
315 | .ui-widget-content .ui-icon { | ||
316 | background-image: url(images/ui-icons_222222_256x240.png); | ||
317 | } | ||
318 | .ui-widget-header .ui-icon { | ||
319 | background-image: url(images/ui-icons_222222_256x240.png); | ||
320 | } | ||
321 | .ui-state-default .ui-icon { | ||
322 | background-image: url(images/ui-icons_888888_256x240.png); | ||
323 | } | ||
324 | .ui-state-hover .ui-icon, | ||
325 | .ui-state-focus .ui-icon { | ||
326 | background-image: url(images/ui-icons_454545_256x240.png); | ||
327 | } | ||
328 | .ui-state-active .ui-icon { | ||
329 | background-image: url(images/ui-icons_454545_256x240.png); | ||
330 | } | ||
331 | .ui-state-highlight .ui-icon { | ||
332 | background-image: url(images/ui-icons_2e83ff_256x240.png); | ||
333 | } | ||
334 | .ui-state-error .ui-icon, | ||
335 | .ui-state-error-text .ui-icon { | ||
336 | background-image: url(images/ui-icons_cd0a0a_256x240.png); | ||
337 | } | ||
338 | |||
339 | /* positioning */ | ||
340 | .ui-icon-blank { background-position: 16px 16px; } | ||
341 | .ui-icon-carat-1-n { background-position: 0 0; } | ||
342 | .ui-icon-carat-1-ne { background-position: -16px 0; } | ||
343 | .ui-icon-carat-1-e { background-position: -32px 0; } | ||
344 | .ui-icon-carat-1-se { background-position: -48px 0; } | ||
345 | .ui-icon-carat-1-s { background-position: -64px 0; } | ||
346 | .ui-icon-carat-1-sw { background-position: -80px 0; } | ||
347 | .ui-icon-carat-1-w { background-position: -96px 0; } | ||
348 | .ui-icon-carat-1-nw { background-position: -112px 0; } | ||
349 | .ui-icon-carat-2-n-s { background-position: -128px 0; } | ||
350 | .ui-icon-carat-2-e-w { background-position: -144px 0; } | ||
351 | .ui-icon-triangle-1-n { background-position: 0 -16px; } | ||
352 | .ui-icon-triangle-1-ne { background-position: -16px -16px; } | ||
353 | .ui-icon-triangle-1-e { background-position: -32px -16px; } | ||
354 | .ui-icon-triangle-1-se { background-position: -48px -16px; } | ||
355 | .ui-icon-triangle-1-s { background-position: -64px -16px; } | ||
356 | .ui-icon-triangle-1-sw { background-position: -80px -16px; } | ||
357 | .ui-icon-triangle-1-w { background-position: -96px -16px; } | ||
358 | .ui-icon-triangle-1-nw { background-position: -112px -16px; } | ||
359 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; } | ||
360 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; } | ||
361 | .ui-icon-arrow-1-n { background-position: 0 -32px; } | ||
362 | .ui-icon-arrow-1-ne { background-position: -16px -32px; } | ||
363 | .ui-icon-arrow-1-e { background-position: -32px -32px; } | ||
364 | .ui-icon-arrow-1-se { background-position: -48px -32px; } | ||
365 | .ui-icon-arrow-1-s { background-position: -64px -32px; } | ||
366 | .ui-icon-arrow-1-sw { background-position: -80px -32px; } | ||
367 | .ui-icon-arrow-1-w { background-position: -96px -32px; } | ||
368 | .ui-icon-arrow-1-nw { background-position: -112px -32px; } | ||
369 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; } | ||
370 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } | ||
371 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; } | ||
372 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } | ||
373 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; } | ||
374 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; } | ||
375 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; } | ||
376 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; } | ||
377 | .ui-icon-arrowthick-1-n { background-position: 0 -48px; } | ||
378 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } | ||
379 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; } | ||
380 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; } | ||
381 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; } | ||
382 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } | ||
383 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; } | ||
384 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } | ||
385 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } | ||
386 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } | ||
387 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } | ||
388 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } | ||
389 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } | ||
390 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } | ||
391 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } | ||
392 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } | ||
393 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } | ||
394 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } | ||
395 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } | ||
396 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } | ||
397 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } | ||
398 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } | ||
399 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } | ||
400 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } | ||
401 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } | ||
402 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } | ||
403 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } | ||
404 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } | ||
405 | .ui-icon-arrow-4 { background-position: 0 -80px; } | ||
406 | .ui-icon-arrow-4-diag { background-position: -16px -80px; } | ||
407 | .ui-icon-extlink { background-position: -32px -80px; } | ||
408 | .ui-icon-newwin { background-position: -48px -80px; } | ||
409 | .ui-icon-refresh { background-position: -64px -80px; } | ||
410 | .ui-icon-shuffle { background-position: -80px -80px; } | ||
411 | .ui-icon-transfer-e-w { background-position: -96px -80px; } | ||
412 | .ui-icon-transferthick-e-w { background-position: -112px -80px; } | ||
413 | .ui-icon-folder-collapsed { background-position: 0 -96px; } | ||
414 | .ui-icon-folder-open { background-position: -16px -96px; } | ||
415 | .ui-icon-document { background-position: -32px -96px; } | ||
416 | .ui-icon-document-b { background-position: -48px -96px; } | ||
417 | .ui-icon-note { background-position: -64px -96px; } | ||
418 | .ui-icon-mail-closed { background-position: -80px -96px; } | ||
419 | .ui-icon-mail-open { background-position: -96px -96px; } | ||
420 | .ui-icon-suitcase { background-position: -112px -96px; } | ||
421 | .ui-icon-comment { background-position: -128px -96px; } | ||
422 | .ui-icon-person { background-position: -144px -96px; } | ||
423 | .ui-icon-print { background-position: -160px -96px; } | ||
424 | .ui-icon-trash { background-position: -176px -96px; } | ||
425 | .ui-icon-locked { background-position: -192px -96px; } | ||
426 | .ui-icon-unlocked { background-position: -208px -96px; } | ||
427 | .ui-icon-bookmark { background-position: -224px -96px; } | ||
428 | .ui-icon-tag { background-position: -240px -96px; } | ||
429 | .ui-icon-home { background-position: 0 -112px; } | ||
430 | .ui-icon-flag { background-position: -16px -112px; } | ||
431 | .ui-icon-calendar { background-position: -32px -112px; } | ||
432 | .ui-icon-cart { background-position: -48px -112px; } | ||
433 | .ui-icon-pencil { background-position: -64px -112px; } | ||
434 | .ui-icon-clock { background-position: -80px -112px; } | ||
435 | .ui-icon-disk { background-position: -96px -112px; } | ||
436 | .ui-icon-calculator { background-position: -112px -112px; } | ||
437 | .ui-icon-zoomin { background-position: -128px -112px; } | ||
438 | .ui-icon-zoomout { background-position: -144px -112px; } | ||
439 | .ui-icon-search { background-position: -160px -112px; } | ||
440 | .ui-icon-wrench { background-position: -176px -112px; } | ||
441 | .ui-icon-gear { background-position: -192px -112px; } | ||
442 | .ui-icon-heart { background-position: -208px -112px; } | ||
443 | .ui-icon-star { background-position: -224px -112px; } | ||
444 | .ui-icon-link { background-position: -240px -112px; } | ||
445 | .ui-icon-cancel { background-position: 0 -128px; } | ||
446 | .ui-icon-plus { background-position: -16px -128px; } | ||
447 | .ui-icon-plusthick { background-position: -32px -128px; } | ||
448 | .ui-icon-minus { background-position: -48px -128px; } | ||
449 | .ui-icon-minusthick { background-position: -64px -128px; } | ||
450 | .ui-icon-close { background-position: -80px -128px; } | ||
451 | .ui-icon-closethick { background-position: -96px -128px; } | ||
452 | .ui-icon-key { background-position: -112px -128px; } | ||
453 | .ui-icon-lightbulb { background-position: -128px -128px; } | ||
454 | .ui-icon-scissors { background-position: -144px -128px; } | ||
455 | .ui-icon-clipboard { background-position: -160px -128px; } | ||
456 | .ui-icon-copy { background-position: -176px -128px; } | ||
457 | .ui-icon-contact { background-position: -192px -128px; } | ||
458 | .ui-icon-image { background-position: -208px -128px; } | ||
459 | .ui-icon-video { background-position: -224px -128px; } | ||
460 | .ui-icon-script { background-position: -240px -128px; } | ||
461 | .ui-icon-alert { background-position: 0 -144px; } | ||
462 | .ui-icon-info { background-position: -16px -144px; } | ||
463 | .ui-icon-notice { background-position: -32px -144px; } | ||
464 | .ui-icon-help { background-position: -48px -144px; } | ||
465 | .ui-icon-check { background-position: -64px -144px; } | ||
466 | .ui-icon-bullet { background-position: -80px -144px; } | ||
467 | .ui-icon-radio-on { background-position: -96px -144px; } | ||
468 | .ui-icon-radio-off { background-position: -112px -144px; } | ||
469 | .ui-icon-pin-w { background-position: -128px -144px; } | ||
470 | .ui-icon-pin-s { background-position: -144px -144px; } | ||
471 | .ui-icon-play { background-position: 0 -160px; } | ||
472 | .ui-icon-pause { background-position: -16px -160px; } | ||
473 | .ui-icon-seek-next { background-position: -32px -160px; } | ||
474 | .ui-icon-seek-prev { background-position: -48px -160px; } | ||
475 | .ui-icon-seek-end { background-position: -64px -160px; } | ||
476 | .ui-icon-seek-start { background-position: -80px -160px; } | ||
477 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ | ||
478 | .ui-icon-seek-first { background-position: -80px -160px; } | ||
479 | .ui-icon-stop { background-position: -96px -160px; } | ||
480 | .ui-icon-eject { background-position: -112px -160px; } | ||
481 | .ui-icon-volume-off { background-position: -128px -160px; } | ||
482 | .ui-icon-volume-on { background-position: -144px -160px; } | ||
483 | .ui-icon-power { background-position: 0 -176px; } | ||
484 | .ui-icon-signal-diag { background-position: -16px -176px; } | ||
485 | .ui-icon-signal { background-position: -32px -176px; } | ||
486 | .ui-icon-battery-0 { background-position: -48px -176px; } | ||
487 | .ui-icon-battery-1 { background-position: -64px -176px; } | ||
488 | .ui-icon-battery-2 { background-position: -80px -176px; } | ||
489 | .ui-icon-battery-3 { background-position: -96px -176px; } | ||
490 | .ui-icon-circle-plus { background-position: 0 -192px; } | ||
491 | .ui-icon-circle-minus { background-position: -16px -192px; } | ||
492 | .ui-icon-circle-close { background-position: -32px -192px; } | ||
493 | .ui-icon-circle-triangle-e { background-position: -48px -192px; } | ||
494 | .ui-icon-circle-triangle-s { background-position: -64px -192px; } | ||
495 | .ui-icon-circle-triangle-w { background-position: -80px -192px; } | ||
496 | .ui-icon-circle-triangle-n { background-position: -96px -192px; } | ||
497 | .ui-icon-circle-arrow-e { background-position: -112px -192px; } | ||
498 | .ui-icon-circle-arrow-s { background-position: -128px -192px; } | ||
499 | .ui-icon-circle-arrow-w { background-position: -144px -192px; } | ||
500 | .ui-icon-circle-arrow-n { background-position: -160px -192px; } | ||
501 | .ui-icon-circle-zoomin { background-position: -176px -192px; } | ||
502 | .ui-icon-circle-zoomout { background-position: -192px -192px; } | ||
503 | .ui-icon-circle-check { background-position: -208px -192px; } | ||
504 | .ui-icon-circlesmall-plus { background-position: 0 -208px; } | ||
505 | .ui-icon-circlesmall-minus { background-position: -16px -208px; } | ||
506 | .ui-icon-circlesmall-close { background-position: -32px -208px; } | ||
507 | .ui-icon-squaresmall-plus { background-position: -48px -208px; } | ||
508 | .ui-icon-squaresmall-minus { background-position: -64px -208px; } | ||
509 | .ui-icon-squaresmall-close { background-position: -80px -208px; } | ||
510 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } | ||
511 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } | ||
512 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; } | ||
513 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } | ||
514 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } | ||
515 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; } | ||
516 | |||
517 | |||
518 | /* Misc visuals | ||
519 | ----------------------------------*/ | ||
520 | |||
521 | /* Corner radius */ | ||
522 | .ui-corner-all, | ||
523 | .ui-corner-top, | ||
524 | .ui-corner-left, | ||
525 | .ui-corner-tl { | ||
526 | border-top-left-radius: 4px; | ||
527 | } | ||
528 | .ui-corner-all, | ||
529 | .ui-corner-top, | ||
530 | .ui-corner-right, | ||
531 | .ui-corner-tr { | ||
532 | border-top-right-radius: 4px; | ||
533 | } | ||
534 | .ui-corner-all, | ||
535 | .ui-corner-bottom, | ||
536 | .ui-corner-left, | ||
537 | .ui-corner-bl { | ||
538 | border-bottom-left-radius: 4px; | ||
539 | } | ||
540 | .ui-corner-all, | ||
541 | .ui-corner-bottom, | ||
542 | .ui-corner-right, | ||
543 | .ui-corner-br { | ||
544 | border-bottom-right-radius: 4px; | ||
545 | } | ||
546 | |||
547 | /* Overlays */ | ||
548 | .ui-widget-overlay { | ||
549 | background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; | ||
550 | opacity: .3; | ||
551 | filter: Alpha(Opacity=30); | ||
552 | } | ||
553 | .ui-widget-shadow { | ||
554 | margin: -8px 0 0 -8px; | ||
555 | padding: 8px; | ||
556 | background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; | ||
557 | opacity: .3; | ||
558 | filter: Alpha(Opacity=30); | ||
559 | border-radius: 8px; | ||
560 | } | ||
diff --git a/themes/default/css/jquery-ui-1.10.4.custom.min.css b/themes/default/css/jquery-ui-1.10.4.custom.min.css new file mode 100644 index 00000000..4dba92a8 --- /dev/null +++ b/themes/default/css/jquery-ui-1.10.4.custom.min.css | |||
@@ -0,0 +1,7 @@ | |||
1 | /*! jQuery UI - v1.10.4 - 2014-03-09 | ||
2 | * http://jqueryui.com | ||
3 | * Includes: jquery.ui.core.css, jquery.ui.autocomplete.css, jquery.ui.menu.css, jquery.ui.theme.css | ||
4 | * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px | ||
5 | * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ | ||
6 | |||
7 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file | ||
diff --git a/themes/default/css/style.css b/themes/default/css/style.css index 28675907..e536ac6b 100644..100755 --- a/themes/default/css/style.css +++ b/themes/default/css/style.css | |||
@@ -347,3 +347,58 @@ a.reading-time span { | |||
347 | margin-left: -30px; | 347 | margin-left: -30px; |
348 | } | 348 | } |
349 | 349 | ||
350 | .two-column { | ||
351 | display: block; | ||
352 | width: 50%; | ||
353 | paddig-right: 20px; | ||
354 | float: left; | ||
355 | vertical-align: top; | ||
356 | } | ||
357 | |||
358 | |||
359 | /* ========================================================================== | ||
360 | "save a link" popup div related styles | ||
361 | ========================================================================== */ | ||
362 | |||
363 | #bagit-form { | ||
364 | display: none; | ||
365 | padding-left: 30px; | ||
366 | width: 450px; | ||
367 | |||
368 | } | ||
369 | |||
370 | a#bagit-form-close { | ||
371 | color: #FFF; | ||
372 | display: inline-block; | ||
373 | float: right; | ||
374 | background: url("../img/messages/close.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0); | ||
375 | height: 16px; | ||
376 | margin: -14px -8px 0 0; | ||
377 | width: 16px; | ||
378 | text-decoration: none; | ||
379 | } | ||
380 | |||
381 | |||
382 | .add-to-wallabag-link-after { | ||
383 | background-color: #000; | ||
384 | color: #fff; | ||
385 | padding: 0 4px 1px 3px; | ||
386 | font-weight: bold; | ||
387 | font-size: 0.7em; | ||
388 | border-radius: 4px; | ||
389 | } | ||
390 | .add-to-wallabag-link-after:hover, .add-to-wallabag-link-after:active { | ||
391 | color: #fff; | ||
392 | } | ||
393 | .add-to-wallabag-link-after:visited { | ||
394 | color: #999; | ||
395 | } | ||
396 | |||
397 | #add-link-result { | ||
398 | display: inline; | ||
399 | padding-left: 10px; | ||
400 | } | ||
401 | |||
402 | .opacity03 { | ||
403 | /*opacity: 0.3;*/ | ||
404 | } | ||
diff --git a/themes/default/edit-tags.twig b/themes/default/edit-tags.twig index 83f04aa0..bd498d26 100644..100755 --- a/themes/default/edit-tags.twig +++ b/themes/default/edit-tags.twig | |||
@@ -5,6 +5,10 @@ | |||
5 | {% endblock %} | 5 | {% endblock %} |
6 | {% block content %} | 6 | {% block content %} |
7 | 7 | ||
8 | <script src="{{ poche_url }}themes/default/js/jquery-ui-1.10.4.custom.min.js"></script> | ||
9 | <script src="{{ poche_url }}themes/default/js/autoCompleteTags.js"></script> | ||
10 | <link rel="stylesheet" href="{{ poche_url }}themes/default/css/jquery-ui-1.10.4.custom.min.css" media="all"> | ||
11 | |||
8 | <div id="article"> | 12 | <div id="article"> |
9 | <header class="mbm"> | 13 | <header class="mbm"> |
10 | <h1>{{ entry.title|raw }}</h1> | 14 | <h1>{{ entry.title|raw }}</h1> |
@@ -17,13 +21,15 @@ no tags | |||
17 | <ul> | 21 | <ul> |
18 | {% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&tag_id={{ tag.id }}&id={{ entry_id }}">✘</a></li>{% endfor %} | 22 | {% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&tag_id={{ tag.id }}&id={{ entry_id }}">✘</a></li>{% endfor %} |
19 | </ul> | 23 | </ul> |
20 | <form method="post" action="./?action=add_tag"> | 24 | <form method="post" action="./?action=add_tag" id="editTags"> |
21 | <input type="hidden" name="entry_id" value="{{ entry_id }}" /> | 25 | <input type="hidden" name="entry_id" value="{{ entry_id }}" /> |
22 | <label for="value">Add tags: </label> | 26 | <label for="value">Add tags: </label> |
23 | <input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> | 27 | <input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> |
24 | <input type="submit" value="Tag" /> | 28 | <input type="submit" value="Tag" /> |
25 | <p>{% trans "You can enter multiple tags, separated by commas." %}</p> | 29 | <p>{% trans "Start typing for auto complete." %}<br> |
30 | {% trans "You can enter multiple tags, separated by commas." %}</p> | ||
26 | 31 | ||
27 | </form> | 32 | </form> |
33 | <br> | ||
28 | <a href="./?view=view&id={{ entry_id }}">« {% trans "return to article" %}</a> | 34 | <a href="./?view=view&id={{ entry_id }}">« {% trans "return to article" %}</a> |
29 | {% endblock %} | 35 | {% endblock %} |
diff --git a/themes/default/home.twig b/themes/default/home.twig index 165fecc6..d6cb98e8 100644..100755 --- a/themes/default/home.twig +++ b/themes/default/home.twig | |||
@@ -12,14 +12,15 @@ | |||
12 | {% include '_menu.twig' %} | 12 | {% include '_menu.twig' %} |
13 | {% endblock %} | 13 | {% endblock %} |
14 | {% block precontent %} | 14 | {% block precontent %} |
15 | {% if entries|length > 1 %} | 15 | |
16 | <ul id="sort"> | 16 | {% include '_sorting.twig' %} |
17 | <li><a href="./?sort=ia&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li> | ||
18 | <li><a href="./?sort=ta&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&view={{ view }}&id={{ id }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li> | ||
19 | </ul> | ||
20 | {% endif %} | ||
21 | {% endblock %} | 17 | {% endblock %} |
22 | {% block content %} | 18 | {% block content %} |
19 | |||
20 | {% if includeImport %} | ||
21 | {% include '_import.twig' %} | ||
22 | {% endif %} | ||
23 | |||
23 | {% if tag %} | 24 | {% if tag %} |
24 | <h3>{% trans "Tag" %}: <b>{{ tag.value }}</b></h3> | 25 | <h3>{% trans "Tag" %}: <b>{{ tag.value }}</b></h3> |
25 | {% endif %} | 26 | {% endif %} |
@@ -30,9 +31,15 @@ | |||
30 | {% block pager %} | 31 | {% block pager %} |
31 | {% if nb_results > 1 %} | 32 | {% if nb_results > 1 %} |
32 | <div class="results"> | 33 | <div class="results"> |
33 | <div class="nb-results">{{ nb_results }} {% trans "results" %}</div> | 34 | <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div> |
34 | {{ page_links | raw }} | 35 | {{ page_links | raw }} |
35 | </div> | 36 | </div> |
37 | {% elseif nb_results == 1 %} | ||
38 | {% if search_term is defined %} | ||
39 | <div class="results"> | ||
40 | <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div> | ||
41 | </div> | ||
42 | {% endif %} | ||
36 | {% endif %} | 43 | {% endif %} |
37 | {% endblock %} | 44 | {% endblock %} |
38 | {% for entry in entries %} | 45 | {% for entry in entries %} |
diff --git a/themes/default/js/autoCompleteTags.js b/themes/default/js/autoCompleteTags.js new file mode 100755 index 00000000..90bc982c --- /dev/null +++ b/themes/default/js/autoCompleteTags.js | |||
@@ -0,0 +1,47 @@ | |||
1 | jQuery(function($) { | ||
2 | |||
3 | function split( val ) { | ||
4 | return val.split( /,\s*/ ); | ||
5 | } | ||
6 | function extractLast( term ) { | ||
7 | return split( term ).pop(); | ||
8 | } | ||
9 | |||
10 | |||
11 | $("#value").bind("keydown", function(event) { | ||
12 | if (event.keyCode === $.ui.keyCode.TAB && $(this).data("ui-autocomplete").menu.active) { | ||
13 | event.preventDefault(); | ||
14 | } | ||
15 | }).autocomplete({ | ||
16 | source : function(request, response) { | ||
17 | $.getJSON("./?view=tags", { | ||
18 | term : extractLast(request.term), | ||
19 | //id: $(':hidden#entry_id').val() | ||
20 | }, response); | ||
21 | }, | ||
22 | search : function() { | ||
23 | // custom minLength | ||
24 | var term = extractLast(this.value); | ||
25 | if (term.length < 1) { | ||
26 | return false; | ||
27 | } | ||
28 | }, | ||
29 | focus : function() { | ||
30 | // prevent value inserted on focus | ||
31 | return false; | ||
32 | }, | ||
33 | select : function(event, ui) { | ||
34 | var terms = split(this.value); | ||
35 | // remove the current input | ||
36 | terms.pop(); | ||
37 | // add the selected item | ||
38 | terms.push(ui.item.value); | ||
39 | // add placeholder to get the comma-and-space at the end | ||
40 | terms.push(""); | ||
41 | this.value = terms.join(", "); | ||
42 | return false; | ||
43 | } | ||
44 | }); | ||
45 | |||
46 | |||
47 | }); | ||
diff --git a/themes/default/js/jquery-ui-1.10.4.custom.js b/themes/default/js/jquery-ui-1.10.4.custom.js new file mode 100644 index 00000000..6f599fca --- /dev/null +++ b/themes/default/js/jquery-ui-1.10.4.custom.js | |||
@@ -0,0 +1,2519 @@ | |||
1 | /*! jQuery UI - v1.10.4 - 2014-03-08 | ||
2 | * http://jqueryui.com | ||
3 | * Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.position.js, jquery.ui.autocomplete.js, jquery.ui.menu.js | ||
4 | * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ | ||
5 | |||
6 | (function( $, undefined ) { | ||
7 | |||
8 | var uuid = 0, | ||
9 | runiqueId = /^ui-id-\d+$/; | ||
10 | |||
11 | // $.ui might exist from components with no dependencies, e.g., $.ui.position | ||
12 | $.ui = $.ui || {}; | ||
13 | |||
14 | $.extend( $.ui, { | ||
15 | version: "1.10.4", | ||
16 | |||
17 | keyCode: { | ||
18 | BACKSPACE: 8, | ||
19 | COMMA: 188, | ||
20 | DELETE: 46, | ||
21 | DOWN: 40, | ||
22 | END: 35, | ||
23 | ENTER: 13, | ||
24 | ESCAPE: 27, | ||
25 | HOME: 36, | ||
26 | LEFT: 37, | ||
27 | NUMPAD_ADD: 107, | ||
28 | NUMPAD_DECIMAL: 110, | ||
29 | NUMPAD_DIVIDE: 111, | ||
30 | NUMPAD_ENTER: 108, | ||
31 | NUMPAD_MULTIPLY: 106, | ||
32 | NUMPAD_SUBTRACT: 109, | ||
33 | PAGE_DOWN: 34, | ||
34 | PAGE_UP: 33, | ||
35 | PERIOD: 190, | ||
36 | RIGHT: 39, | ||
37 | SPACE: 32, | ||
38 | TAB: 9, | ||
39 | UP: 38 | ||
40 | } | ||
41 | }); | ||
42 | |||
43 | // plugins | ||
44 | $.fn.extend({ | ||
45 | focus: (function( orig ) { | ||
46 | return function( delay, fn ) { | ||
47 | return typeof delay === "number" ? | ||
48 | this.each(function() { | ||
49 | var elem = this; | ||
50 | setTimeout(function() { | ||
51 | $( elem ).focus(); | ||
52 | if ( fn ) { | ||
53 | fn.call( elem ); | ||
54 | } | ||
55 | }, delay ); | ||
56 | }) : | ||
57 | orig.apply( this, arguments ); | ||
58 | }; | ||
59 | })( $.fn.focus ), | ||
60 | |||
61 | scrollParent: function() { | ||
62 | var scrollParent; | ||
63 | if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) { | ||
64 | scrollParent = this.parents().filter(function() { | ||
65 | return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x")); | ||
66 | }).eq(0); | ||
67 | } else { | ||
68 | scrollParent = this.parents().filter(function() { | ||
69 | return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x")); | ||
70 | }).eq(0); | ||
71 | } | ||
72 | |||
73 | return (/fixed/).test(this.css("position")) || !scrollParent.length ? $(document) : scrollParent; | ||
74 | }, | ||
75 | |||
76 | zIndex: function( zIndex ) { | ||
77 | if ( zIndex !== undefined ) { | ||
78 | return this.css( "zIndex", zIndex ); | ||
79 | } | ||
80 | |||
81 | if ( this.length ) { | ||
82 | var elem = $( this[ 0 ] ), position, value; | ||
83 | while ( elem.length && elem[ 0 ] !== document ) { | ||
84 | // Ignore z-index if position is set to a value where z-index is ignored by the browser | ||
85 | // This makes behavior of this function consistent across browsers | ||
86 | // WebKit always returns auto if the element is positioned | ||
87 | position = elem.css( "position" ); | ||
88 | if ( position === "absolute" || position === "relative" || position === "fixed" ) { | ||
89 | // IE returns 0 when zIndex is not specified | ||
90 | // other browsers return a string | ||
91 | // we ignore the case of nested elements with an explicit value of 0 | ||
92 | // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> | ||
93 | value = parseInt( elem.css( "zIndex" ), 10 ); | ||
94 | if ( !isNaN( value ) && value !== 0 ) { | ||
95 | return value; | ||
96 | } | ||
97 | } | ||
98 | elem = elem.parent(); | ||
99 | } | ||
100 | } | ||
101 | |||
102 | return 0; | ||
103 | }, | ||
104 | |||
105 | uniqueId: function() { | ||
106 | return this.each(function() { | ||
107 | if ( !this.id ) { | ||
108 | this.id = "ui-id-" + (++uuid); | ||
109 | } | ||
110 | }); | ||
111 | }, | ||
112 | |||
113 | removeUniqueId: function() { | ||
114 | return this.each(function() { | ||
115 | if ( runiqueId.test( this.id ) ) { | ||
116 | $( this ).removeAttr( "id" ); | ||
117 | } | ||
118 | }); | ||
119 | } | ||
120 | }); | ||
121 | |||
122 | // selectors | ||
123 | function focusable( element, isTabIndexNotNaN ) { | ||
124 | var map, mapName, img, | ||
125 | nodeName = element.nodeName.toLowerCase(); | ||
126 | if ( "area" === nodeName ) { | ||
127 | map = element.parentNode; | ||
128 | mapName = map.name; | ||
129 | if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { | ||
130 | return false; | ||
131 | } | ||
132 | img = $( "img[usemap=#" + mapName + "]" )[0]; | ||
133 | return !!img && visible( img ); | ||
134 | } | ||
135 | return ( /input|select|textarea|button|object/.test( nodeName ) ? | ||
136 | !element.disabled : | ||
137 | "a" === nodeName ? | ||
138 | element.href || isTabIndexNotNaN : | ||
139 | isTabIndexNotNaN) && | ||
140 | // the element and all of its ancestors must be visible | ||
141 | visible( element ); | ||
142 | } | ||
143 | |||
144 | function visible( element ) { | ||
145 | return $.expr.filters.visible( element ) && | ||
146 | !$( element ).parents().addBack().filter(function() { | ||
147 | return $.css( this, "visibility" ) === "hidden"; | ||
148 | }).length; | ||
149 | } | ||
150 | |||
151 | $.extend( $.expr[ ":" ], { | ||
152 | data: $.expr.createPseudo ? | ||
153 | $.expr.createPseudo(function( dataName ) { | ||
154 | return function( elem ) { | ||
155 | return !!$.data( elem, dataName ); | ||
156 | }; | ||
157 | }) : | ||
158 | // support: jQuery <1.8 | ||
159 | function( elem, i, match ) { | ||
160 | return !!$.data( elem, match[ 3 ] ); | ||
161 | }, | ||
162 | |||
163 | focusable: function( element ) { | ||
164 | return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); | ||
165 | }, | ||
166 | |||
167 | tabbable: function( element ) { | ||
168 | var tabIndex = $.attr( element, "tabindex" ), | ||
169 | isTabIndexNaN = isNaN( tabIndex ); | ||
170 | return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); | ||
171 | } | ||
172 | }); | ||
173 | |||
174 | // support: jQuery <1.8 | ||
175 | if ( !$( "<a>" ).outerWidth( 1 ).jquery ) { | ||
176 | $.each( [ "Width", "Height" ], function( i, name ) { | ||
177 | var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], | ||
178 | type = name.toLowerCase(), | ||
179 | orig = { | ||
180 | innerWidth: $.fn.innerWidth, | ||
181 | innerHeight: $.fn.innerHeight, | ||
182 | outerWidth: $.fn.outerWidth, | ||
183 | outerHeight: $.fn.outerHeight | ||
184 | }; | ||
185 | |||
186 | function reduce( elem, size, border, margin ) { | ||
187 | $.each( side, function() { | ||
188 | size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; | ||
189 | if ( border ) { | ||
190 | size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; | ||
191 | } | ||
192 | if ( margin ) { | ||
193 | size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; | ||
194 | } | ||
195 | }); | ||
196 | return size; | ||
197 | } | ||
198 | |||
199 | $.fn[ "inner" + name ] = function( size ) { | ||
200 | if ( size === undefined ) { | ||
201 | return orig[ "inner" + name ].call( this ); | ||
202 | } | ||
203 | |||
204 | return this.each(function() { | ||
205 | $( this ).css( type, reduce( this, size ) + "px" ); | ||
206 | }); | ||
207 | }; | ||
208 | |||
209 | $.fn[ "outer" + name] = function( size, margin ) { | ||
210 | if ( typeof size !== "number" ) { | ||
211 | return orig[ "outer" + name ].call( this, size ); | ||
212 | } | ||
213 | |||
214 | return this.each(function() { | ||
215 | $( this).css( type, reduce( this, size, true, margin ) + "px" ); | ||
216 | }); | ||
217 | }; | ||
218 | }); | ||
219 | } | ||
220 | |||
221 | // support: jQuery <1.8 | ||
222 | if ( !$.fn.addBack ) { | ||
223 | $.fn.addBack = function( selector ) { | ||
224 | return this.add( selector == null ? | ||
225 | this.prevObject : this.prevObject.filter( selector ) | ||
226 | ); | ||
227 | }; | ||
228 | } | ||
229 | |||
230 | // support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) | ||
231 | if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) { | ||
232 | $.fn.removeData = (function( removeData ) { | ||
233 | return function( key ) { | ||
234 | if ( arguments.length ) { | ||
235 | return removeData.call( this, $.camelCase( key ) ); | ||
236 | } else { | ||
237 | return removeData.call( this ); | ||
238 | } | ||
239 | }; | ||
240 | })( $.fn.removeData ); | ||
241 | } | ||
242 | |||
243 | |||
244 | |||
245 | |||
246 | |||
247 | // deprecated | ||
248 | $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); | ||
249 | |||
250 | $.support.selectstart = "onselectstart" in document.createElement( "div" ); | ||
251 | $.fn.extend({ | ||
252 | disableSelection: function() { | ||
253 | return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + | ||
254 | ".ui-disableSelection", function( event ) { | ||
255 | event.preventDefault(); | ||
256 | }); | ||
257 | }, | ||
258 | |||
259 | enableSelection: function() { | ||
260 | return this.unbind( ".ui-disableSelection" ); | ||
261 | } | ||
262 | }); | ||
263 | |||
264 | $.extend( $.ui, { | ||
265 | // $.ui.plugin is deprecated. Use $.widget() extensions instead. | ||
266 | plugin: { | ||
267 | add: function( module, option, set ) { | ||
268 | var i, | ||
269 | proto = $.ui[ module ].prototype; | ||
270 | for ( i in set ) { | ||
271 | proto.plugins[ i ] = proto.plugins[ i ] || []; | ||
272 | proto.plugins[ i ].push( [ option, set[ i ] ] ); | ||
273 | } | ||
274 | }, | ||
275 | call: function( instance, name, args ) { | ||
276 | var i, | ||
277 | set = instance.plugins[ name ]; | ||
278 | if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) { | ||
279 | return; | ||
280 | } | ||
281 | |||
282 | for ( i = 0; i < set.length; i++ ) { | ||
283 | if ( instance.options[ set[ i ][ 0 ] ] ) { | ||
284 | set[ i ][ 1 ].apply( instance.element, args ); | ||
285 | } | ||
286 | } | ||
287 | } | ||
288 | }, | ||
289 | |||
290 | // only used by resizable | ||
291 | hasScroll: function( el, a ) { | ||
292 | |||
293 | //If overflow is hidden, the element might have extra content, but the user wants to hide it | ||
294 | if ( $( el ).css( "overflow" ) === "hidden") { | ||
295 | return false; | ||
296 | } | ||
297 | |||
298 | var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", | ||
299 | has = false; | ||
300 | |||
301 | if ( el[ scroll ] > 0 ) { | ||
302 | return true; | ||
303 | } | ||
304 | |||
305 | // TODO: determine which cases actually cause this to happen | ||
306 | // if the element doesn't have the scroll set, see if it's possible to | ||
307 | // set the scroll | ||
308 | el[ scroll ] = 1; | ||
309 | has = ( el[ scroll ] > 0 ); | ||
310 | el[ scroll ] = 0; | ||
311 | return has; | ||
312 | } | ||
313 | }); | ||
314 | |||
315 | })( jQuery ); | ||
316 | (function( $, undefined ) { | ||
317 | |||
318 | var uuid = 0, | ||
319 | slice = Array.prototype.slice, | ||
320 | _cleanData = $.cleanData; | ||
321 | $.cleanData = function( elems ) { | ||
322 | for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { | ||
323 | try { | ||
324 | $( elem ).triggerHandler( "remove" ); | ||
325 | // http://bugs.jquery.com/ticket/8235 | ||
326 | } catch( e ) {} | ||
327 | } | ||
328 | _cleanData( elems ); | ||
329 | }; | ||
330 | |||
331 | $.widget = function( name, base, prototype ) { | ||
332 | var fullName, existingConstructor, constructor, basePrototype, | ||
333 | // proxiedPrototype allows the provided prototype to remain unmodified | ||
334 | // so that it can be used as a mixin for multiple widgets (#8876) | ||
335 | proxiedPrototype = {}, | ||
336 | namespace = name.split( "." )[ 0 ]; | ||
337 | |||
338 | name = name.split( "." )[ 1 ]; | ||
339 | fullName = namespace + "-" + name; | ||
340 | |||
341 | if ( !prototype ) { | ||
342 | prototype = base; | ||
343 | base = $.Widget; | ||
344 | } | ||
345 | |||
346 | // create selector for plugin | ||
347 | $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { | ||
348 | return !!$.data( elem, fullName ); | ||
349 | }; | ||
350 | |||
351 | $[ namespace ] = $[ namespace ] || {}; | ||
352 | existingConstructor = $[ namespace ][ name ]; | ||
353 | constructor = $[ namespace ][ name ] = function( options, element ) { | ||
354 | // allow instantiation without "new" keyword | ||
355 | if ( !this._createWidget ) { | ||
356 | return new constructor( options, element ); | ||
357 | } | ||
358 | |||
359 | // allow instantiation without initializing for simple inheritance | ||
360 | // must use "new" keyword (the code above always passes args) | ||
361 | if ( arguments.length ) { | ||
362 | this._createWidget( options, element ); | ||
363 | } | ||
364 | }; | ||
365 | // extend with the existing constructor to carry over any static properties | ||
366 | $.extend( constructor, existingConstructor, { | ||
367 | version: prototype.version, | ||
368 | // copy the object used to create the prototype in case we need to | ||
369 | // redefine the widget later | ||
370 | _proto: $.extend( {}, prototype ), | ||
371 | // track widgets that inherit from this widget in case this widget is | ||
372 | // redefined after a widget inherits from it | ||
373 | _childConstructors: [] | ||
374 | }); | ||
375 | |||
376 | basePrototype = new base(); | ||
377 | // we need to make the options hash a property directly on the new instance | ||
378 | // otherwise we'll modify the options hash on the prototype that we're | ||
379 | // inheriting from | ||
380 | basePrototype.options = $.widget.extend( {}, basePrototype.options ); | ||
381 | $.each( prototype, function( prop, value ) { | ||
382 | if ( !$.isFunction( value ) ) { | ||
383 | proxiedPrototype[ prop ] = value; | ||
384 | return; | ||
385 | } | ||
386 | proxiedPrototype[ prop ] = (function() { | ||
387 | var _super = function() { | ||
388 | return base.prototype[ prop ].apply( this, arguments ); | ||
389 | }, | ||
390 | _superApply = function( args ) { | ||
391 | return base.prototype[ prop ].apply( this, args ); | ||
392 | }; | ||
393 | return function() { | ||
394 | var __super = this._super, | ||
395 | __superApply = this._superApply, | ||
396 | returnValue; | ||
397 | |||
398 | this._super = _super; | ||
399 | this._superApply = _superApply; | ||
400 | |||
401 | returnValue = value.apply( this, arguments ); | ||
402 | |||
403 | this._super = __super; | ||
404 | this._superApply = __superApply; | ||
405 | |||
406 | return returnValue; | ||
407 | }; | ||
408 | })(); | ||
409 | }); | ||
410 | constructor.prototype = $.widget.extend( basePrototype, { | ||
411 | // TODO: remove support for widgetEventPrefix | ||
412 | // always use the name + a colon as the prefix, e.g., draggable:start | ||
413 | // don't prefix for widgets that aren't DOM-based | ||
414 | widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name | ||
415 | }, proxiedPrototype, { | ||
416 | constructor: constructor, | ||
417 | namespace: namespace, | ||
418 | widgetName: name, | ||
419 | widgetFullName: fullName | ||
420 | }); | ||
421 | |||
422 | // If this widget is being redefined then we need to find all widgets that | ||
423 | // are inheriting from it and redefine all of them so that they inherit from | ||
424 | // the new version of this widget. We're essentially trying to replace one | ||
425 | // level in the prototype chain. | ||
426 | if ( existingConstructor ) { | ||
427 | $.each( existingConstructor._childConstructors, function( i, child ) { | ||
428 | var childPrototype = child.prototype; | ||
429 | |||
430 | // redefine the child widget using the same prototype that was | ||
431 | // originally used, but inherit from the new version of the base | ||
432 | $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); | ||
433 | }); | ||
434 | // remove the list of existing child constructors from the old constructor | ||
435 | // so the old child constructors can be garbage collected | ||
436 | delete existingConstructor._childConstructors; | ||
437 | } else { | ||
438 | base._childConstructors.push( constructor ); | ||
439 | } | ||
440 | |||
441 | $.widget.bridge( name, constructor ); | ||
442 | }; | ||
443 | |||
444 | $.widget.extend = function( target ) { | ||
445 | var input = slice.call( arguments, 1 ), | ||
446 | inputIndex = 0, | ||
447 | inputLength = input.length, | ||
448 | key, | ||
449 | value; | ||
450 | for ( ; inputIndex < inputLength; inputIndex++ ) { | ||
451 | for ( key in input[ inputIndex ] ) { | ||
452 | value = input[ inputIndex ][ key ]; | ||
453 | if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { | ||
454 | // Clone objects | ||
455 | if ( $.isPlainObject( value ) ) { | ||
456 | target[ key ] = $.isPlainObject( target[ key ] ) ? | ||
457 | $.widget.extend( {}, target[ key ], value ) : | ||
458 | // Don't extend strings, arrays, etc. with objects | ||
459 | $.widget.extend( {}, value ); | ||
460 | // Copy everything else by reference | ||
461 | } else { | ||
462 | target[ key ] = value; | ||
463 | } | ||
464 | } | ||
465 | } | ||
466 | } | ||
467 | return target; | ||
468 | }; | ||
469 | |||
470 | $.widget.bridge = function( name, object ) { | ||
471 | var fullName = object.prototype.widgetFullName || name; | ||
472 | $.fn[ name ] = function( options ) { | ||
473 | var isMethodCall = typeof options === "string", | ||
474 | args = slice.call( arguments, 1 ), | ||
475 | returnValue = this; | ||
476 | |||
477 | // allow multiple hashes to be passed on init | ||
478 | options = !isMethodCall && args.length ? | ||
479 | $.widget.extend.apply( null, [ options ].concat(args) ) : | ||
480 | options; | ||
481 | |||
482 | if ( isMethodCall ) { | ||
483 | this.each(function() { | ||
484 | var methodValue, | ||
485 | instance = $.data( this, fullName ); | ||
486 | if ( !instance ) { | ||
487 | return $.error( "cannot call methods on " + name + " prior to initialization; " + | ||
488 | "attempted to call method '" + options + "'" ); | ||
489 | } | ||
490 | if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { | ||
491 | return $.error( "no such method '" + options + "' for " + name + " widget instance" ); | ||
492 | } | ||
493 | methodValue = instance[ options ].apply( instance, args ); | ||
494 | if ( methodValue !== instance && methodValue !== undefined ) { | ||
495 | returnValue = methodValue && methodValue.jquery ? | ||
496 | returnValue.pushStack( methodValue.get() ) : | ||
497 | methodValue; | ||
498 | return false; | ||
499 | } | ||
500 | }); | ||
501 | } else { | ||
502 | this.each(function() { | ||
503 | var instance = $.data( this, fullName ); | ||
504 | if ( instance ) { | ||
505 | instance.option( options || {} )._init(); | ||
506 | } else { | ||
507 | $.data( this, fullName, new object( options, this ) ); | ||
508 | } | ||
509 | }); | ||
510 | } | ||
511 | |||
512 | return returnValue; | ||
513 | }; | ||
514 | }; | ||
515 | |||
516 | $.Widget = function( /* options, element */ ) {}; | ||
517 | $.Widget._childConstructors = []; | ||
518 | |||
519 | $.Widget.prototype = { | ||
520 | widgetName: "widget", | ||
521 | widgetEventPrefix: "", | ||
522 | defaultElement: "<div>", | ||
523 | options: { | ||
524 | disabled: false, | ||
525 | |||
526 | // callbacks | ||
527 | create: null | ||
528 | }, | ||
529 | _createWidget: function( options, element ) { | ||
530 | element = $( element || this.defaultElement || this )[ 0 ]; | ||
531 | this.element = $( element ); | ||
532 | this.uuid = uuid++; | ||
533 | this.eventNamespace = "." + this.widgetName + this.uuid; | ||
534 | this.options = $.widget.extend( {}, | ||
535 | this.options, | ||
536 | this._getCreateOptions(), | ||
537 | options ); | ||
538 | |||
539 | this.bindings = $(); | ||
540 | this.hoverable = $(); | ||
541 | this.focusable = $(); | ||
542 | |||
543 | if ( element !== this ) { | ||
544 | $.data( element, this.widgetFullName, this ); | ||
545 | this._on( true, this.element, { | ||
546 | remove: function( event ) { | ||
547 | if ( event.target === element ) { | ||
548 | this.destroy(); | ||
549 | } | ||
550 | } | ||
551 | }); | ||
552 | this.document = $( element.style ? | ||
553 | // element within the document | ||
554 | element.ownerDocument : | ||
555 | // element is window or document | ||
556 | element.document || element ); | ||
557 | this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); | ||
558 | } | ||
559 | |||
560 | this._create(); | ||
561 | this._trigger( "create", null, this._getCreateEventData() ); | ||
562 | this._init(); | ||
563 | }, | ||
564 | _getCreateOptions: $.noop, | ||
565 | _getCreateEventData: $.noop, | ||
566 | _create: $.noop, | ||
567 | _init: $.noop, | ||
568 | |||
569 | destroy: function() { | ||
570 | this._destroy(); | ||
571 | // we can probably remove the unbind calls in 2.0 | ||
572 | // all event bindings should go through this._on() | ||
573 | this.element | ||
574 | .unbind( this.eventNamespace ) | ||
575 | // 1.9 BC for #7810 | ||
576 | // TODO remove dual storage | ||
577 | .removeData( this.widgetName ) | ||
578 | .removeData( this.widgetFullName ) | ||
579 | // support: jquery <1.6.3 | ||
580 | // http://bugs.jquery.com/ticket/9413 | ||
581 | .removeData( $.camelCase( this.widgetFullName ) ); | ||
582 | this.widget() | ||
583 | .unbind( this.eventNamespace ) | ||
584 | .removeAttr( "aria-disabled" ) | ||
585 | .removeClass( | ||
586 | this.widgetFullName + "-disabled " + | ||
587 | "ui-state-disabled" ); | ||
588 | |||
589 | // clean up events and states | ||
590 | this.bindings.unbind( this.eventNamespace ); | ||
591 | this.hoverable.removeClass( "ui-state-hover" ); | ||
592 | this.focusable.removeClass( "ui-state-focus" ); | ||
593 | }, | ||
594 | _destroy: $.noop, | ||
595 | |||
596 | widget: function() { | ||
597 | return this.element; | ||
598 | }, | ||
599 | |||
600 | option: function( key, value ) { | ||
601 | var options = key, | ||
602 | parts, | ||
603 | curOption, | ||
604 | i; | ||
605 | |||
606 | if ( arguments.length === 0 ) { | ||
607 | // don't return a reference to the internal hash | ||
608 | return $.widget.extend( {}, this.options ); | ||
609 | } | ||
610 | |||
611 | if ( typeof key === "string" ) { | ||
612 | // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } | ||
613 | options = {}; | ||
614 | parts = key.split( "." ); | ||
615 | key = parts.shift(); | ||
616 | if ( parts.length ) { | ||
617 | curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); | ||
618 | for ( i = 0; i < parts.length - 1; i++ ) { | ||
619 | curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; | ||
620 | curOption = curOption[ parts[ i ] ]; | ||
621 | } | ||
622 | key = parts.pop(); | ||
623 | if ( arguments.length === 1 ) { | ||
624 | return curOption[ key ] === undefined ? null : curOption[ key ]; | ||
625 | } | ||
626 | curOption[ key ] = value; | ||
627 | } else { | ||
628 | if ( arguments.length === 1 ) { | ||
629 | return this.options[ key ] === undefined ? null : this.options[ key ]; | ||
630 | } | ||
631 | options[ key ] = value; | ||
632 | } | ||
633 | } | ||
634 | |||
635 | this._setOptions( options ); | ||
636 | |||
637 | return this; | ||
638 | }, | ||
639 | _setOptions: function( options ) { | ||
640 | var key; | ||
641 | |||
642 | for ( key in options ) { | ||
643 | this._setOption( key, options[ key ] ); | ||
644 | } | ||
645 | |||
646 | return this; | ||
647 | }, | ||
648 | _setOption: function( key, value ) { | ||
649 | this.options[ key ] = value; | ||
650 | |||
651 | if ( key === "disabled" ) { | ||
652 | this.widget() | ||
653 | .toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value ) | ||
654 | .attr( "aria-disabled", value ); | ||
655 | this.hoverable.removeClass( "ui-state-hover" ); | ||
656 | this.focusable.removeClass( "ui-state-focus" ); | ||
657 | } | ||
658 | |||
659 | return this; | ||
660 | }, | ||
661 | |||
662 | enable: function() { | ||
663 | return this._setOption( "disabled", false ); | ||
664 | }, | ||
665 | disable: function() { | ||
666 | return this._setOption( "disabled", true ); | ||
667 | }, | ||
668 | |||
669 | _on: function( suppressDisabledCheck, element, handlers ) { | ||
670 | var delegateElement, | ||
671 | instance = this; | ||
672 | |||
673 | // no suppressDisabledCheck flag, shuffle arguments | ||
674 | if ( typeof suppressDisabledCheck !== "boolean" ) { | ||
675 | handlers = element; | ||
676 | element = suppressDisabledCheck; | ||
677 | suppressDisabledCheck = false; | ||
678 | } | ||
679 | |||
680 | // no element argument, shuffle and use this.element | ||
681 | if ( !handlers ) { | ||
682 | handlers = element; | ||
683 | element = this.element; | ||
684 | delegateElement = this.widget(); | ||
685 | } else { | ||
686 | // accept selectors, DOM elements | ||
687 | element = delegateElement = $( element ); | ||
688 | this.bindings = this.bindings.add( element ); | ||
689 | } | ||
690 | |||
691 | $.each( handlers, function( event, handler ) { | ||
692 | function handlerProxy() { | ||
693 | // allow widgets to customize the disabled handling | ||
694 | // - disabled as an array instead of boolean | ||
695 | // - disabled class as method for disabling individual parts | ||
696 | if ( !suppressDisabledCheck && | ||
697 | ( instance.options.disabled === true || | ||
698 | $( this ).hasClass( "ui-state-disabled" ) ) ) { | ||
699 | return; | ||
700 | } | ||
701 | return ( typeof handler === "string" ? instance[ handler ] : handler ) | ||
702 | .apply( instance, arguments ); | ||
703 | } | ||
704 | |||
705 | // copy the guid so direct unbinding works | ||
706 | if ( typeof handler !== "string" ) { | ||
707 | handlerProxy.guid = handler.guid = | ||
708 | handler.guid || handlerProxy.guid || $.guid++; | ||
709 | } | ||
710 | |||
711 | var match = event.match( /^(\w+)\s*(.*)$/ ), | ||
712 | eventName = match[1] + instance.eventNamespace, | ||
713 | selector = match[2]; | ||
714 | if ( selector ) { | ||
715 | delegateElement.delegate( selector, eventName, handlerProxy ); | ||
716 | } else { | ||
717 | element.bind( eventName, handlerProxy ); | ||
718 | } | ||
719 | }); | ||
720 | }, | ||
721 | |||
722 | _off: function( element, eventName ) { | ||
723 | eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace; | ||
724 | element.unbind( eventName ).undelegate( eventName ); | ||
725 | }, | ||
726 | |||
727 | _delay: function( handler, delay ) { | ||
728 | function handlerProxy() { | ||
729 | return ( typeof handler === "string" ? instance[ handler ] : handler ) | ||
730 | .apply( instance, arguments ); | ||
731 | } | ||
732 | var instance = this; | ||
733 | return setTimeout( handlerProxy, delay || 0 ); | ||
734 | }, | ||
735 | |||
736 | _hoverable: function( element ) { | ||
737 | this.hoverable = this.hoverable.add( element ); | ||
738 | this._on( element, { | ||
739 | mouseenter: function( event ) { | ||
740 | $( event.currentTarget ).addClass( "ui-state-hover" ); | ||
741 | }, | ||
742 | mouseleave: function( event ) { | ||
743 | $( event.currentTarget ).removeClass( "ui-state-hover" ); | ||
744 | } | ||
745 | }); | ||
746 | }, | ||
747 | |||
748 | _focusable: function( element ) { | ||
749 | this.focusable = this.focusable.add( element ); | ||
750 | this._on( element, { | ||
751 | focusin: function( event ) { | ||
752 | $( event.currentTarget ).addClass( "ui-state-focus" ); | ||
753 | }, | ||
754 | focusout: function( event ) { | ||
755 | $( event.currentTarget ).removeClass( "ui-state-focus" ); | ||
756 | } | ||
757 | }); | ||
758 | }, | ||
759 | |||
760 | _trigger: function( type, event, data ) { | ||
761 | var prop, orig, | ||
762 | callback = this.options[ type ]; | ||
763 | |||
764 | data = data || {}; | ||
765 | event = $.Event( event ); | ||
766 | event.type = ( type === this.widgetEventPrefix ? | ||
767 | type : | ||
768 | this.widgetEventPrefix + type ).toLowerCase(); | ||
769 | // the original event may come from any element | ||
770 | // so we need to reset the target on the new event | ||
771 | event.target = this.element[ 0 ]; | ||
772 | |||
773 | // copy original event properties over to the new event | ||
774 | orig = event.originalEvent; | ||
775 | if ( orig ) { | ||
776 | for ( prop in orig ) { | ||
777 | if ( !( prop in event ) ) { | ||
778 | event[ prop ] = orig[ prop ]; | ||
779 | } | ||
780 | } | ||
781 | } | ||
782 | |||
783 | this.element.trigger( event, data ); | ||
784 | return !( $.isFunction( callback ) && | ||
785 | callback.apply( this.element[0], [ event ].concat( data ) ) === false || | ||
786 | event.isDefaultPrevented() ); | ||
787 | } | ||
788 | }; | ||
789 | |||
790 | $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { | ||
791 | $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { | ||
792 | if ( typeof options === "string" ) { | ||
793 | options = { effect: options }; | ||
794 | } | ||
795 | var hasOptions, | ||
796 | effectName = !options ? | ||
797 | method : | ||
798 | options === true || typeof options === "number" ? | ||
799 | defaultEffect : | ||
800 | options.effect || defaultEffect; | ||
801 | options = options || {}; | ||
802 | if ( typeof options === "number" ) { | ||
803 | options = { duration: options }; | ||
804 | } | ||
805 | hasOptions = !$.isEmptyObject( options ); | ||
806 | options.complete = callback; | ||
807 | if ( options.delay ) { | ||
808 | element.delay( options.delay ); | ||
809 | } | ||
810 | if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { | ||
811 | element[ method ]( options ); | ||
812 | } else if ( effectName !== method && element[ effectName ] ) { | ||
813 | element[ effectName ]( options.duration, options.easing, callback ); | ||
814 | } else { | ||
815 | element.queue(function( next ) { | ||
816 | $( this )[ method ](); | ||
817 | if ( callback ) { | ||
818 | callback.call( element[ 0 ] ); | ||
819 | } | ||
820 | next(); | ||
821 | }); | ||
822 | } | ||
823 | }; | ||
824 | }); | ||
825 | |||
826 | })( jQuery ); | ||
827 | (function( $, undefined ) { | ||
828 | |||
829 | $.ui = $.ui || {}; | ||
830 | |||
831 | var cachedScrollbarWidth, | ||
832 | max = Math.max, | ||
833 | abs = Math.abs, | ||
834 | round = Math.round, | ||
835 | rhorizontal = /left|center|right/, | ||
836 | rvertical = /top|center|bottom/, | ||
837 | roffset = /[\+\-]\d+(\.[\d]+)?%?/, | ||
838 | rposition = /^\w+/, | ||
839 | rpercent = /%$/, | ||
840 | _position = $.fn.position; | ||
841 | |||
842 | function getOffsets( offsets, width, height ) { | ||
843 | return [ | ||
844 | parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), | ||
845 | parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) | ||
846 | ]; | ||
847 | } | ||
848 | |||
849 | function parseCss( element, property ) { | ||
850 | return parseInt( $.css( element, property ), 10 ) || 0; | ||
851 | } | ||
852 | |||
853 | function getDimensions( elem ) { | ||
854 | var raw = elem[0]; | ||
855 | if ( raw.nodeType === 9 ) { | ||
856 | return { | ||
857 | width: elem.width(), | ||
858 | height: elem.height(), | ||
859 | offset: { top: 0, left: 0 } | ||
860 | }; | ||
861 | } | ||
862 | if ( $.isWindow( raw ) ) { | ||
863 | return { | ||
864 | width: elem.width(), | ||
865 | height: elem.height(), | ||
866 | offset: { top: elem.scrollTop(), left: elem.scrollLeft() } | ||
867 | }; | ||
868 | } | ||
869 | if ( raw.preventDefault ) { | ||
870 | return { | ||
871 | width: 0, | ||
872 | height: 0, | ||
873 | offset: { top: raw.pageY, left: raw.pageX } | ||
874 | }; | ||
875 | } | ||
876 | return { | ||
877 | width: elem.outerWidth(), | ||
878 | height: elem.outerHeight(), | ||
879 | offset: elem.offset() | ||
880 | }; | ||
881 | } | ||
882 | |||
883 | $.position = { | ||
884 | scrollbarWidth: function() { | ||
885 | if ( cachedScrollbarWidth !== undefined ) { | ||
886 | return cachedScrollbarWidth; | ||
887 | } | ||
888 | var w1, w2, | ||
889 | div = $( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ), | ||
890 | innerDiv = div.children()[0]; | ||
891 | |||
892 | $( "body" ).append( div ); | ||
893 | w1 = innerDiv.offsetWidth; | ||
894 | div.css( "overflow", "scroll" ); | ||
895 | |||
896 | w2 = innerDiv.offsetWidth; | ||
897 | |||
898 | if ( w1 === w2 ) { | ||
899 | w2 = div[0].clientWidth; | ||
900 | } | ||
901 | |||
902 | div.remove(); | ||
903 | |||
904 | return (cachedScrollbarWidth = w1 - w2); | ||
905 | }, | ||
906 | getScrollInfo: function( within ) { | ||
907 | var overflowX = within.isWindow || within.isDocument ? "" : | ||
908 | within.element.css( "overflow-x" ), | ||
909 | overflowY = within.isWindow || within.isDocument ? "" : | ||
910 | within.element.css( "overflow-y" ), | ||
911 | hasOverflowX = overflowX === "scroll" || | ||
912 | ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), | ||
913 | hasOverflowY = overflowY === "scroll" || | ||
914 | ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); | ||
915 | return { | ||
916 | width: hasOverflowY ? $.position.scrollbarWidth() : 0, | ||
917 | height: hasOverflowX ? $.position.scrollbarWidth() : 0 | ||
918 | }; | ||
919 | }, | ||
920 | getWithinInfo: function( element ) { | ||
921 | var withinElement = $( element || window ), | ||
922 | isWindow = $.isWindow( withinElement[0] ), | ||
923 | isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9; | ||
924 | return { | ||
925 | element: withinElement, | ||
926 | isWindow: isWindow, | ||
927 | isDocument: isDocument, | ||
928 | offset: withinElement.offset() || { left: 0, top: 0 }, | ||
929 | scrollLeft: withinElement.scrollLeft(), | ||
930 | scrollTop: withinElement.scrollTop(), | ||
931 | width: isWindow ? withinElement.width() : withinElement.outerWidth(), | ||
932 | height: isWindow ? withinElement.height() : withinElement.outerHeight() | ||
933 | }; | ||
934 | } | ||
935 | }; | ||
936 | |||
937 | $.fn.position = function( options ) { | ||
938 | if ( !options || !options.of ) { | ||
939 | return _position.apply( this, arguments ); | ||
940 | } | ||
941 | |||
942 | // make a copy, we don't want to modify arguments | ||
943 | options = $.extend( {}, options ); | ||
944 | |||
945 | var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, | ||
946 | target = $( options.of ), | ||
947 | within = $.position.getWithinInfo( options.within ), | ||
948 | scrollInfo = $.position.getScrollInfo( within ), | ||
949 | collision = ( options.collision || "flip" ).split( " " ), | ||
950 | offsets = {}; | ||
951 | |||
952 | dimensions = getDimensions( target ); | ||
953 | if ( target[0].preventDefault ) { | ||
954 | // force left top to allow flipping | ||
955 | options.at = "left top"; | ||
956 | } | ||
957 | targetWidth = dimensions.width; | ||
958 | targetHeight = dimensions.height; | ||
959 | targetOffset = dimensions.offset; | ||
960 | // clone to reuse original targetOffset later | ||
961 | basePosition = $.extend( {}, targetOffset ); | ||
962 | |||
963 | // force my and at to have valid horizontal and vertical positions | ||
964 | // if a value is missing or invalid, it will be converted to center | ||
965 | $.each( [ "my", "at" ], function() { | ||
966 | var pos = ( options[ this ] || "" ).split( " " ), | ||
967 | horizontalOffset, | ||
968 | verticalOffset; | ||
969 | |||
970 | if ( pos.length === 1) { | ||
971 | pos = rhorizontal.test( pos[ 0 ] ) ? | ||
972 | pos.concat( [ "center" ] ) : | ||
973 | rvertical.test( pos[ 0 ] ) ? | ||
974 | [ "center" ].concat( pos ) : | ||
975 | [ "center", "center" ]; | ||
976 | } | ||
977 | pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; | ||
978 | pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; | ||
979 | |||
980 | // calculate offsets | ||
981 | horizontalOffset = roffset.exec( pos[ 0 ] ); | ||
982 | verticalOffset = roffset.exec( pos[ 1 ] ); | ||
983 | offsets[ this ] = [ | ||
984 | horizontalOffset ? horizontalOffset[ 0 ] : 0, | ||
985 | verticalOffset ? verticalOffset[ 0 ] : 0 | ||
986 | ]; | ||
987 | |||
988 | // reduce to just the positions without the offsets | ||
989 | options[ this ] = [ | ||
990 | rposition.exec( pos[ 0 ] )[ 0 ], | ||
991 | rposition.exec( pos[ 1 ] )[ 0 ] | ||
992 | ]; | ||
993 | }); | ||
994 | |||
995 | // normalize collision option | ||
996 | if ( collision.length === 1 ) { | ||
997 | collision[ 1 ] = collision[ 0 ]; | ||
998 | } | ||
999 | |||
1000 | if ( options.at[ 0 ] === "right" ) { | ||
1001 | basePosition.left += targetWidth; | ||
1002 | } else if ( options.at[ 0 ] === "center" ) { | ||
1003 | basePosition.left += targetWidth / 2; | ||
1004 | } | ||
1005 | |||
1006 | if ( options.at[ 1 ] === "bottom" ) { | ||
1007 | basePosition.top += targetHeight; | ||
1008 | } else if ( options.at[ 1 ] === "center" ) { | ||
1009 | basePosition.top += targetHeight / 2; | ||
1010 | } | ||
1011 | |||
1012 | atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); | ||
1013 | basePosition.left += atOffset[ 0 ]; | ||
1014 | basePosition.top += atOffset[ 1 ]; | ||
1015 | |||
1016 | return this.each(function() { | ||
1017 | var collisionPosition, using, | ||
1018 | elem = $( this ), | ||
1019 | elemWidth = elem.outerWidth(), | ||
1020 | elemHeight = elem.outerHeight(), | ||
1021 | marginLeft = parseCss( this, "marginLeft" ), | ||
1022 | marginTop = parseCss( this, "marginTop" ), | ||
1023 | collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, | ||
1024 | collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, | ||
1025 | position = $.extend( {}, basePosition ), | ||
1026 | myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); | ||
1027 | |||
1028 | if ( options.my[ 0 ] === "right" ) { | ||
1029 | position.left -= elemWidth; | ||
1030 | } else if ( options.my[ 0 ] === "center" ) { | ||
1031 | position.left -= elemWidth / 2; | ||
1032 | } | ||
1033 | |||
1034 | if ( options.my[ 1 ] === "bottom" ) { | ||
1035 | position.top -= elemHeight; | ||
1036 | } else if ( options.my[ 1 ] === "center" ) { | ||
1037 | position.top -= elemHeight / 2; | ||
1038 | } | ||
1039 | |||
1040 | position.left += myOffset[ 0 ]; | ||
1041 | position.top += myOffset[ 1 ]; | ||
1042 | |||
1043 | // if the browser doesn't support fractions, then round for consistent results | ||
1044 | if ( !$.support.offsetFractions ) { | ||
1045 | position.left = round( position.left ); | ||
1046 | position.top = round( position.top ); | ||
1047 | } | ||
1048 | |||
1049 | collisionPosition = { | ||
1050 | marginLeft: marginLeft, | ||
1051 | marginTop: marginTop | ||
1052 | }; | ||
1053 | |||
1054 | $.each( [ "left", "top" ], function( i, dir ) { | ||
1055 | if ( $.ui.position[ collision[ i ] ] ) { | ||
1056 | $.ui.position[ collision[ i ] ][ dir ]( position, { | ||
1057 | targetWidth: targetWidth, | ||
1058 | targetHeight: targetHeight, | ||
1059 | elemWidth: elemWidth, | ||
1060 | elemHeight: elemHeight, | ||
1061 | collisionPosition: collisionPosition, | ||
1062 | collisionWidth: collisionWidth, | ||
1063 | collisionHeight: collisionHeight, | ||
1064 | offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], | ||
1065 | my: options.my, | ||
1066 | at: options.at, | ||
1067 | within: within, | ||
1068 | elem : elem | ||
1069 | }); | ||
1070 | } | ||
1071 | }); | ||
1072 | |||
1073 | if ( options.using ) { | ||
1074 | // adds feedback as second argument to using callback, if present | ||
1075 | using = function( props ) { | ||
1076 | var left = targetOffset.left - position.left, | ||
1077 | right = left + targetWidth - elemWidth, | ||
1078 | top = targetOffset.top - position.top, | ||
1079 | bottom = top + targetHeight - elemHeight, | ||
1080 | feedback = { | ||
1081 | target: { | ||
1082 | element: target, | ||
1083 | left: targetOffset.left, | ||
1084 | top: targetOffset.top, | ||
1085 | width: targetWidth, | ||
1086 | height: targetHeight | ||
1087 | }, | ||
1088 | element: { | ||
1089 | element: elem, | ||
1090 | left: position.left, | ||
1091 | top: position.top, | ||
1092 | width: elemWidth, | ||
1093 | height: elemHeight | ||
1094 | }, | ||
1095 | horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", | ||
1096 | vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" | ||
1097 | }; | ||
1098 | if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { | ||
1099 | feedback.horizontal = "center"; | ||
1100 | } | ||
1101 | if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { | ||
1102 | feedback.vertical = "middle"; | ||
1103 | } | ||
1104 | if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { | ||
1105 | feedback.important = "horizontal"; | ||
1106 | } else { | ||
1107 | feedback.important = "vertical"; | ||
1108 | } | ||
1109 | options.using.call( this, props, feedback ); | ||
1110 | }; | ||
1111 | } | ||
1112 | |||
1113 | elem.offset( $.extend( position, { using: using } ) ); | ||
1114 | }); | ||
1115 | }; | ||
1116 | |||
1117 | $.ui.position = { | ||
1118 | fit: { | ||
1119 | left: function( position, data ) { | ||
1120 | var within = data.within, | ||
1121 | withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, | ||
1122 | outerWidth = within.width, | ||
1123 | collisionPosLeft = position.left - data.collisionPosition.marginLeft, | ||
1124 | overLeft = withinOffset - collisionPosLeft, | ||
1125 | overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, | ||
1126 | newOverRight; | ||
1127 | |||
1128 | // element is wider than within | ||
1129 | if ( data.collisionWidth > outerWidth ) { | ||
1130 | // element is initially over the left side of within | ||
1131 | if ( overLeft > 0 && overRight <= 0 ) { | ||
1132 | newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; | ||
1133 | position.left += overLeft - newOverRight; | ||
1134 | // element is initially over right side of within | ||
1135 | } else if ( overRight > 0 && overLeft <= 0 ) { | ||
1136 | position.left = withinOffset; | ||
1137 | // element is initially over both left and right sides of within | ||
1138 | } else { | ||
1139 | if ( overLeft > overRight ) { | ||
1140 | position.left = withinOffset + outerWidth - data.collisionWidth; | ||
1141 | } else { | ||
1142 | position.left = withinOffset; | ||
1143 | } | ||
1144 | } | ||
1145 | // too far left -> align with left edge | ||
1146 | } else if ( overLeft > 0 ) { | ||
1147 | position.left += overLeft; | ||
1148 | // too far right -> align with right edge | ||
1149 | } else if ( overRight > 0 ) { | ||
1150 | position.left -= overRight; | ||
1151 | // adjust based on position and margin | ||
1152 | } else { | ||
1153 | position.left = max( position.left - collisionPosLeft, position.left ); | ||
1154 | } | ||
1155 | }, | ||
1156 | top: function( position, data ) { | ||
1157 | var within = data.within, | ||
1158 | withinOffset = within.isWindow ? within.scrollTop : within.offset.top, | ||
1159 | outerHeight = data.within.height, | ||
1160 | collisionPosTop = position.top - data.collisionPosition.marginTop, | ||
1161 | overTop = withinOffset - collisionPosTop, | ||
1162 | overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, | ||
1163 | newOverBottom; | ||
1164 | |||
1165 | // element is taller than within | ||
1166 | if ( data.collisionHeight > outerHeight ) { | ||
1167 | // element is initially over the top of within | ||
1168 | if ( overTop > 0 && overBottom <= 0 ) { | ||
1169 | newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; | ||
1170 | position.top += overTop - newOverBottom; | ||
1171 | // element is initially over bottom of within | ||
1172 | } else if ( overBottom > 0 && overTop <= 0 ) { | ||
1173 | position.top = withinOffset; | ||
1174 | // element is initially over both top and bottom of within | ||
1175 | } else { | ||
1176 | if ( overTop > overBottom ) { | ||
1177 | position.top = withinOffset + outerHeight - data.collisionHeight; | ||
1178 | } else { | ||
1179 | position.top = withinOffset; | ||
1180 | } | ||
1181 | } | ||
1182 | // too far up -> align with top | ||
1183 | } else if ( overTop > 0 ) { | ||
1184 | position.top += overTop; | ||
1185 | // too far down -> align with bottom edge | ||
1186 | } else if ( overBottom > 0 ) { | ||
1187 | position.top -= overBottom; | ||
1188 | // adjust based on position and margin | ||
1189 | } else { | ||
1190 | position.top = max( position.top - collisionPosTop, position.top ); | ||
1191 | } | ||
1192 | } | ||
1193 | }, | ||
1194 | flip: { | ||
1195 | left: function( position, data ) { | ||
1196 | var within = data.within, | ||
1197 | withinOffset = within.offset.left + within.scrollLeft, | ||
1198 | outerWidth = within.width, | ||
1199 | offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, | ||
1200 | collisionPosLeft = position.left - data.collisionPosition.marginLeft, | ||
1201 | overLeft = collisionPosLeft - offsetLeft, | ||
1202 | overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, | ||
1203 | myOffset = data.my[ 0 ] === "left" ? | ||
1204 | -data.elemWidth : | ||
1205 | data.my[ 0 ] === "right" ? | ||
1206 | data.elemWidth : | ||
1207 | 0, | ||
1208 | atOffset = data.at[ 0 ] === "left" ? | ||
1209 | data.targetWidth : | ||
1210 | data.at[ 0 ] === "right" ? | ||
1211 | -data.targetWidth : | ||
1212 | 0, | ||
1213 | offset = -2 * data.offset[ 0 ], | ||
1214 | newOverRight, | ||
1215 | newOverLeft; | ||
1216 | |||
1217 | if ( overLeft < 0 ) { | ||
1218 | newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; | ||
1219 | if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { | ||
1220 | position.left += myOffset + atOffset + offset; | ||
1221 | } | ||
1222 | } | ||
1223 | else if ( overRight > 0 ) { | ||
1224 | newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; | ||
1225 | if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { | ||
1226 | position.left += myOffset + atOffset + offset; | ||
1227 | } | ||
1228 | } | ||
1229 | }, | ||
1230 | top: function( position, data ) { | ||
1231 | var within = data.within, | ||
1232 | withinOffset = within.offset.top + within.scrollTop, | ||
1233 | outerHeight = within.height, | ||
1234 | offsetTop = within.isWindow ? within.scrollTop : within.offset.top, | ||
1235 | collisionPosTop = position.top - data.collisionPosition.marginTop, | ||
1236 | overTop = collisionPosTop - offsetTop, | ||
1237 | overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, | ||
1238 | top = data.my[ 1 ] === "top", | ||
1239 | myOffset = top ? | ||
1240 | -data.elemHeight : | ||
1241 | data.my[ 1 ] === "bottom" ? | ||
1242 | data.elemHeight : | ||
1243 | 0, | ||
1244 | atOffset = data.at[ 1 ] === "top" ? | ||
1245 | data.targetHeight : | ||
1246 | data.at[ 1 ] === "bottom" ? | ||
1247 | -data.targetHeight : | ||
1248 | 0, | ||
1249 | offset = -2 * data.offset[ 1 ], | ||
1250 | newOverTop, | ||
1251 | newOverBottom; | ||
1252 | if ( overTop < 0 ) { | ||
1253 | newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; | ||
1254 | if ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) { | ||
1255 | position.top += myOffset + atOffset + offset; | ||
1256 | } | ||
1257 | } | ||
1258 | else if ( overBottom > 0 ) { | ||
1259 | newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; | ||
1260 | if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) { | ||
1261 | position.top += myOffset + atOffset + offset; | ||
1262 | } | ||
1263 | } | ||
1264 | } | ||
1265 | }, | ||
1266 | flipfit: { | ||
1267 | left: function() { | ||
1268 | $.ui.position.flip.left.apply( this, arguments ); | ||
1269 | $.ui.position.fit.left.apply( this, arguments ); | ||
1270 | }, | ||
1271 | top: function() { | ||
1272 | $.ui.position.flip.top.apply( this, arguments ); | ||
1273 | $.ui.position.fit.top.apply( this, arguments ); | ||
1274 | } | ||
1275 | } | ||
1276 | }; | ||
1277 | |||
1278 | // fraction support test | ||
1279 | (function () { | ||
1280 | var testElement, testElementParent, testElementStyle, offsetLeft, i, | ||
1281 | body = document.getElementsByTagName( "body" )[ 0 ], | ||
1282 | div = document.createElement( "div" ); | ||
1283 | |||
1284 | //Create a "fake body" for testing based on method used in jQuery.support | ||
1285 | testElement = document.createElement( body ? "div" : "body" ); | ||
1286 | testElementStyle = { | ||
1287 | visibility: "hidden", | ||
1288 | width: 0, | ||
1289 | height: 0, | ||
1290 | border: 0, | ||
1291 | margin: 0, | ||
1292 | background: "none" | ||
1293 | }; | ||
1294 | if ( body ) { | ||
1295 | $.extend( testElementStyle, { | ||
1296 | position: "absolute", | ||
1297 | left: "-1000px", | ||
1298 | top: "-1000px" | ||
1299 | }); | ||
1300 | } | ||
1301 | for ( i in testElementStyle ) { | ||
1302 | testElement.style[ i ] = testElementStyle[ i ]; | ||
1303 | } | ||
1304 | testElement.appendChild( div ); | ||
1305 | testElementParent = body || document.documentElement; | ||
1306 | testElementParent.insertBefore( testElement, testElementParent.firstChild ); | ||
1307 | |||
1308 | div.style.cssText = "position: absolute; left: 10.7432222px;"; | ||
1309 | |||
1310 | offsetLeft = $( div ).offset().left; | ||
1311 | $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11; | ||
1312 | |||
1313 | testElement.innerHTML = ""; | ||
1314 | testElementParent.removeChild( testElement ); | ||
1315 | })(); | ||
1316 | |||
1317 | }( jQuery ) ); | ||
1318 | (function( $, undefined ) { | ||
1319 | |||
1320 | $.widget( "ui.autocomplete", { | ||
1321 | version: "1.10.4", | ||
1322 | defaultElement: "<input>", | ||
1323 | options: { | ||
1324 | appendTo: null, | ||
1325 | autoFocus: false, | ||
1326 | delay: 300, | ||
1327 | minLength: 1, | ||
1328 | position: { | ||
1329 | my: "left top", | ||
1330 | at: "left bottom", | ||
1331 | collision: "none" | ||
1332 | }, | ||
1333 | source: null, | ||
1334 | |||
1335 | // callbacks | ||
1336 | change: null, | ||
1337 | close: null, | ||
1338 | focus: null, | ||
1339 | open: null, | ||
1340 | response: null, | ||
1341 | search: null, | ||
1342 | select: null | ||
1343 | }, | ||
1344 | |||
1345 | requestIndex: 0, | ||
1346 | pending: 0, | ||
1347 | |||
1348 | _create: function() { | ||
1349 | // Some browsers only repeat keydown events, not keypress events, | ||
1350 | // so we use the suppressKeyPress flag to determine if we've already | ||
1351 | // handled the keydown event. #7269 | ||
1352 | // Unfortunately the code for & in keypress is the same as the up arrow, | ||
1353 | // so we use the suppressKeyPressRepeat flag to avoid handling keypress | ||
1354 | // events when we know the keydown event was used to modify the | ||
1355 | // search term. #7799 | ||
1356 | var suppressKeyPress, suppressKeyPressRepeat, suppressInput, | ||
1357 | nodeName = this.element[0].nodeName.toLowerCase(), | ||
1358 | isTextarea = nodeName === "textarea", | ||
1359 | isInput = nodeName === "input"; | ||
1360 | |||
1361 | this.isMultiLine = | ||
1362 | // Textareas are always multi-line | ||
1363 | isTextarea ? true : | ||
1364 | // Inputs are always single-line, even if inside a contentEditable element | ||
1365 | // IE also treats inputs as contentEditable | ||
1366 | isInput ? false : | ||
1367 | // All other element types are determined by whether or not they're contentEditable | ||
1368 | this.element.prop( "isContentEditable" ); | ||
1369 | |||
1370 | this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ]; | ||
1371 | this.isNewMenu = true; | ||
1372 | |||
1373 | this.element | ||
1374 | .addClass( "ui-autocomplete-input" ) | ||
1375 | .attr( "autocomplete", "off" ); | ||
1376 | |||
1377 | this._on( this.element, { | ||
1378 | keydown: function( event ) { | ||
1379 | if ( this.element.prop( "readOnly" ) ) { | ||
1380 | suppressKeyPress = true; | ||
1381 | suppressInput = true; | ||
1382 | suppressKeyPressRepeat = true; | ||
1383 | return; | ||
1384 | } | ||
1385 | |||
1386 | suppressKeyPress = false; | ||
1387 | suppressInput = false; | ||
1388 | suppressKeyPressRepeat = false; | ||
1389 | var keyCode = $.ui.keyCode; | ||
1390 | switch( event.keyCode ) { | ||
1391 | case keyCode.PAGE_UP: | ||
1392 | suppressKeyPress = true; | ||
1393 | this._move( "previousPage", event ); | ||
1394 | break; | ||
1395 | case keyCode.PAGE_DOWN: | ||
1396 | suppressKeyPress = true; | ||
1397 | this._move( "nextPage", event ); | ||
1398 | break; | ||
1399 | case keyCode.UP: | ||
1400 | suppressKeyPress = true; | ||
1401 | this._keyEvent( "previous", event ); | ||
1402 | break; | ||
1403 | case keyCode.DOWN: | ||
1404 | suppressKeyPress = true; | ||
1405 | this._keyEvent( "next", event ); | ||
1406 | break; | ||
1407 | case keyCode.ENTER: | ||
1408 | case keyCode.NUMPAD_ENTER: | ||
1409 | // when menu is open and has focus | ||
1410 | if ( this.menu.active ) { | ||
1411 | // #6055 - Opera still allows the keypress to occur | ||
1412 | // which causes forms to submit | ||
1413 | suppressKeyPress = true; | ||
1414 | event.preventDefault(); | ||
1415 | this.menu.select( event ); | ||
1416 | } | ||
1417 | break; | ||
1418 | case keyCode.TAB: | ||
1419 | if ( this.menu.active ) { | ||
1420 | this.menu.select( event ); | ||
1421 | } | ||
1422 | break; | ||
1423 | case keyCode.ESCAPE: | ||
1424 | if ( this.menu.element.is( ":visible" ) ) { | ||
1425 | this._value( this.term ); | ||
1426 | this.close( event ); | ||
1427 | // Different browsers have different default behavior for escape | ||
1428 | // Single press can mean undo or clear | ||
1429 | // Double press in IE means clear the whole form | ||
1430 | event.preventDefault(); | ||
1431 | } | ||
1432 | break; | ||
1433 | default: | ||
1434 | suppressKeyPressRepeat = true; | ||
1435 | // search timeout should be triggered before the input value is changed | ||
1436 | this._searchTimeout( event ); | ||
1437 | break; | ||
1438 | } | ||
1439 | }, | ||
1440 | keypress: function( event ) { | ||
1441 | if ( suppressKeyPress ) { | ||
1442 | suppressKeyPress = false; | ||
1443 | if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) { | ||
1444 | event.preventDefault(); | ||
1445 | } | ||
1446 | return; | ||
1447 | } | ||
1448 | if ( suppressKeyPressRepeat ) { | ||
1449 | return; | ||
1450 | } | ||
1451 | |||
1452 | // replicate some key handlers to allow them to repeat in Firefox and Opera | ||
1453 | var keyCode = $.ui.keyCode; | ||
1454 | switch( event.keyCode ) { | ||
1455 | case keyCode.PAGE_UP: | ||
1456 | this._move( "previousPage", event ); | ||
1457 | break; | ||
1458 | case keyCode.PAGE_DOWN: | ||
1459 | this._move( "nextPage", event ); | ||
1460 | break; | ||
1461 | case keyCode.UP: | ||
1462 | this._keyEvent( "previous", event ); | ||
1463 | break; | ||
1464 | case keyCode.DOWN: | ||
1465 | this._keyEvent( "next", event ); | ||
1466 | break; | ||
1467 | } | ||
1468 | }, | ||
1469 | input: function( event ) { | ||
1470 | if ( suppressInput ) { | ||
1471 | suppressInput = false; | ||
1472 | event.preventDefault(); | ||
1473 | return; | ||
1474 | } | ||
1475 | this._searchTimeout( event ); | ||
1476 | }, | ||
1477 | focus: function() { | ||
1478 | this.selectedItem = null; | ||
1479 | this.previous = this._value(); | ||
1480 | }, | ||
1481 | blur: function( event ) { | ||
1482 | if ( this.cancelBlur ) { | ||
1483 | delete this.cancelBlur; | ||
1484 | return; | ||
1485 | } | ||
1486 | |||
1487 | clearTimeout( this.searching ); | ||
1488 | this.close( event ); | ||
1489 | this._change( event ); | ||
1490 | } | ||
1491 | }); | ||
1492 | |||
1493 | this._initSource(); | ||
1494 | this.menu = $( "<ul>" ) | ||
1495 | .addClass( "ui-autocomplete ui-front" ) | ||
1496 | .appendTo( this._appendTo() ) | ||
1497 | .menu({ | ||
1498 | // disable ARIA support, the live region takes care of that | ||
1499 | role: null | ||
1500 | }) | ||
1501 | .hide() | ||
1502 | .data( "ui-menu" ); | ||
1503 | |||
1504 | this._on( this.menu.element, { | ||
1505 | mousedown: function( event ) { | ||
1506 | // prevent moving focus out of the text field | ||
1507 | event.preventDefault(); | ||
1508 | |||
1509 | // IE doesn't prevent moving focus even with event.preventDefault() | ||
1510 | // so we set a flag to know when we should ignore the blur event | ||
1511 | this.cancelBlur = true; | ||
1512 | this._delay(function() { | ||
1513 | delete this.cancelBlur; | ||
1514 | }); | ||
1515 | |||
1516 | // clicking on the scrollbar causes focus to shift to the body | ||
1517 | // but we can't detect a mouseup or a click immediately afterward | ||
1518 | // so we have to track the next mousedown and close the menu if | ||
1519 | // the user clicks somewhere outside of the autocomplete | ||
1520 | var menuElement = this.menu.element[ 0 ]; | ||
1521 | if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { | ||
1522 | this._delay(function() { | ||
1523 | var that = this; | ||
1524 | this.document.one( "mousedown", function( event ) { | ||
1525 | if ( event.target !== that.element[ 0 ] && | ||
1526 | event.target !== menuElement && | ||
1527 | !$.contains( menuElement, event.target ) ) { | ||
1528 | that.close(); | ||
1529 | } | ||
1530 | }); | ||
1531 | }); | ||
1532 | } | ||
1533 | }, | ||
1534 | menufocus: function( event, ui ) { | ||
1535 | // support: Firefox | ||
1536 | // Prevent accidental activation of menu items in Firefox (#7024 #9118) | ||
1537 | if ( this.isNewMenu ) { | ||
1538 | this.isNewMenu = false; | ||
1539 | if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) { | ||
1540 | this.menu.blur(); | ||
1541 | |||
1542 | this.document.one( "mousemove", function() { | ||
1543 | $( event.target ).trigger( event.originalEvent ); | ||
1544 | }); | ||
1545 | |||
1546 | return; | ||
1547 | } | ||
1548 | } | ||
1549 | |||
1550 | var item = ui.item.data( "ui-autocomplete-item" ); | ||
1551 | if ( false !== this._trigger( "focus", event, { item: item } ) ) { | ||
1552 | // use value to match what will end up in the input, if it was a key event | ||
1553 | if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) { | ||
1554 | this._value( item.value ); | ||
1555 | } | ||
1556 | } else { | ||
1557 | // Normally the input is populated with the item's value as the | ||
1558 | // menu is navigated, causing screen readers to notice a change and | ||
1559 | // announce the item. Since the focus event was canceled, this doesn't | ||
1560 | // happen, so we update the live region so that screen readers can | ||
1561 | // still notice the change and announce it. | ||
1562 | this.liveRegion.text( item.value ); | ||
1563 | } | ||
1564 | }, | ||
1565 | menuselect: function( event, ui ) { | ||
1566 | var item = ui.item.data( "ui-autocomplete-item" ), | ||
1567 | previous = this.previous; | ||
1568 | |||
1569 | // only trigger when focus was lost (click on menu) | ||
1570 | if ( this.element[0] !== this.document[0].activeElement ) { | ||
1571 | this.element.focus(); | ||
1572 | this.previous = previous; | ||
1573 | // #6109 - IE triggers two focus events and the second | ||
1574 | // is asynchronous, so we need to reset the previous | ||
1575 | // term synchronously and asynchronously :-( | ||
1576 | this._delay(function() { | ||
1577 | this.previous = previous; | ||
1578 | this.selectedItem = item; | ||
1579 | }); | ||
1580 | } | ||
1581 | |||
1582 | if ( false !== this._trigger( "select", event, { item: item } ) ) { | ||
1583 | this._value( item.value ); | ||
1584 | } | ||
1585 | // reset the term after the select event | ||
1586 | // this allows custom select handling to work properly | ||
1587 | this.term = this._value(); | ||
1588 | |||
1589 | this.close( event ); | ||
1590 | this.selectedItem = item; | ||
1591 | } | ||
1592 | }); | ||
1593 | |||
1594 | this.liveRegion = $( "<span>", { | ||
1595 | role: "status", | ||
1596 | "aria-live": "polite" | ||
1597 | }) | ||
1598 | .addClass( "ui-helper-hidden-accessible" ) | ||
1599 | .insertBefore( this.element ); | ||
1600 | |||
1601 | // turning off autocomplete prevents the browser from remembering the | ||
1602 | // value when navigating through history, so we re-enable autocomplete | ||
1603 | // if the page is unloaded before the widget is destroyed. #7790 | ||
1604 | this._on( this.window, { | ||
1605 | beforeunload: function() { | ||
1606 | this.element.removeAttr( "autocomplete" ); | ||
1607 | } | ||
1608 | }); | ||
1609 | }, | ||
1610 | |||
1611 | _destroy: function() { | ||
1612 | clearTimeout( this.searching ); | ||
1613 | this.element | ||
1614 | .removeClass( "ui-autocomplete-input" ) | ||
1615 | .removeAttr( "autocomplete" ); | ||
1616 | this.menu.element.remove(); | ||
1617 | this.liveRegion.remove(); | ||
1618 | }, | ||
1619 | |||
1620 | _setOption: function( key, value ) { | ||
1621 | this._super( key, value ); | ||
1622 | if ( key === "source" ) { | ||
1623 | this._initSource(); | ||
1624 | } | ||
1625 | if ( key === "appendTo" ) { | ||
1626 | this.menu.element.appendTo( this._appendTo() ); | ||
1627 | } | ||
1628 | if ( key === "disabled" && value && this.xhr ) { | ||
1629 | this.xhr.abort(); | ||
1630 | } | ||
1631 | }, | ||
1632 | |||
1633 | _appendTo: function() { | ||
1634 | var element = this.options.appendTo; | ||
1635 | |||
1636 | if ( element ) { | ||
1637 | element = element.jquery || element.nodeType ? | ||
1638 | $( element ) : | ||
1639 | this.document.find( element ).eq( 0 ); | ||
1640 | } | ||
1641 | |||
1642 | if ( !element ) { | ||
1643 | element = this.element.closest( ".ui-front" ); | ||
1644 | } | ||
1645 | |||
1646 | if ( !element.length ) { | ||
1647 | element = this.document[0].body; | ||
1648 | } | ||
1649 | |||
1650 | return element; | ||
1651 | }, | ||
1652 | |||
1653 | _initSource: function() { | ||
1654 | var array, url, | ||
1655 | that = this; | ||
1656 | if ( $.isArray(this.options.source) ) { | ||
1657 | array = this.options.source; | ||
1658 | this.source = function( request, response ) { | ||
1659 | response( $.ui.autocomplete.filter( array, request.term ) ); | ||
1660 | }; | ||
1661 | } else if ( typeof this.options.source === "string" ) { | ||
1662 | url = this.options.source; | ||
1663 | this.source = function( request, response ) { | ||
1664 | if ( that.xhr ) { | ||
1665 | that.xhr.abort(); | ||
1666 | } | ||
1667 | that.xhr = $.ajax({ | ||
1668 | url: url, | ||
1669 | data: request, | ||
1670 | dataType: "json", | ||
1671 | success: function( data ) { | ||
1672 | response( data ); | ||
1673 | }, | ||
1674 | error: function() { | ||
1675 | response( [] ); | ||
1676 | } | ||
1677 | }); | ||
1678 | }; | ||
1679 | } else { | ||
1680 | this.source = this.options.source; | ||
1681 | } | ||
1682 | }, | ||
1683 | |||
1684 | _searchTimeout: function( event ) { | ||
1685 | clearTimeout( this.searching ); | ||
1686 | this.searching = this._delay(function() { | ||
1687 | // only search if the value has changed | ||
1688 | if ( this.term !== this._value() ) { | ||
1689 | this.selectedItem = null; | ||
1690 | this.search( null, event ); | ||
1691 | } | ||
1692 | }, this.options.delay ); | ||
1693 | }, | ||
1694 | |||
1695 | search: function( value, event ) { | ||
1696 | value = value != null ? value : this._value(); | ||
1697 | |||
1698 | // always save the actual value, not the one passed as an argument | ||
1699 | this.term = this._value(); | ||
1700 | |||
1701 | if ( value.length < this.options.minLength ) { | ||
1702 | return this.close( event ); | ||
1703 | } | ||
1704 | |||
1705 | if ( this._trigger( "search", event ) === false ) { | ||
1706 | return; | ||
1707 | } | ||
1708 | |||
1709 | return this._search( value ); | ||
1710 | }, | ||
1711 | |||
1712 | _search: function( value ) { | ||
1713 | this.pending++; | ||
1714 | this.element.addClass( "ui-autocomplete-loading" ); | ||
1715 | this.cancelSearch = false; | ||
1716 | |||
1717 | this.source( { term: value }, this._response() ); | ||
1718 | }, | ||
1719 | |||
1720 | _response: function() { | ||
1721 | var index = ++this.requestIndex; | ||
1722 | |||
1723 | return $.proxy(function( content ) { | ||
1724 | if ( index === this.requestIndex ) { | ||
1725 | this.__response( content ); | ||
1726 | } | ||
1727 | |||
1728 | this.pending--; | ||
1729 | if ( !this.pending ) { | ||
1730 | this.element.removeClass( "ui-autocomplete-loading" ); | ||
1731 | } | ||
1732 | }, this ); | ||
1733 | }, | ||
1734 | |||
1735 | __response: function( content ) { | ||
1736 | if ( content ) { | ||
1737 | content = this._normalize( content ); | ||
1738 | } | ||
1739 | this._trigger( "response", null, { content: content } ); | ||
1740 | if ( !this.options.disabled && content && content.length && !this.cancelSearch ) { | ||
1741 | this._suggest( content ); | ||
1742 | this._trigger( "open" ); | ||
1743 | } else { | ||
1744 | // use ._close() instead of .close() so we don't cancel future searches | ||
1745 | this._close(); | ||
1746 | } | ||
1747 | }, | ||
1748 | |||
1749 | close: function( event ) { | ||
1750 | this.cancelSearch = true; | ||
1751 | this._close( event ); | ||
1752 | }, | ||
1753 | |||
1754 | _close: function( event ) { | ||
1755 | if ( this.menu.element.is( ":visible" ) ) { | ||
1756 | this.menu.element.hide(); | ||
1757 | this.menu.blur(); | ||
1758 | this.isNewMenu = true; | ||
1759 | this._trigger( "close", event ); | ||
1760 | } | ||
1761 | }, | ||
1762 | |||
1763 | _change: function( event ) { | ||
1764 | if ( this.previous !== this._value() ) { | ||
1765 | this._trigger( "change", event, { item: this.selectedItem } ); | ||
1766 | } | ||
1767 | }, | ||
1768 | |||
1769 | _normalize: function( items ) { | ||
1770 | // assume all items have the right format when the first item is complete | ||
1771 | if ( items.length && items[0].label && items[0].value ) { | ||
1772 | return items; | ||
1773 | } | ||
1774 | return $.map( items, function( item ) { | ||
1775 | if ( typeof item === "string" ) { | ||
1776 | return { | ||
1777 | label: item, | ||
1778 | value: item | ||
1779 | }; | ||
1780 | } | ||
1781 | return $.extend({ | ||
1782 | label: item.label || item.value, | ||
1783 | value: item.value || item.label | ||
1784 | }, item ); | ||
1785 | }); | ||
1786 | }, | ||
1787 | |||
1788 | _suggest: function( items ) { | ||
1789 | var ul = this.menu.element.empty(); | ||
1790 | this._renderMenu( ul, items ); | ||
1791 | this.isNewMenu = true; | ||
1792 | this.menu.refresh(); | ||
1793 | |||
1794 | // size and position menu | ||
1795 | ul.show(); | ||
1796 | this._resizeMenu(); | ||
1797 | ul.position( $.extend({ | ||
1798 | of: this.element | ||
1799 | }, this.options.position )); | ||
1800 | |||
1801 | if ( this.options.autoFocus ) { | ||
1802 | this.menu.next(); | ||
1803 | } | ||
1804 | }, | ||
1805 | |||
1806 | _resizeMenu: function() { | ||
1807 | var ul = this.menu.element; | ||
1808 | ul.outerWidth( Math.max( | ||
1809 | // Firefox wraps long text (possibly a rounding bug) | ||
1810 | // so we add 1px to avoid the wrapping (#7513) | ||
1811 | ul.width( "" ).outerWidth() + 1, | ||
1812 | this.element.outerWidth() | ||
1813 | ) ); | ||
1814 | }, | ||
1815 | |||
1816 | _renderMenu: function( ul, items ) { | ||
1817 | var that = this; | ||
1818 | $.each( items, function( index, item ) { | ||
1819 | that._renderItemData( ul, item ); | ||
1820 | }); | ||
1821 | }, | ||
1822 | |||
1823 | _renderItemData: function( ul, item ) { | ||
1824 | return this._renderItem( ul, item ).data( "ui-autocomplete-item", item ); | ||
1825 | }, | ||
1826 | |||
1827 | _renderItem: function( ul, item ) { | ||
1828 | return $( "<li>" ) | ||
1829 | .append( $( "<a>" ).text( item.label ) ) | ||
1830 | .appendTo( ul ); | ||
1831 | }, | ||
1832 | |||
1833 | _move: function( direction, event ) { | ||
1834 | if ( !this.menu.element.is( ":visible" ) ) { | ||
1835 | this.search( null, event ); | ||
1836 | return; | ||
1837 | } | ||
1838 | if ( this.menu.isFirstItem() && /^previous/.test( direction ) || | ||
1839 | this.menu.isLastItem() && /^next/.test( direction ) ) { | ||
1840 | this._value( this.term ); | ||
1841 | this.menu.blur(); | ||
1842 | return; | ||
1843 | } | ||
1844 | this.menu[ direction ]( event ); | ||
1845 | }, | ||
1846 | |||
1847 | widget: function() { | ||
1848 | return this.menu.element; | ||
1849 | }, | ||
1850 | |||
1851 | _value: function() { | ||
1852 | return this.valueMethod.apply( this.element, arguments ); | ||
1853 | }, | ||
1854 | |||
1855 | _keyEvent: function( keyEvent, event ) { | ||
1856 | if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) { | ||
1857 | this._move( keyEvent, event ); | ||
1858 | |||
1859 | // prevents moving cursor to beginning/end of the text field in some browsers | ||
1860 | event.preventDefault(); | ||
1861 | } | ||
1862 | } | ||
1863 | }); | ||
1864 | |||
1865 | $.extend( $.ui.autocomplete, { | ||
1866 | escapeRegex: function( value ) { | ||
1867 | return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); | ||
1868 | }, | ||
1869 | filter: function(array, term) { | ||
1870 | var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); | ||
1871 | return $.grep( array, function(value) { | ||
1872 | return matcher.test( value.label || value.value || value ); | ||
1873 | }); | ||
1874 | } | ||
1875 | }); | ||
1876 | |||
1877 | |||
1878 | // live region extension, adding a `messages` option | ||
1879 | // NOTE: This is an experimental API. We are still investigating | ||
1880 | // a full solution for string manipulation and internationalization. | ||
1881 | $.widget( "ui.autocomplete", $.ui.autocomplete, { | ||
1882 | options: { | ||
1883 | messages: { | ||
1884 | noResults: "No search results.", | ||
1885 | results: function( amount ) { | ||
1886 | return amount + ( amount > 1 ? " results are" : " result is" ) + | ||
1887 | " available, use up and down arrow keys to navigate."; | ||
1888 | } | ||
1889 | } | ||
1890 | }, | ||
1891 | |||
1892 | __response: function( content ) { | ||
1893 | var message; | ||
1894 | this._superApply( arguments ); | ||
1895 | if ( this.options.disabled || this.cancelSearch ) { | ||
1896 | return; | ||
1897 | } | ||
1898 | if ( content && content.length ) { | ||
1899 | message = this.options.messages.results( content.length ); | ||
1900 | } else { | ||
1901 | message = this.options.messages.noResults; | ||
1902 | } | ||
1903 | this.liveRegion.text( message ); | ||
1904 | } | ||
1905 | }); | ||
1906 | |||
1907 | }( jQuery )); | ||
1908 | (function( $, undefined ) { | ||
1909 | |||
1910 | $.widget( "ui.menu", { | ||
1911 | version: "1.10.4", | ||
1912 | defaultElement: "<ul>", | ||
1913 | delay: 300, | ||
1914 | options: { | ||
1915 | icons: { | ||
1916 | submenu: "ui-icon-carat-1-e" | ||
1917 | }, | ||
1918 | menus: "ul", | ||
1919 | position: { | ||
1920 | my: "left top", | ||
1921 | at: "right top" | ||
1922 | }, | ||
1923 | role: "menu", | ||
1924 | |||
1925 | // callbacks | ||
1926 | blur: null, | ||
1927 | focus: null, | ||
1928 | select: null | ||
1929 | }, | ||
1930 | |||
1931 | _create: function() { | ||
1932 | this.activeMenu = this.element; | ||
1933 | // flag used to prevent firing of the click handler | ||
1934 | // as the event bubbles up through nested menus | ||
1935 | this.mouseHandled = false; | ||
1936 | this.element | ||
1937 | .uniqueId() | ||
1938 | .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) | ||
1939 | .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ) | ||
1940 | .attr({ | ||
1941 | role: this.options.role, | ||
1942 | tabIndex: 0 | ||
1943 | }) | ||
1944 | // need to catch all clicks on disabled menu | ||
1945 | // not possible through _on | ||
1946 | .bind( "click" + this.eventNamespace, $.proxy(function( event ) { | ||
1947 | if ( this.options.disabled ) { | ||
1948 | event.preventDefault(); | ||
1949 | } | ||
1950 | }, this )); | ||
1951 | |||
1952 | if ( this.options.disabled ) { | ||
1953 | this.element | ||
1954 | .addClass( "ui-state-disabled" ) | ||
1955 | .attr( "aria-disabled", "true" ); | ||
1956 | } | ||
1957 | |||
1958 | this._on({ | ||
1959 | // Prevent focus from sticking to links inside menu after clicking | ||
1960 | // them (focus should always stay on UL during navigation). | ||
1961 | "mousedown .ui-menu-item > a": function( event ) { | ||
1962 | event.preventDefault(); | ||
1963 | }, | ||
1964 | "click .ui-state-disabled > a": function( event ) { | ||
1965 | event.preventDefault(); | ||
1966 | }, | ||
1967 | "click .ui-menu-item:has(a)": function( event ) { | ||
1968 | var target = $( event.target ).closest( ".ui-menu-item" ); | ||
1969 | if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) { | ||
1970 | this.select( event ); | ||
1971 | |||
1972 | // Only set the mouseHandled flag if the event will bubble, see #9469. | ||
1973 | if ( !event.isPropagationStopped() ) { | ||
1974 | this.mouseHandled = true; | ||
1975 | } | ||
1976 | |||
1977 | // Open submenu on click | ||
1978 | if ( target.has( ".ui-menu" ).length ) { | ||
1979 | this.expand( event ); | ||
1980 | } else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) { | ||
1981 | |||
1982 | // Redirect focus to the menu | ||
1983 | this.element.trigger( "focus", [ true ] ); | ||
1984 | |||
1985 | // If the active item is on the top level, let it stay active. | ||
1986 | // Otherwise, blur the active item since it is no longer visible. | ||
1987 | if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) { | ||
1988 | clearTimeout( this.timer ); | ||
1989 | } | ||
1990 | } | ||
1991 | } | ||
1992 | }, | ||
1993 | "mouseenter .ui-menu-item": function( event ) { | ||
1994 | var target = $( event.currentTarget ); | ||
1995 | // Remove ui-state-active class from siblings of the newly focused menu item | ||
1996 | // to avoid a jump caused by adjacent elements both having a class with a border | ||
1997 | target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" ); | ||
1998 | this.focus( event, target ); | ||
1999 | }, | ||
2000 | mouseleave: "collapseAll", | ||
2001 | "mouseleave .ui-menu": "collapseAll", | ||
2002 | focus: function( event, keepActiveItem ) { | ||
2003 | // If there's already an active item, keep it active | ||
2004 | // If not, activate the first item | ||
2005 | var item = this.active || this.element.children( ".ui-menu-item" ).eq( 0 ); | ||
2006 | |||
2007 | if ( !keepActiveItem ) { | ||
2008 | this.focus( event, item ); | ||
2009 | } | ||
2010 | }, | ||
2011 | blur: function( event ) { | ||
2012 | this._delay(function() { | ||
2013 | if ( !$.contains( this.element[0], this.document[0].activeElement ) ) { | ||
2014 | this.collapseAll( event ); | ||
2015 | } | ||
2016 | }); | ||
2017 | }, | ||
2018 | keydown: "_keydown" | ||
2019 | }); | ||
2020 | |||
2021 | this.refresh(); | ||
2022 | |||
2023 | // Clicks outside of a menu collapse any open menus | ||
2024 | this._on( this.document, { | ||
2025 | click: function( event ) { | ||
2026 | if ( !$( event.target ).closest( ".ui-menu" ).length ) { | ||
2027 | this.collapseAll( event ); | ||
2028 | } | ||
2029 | |||
2030 | // Reset the mouseHandled flag | ||
2031 | this.mouseHandled = false; | ||
2032 | } | ||
2033 | }); | ||
2034 | }, | ||
2035 | |||
2036 | _destroy: function() { | ||
2037 | // Destroy (sub)menus | ||
2038 | this.element | ||
2039 | .removeAttr( "aria-activedescendant" ) | ||
2040 | .find( ".ui-menu" ).addBack() | ||
2041 | .removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" ) | ||
2042 | .removeAttr( "role" ) | ||
2043 | .removeAttr( "tabIndex" ) | ||
2044 | .removeAttr( "aria-labelledby" ) | ||
2045 | .removeAttr( "aria-expanded" ) | ||
2046 | .removeAttr( "aria-hidden" ) | ||
2047 | .removeAttr( "aria-disabled" ) | ||
2048 | .removeUniqueId() | ||
2049 | .show(); | ||
2050 | |||
2051 | // Destroy menu items | ||
2052 | this.element.find( ".ui-menu-item" ) | ||
2053 | .removeClass( "ui-menu-item" ) | ||
2054 | .removeAttr( "role" ) | ||
2055 | .removeAttr( "aria-disabled" ) | ||
2056 | .children( "a" ) | ||
2057 | .removeUniqueId() | ||
2058 | .removeClass( "ui-corner-all ui-state-hover" ) | ||
2059 | .removeAttr( "tabIndex" ) | ||
2060 | .removeAttr( "role" ) | ||
2061 | .removeAttr( "aria-haspopup" ) | ||
2062 | .children().each( function() { | ||
2063 | var elem = $( this ); | ||
2064 | if ( elem.data( "ui-menu-submenu-carat" ) ) { | ||
2065 | elem.remove(); | ||
2066 | } | ||
2067 | }); | ||
2068 | |||
2069 | // Destroy menu dividers | ||
2070 | this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" ); | ||
2071 | }, | ||
2072 | |||
2073 | _keydown: function( event ) { | ||
2074 | var match, prev, character, skip, regex, | ||
2075 | preventDefault = true; | ||
2076 | |||
2077 | function escape( value ) { | ||
2078 | return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); | ||
2079 | } | ||
2080 | |||
2081 | switch ( event.keyCode ) { | ||
2082 | case $.ui.keyCode.PAGE_UP: | ||
2083 | this.previousPage( event ); | ||
2084 | break; | ||
2085 | case $.ui.keyCode.PAGE_DOWN: | ||
2086 | this.nextPage( event ); | ||
2087 | break; | ||
2088 | case $.ui.keyCode.HOME: | ||
2089 | this._move( "first", "first", event ); | ||
2090 | break; | ||
2091 | case $.ui.keyCode.END: | ||
2092 | this._move( "last", "last", event ); | ||
2093 | break; | ||
2094 | case $.ui.keyCode.UP: | ||
2095 | this.previous( event ); | ||
2096 | break; | ||
2097 | case $.ui.keyCode.DOWN: | ||
2098 | this.next( event ); | ||
2099 | break; | ||
2100 | case $.ui.keyCode.LEFT: | ||
2101 | this.collapse( event ); | ||
2102 | break; | ||
2103 | case $.ui.keyCode.RIGHT: | ||
2104 | if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { | ||
2105 | this.expand( event ); | ||
2106 | } | ||
2107 | break; | ||
2108 | case $.ui.keyCode.ENTER: | ||
2109 | case $.ui.keyCode.SPACE: | ||
2110 | this._activate( event ); | ||
2111 | break; | ||
2112 | case $.ui.keyCode.ESCAPE: | ||
2113 | this.collapse( event ); | ||
2114 | break; | ||
2115 | default: | ||
2116 | preventDefault = false; | ||
2117 | prev = this.previousFilter || ""; | ||
2118 | character = String.fromCharCode( event.keyCode ); | ||
2119 | skip = false; | ||
2120 | |||
2121 | clearTimeout( this.filterTimer ); | ||
2122 | |||
2123 | if ( character === prev ) { | ||
2124 | skip = true; | ||
2125 | } else { | ||
2126 | character = prev + character; | ||
2127 | } | ||
2128 | |||
2129 | regex = new RegExp( "^" + escape( character ), "i" ); | ||
2130 | match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { | ||
2131 | return regex.test( $( this ).children( "a" ).text() ); | ||
2132 | }); | ||
2133 | match = skip && match.index( this.active.next() ) !== -1 ? | ||
2134 | this.active.nextAll( ".ui-menu-item" ) : | ||
2135 | match; | ||
2136 | |||
2137 | // If no matches on the current filter, reset to the last character pressed | ||
2138 | // to move down the menu to the first item that starts with that character | ||
2139 | if ( !match.length ) { | ||
2140 | character = String.fromCharCode( event.keyCode ); | ||
2141 | regex = new RegExp( "^" + escape( character ), "i" ); | ||
2142 | match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { | ||
2143 | return regex.test( $( this ).children( "a" ).text() ); | ||
2144 | }); | ||
2145 | } | ||
2146 | |||
2147 | if ( match.length ) { | ||
2148 | this.focus( event, match ); | ||
2149 | if ( match.length > 1 ) { | ||
2150 | this.previousFilter = character; | ||
2151 | this.filterTimer = this._delay(function() { | ||
2152 | delete this.previousFilter; | ||
2153 | }, 1000 ); | ||
2154 | } else { | ||
2155 | delete this.previousFilter; | ||
2156 | } | ||
2157 | } else { | ||
2158 | delete this.previousFilter; | ||
2159 | } | ||
2160 | } | ||
2161 | |||
2162 | if ( preventDefault ) { | ||
2163 | event.preventDefault(); | ||
2164 | } | ||
2165 | }, | ||
2166 | |||
2167 | _activate: function( event ) { | ||
2168 | if ( !this.active.is( ".ui-state-disabled" ) ) { | ||
2169 | if ( this.active.children( "a[aria-haspopup='true']" ).length ) { | ||
2170 | this.expand( event ); | ||
2171 | } else { | ||
2172 | this.select( event ); | ||
2173 | } | ||
2174 | } | ||
2175 | }, | ||
2176 | |||
2177 | refresh: function() { | ||
2178 | var menus, | ||
2179 | icon = this.options.icons.submenu, | ||
2180 | submenus = this.element.find( this.options.menus ); | ||
2181 | |||
2182 | this.element.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ); | ||
2183 | |||
2184 | // Initialize nested menus | ||
2185 | submenus.filter( ":not(.ui-menu)" ) | ||
2186 | .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) | ||
2187 | .hide() | ||
2188 | .attr({ | ||
2189 | role: this.options.role, | ||
2190 | "aria-hidden": "true", | ||
2191 | "aria-expanded": "false" | ||
2192 | }) | ||
2193 | .each(function() { | ||
2194 | var menu = $( this ), | ||
2195 | item = menu.prev( "a" ), | ||
2196 | submenuCarat = $( "<span>" ) | ||
2197 | .addClass( "ui-menu-icon ui-icon " + icon ) | ||
2198 | .data( "ui-menu-submenu-carat", true ); | ||
2199 | |||
2200 | item | ||
2201 | .attr( "aria-haspopup", "true" ) | ||
2202 | .prepend( submenuCarat ); | ||
2203 | menu.attr( "aria-labelledby", item.attr( "id" ) ); | ||
2204 | }); | ||
2205 | |||
2206 | menus = submenus.add( this.element ); | ||
2207 | |||
2208 | // Don't refresh list items that are already adapted | ||
2209 | menus.children( ":not(.ui-menu-item):has(a)" ) | ||
2210 | .addClass( "ui-menu-item" ) | ||
2211 | .attr( "role", "presentation" ) | ||
2212 | .children( "a" ) | ||
2213 | .uniqueId() | ||
2214 | .addClass( "ui-corner-all" ) | ||
2215 | .attr({ | ||
2216 | tabIndex: -1, | ||
2217 | role: this._itemRole() | ||
2218 | }); | ||
2219 | |||
2220 | // Initialize unlinked menu-items containing spaces and/or dashes only as dividers | ||
2221 | menus.children( ":not(.ui-menu-item)" ).each(function() { | ||
2222 | var item = $( this ); | ||
2223 | // hyphen, em dash, en dash | ||
2224 | if ( !/[^\-\u2014\u2013\s]/.test( item.text() ) ) { | ||
2225 | item.addClass( "ui-widget-content ui-menu-divider" ); | ||
2226 | } | ||
2227 | }); | ||
2228 | |||
2229 | // Add aria-disabled attribute to any disabled menu item | ||
2230 | menus.children( ".ui-state-disabled" ).attr( "aria-disabled", "true" ); | ||
2231 | |||
2232 | // If the active item has been removed, blur the menu | ||
2233 | if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { | ||
2234 | this.blur(); | ||
2235 | } | ||
2236 | }, | ||
2237 | |||
2238 | _itemRole: function() { | ||
2239 | return { | ||
2240 | menu: "menuitem", | ||
2241 | listbox: "option" | ||
2242 | }[ this.options.role ]; | ||
2243 | }, | ||
2244 | |||
2245 | _setOption: function( key, value ) { | ||
2246 | if ( key === "icons" ) { | ||
2247 | this.element.find( ".ui-menu-icon" ) | ||
2248 | .removeClass( this.options.icons.submenu ) | ||
2249 | .addClass( value.submenu ); | ||
2250 | } | ||
2251 | this._super( key, value ); | ||
2252 | }, | ||
2253 | |||
2254 | focus: function( event, item ) { | ||
2255 | var nested, focused; | ||
2256 | this.blur( event, event && event.type === "focus" ); | ||
2257 | |||
2258 | this._scrollIntoView( item ); | ||
2259 | |||
2260 | this.active = item.first(); | ||
2261 | focused = this.active.children( "a" ).addClass( "ui-state-focus" ); | ||
2262 | // Only update aria-activedescendant if there's a role | ||
2263 | // otherwise we assume focus is managed elsewhere | ||
2264 | if ( this.options.role ) { | ||
2265 | this.element.attr( "aria-activedescendant", focused.attr( "id" ) ); | ||
2266 | } | ||
2267 | |||
2268 | // Highlight active parent menu item, if any | ||
2269 | this.active | ||
2270 | .parent() | ||
2271 | .closest( ".ui-menu-item" ) | ||
2272 | .children( "a:first" ) | ||
2273 | .addClass( "ui-state-active" ); | ||
2274 | |||
2275 | if ( event && event.type === "keydown" ) { | ||
2276 | this._close(); | ||
2277 | } else { | ||
2278 | this.timer = this._delay(function() { | ||
2279 | this._close(); | ||
2280 | }, this.delay ); | ||
2281 | } | ||
2282 | |||
2283 | nested = item.children( ".ui-menu" ); | ||
2284 | if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) { | ||
2285 | this._startOpening(nested); | ||
2286 | } | ||
2287 | this.activeMenu = item.parent(); | ||
2288 | |||
2289 | this._trigger( "focus", event, { item: item } ); | ||
2290 | }, | ||
2291 | |||
2292 | _scrollIntoView: function( item ) { | ||
2293 | var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; | ||
2294 | if ( this._hasScroll() ) { | ||
2295 | borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0; | ||
2296 | paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0; | ||
2297 | offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; | ||
2298 | scroll = this.activeMenu.scrollTop(); | ||
2299 | elementHeight = this.activeMenu.height(); | ||
2300 | itemHeight = item.height(); | ||
2301 | |||
2302 | if ( offset < 0 ) { | ||
2303 | this.activeMenu.scrollTop( scroll + offset ); | ||
2304 | } else if ( offset + itemHeight > elementHeight ) { | ||
2305 | this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); | ||
2306 | } | ||
2307 | } | ||
2308 | }, | ||
2309 | |||
2310 | blur: function( event, fromFocus ) { | ||
2311 | if ( !fromFocus ) { | ||
2312 | clearTimeout( this.timer ); | ||
2313 | } | ||
2314 | |||
2315 | if ( !this.active ) { | ||
2316 | return; | ||
2317 | } | ||
2318 | |||
2319 | this.active.children( "a" ).removeClass( "ui-state-focus" ); | ||
2320 | this.active = null; | ||
2321 | |||
2322 | this._trigger( "blur", event, { item: this.active } ); | ||
2323 | }, | ||
2324 | |||
2325 | _startOpening: function( submenu ) { | ||
2326 | clearTimeout( this.timer ); | ||
2327 | |||
2328 | // Don't open if already open fixes a Firefox bug that caused a .5 pixel | ||
2329 | // shift in the submenu position when mousing over the carat icon | ||
2330 | if ( submenu.attr( "aria-hidden" ) !== "true" ) { | ||
2331 | return; | ||
2332 | } | ||
2333 | |||
2334 | this.timer = this._delay(function() { | ||
2335 | this._close(); | ||
2336 | this._open( submenu ); | ||
2337 | }, this.delay ); | ||
2338 | }, | ||
2339 | |||
2340 | _open: function( submenu ) { | ||
2341 | var position = $.extend({ | ||
2342 | of: this.active | ||
2343 | }, this.options.position ); | ||
2344 | |||
2345 | clearTimeout( this.timer ); | ||
2346 | this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) ) | ||
2347 | .hide() | ||
2348 | .attr( "aria-hidden", "true" ); | ||
2349 | |||
2350 | submenu | ||
2351 | .show() | ||
2352 | .removeAttr( "aria-hidden" ) | ||
2353 | .attr( "aria-expanded", "true" ) | ||
2354 | .position( position ); | ||
2355 | }, | ||
2356 | |||
2357 | collapseAll: function( event, all ) { | ||
2358 | clearTimeout( this.timer ); | ||
2359 | this.timer = this._delay(function() { | ||
2360 | // If we were passed an event, look for the submenu that contains the event | ||
2361 | var currentMenu = all ? this.element : | ||
2362 | $( event && event.target ).closest( this.element.find( ".ui-menu" ) ); | ||
2363 | |||
2364 | // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway | ||
2365 | if ( !currentMenu.length ) { | ||
2366 | currentMenu = this.element; | ||
2367 | } | ||
2368 | |||
2369 | this._close( currentMenu ); | ||
2370 | |||
2371 | this.blur( event ); | ||
2372 | this.activeMenu = currentMenu; | ||
2373 | }, this.delay ); | ||
2374 | }, | ||
2375 | |||
2376 | // With no arguments, closes the currently active menu - if nothing is active | ||
2377 | // it closes all menus. If passed an argument, it will search for menus BELOW | ||
2378 | _close: function( startMenu ) { | ||
2379 | if ( !startMenu ) { | ||
2380 | startMenu = this.active ? this.active.parent() : this.element; | ||
2381 | } | ||
2382 | |||
2383 | startMenu | ||
2384 | .find( ".ui-menu" ) | ||
2385 | .hide() | ||
2386 | .attr( "aria-hidden", "true" ) | ||
2387 | .attr( "aria-expanded", "false" ) | ||
2388 | .end() | ||
2389 | .find( "a.ui-state-active" ) | ||
2390 | .removeClass( "ui-state-active" ); | ||
2391 | }, | ||
2392 | |||
2393 | collapse: function( event ) { | ||
2394 | var newItem = this.active && | ||
2395 | this.active.parent().closest( ".ui-menu-item", this.element ); | ||
2396 | if ( newItem && newItem.length ) { | ||
2397 | this._close(); | ||
2398 | this.focus( event, newItem ); | ||
2399 | } | ||
2400 | }, | ||
2401 | |||
2402 | expand: function( event ) { | ||
2403 | var newItem = this.active && | ||
2404 | this.active | ||
2405 | .children( ".ui-menu " ) | ||
2406 | .children( ".ui-menu-item" ) | ||
2407 | .first(); | ||
2408 | |||
2409 | if ( newItem && newItem.length ) { | ||
2410 | this._open( newItem.parent() ); | ||
2411 | |||
2412 | // Delay so Firefox will not hide activedescendant change in expanding submenu from AT | ||
2413 | this._delay(function() { | ||
2414 | this.focus( event, newItem ); | ||
2415 | }); | ||
2416 | } | ||
2417 | }, | ||
2418 | |||
2419 | next: function( event ) { | ||
2420 | this._move( "next", "first", event ); | ||
2421 | }, | ||
2422 | |||
2423 | previous: function( event ) { | ||
2424 | this._move( "prev", "last", event ); | ||
2425 | }, | ||
2426 | |||
2427 | isFirstItem: function() { | ||
2428 | return this.active && !this.active.prevAll( ".ui-menu-item" ).length; | ||
2429 | }, | ||
2430 | |||
2431 | isLastItem: function() { | ||
2432 | return this.active && !this.active.nextAll( ".ui-menu-item" ).length; | ||
2433 | }, | ||
2434 | |||
2435 | _move: function( direction, filter, event ) { | ||
2436 | var next; | ||
2437 | if ( this.active ) { | ||
2438 | if ( direction === "first" || direction === "last" ) { | ||
2439 | next = this.active | ||
2440 | [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" ) | ||
2441 | .eq( -1 ); | ||
2442 | } else { | ||
2443 | next = this.active | ||
2444 | [ direction + "All" ]( ".ui-menu-item" ) | ||
2445 | .eq( 0 ); | ||
2446 | } | ||
2447 | } | ||
2448 | if ( !next || !next.length || !this.active ) { | ||
2449 | next = this.activeMenu.children( ".ui-menu-item" )[ filter ](); | ||
2450 | } | ||
2451 | |||
2452 | this.focus( event, next ); | ||
2453 | }, | ||
2454 | |||
2455 | nextPage: function( event ) { | ||
2456 | var item, base, height; | ||
2457 | |||
2458 | if ( !this.active ) { | ||
2459 | this.next( event ); | ||
2460 | return; | ||
2461 | } | ||
2462 | if ( this.isLastItem() ) { | ||
2463 | return; | ||
2464 | } | ||
2465 | if ( this._hasScroll() ) { | ||
2466 | base = this.active.offset().top; | ||
2467 | height = this.element.height(); | ||
2468 | this.active.nextAll( ".ui-menu-item" ).each(function() { | ||
2469 | item = $( this ); | ||
2470 | return item.offset().top - base - height < 0; | ||
2471 | }); | ||
2472 | |||
2473 | this.focus( event, item ); | ||
2474 | } else { | ||
2475 | this.focus( event, this.activeMenu.children( ".ui-menu-item" ) | ||
2476 | [ !this.active ? "first" : "last" ]() ); | ||
2477 | } | ||
2478 | }, | ||
2479 | |||
2480 | previousPage: function( event ) { | ||
2481 | var item, base, height; | ||
2482 | if ( !this.active ) { | ||
2483 | this.next( event ); | ||
2484 | return; | ||
2485 | } | ||
2486 | if ( this.isFirstItem() ) { | ||
2487 | return; | ||
2488 | } | ||
2489 | if ( this._hasScroll() ) { | ||
2490 | base = this.active.offset().top; | ||
2491 | height = this.element.height(); | ||
2492 | this.active.prevAll( ".ui-menu-item" ).each(function() { | ||
2493 | item = $( this ); | ||
2494 | return item.offset().top - base + height > 0; | ||
2495 | }); | ||
2496 | |||
2497 | this.focus( event, item ); | ||
2498 | } else { | ||
2499 | this.focus( event, this.activeMenu.children( ".ui-menu-item" ).first() ); | ||
2500 | } | ||
2501 | }, | ||
2502 | |||
2503 | _hasScroll: function() { | ||
2504 | return this.element.outerHeight() < this.element.prop( "scrollHeight" ); | ||
2505 | }, | ||
2506 | |||
2507 | select: function( event ) { | ||
2508 | // TODO: It should never be possible to not have an active item at this | ||
2509 | // point, but the tests don't trigger mouseenter before click. | ||
2510 | this.active = this.active || $( event.target ).closest( ".ui-menu-item" ); | ||
2511 | var ui = { item: this.active }; | ||
2512 | if ( !this.active.has( ".ui-menu" ).length ) { | ||
2513 | this.collapseAll( event, true ); | ||
2514 | } | ||
2515 | this._trigger( "select", event, ui ); | ||
2516 | } | ||
2517 | }); | ||
2518 | |||
2519 | }( jQuery )); | ||
diff --git a/themes/default/js/jquery-ui-1.10.4.custom.min.js b/themes/default/js/jquery-ui-1.10.4.custom.min.js new file mode 100644 index 00000000..31635026 --- /dev/null +++ b/themes/default/js/jquery-ui-1.10.4.custom.min.js | |||
@@ -0,0 +1,6 @@ | |||
1 | /*! jQuery UI - v1.10.4 - 2014-03-08 | ||
2 | * http://jqueryui.com | ||
3 | * Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.position.js, jquery.ui.autocomplete.js, jquery.ui.menu.js | ||
4 | * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ | ||
5 | |||
6 | (function(e,t){function i(t,i){var s,a,o,r=t.nodeName.toLowerCase();return"area"===r?(s=t.parentNode,a=s.name,t.href&&a&&"map"===s.nodeName.toLowerCase()?(o=e("img[usemap=#"+a+"]")[0],!!o&&n(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||i:i)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var s=0,a=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(i,n){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),n&&n.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(i){if(i!==t)return this.css("zIndex",i);if(this.length)for(var n,s,a=e(this[0]);a.length&&a[0]!==document;){if(n=a.css("position"),("absolute"===n||"relative"===n||"fixed"===n)&&(s=parseInt(a.css("zIndex"),10),!isNaN(s)&&0!==s))return s;a=a.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++s)})},removeUniqueId:function(){return this.each(function(){a.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,n){return!!e.data(t,n[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),s=isNaN(n);return(s||n>=0)&&i(t,!s)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(i,n){function s(t,i,n,s){return e.each(a,function(){i-=parseFloat(e.css(t,"padding"+this))||0,n&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var a="Width"===n?["Left","Right"]:["Top","Bottom"],o=n.toLowerCase(),r={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(i){return i===t?r["inner"+n].call(this):this.each(function(){e(this).css(o,s(this,i)+"px")})},e.fn["outer"+n]=function(t,i){return"number"!=typeof t?r["outer"+n].call(this,t):this.each(function(){e(this).css(o,s(this,t,!0,i)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,i,n){var s,a=e.ui[t].prototype;for(s in n)a.plugins[s]=a.plugins[s]||[],a.plugins[s].push([i,n[s]])},call:function(e,t,i){var n,s=e.plugins[t];if(s&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(n=0;s.length>n;n++)e.options[s[n][0]]&&s[n][1].apply(e.element,i)}},hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var n=i&&"left"===i?"scrollLeft":"scrollTop",s=!1;return t[n]>0?!0:(t[n]=1,s=t[n]>0,t[n]=0,s)}})})(jQuery);(function(t,e){var i=0,s=Array.prototype.slice,n=t.cleanData;t.cleanData=function(e){for(var i,s=0;null!=(i=e[s]);s++)try{t(i).triggerHandler("remove")}catch(o){}n(e)},t.widget=function(i,s,n){var o,a,r,h,l={},c=i.split(".")[0];i=i.split(".")[1],o=c+"-"+i,n||(n=s,s=t.Widget),t.expr[":"][o.toLowerCase()]=function(e){return!!t.data(e,o)},t[c]=t[c]||{},a=t[c][i],r=t[c][i]=function(t,i){return this._createWidget?(arguments.length&&this._createWidget(t,i),e):new r(t,i)},t.extend(r,a,{version:n.version,_proto:t.extend({},n),_childConstructors:[]}),h=new s,h.options=t.widget.extend({},h.options),t.each(n,function(i,n){return t.isFunction(n)?(l[i]=function(){var t=function(){return s.prototype[i].apply(this,arguments)},e=function(t){return s.prototype[i].apply(this,t)};return function(){var i,s=this._super,o=this._superApply;return this._super=t,this._superApply=e,i=n.apply(this,arguments),this._super=s,this._superApply=o,i}}(),e):(l[i]=n,e)}),r.prototype=t.widget.extend(h,{widgetEventPrefix:a?h.widgetEventPrefix||i:i},l,{constructor:r,namespace:c,widgetName:i,widgetFullName:o}),a?(t.each(a._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,r,i._proto)}),delete a._childConstructors):s._childConstructors.push(r),t.widget.bridge(i,r)},t.widget.extend=function(i){for(var n,o,a=s.call(arguments,1),r=0,h=a.length;h>r;r++)for(n in a[r])o=a[r][n],a[r].hasOwnProperty(n)&&o!==e&&(i[n]=t.isPlainObject(o)?t.isPlainObject(i[n])?t.widget.extend({},i[n],o):t.widget.extend({},o):o);return i},t.widget.bridge=function(i,n){var o=n.prototype.widgetFullName||i;t.fn[i]=function(a){var r="string"==typeof a,h=s.call(arguments,1),l=this;return a=!r&&h.length?t.widget.extend.apply(null,[a].concat(h)):a,r?this.each(function(){var s,n=t.data(this,o);return n?t.isFunction(n[a])&&"_"!==a.charAt(0)?(s=n[a].apply(n,h),s!==n&&s!==e?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):e):t.error("no such method '"+a+"' for "+i+" widget instance"):t.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+a+"'")}):this.each(function(){var e=t.data(this,o);e?e.option(a||{})._init():t.data(this,o,new n(a,this))}),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this.bindings=t(),this.hoverable=t(),this.focusable=t(),s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:t.noop,_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:t.noop,widget:function(){return this.element},option:function(i,s){var n,o,a,r=i;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof i)if(r={},n=i.split("."),i=n.shift(),n.length){for(o=r[i]=t.widget.extend({},this.options[i]),a=0;n.length-1>a;a++)o[n[a]]=o[n[a]]||{},o=o[n[a]];if(i=n.pop(),1===arguments.length)return o[i]===e?null:o[i];o[i]=s}else{if(1===arguments.length)return this.options[i]===e?null:this.options[i];r[i]=s}return this._setOptions(r),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!e).attr("aria-disabled",e),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,n){var o,a=this;"boolean"!=typeof i&&(n=s,s=i,i=!1),n?(s=o=t(s),this.bindings=this.bindings.add(s)):(n=s,s=this.element,o=this.widget()),t.each(n,function(n,r){function h(){return i||a.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof r?a[r]:r).apply(a,arguments):e}"string"!=typeof r&&(h.guid=r.guid=r.guid||h.guid||t.guid++);var l=n.match(/^(\w+)\s*(.*)$/),c=l[1]+a.eventNamespace,u=l[2];u?o.delegate(u,c,h):s.bind(c,h)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(e).undelegate(e)},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){t(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){t(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){t(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){t(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}})})(jQuery);(function(t,e){function i(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function s(e,i){return parseInt(t.css(e,i),10)||0}function n(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var a,o=Math.max,r=Math.abs,l=Math.round,h=/left|center|right/,c=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;t.position={scrollbarWidth:function(){if(a!==e)return a;var i,s,n=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=n.children()[0];return t("body").append(n),i=o.offsetWidth,n.css("overflow","scroll"),s=o.offsetWidth,i===s&&(s=n[0].clientWidth),n.remove(),a=i-s},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,a="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:a?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s?i.width():i.outerWidth(),height:s?i.height():i.outerHeight()}}},t.fn.position=function(e){if(!e||!e.of)return f.apply(this,arguments);e=t.extend({},e);var a,p,g,m,v,_,b=t(e.of),y=t.position.getWithinInfo(e.within),k=t.position.getScrollInfo(y),w=(e.collision||"flip").split(" "),D={};return _=n(b),b[0].preventDefault&&(e.at="left top"),p=_.width,g=_.height,m=_.offset,v=t.extend({},m),t.each(["my","at"],function(){var t,i,s=(e[this]||"").split(" ");1===s.length&&(s=h.test(s[0])?s.concat(["center"]):c.test(s[0])?["center"].concat(s):["center","center"]),s[0]=h.test(s[0])?s[0]:"center",s[1]=c.test(s[1])?s[1]:"center",t=u.exec(s[0]),i=u.exec(s[1]),D[this]=[t?t[0]:0,i?i[0]:0],e[this]=[d.exec(s[0])[0],d.exec(s[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===e.at[0]?v.left+=p:"center"===e.at[0]&&(v.left+=p/2),"bottom"===e.at[1]?v.top+=g:"center"===e.at[1]&&(v.top+=g/2),a=i(D.at,p,g),v.left+=a[0],v.top+=a[1],this.each(function(){var n,h,c=t(this),u=c.outerWidth(),d=c.outerHeight(),f=s(this,"marginLeft"),_=s(this,"marginTop"),x=u+f+s(this,"marginRight")+k.width,C=d+_+s(this,"marginBottom")+k.height,M=t.extend({},v),T=i(D.my,c.outerWidth(),c.outerHeight());"right"===e.my[0]?M.left-=u:"center"===e.my[0]&&(M.left-=u/2),"bottom"===e.my[1]?M.top-=d:"center"===e.my[1]&&(M.top-=d/2),M.left+=T[0],M.top+=T[1],t.support.offsetFractions||(M.left=l(M.left),M.top=l(M.top)),n={marginLeft:f,marginTop:_},t.each(["left","top"],function(i,s){t.ui.position[w[i]]&&t.ui.position[w[i]][s](M,{targetWidth:p,targetHeight:g,elemWidth:u,elemHeight:d,collisionPosition:n,collisionWidth:x,collisionHeight:C,offset:[a[0]+T[0],a[1]+T[1]],my:e.my,at:e.at,within:y,elem:c})}),e.using&&(h=function(t){var i=m.left-M.left,s=i+p-u,n=m.top-M.top,a=n+g-d,l={target:{element:b,left:m.left,top:m.top,width:p,height:g},element:{element:c,left:M.left,top:M.top,width:u,height:d},horizontal:0>s?"left":i>0?"right":"center",vertical:0>a?"top":n>0?"bottom":"middle"};u>p&&p>r(i+s)&&(l.horizontal="center"),d>g&&g>r(n+a)&&(l.vertical="middle"),l.important=o(r(i),r(s))>o(r(n),r(a))?"horizontal":"vertical",e.using.call(this,t,l)}),c.offset(t.extend(M,{using:h}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,a=n.offset.left+n.scrollLeft,o=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-o-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-o-a,(0>i||r(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>r(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,a=n.offset.top+n.scrollTop,o=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-o-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-o-a,t.top+p+f+g>c&&(0>s||r(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,t.top+p+f+g>u&&(i>0||u>r(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,i,s,n,a,o=document.getElementsByTagName("body")[0],r=document.createElement("div");e=document.createElement(o?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&t.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(a in s)e.style[a]=s[a];e.appendChild(r),i=o||document.documentElement,i.insertBefore(e,i.firstChild),r.style.cssText="position: absolute; left: 10.7432222px;",n=t(r).offset().left,t.support.offsetFractions=n>10&&11>n,e.innerHTML="",i.removeChild(e)}()})(jQuery);(function(e){e.widget("ui.autocomplete",{version:"1.10.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,undefined;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:case a.NUMPAD_ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),undefined;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),undefined):(this._searchTimeout(e),undefined)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,undefined):(clearTimeout(this.searching),this.close(e),this._change(e),undefined)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().data("ui-menu"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),undefined;var s=i.item.data("ui-autocomplete-item");!1!==this._trigger("focus",t,{item:s})?t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value):this.liveRegion.text(s.value)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("<span>",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertBefore(this.element),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):this._trigger("search",t)!==!1?this._search(e):undefined},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({label:t.label||t.value,value:t.value||t.label},t)})},_suggest:function(t){var i=this.menu.element.empty();this._renderMenu(i,t),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,i){var s=this;e.each(i,function(e,i){s._renderItemData(t,i)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,i){return e("<li>").append(e("<a>").text(i.label)).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this._value(this.term),this.menu.blur(),undefined):(this.menu[e](t),undefined):(this.search(null,t),undefined)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var t;this._superApply(arguments),this.options.disabled||this.cancelSearch||(t=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.text(t))}})})(jQuery);(function(t){t.widget("ui.menu",{version:"1.10.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,t.proxy(function(t){this.options.disabled&&t.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(t){t.preventDefault()},"click .ui-state-disabled > a":function(t){t.preventDefault()},"click .ui-menu-item:has(a)":function(e){var i=t(e.target).closest(".ui-menu-item");!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&t(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){var i=t(e.currentTarget);i.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(e,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.children(".ui-menu-item").eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){t(e.target).closest(".ui-menu").length||this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(e){function i(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,n,a,o,r,l=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:l=!1,n=this.previousFilter||"",a=String.fromCharCode(e.keyCode),o=!1,clearTimeout(this.filterTimer),a===n?o=!0:a=n+a,r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())}),s=o&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(a=String.fromCharCode(e.keyCode),r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())})),s.length?(this.focus(e,s),s.length>1?(this.previousFilter=a,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}l&&e.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i=this.options.icons.submenu,s=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),s=e.prev("a"),n=t("<span>").addClass("ui-menu-icon ui-icon "+i).data("ui-menu-submenu-carat",!0);s.attr("aria-haspopup","true").prepend(n),e.attr("aria-labelledby",s.attr("id"))}),e=s.add(this.element),e.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),e.children(":not(.ui-menu-item)").each(function(){var e=t(this);/[^\-\u2014\u2013\s]/.test(e.text())||e.addClass("ui-widget-content ui-menu-divider")}),e.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),this._super(t,e)},focus:function(t,e){var i,s;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=e.height(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.children(".ui-menu-item")[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())),undefined):(this.next(e),undefined)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item").first())),undefined):(this.next(e),undefined)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)}})})(jQuery); \ No newline at end of file | ||
diff --git a/themes/default/js/saveLink.js b/themes/default/js/saveLink.js new file mode 100755 index 00000000..ccc00d1e --- /dev/null +++ b/themes/default/js/saveLink.js | |||
@@ -0,0 +1,101 @@ | |||
1 | $.fn.ready(function() { | ||
2 | |||
3 | var $bagit = $('#bagit'), | ||
4 | $bagitForm = $('#bagit-form'), | ||
5 | $bagitFormForm = $('#bagit-form-form'); | ||
6 | |||
7 | /* ========================================================================== | ||
8 | bag it link and close button | ||
9 | ========================================================================== */ | ||
10 | |||
11 | function toggleSaveLinkForm(url, event) { | ||
12 | $("#add-link-result").empty(); | ||
13 | |||
14 | $bagit.toggleClass("active-current"); | ||
15 | |||
16 | //only if bagiti link is not presented on page | ||
17 | if ( $bagit.length === 0 ) { | ||
18 | if ( event !== 'undefined' && event ) { | ||
19 | $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200}); | ||
20 | } | ||
21 | else { | ||
22 | $bagitForm.css( {position:"relative", top:"auto", left:"auto"}); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | $bagitForm.toggle(); | ||
27 | $('#content').toggleClass("opacity03"); | ||
28 | if (url !== 'undefined' && url) { | ||
29 | $('#plainurl').val(url); | ||
30 | } | ||
31 | $('#plainurl').focus(); | ||
32 | } | ||
33 | |||
34 | |||
35 | $bagit.click(function(){ | ||
36 | $bagit.toggleClass("current"); | ||
37 | $("#bagit-arrow").toggleClass("arrow-down"); | ||
38 | toggleSaveLinkForm(); | ||
39 | }); | ||
40 | |||
41 | $("#bagit-form-close").click(function(){ | ||
42 | $bagit.removeClass("current"); | ||
43 | $("#bagit-arrow").removeClass("arrow-down"); | ||
44 | toggleSaveLinkForm(); | ||
45 | }); | ||
46 | |||
47 | |||
48 | //send "bag it link" form request via ajax | ||
49 | $bagitFormForm.submit( function(event) { | ||
50 | $("body").css("cursor", "wait"); | ||
51 | $("#add-link-result").empty(); | ||
52 | |||
53 | $.ajax({ | ||
54 | type: $bagitFormForm.attr('method'), | ||
55 | url: $bagitFormForm.attr('action'), | ||
56 | data: $bagitFormForm.serialize(), | ||
57 | success: function(data) { | ||
58 | $('#add-link-result').html("Done!"); | ||
59 | $('#plainurl').val(''); | ||
60 | $('#plainurl').blur(''); | ||
61 | $("body").css("cursor", "auto"); | ||
62 | //setTimeout( function() { toggleSaveLinkForm(); }, 1000); //close form after 1000 delay | ||
63 | }, | ||
64 | error: function(data) { | ||
65 | $('#add-link-result').html("Failed!"); | ||
66 | $("body").css("cursor", "auto"); | ||
67 | } | ||
68 | }); | ||
69 | |||
70 | event.preventDefault(); | ||
71 | }); | ||
72 | |||
73 | /* ========================================================================== | ||
74 | Keyboard gestion | ||
75 | ========================================================================== */ | ||
76 | |||
77 | $(window).keydown(function(e){ | ||
78 | if ( ( e.target.tagName.toLowerCase() !== 'input' && e.keyCode == 83 ) || e.keyCode == 27 ) { | ||
79 | $bagit.removeClass("current"); | ||
80 | $("#bagit-arrow").removeClass("arrow-down"); | ||
81 | toggleSaveLinkForm(); | ||
82 | return false; | ||
83 | } | ||
84 | }); | ||
85 | |||
86 | /* ========================================================================== | ||
87 | Process all links inside an article | ||
88 | ========================================================================== */ | ||
89 | |||
90 | $("article a[href^='http']").after(function() { | ||
91 | return " <a href=\"" + $(this).attr('href') + "\" class=\"add-to-wallabag-link-after\" alt=\"add to wallabag\" title=\"add to wallabag\">w</a> "; | ||
92 | }); | ||
93 | |||
94 | $(".add-to-wallabag-link-after").click(function(event){ | ||
95 | toggleSaveLinkForm($(this).attr('href'), event); | ||
96 | event.preventDefault(); | ||
97 | }); | ||
98 | |||
99 | }); | ||
100 | |||
101 | |||
diff --git a/themes/default/tags.twig b/themes/default/tags.twig index cff6b1d7..e5be748e 100644..100755 --- a/themes/default/tags.twig +++ b/themes/default/tags.twig | |||
@@ -4,5 +4,15 @@ | |||
4 | {% include '_menu.twig' %} | 4 | {% include '_menu.twig' %} |
5 | {% endblock %} | 5 | {% endblock %} |
6 | {% block content %} | 6 | {% block content %} |
7 | {% for tag in tags %}<a href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> {% if token != '' %}<a href="?feed&type=tag&user_id={{ user_id }}&tag_id={{ tag.id }}&token={{ token }}" target="_blank"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/rss.png" /></a>{% endif %} {% endfor %} | 7 | <div class="two-column"> |
8 | {% for tag in tags %} | ||
9 | <a href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> ({{ tag.entriescount }}) {% if token != '' %}<a href="?feed&type=tag&user_id={{ user_id }}&tag_id={{ tag.id }}&token={{ token }}" target="_blank"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/rss.png" /></a>{% endif %} | ||
10 | <br> | ||
11 | |||
12 | {% if loop.index == '%d'|format(loop.length/2 + 0.5) %} | ||
13 | </div><div class="two-column"> | ||
14 | {% endif %} | ||
15 | |||
16 | {% endfor %} | ||
17 | </div> | ||
8 | {% endblock %} \ No newline at end of file | 18 | {% endblock %} \ No newline at end of file |
diff --git a/themes/default/view.twig b/themes/default/view.twig index 916abe0d..cc491c77 100644..100755 --- a/themes/default/view.twig +++ b/themes/default/view.twig | |||
@@ -1,6 +1,7 @@ | |||
1 | {% extends "layout.twig" %} | 1 | {% extends "layout.twig" %} |
2 | {% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} | 2 | {% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} |
3 | {% block content %} | 3 | {% block content %} |
4 | {% include '_pocheit-form.twig' %} | ||
4 | <div id="article_toolbar"> | 5 | <div id="article_toolbar"> |
5 | <ul> | 6 | <ul> |
6 | <li><a href="./" title="{% trans "Return home" %}" class="tool back"><span>{% trans "Return home" %}</span></a></li> | 7 | <li><a href="./" title="{% trans "Return home" %}" class="tool back"><span>{% trans "Return home" %}</span></a></li> |
@@ -30,7 +31,7 @@ | |||
30 | </article> | 31 | </article> |
31 | {{ block('tags') }} | 32 | {{ block('tags') }} |
32 | </div> | 33 | </div> |
33 | <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/restoreScroll.js"></script> | 34 | <script src="{{ poche_url }}themes/{{theme}}/js/restoreScroll.js"></script> |
34 | <script type="text/javascript"> | 35 | <script type="text/javascript"> |
35 | $(document).ready(function() { | 36 | $(document).ready(function() { |
36 | 37 | ||
@@ -55,3 +56,4 @@ | |||
55 | }); | 56 | }); |
56 | </script> | 57 | </script> |
57 | {% endblock %} | 58 | {% endblock %} |
59 | |||