Mercurial > moin > extensions
changeset 523:fe7e720bd778
merged main
author | Reimar Bauer <rb.proj AT googlemail DOT com> |
---|---|
date | Fri, 23 Apr 2010 22:38:00 +0200 |
parents | 0d5369896835 (current diff) 64d08878782b (diff) |
children | 1414a0d200ec |
files | data/plugin/macro/DictColumns.py htdocs/svg-edit/build/yuicompressor.jar htdocs/svg-edit/editor/ext-connector.js htdocs/svg-edit/editor/jgraduate/css/jGraduate-0.2.0.css htdocs/svg-edit/editor/jquery-ui/jquery-ui-1.7.2.custom.min.js htdocs/svg-edit/editor/locale/lang.zh.js |
diffstat | 109 files changed, 10341 insertions(+), 6285 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/action/RecommendPage.py Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,108 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin - RecommendPage Action Macro + + By this action one user can point another one to an usefully interesting page. + The hint becomes written to a page named user/RecommendedPage and the user + becomes subscribed to that page. + + @copyright: 2005-2010 by MoinMoin:ReimarBauer + @license: GNU GPL, see COPYING for details. +""" +from MoinMoin import wikiutil, user +from MoinMoin.Page import Page +from MoinMoin.PageEditor import PageEditor + +def RecommendPage(request, pagename, username): + err = None + name = "%(username)s/RecommendedPage" % {"username": username} + page = PageEditor(request, name) + if request.user.may.write(name): + if user.getUserId(request, username) is not None: + uid = user.getUserId(request, username) + recom_user = user.User(request, id=uid) + subscription_list = recom_user.getSubscriptionList() + if name not in subscription_list: + recom_user.subscribe(name) + recom_user.save() + + newtext = u" * [[%(pagename)s]] <<ShortText(%(pagename)s)>> ...\n %(username)s\n" % { + "pagename": pagename, + "username": "@SIG@"} + if not page.exists(): + return True, PageEditor.saveText(page, newtext, 0) + else: + body = page.get_data() + meta = page.get_meta() + text_meta = '' + for command, attrib in meta: + text_meta = '#%s %s\n%s' % (command, attrib, text_meta) + + text = "%s\n%s\n%s\n" % (text_meta, newtext, body) + return True, PageEditor.saveText(page, text, 0) + else: + return False, "You are not allowed to edit this page." + +def execute(pagename, request): + _ = request.getText + actname = __name__.split('.')[-1] + thispage = Page(request, pagename) + if not (request.user.valid and request.user.may.read(pagename)): + msg = _("You are not allowed to do %(action_name)s on this page.") % {"action_name": actname} + request.theme.add_msg(msg, "warning") + return thispage.send_page() + + if request.method == 'POST' and request.form.has_key('button'): + if not wikiutil.checkTicket(request, request.form.get('ticket', '')): + msg=_('Please use the interactive user interface to recommend pages!') + request.theme.add_msg(msg, "warning") + return thispage.send_page() + + selected_users = request.values.getlist('username') or [request.user.name] + recommendation_send_to = [] + for username in selected_users: + status, msg = RecommendPage(request, pagename, username) + if status: + recommendation_send_to.append(username) + + no_recommendation_for = set(selected_users) - set(recommendation_send_to) + msg = [] + msg.append("recommended to read %(pagename)s for %(username)s" % { + "pagename": pagename, + "username": ', '.join(recommendation_send_to)}) + if no_recommendation_for: + msg.append("You can't send a recommendation to %(username)s" % { + "username": ', '.join(no_recommendation_for)}) + + request.theme.add_msg('<br>'.join(msg), "info") + thispage.send_page() + return + + users = user.getUserList(request) + html = ["<OPTION>%s</OPTION>" % user.User(request, id=uid).name for uid in users] + html.sort() + + formhtml = """ +<form method="post" > +<strong>%(querytext)s</strong><BR> +<select name="username" size="%(len)s" multiple> +%(option)s +</select> +<input type="hidden" name="action" value="%(actname)s"> +<input type="submit" name="button" value="%(button)s"> +<br> +(no selection recommends to: %(user)s) +<input type="hidden" name="ticket" value="%(ticket)s"> +<p> +</form>""" % { +'querytext': 'Recommend page to', +'actname': 'RecommendPage', +'ticket': wikiutil.createTicket(request), +'option': ' '.join(html), +'user': request.user.name, +'len': min([3, len(html)]), +'button': 'Recommend'} + + request.theme.add_msg(formhtml, "info") + thispage.send_page() + return
--- a/data/plugin/action/SlideShow.py Fri Apr 23 22:29:49 2010 +0200 +++ b/data/plugin/action/SlideShow.py Fri Apr 23 22:38:00 2010 +0200 @@ -37,9 +37,11 @@ from MoinMoin import wikiutil, i18n, error from MoinMoin.Page import Page +from MoinMoin.version import release Dependencies = ['language'] +actname = __name__.split('.')[-1] class Error(error.Error): """ Raised for errors in this module """ @@ -468,6 +470,10 @@ def execute(pagename, request): + if not release.startswith('1.8'): + msg = 'This local extension action "%(action_name)s" requires moin 1.8.' % {"action_name": actname} + request.theme.add_msg(msg, "warning") + return Page(request, pagename).send_page() """ Glue to current plugin system """ SlideshowAction(request, pagename, template).execute()
--- a/data/plugin/macro/DictColumns.py Fri Apr 23 22:29:49 2010 +0200 +++ b/data/plugin/macro/DictColumns.py Fri Apr 23 22:38:00 2010 +0200 @@ -139,7 +139,7 @@ request = self.request # use selection and order if self.names: - names = self.names + return self.names # use keys from template page, no order elif Page(request, self.template_page).exists(): page_dict = self.get_dict(self.template_page)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/plugin/macro/ShortText.py Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,26 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin - ShortText macro + + It shows the first 180 chars of a wiki page without any processing instructions + and only if the user is allowed to read that page. + + @copyright: 2005-2010 by MoinMoin:ReimarBauer + @license: GNU GPL, see COPYING for details. +""" +Dependencies = ["pages"] + +from MoinMoin.Page import Page +from MoinMoin import wikiutil + +def macro_ShortText(macro, pagename=unicode, length=180): + request = macro.request + _ = request.getText + if request.user.may.read(pagename): + raw = Page(request, pagename).get_data() + return request.formatter.text(raw[:length]) + else: + return _("You are not allowed to view this page.") + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/CHANGES.current Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,47 @@ + +SVG-edit is a lightweight, web-based, Javascript-driven SVG editor that works in any modern browser: version of svg-edit Revision r1502, 2.5alpha (http://code.google.com/p/svg-edit/) for moin-1.9 + +htdocs/svg-edit must be linked into MoinMoin/web/static/htdocs +-------------------------------------------------------------- + + +Status current svg-edit r1502: +============================== + +Since the svg-edit editor could be called by an url parameter pointing to an existing drawing I changed the deploying from sending the html data by the action to calling the svg-editor.html by an object data tag. + +The reason for this change is that it becomes much easier to update to a newer svg-edit version as by the other method. + +By this currently only the modifcation of svg-editor.js is necessary to save to the wiki instead to a new window. + +ToDo: + * Link Syntax for attachments + +Known Issues: + * changing locale to a different language than english does not work, see + http://code.google.com/p/svg-edit/issues/detail?id=451 + + +Status svg-edit r1200: +====================== + + * css adapted for moinmoin + * action SVG-Editor added + This action can currenly save to the page where it is called + * target parameter addded + by adding the target name a file could be saved to this name + e.g. http://localhost:8080/Test?action=SvgEditor&target=example.svg + or <<Action(SvgEditor,target=test.svg)>>{{attachment:test.svg}} + and go to the page after saving + +ToDo + * url_prefix paramter needs to be used in some more js functions + of locale.js, svgcanvas.js and svg-edit.js instead of hardcoding it. + (search for '/moin_static191/svg-edit/editor') + * Link Syntax for attachments + +Known Issues in svg-edit + * after changing locale in svg-edit properties a mysterious word + translated from "page" appears on the upper and bottom left corner. + see http://code.google.com/p/svg-edit/issues/detail?id=418 +
--- a/htdocs/svg-edit/AUTHORS Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/AUTHORS Fri Apr 23 22:38:00 2010 +0200 @@ -14,7 +14,9 @@ fr: wormsxulla <wormsxulla@yahoo.com> (Français) fy: Wander Nauta <info@wandernauta.nl> (Frysk) hi: Tavish Naruka <tavishnaruka@gmail.com> (हिन्दी) +ja: Dong <iwadon@yarhalla.jpn.org> (日本語) nl: Jaap Blom <jaap.blom@gmail.com> (Nederlands) ro: Christian Tzurcanu <christian.tzurcanu@gmail.com> (Româneşte) -ru: Laurent Dufloux <laurent.dufloux@etu.upmc.fr> (Русский язык) -sk: Pavol Rusnak <rusnakp@gmail.com> (Slovenčina) \ No newline at end of file +ru: Laurent Dufloux <laurent.dufloux@etu.upmc.fr> (Русский) +sk: Pavol Rusnak <rusnakp@gmail.com> (Slovenčina) +zh-TW: 黃瀚生(han sheng Huang) <zenixls2@gmail.com> (台灣正體)
--- a/htdocs/svg-edit/CHANGES.current Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/CHANGES.current Fri Apr 23 22:38:00 2010 +0200 @@ -4,6 +4,10 @@ htdocs/svg-edit must be linked into MoinMoin/web/static/htdocs -------------------------------------------------------------- +Status current svg-edit r1502: +============================== +small modification on svg-editor.js for loading from url (cs 516:2b7a77acc967) and save (cs 517:aed9bccfe159) to moin-1.9 + Status current svg-edit r1310: ==============================
--- a/htdocs/svg-edit/Makefile Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/Makefile Fri Apr 23 22:38:00 2010 +0200 @@ -1,8 +1,9 @@ NAME=svg-edit VERSION=2.5 +PACKAGE=$(NAME)-$(VERSION) MAKEDOCS=naturaldocs/NaturalDocs -PACKAGE=$(NAME)-$(VERSION) -YUI=build/yuicompressor.jar +CLOSURE=build/tools/closure-compiler.jar +YUICOMPRESS=build/tools/yuicompressor.jar ZIP=zip all: release firefox opera @@ -10,18 +11,21 @@ build/$(PACKAGE): rm -rf config mkdir config - $(MAKEDOCS) -i editor/ -o html docs/ -p config/ -oft -r + if [ -x $(MAKEDOCS) ] ; then $(MAKEDOCS) -i editor/ -o html docs/ -p config/ -oft -r ; fi mkdir -p build/$(PACKAGE) cp -r editor/* build/$(PACKAGE) -find build/$(PACKAGE) -name .svn -type d -exec rm -rf {} \; # minify spin button - java -jar $(YUI) build/$(PACKAGE)/spinbtn/JQuerySpinBtn.js > build/$(PACKAGE)/spinbtn/JQuerySpinBtn.min.js + java -jar $(YUICOMPRESS) build/$(PACKAGE)/spinbtn/JQuerySpinBtn.js > build/$(PACKAGE)/spinbtn/JQuerySpinBtn.min.js + java -jar $(CLOSURE) --js build/$(PACKAGE)/spinbtn/JQuerySpinBtn.js --js_output_file build/$(PACKAGE)/spinbtn/JQuerySpinBtn.min-closure.js # minify SVG-edit files - java -jar $(YUI) build/$(PACKAGE)/svg-editor.js > build/$(PACKAGE)/svg-editor.min.js - java -jar $(YUI) build/$(PACKAGE)/svgcanvas.js > build/$(PACKAGE)/svgcanvas.min.js + java -jar $(YUICOMPRESS) build/$(PACKAGE)/svg-editor.js > build/$(PACKAGE)/svg-editor.min.js + java -jar $(CLOSURE) --js build/$(PACKAGE)/svg-editor.js --js_output_file build/$(PACKAGE)/svg-editor.min-closure.js + java -jar $(YUICOMPRESS) build/$(PACKAGE)/svgcanvas.js > build/$(PACKAGE)/svgcanvas.min.js + java -jar $(CLOSURE) --js build/$(PACKAGE)/svgcanvas.js --js_output_file build/$(PACKAGE)/svgcanvas.min-closure.js # CSS files do not work remotely -# java -jar $(YUI) build/$(PACKAGE)/spinbtn/JQuerySpinBtn.css > build/$(PACKAGE)/spinbtn/JQuerySpinBtn.min.css -# java -jar $(YUI) build/$(PACKAGE)/svg-editor.css > build/$(PACKAGE)/svg-editor.min.css +# java -jar $(YUICOMPRESS) build/$(PACKAGE)/spinbtn/JQuerySpinBtn.css > build/$(PACKAGE)/spinbtn/JQuerySpinBtn.min.css +# java -jar $(YUICOMPRESS) build/$(PACKAGE)/svg-editor.css > build/$(PACKAGE)/svg-editor.min.css release: build/$(PACKAGE) cd build ; $(ZIP) $(PACKAGE).zip -r $(PACKAGE) ; cd ..
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/clipart/moon.svg Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg width="100" xmlns="http://www.w3.org/2000/svg" height="100" viewBox="0 0 205.5 255.87"> + <g display="inline"> + <title>Layer 1</title> + <path id="svg_1" d="m10.671,231.42c89.543,56.086,188.11-10.029,193.33-94.559-1.7286-101.53-92.171-150.4-160.16-128.01,35.129,15.844,73.4,62.729,73.871,88.013-3.4428,7.5157-5.8714,16.373,1.5286,18.844-2,12.857-18.486,33.571-21.043,40.643-2.5571,7.0714,2.2143,9.8443,5.4429,10.357,0.2,6.0586-4.4429,8.3572-5.3572,12.156-7.9,3.13-8.4714,9.9872-7.3286,14.844-19.714,18.571-20.571,27.143-80.286,37.714z" stroke="#000" stroke-width="5" fill="#f6c700"/> + <path id="svg_3" d="m98.193,180.83c2.5851-3.421,7.4852,2.5632,7.1642,5.1572-0.32201,2.594-0.67928,4.0227-3.7143,5.2857" stroke="#000" stroke-width="5" fill="none"/> + <path id="svg_4" d="m104.11,166.92c5.5357-0.49998,14.643,3.8472,17.75,2.37,3.1072-1.4771,3.3929-4.6686,2.3572-6.5129" stroke="#000" stroke-width="5" fill="none"/> + <path id="svg_5" d="m125.64,171.49c-3.9286,8.2143-3.8572,18.987,4.2143,33.286" stroke="#000" stroke-width="2" fill="none"/> + <path id="svg_6" d="m117.91,97.816c9.572,1.8,16.143-9.0571,20.8-10.101,3.057-1.0986,14.057,27.473,21.057,35.616" stroke="#000" stroke-width="5" fill="none"/> + <path id="svg_7" d="m129.49,105.78c7.6428-3.6429,11.179,6.5357,12.607,10.929,1.4286,4.3928,7.1428,5.1071,10.857,5.5" stroke="#000" stroke-width="2" fill="none"/> + <path id="svg_8" d="m133.91,114.75c0.87856-0.13215,1.6214,4.3107,2.5143,6.8236,1.2857-0.90571,0.82143-1.5129,1.3928-1.9771,0.96429-0.82143,1.6071,3.6657,2.3572,5.1429,4.8572-0.00001,5.4643,0.89286,5.4286,1.9286-3.25,0.21429-5.1786,0.67857-7.5,1.6071-3.7857,2.3214-6.0357,6.6072-7,5.4286-0.32143-1.5,3.3571-4.5357,4-5.4286-3.0714-5.1428-2.0714-13.393-1.1929-13.525z" stroke="#000" fill="#000"/> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/clipart/star.svg Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100"> + <path id="svg_1" stroke-linejoin="round" d="M36.536,32.822c12.699-31.856,13.17-31.734,26.356-1.061,34.15,2.198,39.388,9.622,6.513,23.932,19.821,46.047-0.792,28.383-19.842,13.178-22.358,25.013-29.541,22.639-18.782-12.118-7.282-8.501-45.095-18.741,5.755-23.931z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-miterlimit="4" stroke-width="5" fill="#FF0"/> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/clipart/sun.svg Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg id="svg4562" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="330.42" width="309.18" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata id="metadata4567"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><defs id="defs4565"/><g id="g4569" fill-rule="nonzero" transform="matrix(1.25,0,0,-1.25,-2.8758105,798.03929)" fill="#f9a749"><path id="path4595" d="M160.13,603.66h0.09-0.09"/><g id="g5207" transform="matrix(2.30724,0,0,2.30724,-136.436,314.961)"><path id="path4735" d="M118.02,123.06c0.15,0,0.31-0.05,0.41,0.11,0.11-0.58,0.21-1.15,0.37-1.78l-0.16-0.1-0.21,0.52c-0.57-1.57,0.37-3.14,0.63-4.65,0.52-0.68,0.52-1.62,0.47-2.51-0.63,0.11-0.31-0.68-0.73-0.78,0.1-0.26,0.31-0.47,0.26-0.84-0.94-0.42-1.62,0.63-1.78,1.26-0.15,0.31-0.15,0.73-0.52,0.99-0.16-0.84-0.78-0.05-1.25-0.16-1.15,5.7-0.84,11.65-0.73,17.71,0.42,1.2,0,2.3,0.1,3.61,0.32-0.79,0-1.78,0.26-2.62,0.11,0.68,0.37,1.26,0.26,1.99l0.26-2.35h0.11v6.74c-0.11-6.06,2.14-11.34,2.25-17.14"/><path id="path4761" d="M115.93,131.06l-0.16,2.14,0.16-1.78v-0.36"/><path id="path4763" d="M131.08,114.13c-0.89-0.89-1.83-1.83-2.77-2.25-0.11,3.19,1.62,6.22,2.66,9.3,1.88,3.5,3.03,7.42,5.75,10.66l0.36,0.99c-2.14-6.16-3.6-12.64-6-18.7"/><path id="path4765" d="M102.5,114.76c0.21-0.11,0.31,0.15,0.47,0.26-0.05-1.36,0.73-1.31-0.1-2.51-0.37-0.26-0.74-0.42-1.26-0.37-3.864,3.56-5.222,8.73-6.633,13.01l1.097-2.61c-0.627,2.87-1.619,5.9-2.508,8.88,2.195-5.85,5.486-11.39,8.934-16.66"/><path id="path4767" d="M115.51,126.2l0.15-2.67-0.15,2.67"/><path id="path4769" d="M157.51,118.52c-5.59-4.18-12.07-8.83-15.78-15.41-2.09-0.58-3.86-1.94-6.27-1.78,0.58,0.26-0.26,0.84,0,1.25h-0.52c0.42,0.47,1.2,0.58,1.26,1.26-0.47,0.15-0.21,1.51-1.36,1.04,0.26,0.63,0.89,0.79,1.51,0.84,0.58,1.36,2.15,0.89,3.14,1.51,5.53,3.82,10.29,9.56,16.56,11.81,0.52-0.1,1.36,0.26,1.46-0.52"/><path id="path4771" d="M79.148,110.26l0.261,0.26c3.03-1.98,5.694-5.01,9.142-5.9,0.732,0.16,1.045,0.11,1.776,0.11,0.105-0.27,0-0.68,0.366-0.89,0.627,0.36,0.731-0.37,0.993-0.73-0.209-0.32-0.679,0.1-0.836-0.37,0.313-0.63,1.567-0.31,1.462-1.25-0.574-0.94-2.507-0.05-1.723-1.884l-0.366-1.515c-5.329,1.358-8.254,6.739-12.068,10.399l1.619-1.1c-0.104-0.05-0.156,0.05-0.209,0.11l-0.261-0.27c0.888-0.26,1.097-1.35,2.142-1.35-0.209,1.04-1.724,1.56-2.298,2.61,0.783-0.16,1.514-1.1,2.298-1.62-0.47,1.04-1.515,1.93-2.664,2.77l-2.612,3.13c1.045-1.04,1.828-1.88,2.978-2.51"/><path id="path4773" d="M116.55,111.88c5.38,0.58,10.03-1.62,14.16-4.28-6.11,1.57-12.69,4.07-18.96,0.78-1-0.15-2.09-0.62-2.51-1.62l0.16-0.42-0.89-0.36c0,0.16,0.05,0.31-0.11,0.36-0.42-0.41-1.36-0.1-1.77-0.73l0.1-0.1c-0.52-0.31-1.77-1.05-2.71-0.78-4.184-3.29-7.476-7.005-9.409-11.759,0.471,0,1.097,0.888,1.097,1.359,0.157,0.104,0.209,0.313,0.366,0.261l0.157-0.157c-0.314,0.731,0.731,0.94,0.888,1.515-0.157-0.575-1.202-1.672-0.627-2.508l-2.142-3.395c-0.679,0.261-0.522-0.575-0.784-0.836,0.418-1.829-1.097-4.232-1.097-6.53,0.052-1.672-0.992-2.56-0.261-4.023l0.104,0.104c0.105-0.156,0.418-1.358-0.208-0.992-0.157-0.314,0.261-0.314,0.208-0.366-0.208-0.418-0.104-1.045,0.262-1.358l0.156,0.104c0.314-0.679,0.889-1.828,0.471-2.612,0.731,0,0.679-1.097,0.992-1.672,0.418-2.298,1.568-4.597,3.292-6.478,0.261-0.783,1.201-1.306,1.619-2.037,0.836,0.261,1.676-1.306,2.406-0.732l-0.16,0.105c1.46-0.418,1.1-2.09,2.87-1.985,1.94-1.15,4.29-0.418,6.43-0.627,2.77-0.679,5.12,1.253,7.63,0.731,1.67,0.522,3.29,1.568,5.01,1.515,2.98,1.463,6.32,2.926,8.41,6.165,4.24,5.538,6.22,12.381,5.28,19.8-1.46,6.164-7.26,12.538-13.79,13.268-7.42,1.62-13.43-2.402-17.29-8.41-2.62-4.336-3.3-11.18-0.42-15.672,2.35-4.545,7.62-5.747,12.54-5.225,2.71,0.418,5.59,1.463,6.89,4.127,2.46,3.762,0.79,8.934,0,12.904-0.63,1.359-2.04,1.933-3.24,2.508-2.77-0.052-5.43-0.157-7.42-2.142,0.42-2.926-0.15-6.374,2.93-8.15,1.1-0.261,1.93-1.045,3.24-0.731,0.36-1.045-1.15-0.575-1.62-0.993-2.04,0.784-4.02,1.933-4.55,4.232l-0.62,6.53c0.78,3.448,4.75,3.291,7.52,3.866,3.19-0.47,5.85-2.09,7.78-4.754,0.58-1.881,1.52-3.761,1.15-5.903,0.84-2.09,0-4.336-0.26-6.635-1.15-2.978-2.92-6.008-5.9-7.889-4.02-0.783-8.2-1.567-12.17,0-5.12,1.358-9.35,6.478-10.03,11.65-1.41,8.464,3.13,15.986,9.92,20.427,6.2,3.96,14.76,3.11,20.69-1.463,6.63-5.224,10.55-12.747,9.67-21.471-0.32-7.732-5.23-14.576-12.07-18.285-3.19-0.888-6.53-2.873-9.62-2.665-2.66-0.157-5.01-0.783-7.94-0.365l-1.09-0.366,0.1-0.522c0.47,0.104,0.89,0.156,1.41,0.156-4.49-0.365-9.51,0.523-13.059,2.978-0.679,0.94-1.829,0.94-2.508,1.515-4.545,2.09-5.694,7.157-7.522,11.18l-0.105,1.254c0.209-0.627,0.47-1.254,0.731-1.881,0.575,1.359-0.522,2.299-0.522,3.762-1.724,4.231-0.418,9.874,0,13.792,0.105,0.94,0.94,2.194,0.522,2.612,0.262,1.253,0.68,2.351,1.254,3.5,1.149-0.209,0.731,1.097,1.149,1.672,1.359,1.515,1.725,3.447,3.501,5.017,0.94,0.21,0.992-0.58,1.724,0-0.523-0.68-0.784-0.21-1.463-0.52,0.313,0.1,0.47-0.68,0.836-0.53-0.105-0.15-0.523-0.15-0.366-0.47,0.314-0.15,0.627,0.26,0.888,0.47-0.052,0.32,0.261,0.63,0.523,1.05,0.731-0.05,1.515,0.94,1.619,1.36-0.313,0.41-0.47-0.32-0.783-0.27l0.417,0.37-0.522,0.16,0.732,0.73v-0.11c0.414-0.26,0.884,0,1.144,0.37l-0.52,0.37c2.98,1.09,4.81,4.85,8.15,5.27,2.25,1.41,5.07,1.94,7.94,1.99v-0.11"/><path id="path4775" d="M114.78,110.37c-0.53-0.16-0.94-0.68-1.62-0.47,0.47,0.31,1.09,0.31,1.62,0.47"/><path id="path4777" d="M112.01,110.26h0.52-0.52"/><path id="path4779" d="M101.25,103.73l-0.63-0.62,0.63,0.62"/><path id="path4781" d="M98.582,102.74l-0.105,0.26h0.366l-0.261-0.26"/><path id="path4783" d="M98.843,102.58l-0.627-0.47,0.627,0.47"/><path id="path4785" d="M96.231,100.96l-0.366-0.36,0.366,0.36"/><path id="path4787" d="M91.842,98.718l-0.156-0.627,0.156,0.627"/><path id="path4789" d="M163.41,97.725c0-0.156,0.06-0.209,0.16-0.261-6.43-2.09-12.33-5.485-19.33-6.269-0.36,0.261-0.94,0.105-1.25,0.522,0.21,0.575,0.42,1.15,0.99,1.62-0.36,0.784-2.14-0.052-1.52,1.097,1.68,0.261,3.14,0.94,4.55,1.672,5.01,0.522,10.19,0.313,15.05,1.619h1.35"/><path id="path4791" d="M70.893,91.456c4.441,0.105,8.202-0.731,12.643-0.261,0.313,1.097,1.828-0.104,1.776,0.993,1.202-0.418-0.261-0.941,0.366-1.724,0.731-0.47,1.724-0.679,2.037-1.411-0.104-0.575-1.358-0.731-0.522-1.358-2.873-0.209-6.74-0.105-9.665-0.157-3.552,0.418-7,1.045-10.135,2.403,1.097,0.157,2.403-0.261,3.5-0.104-3.813,0.679-7.261,2.403-10.762,3.866l10.762-2.247"/><path id="path4793" d="M94.35,93.703l-0.157-0.366,0.157,0.366"/><path id="path4795" d="M151.87,79.806c5.12-0.679,10.92,0.157,14.83-3.134-0.2-0.627,0.27-0.889,0.63-1.254l-1.67,0.627c-7.36,0.836-16.46-1.881-21.42,4.231,0.52,0.47,0.94,0.627,1.62,0.888,2.25,0.105,3.97-1.097,6.01-1.358"/><path id="path4797" d="M88.447,79.649h0.105v-0.47h-0.105v0.47z"/><path id="path4799" d="M85.835,76.672c0.47,0,0.835-0.575,1.097-0.784l0.156-0.627c-0.313,0.157-0.418-0.261-0.627-0.366-0.104-0.209,0.157-0.261,0.209-0.365,0.262,0.104,0.366,0.313,0.627,0.261,0.366-0.575,0.366-0.888,0.523-1.515-0.209,0-0.366-0.261-0.523-0.366,0.627-0.47-0.052-1.097,0.157-1.515-1.881-1.881-4.702-1.463-6.792-2.769-3.552-1.41-7.261-2.873-11.127-3.134l-3.761-0.732c1.149,0.471,2.507,0.784,3.5,1.359-2.038,0.157-4.127-0.888-6.008-0.627,1.776,0.784,3.03,1.933,4.754,2.873-0.105,0.209-0.366,0.105-0.523,0.157l0.157,0.104h-0.888l1.358,0.262-0.104,0.104c-0.052,0,0.679-0.052,0.888,0.261-0.105,0.888,2.403,0.314,1.097,0.993,0.314,0.313,0.732,0.261,1.15,0.261l-0.366-0.261c1.41,0,2.351,1.149,3.761,1.619,0.94,0.471,1.985,0.575,2.717,1.515l-0.105,0.157c1.568,0.366,3.03,2.351,4.911,2.508,0.627,1.045,2.194,0.052,3.344,0.365l0.418,0.262"/><path id="path4801" d="M91.215,74.634l0.105,0.157,0.261-0.418c-0.783-0.313-0.104-1.41-0.104-1.724-0.47,1.202-0.732,2.351-0.784,3.605,0.366-0.157-0.209-1.306,0.522-1.62"/><path id="path4803" d="M90.85,71.029c-0.157-0.104-0.157-0.261-0.157-0.418l-0.261,0.784,0.418-0.366"/><path id="path4805" d="M90.954,70.507l0.105-0.522-0.105,0.522"/><path id="path4807" d="M149.15,62.88c2.2-1.62,3.97-3.866,4.76-6.27-4.76,2.561-10.35,4.128-14.32,8.621,0.16,0.731,0.99,0.156,1.41,0.522l-0.26,0.261c3.4,1.15,5.59-2.142,8.41-3.134"/><path id="path4809" d="M94.35,60.738c-1.149-1.254,1.776-2.299-0.157-3.292-4.858-4.701-10.291-10.239-15.672-14.889l2.298,2.508c-0.783,0.209-1.41-0.836-2.037-1.149l-2.247-2.142c0.836,0.836,1.829,1.724,1.986,2.664-1.463-0.992-2.978-2.037-4.493-3.03,0.836,1.202,1.881,1.515,2.612,2.508-0.052,0.156-0.209,0.156-0.366,0.156,4.545,6.113,9.769,12.538,16.038,17.397-0.156,0.366,0.262,0.68,0.523,0.784,0.731,0,1.149-0.94,1.515-1.515"/><path id="path4811" d="M97.223,60.477l1.515-1.15c-1.149,0.261-2.142,0.784-3.03,1.672,0.627,0.052,0.732-0.888,1.515-0.522"/><path id="path4813" d="M125.54,57.864c-0.16-0.104-0.37-0.156-0.63-0.156,0.21,0.052,0.42,0.156,0.63,0.156"/><path id="path4815" d="M129.93,53.685c1.25,0.157,0.21-1.045,0.52-1.463l-0.37-0.784c1.15-4.336,1.88-9.037,1.73-13.791-3.4,4.858-4.39,10.866-6.9,16.195h0.16c0.26,0.261-0.05,0.574-0.26,0.731,1.25,0.941,3.5,1.463,5.01,0.523l0.11-1.411"/><path id="path4817" d="M110.49,51.7c-0.36-0.523,0.53-0.836,0.79-1.254-1.1-0.104-0.21-1.619-1.41-1.359-4.45-6.373-7.16-13.478-10.139-20.478-0.731-1.045-1.463-2.403-2.612-2.978l-0.261,0.366c3.134,9.037,5.802,18.336,10.032,26.957l-0.37,0.731,1.26,0.784c1.09-0.732,1.93-1.568,2.71-2.769"/></g></g></svg>
--- a/htdocs/svg-edit/editor/ext-connector.js Fri Apr 23 22:29:49 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,367 +0,0 @@ -$(function() { - svgCanvas.addExtension("Connector", function(vars) { - var svgcontent = vars.content, - svgroot = vars.root, - getNextId = vars.getNextId, - getElem = vars.getElem, - addElem = vars.addSvgElementFromJson, - selManager = vars.selectorManager, - started = false, - start_x, - start_y, - cur_line, - start_elem, - end_elem, - connections = [], - conn_class = "se_connect", - connect_str = "-SE_CONNECT-", - selElems; - - var lang_list = { - "en":[ - {"id": "mode_connect", "title": "Connect two objects" }, - {"id": "conn_arrow_none", "textContent": "No arrow" }, - {"id": "conn_arrow_arrow", "textContent": "Arrow" } - ], - "fr":[ - {"id": "mode_connect", "title": "Connecter deux objets"}, - {"id": "conn_arrow_none", "textContent": "Sans flèche" }, - {"id": "conn_arrow_arrow", "textContent": "Flèche" } - ] - }; - - function showPanel(on) { - var conn_rules = $('#connector_rules'); - if(!conn_rules.length) { - conn_rules = $('<style id="connector_rules"><\/style>').appendTo('head'); - } - conn_rules.text(!on?"":"#tool_clone, #tool_topath, #tool_angle, #xy_panel { display: none !important; }"); - $('#connector_panel').toggle(on); - - if(on) { - var has_arrow = selElems[0].getAttribute("marker-mid"); - $("#connector_arrow").val(has_arrow?"arrow":"none"); - } - } - - function setPoint(elem, pos, x, y, setMid) { - var pts = elem.points; - var pt = svgroot.createSVGPoint(); - pt.x = x; - pt.y = y; - if(pos === 'end') pos = pts.numberOfItems-1; - // TODO: Test for this on init, then use alt only if needed - try { - pts.replaceItem(pt, pos); - } catch(err) { - // Should only occur in FF which formats points attr as "n,n n,n", so just split - var pt_arr = elem.getAttribute("points").split(" "); - for(var i=0; i< pt_arr.length; i++) { - if(i == pos) { - pt_arr[i] = x + ',' + y; - } - } - elem.setAttribute("points",pt_arr.join(" ")); - } - - if(setMid) { - // Add center point - var pt_start = pts.getItem(0); - var pt_end = pts.getItem(pts.numberOfItems-1); - setPoint(elem, 1, (pt_end.x + pt_start.x)/2, (pt_end.y + pt_start.y)/2); - } - } - - function addArrow() { - var defs = vars.findDefs(); - var m_id = "se_connector_arrow"; - var marker = getElem(m_id); - - if(!marker) { - marker = addElem({ - "element": "marker", - "attr": { - "viewBox": "0 0 10 10", - "id": m_id, - "refX": 5, - "refY": 5, - "markerUnits": "strokeWidth", - "markerWidth": 16, - "markerHeight": 14, - "orient": "auto" - } - }); - var arrow = addElem({ - "element": "path", - "attr": { - "d": "M0,0 L10,5 L0,10 z", - "fill": "#000" - } - }); - - marker.appendChild(arrow); - defs.appendChild(marker); - } - - selElems[0].setAttribute("marker-mid", "url(#" + m_id + ")"); - } - - function remArrow() { - selElems[0].removeAttribute("marker-mid"); - } - - // Init code - (function() { - var conn_tools = $('<div id="connector_panel">\ - <label><select id="connector_arrow">\ - <option id="conn_arrow_none" value="none">No arrow</option>\ - <option id="conn_arrow_arrow" value="arrow">Arrow</option>\ - </select></label></div>"').hide().appendTo("#tools_top"); - - $('#connector_arrow').change(function() { - switch ( this.value ) { - case "arrow": - addArrow(); - break; - case "none": - remArrow(); - break; - } - }); - - vars.extendWhitelist({ - "marker": ["viewBox", "id", "refX", "refY", "markerUnits", "markerWidth", "markerHeight", "orient"], - "polyline": ["class", "marker-mid"] - }); - }()); - - return { - name: "Connector", - svgicons: "images/conn.svg", - buttons: [{ - id: "mode_connect", - type: "mode", - icon: "images/cut.png", - title: "Connect two objects", - key: "L", - includeWith: { - button: '#tool_line', - isDefault: false, - position: 1 - }, - events: { - 'click': function() { - svgCanvas.setMode("connector"); - } - } - }], - addLangData: function(lang) { - return { - data: lang_list[lang] - }; - }, - mouseDown: function(opts) { - var e = opts.event; - - start_x = opts.start_x, - start_y = opts.start_y; - var mode = svgCanvas.getMode(); - - if(mode == "connector") { - - if(started) return; - - if(e.target.parentNode.parentNode == svgcontent) { - // Connectable element - start_elem = e.target; - - // Get center of source element - var bb = svgCanvas.getStrokedBBox([start_elem]); - var x = bb.x + bb.width/2; - var y = bb.y + bb.height/2; - - started = true; - cur_line = addElem({ - "element": "polyline", - "attr": { - "points": (x+','+y+' '+x+','+y+' '+start_x+','+start_y), - "stroke": '#000', - "stroke-width": 1, - "fill": "none", - "opacity": .5, - "style": "pointer-events:none" - } - }); - } - return { - started: true - }; - } else if(mode == "select") { - - // Check if selected elements have connections - var elems = opts.selectedElements; - var i = elems.length; - var connectors = $(svgcontent).find("." + conn_class); - if(!connectors.length) return; - connections = []; - - while(i--) { - var elem = elems[i]; - if(!elem) continue; - if(elem.getAttribute('class') == conn_class) continue; - var elem_id = elem.id; - connectors.each(function() { - var con_id = this.id; - if(con_id.indexOf(elem_id) != -1) { - var is_start = true; - if(con_id.indexOf(connect_str + elem_id) != -1) { - // Found connector (selected is end elem) - is_start = false; - } - - var bb = svgCanvas.getStrokedBBox([elem]); - var x = bb.x + bb.width/2; - var y = bb.y + bb.height/2; - connections.push({ - elem: elem, - connector: this, - is_start: is_start, - start_x: x, - start_y: y - }); - } - }); - } - } - }, - mouseMove: function(opts) { - var zoom = svgCanvas.getZoom(); - var e = opts.event; - var x = opts.mouse_x/zoom; - var y = opts.mouse_y/zoom; - - var diff_x = x - start_x, - diff_y = y - start_y; - - var mode = svgCanvas.getMode(); - - if(mode == "connector" && started) { - // Set middle point for marker - setPoint(cur_line, 'end', x, y, true); - } else if(mode == "select") { - var slen = selElems.length; - - while(slen--) { - var elem = selElems[slen]; - // Look for selected connector elements - if(elem && elem.getAttribute('class') == conn_class) { - // Remove the "translate" transform given to move - svgCanvas.getTransformList(elem).clear(); - } - } - if(connections.length) { - // Update line with element - var i = connections.length; - while(i--) { - var conn = connections[i]; - var line = conn.connector; - var elem = conn.elem; - var pt_x = conn.start_x + diff_x; - var pt_y = conn.start_y + diff_y; - setPoint(line, conn.is_start?0:'end', pt_x, pt_y, true); - } - } - } - }, - mouseUp: function(opts) { - var zoom = svgCanvas.getZoom(); - var e = opts.event, - x = opts.mouse_x/zoom, - y = opts.mouse_y/zoom; - - if(svgCanvas.getMode() == "connector") { - if(e.target.parentNode.parentNode != svgcontent) { - // Not a valid target element, so remove line - $(cur_line).remove(); - started = false; - return { - keep: false, - element: null, - started: started - } - } else if(e.target == start_elem) { - // Start line through click - started = true; - return { - keep: true, - element: null, - started: started - } - } else { - // Valid end element - end_elem = e.target; - var line_id = start_elem.id + connect_str + end_elem.id; - var alt_line_id = end_elem.id + connect_str + start_elem.id; - - // Don't create connector if one already exists - if($('#'+line_id + ', #' + alt_line_id).length) { - $(cur_line).remove(); - return { - keep: false, - element: null, - started: false - } - } - - var bb = svgCanvas.getStrokedBBox([end_elem]); - var x = bb.x + bb.width/2; - var y = bb.y + bb.height/2; - setPoint(cur_line, 'end', x, y, true); - cur_line.id = line_id; - cur_line.setAttribute("class", conn_class); - svgCanvas.addToSelection([cur_line]); - svgCanvas.moveToBottomSelectedElement(); - - started = false; - return { - keep: true, - element: cur_line, - started: started - } - } - } - }, - selectedChanged: function(opts) { - - // Use this to update the current selected elements - selElems = opts.elems; - - var i = selElems.length; - - while(i--) { - var elem = selElems[i]; - if(elem && elem.getAttribute('class') == conn_class) { - selManager.requestSelector(elem).showGrips(false); - - if(opts.selectedElement && !opts.multiselected) { - // TODO: Set up context tools and hide most regular line tools - showPanel(true); - } else { - showPanel(false); - } - } else { - showPanel(false); - } - } - }, - elementChanged: function(opts) { - var elem = opts.elems[0]; - if (elem && elem.tagName == 'svg' && elem.id == "svgcontent") { - // Update svgcontent (can change on import) - svgcontent = elem; - } - - } - }; - }); -}); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/closepath_icons.svg Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,41 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<g id="tool_closepath"> +<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g> + <title>Layer 1</title> + <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m121.5,40l-84,106l27,115l166,2l29,-111"/> + <line x1="240" y1="136" x2="169.5" y2="74" stroke="#A00" stroke-width="25" fill="none"/> + <path stroke="none" fill ="#A00" d="m158,65l31,74l-3,-50l51,-3z"/> + <g stroke-width="15" stroke="#00f" fill="#0ff"> + <circle r="30" cy="41" cx="123"/> + <circle r="30" cy="146" cx="40"/> + <circle r="30" cy="260" cx="69"/> + <circle r="30" cy="260" cx="228"/> + <circle r="30" cy="148" cx="260"/> + </g> + </g> +</svg> +</g> +<g id="tool_openpath"> +<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g> + <title>Layer 1</title> + <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m123.5,38l-84,106l27,115l166,2l29,-111"/> + <line x1="276.5" y1="153" x2="108.5" y2="24" stroke="#000" stroke-width="10" fill="none"/> + <g stroke-width="15" stroke="#00f" fill="#0ff"> + <circle r="30" cy="41" cx="123"/> + <circle r="30" cy="146" cx="40"/> + <circle r="30" cy="260" cx="69"/> + <circle r="30" cy="260" cx="228"/> + <circle r="30" cy="148" cx="260"/> + </g> + <g stroke="#A00" stroke-width="15" fill="none"> + <line x1="168" y1="24" x2="210" y2="150"/> + <line x1="210" y1="24" x2="168" y2="150"/> + </g> + </g> +</svg> +</g> + +<g id="svg_eof"/> +</svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/ext-arrows.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,296 @@ +/* + * ext-arrows.js + * + * Licensed under the Apache License, Version 2 + * + * Copyright(c) 2010 Alexis Deveria + * + */ + + +svgEditor.addExtension("Arrows", function(S) { + var svgcontent = S.svgcontent, + addElem = S.addSvgElementFromJson, + nonce = S.nonce, + randomize_ids = S.randomize_ids, + selElems; + + svgCanvas.bind('setarrownonce', setArrowNonce); + svgCanvas.bind('unsetsetarrownonce', unsetArrowNonce); + + var lang_list = { + "en":[ + {"id": "arrow_none", "textContent": "No arrow" } + ], + "fr":[ + {"id": "arrow_none", "textContent": "Sans flèche" } + ] + }; + + var prefix = 'se_arrow_'; + if (randomize_ids) { + var arrowprefix = prefix + nonce + '_'; + } else { + var arrowprefix = prefix; + } + + var pathdata = { + fw: {d:"m0,0l10,5l-10,5l5,-5l-5,-5z", refx:8, id: arrowprefix + 'fw'}, + bk: {d:"m10,0l-10,5l10,5l-5,-5l5,-5z", refx:2, id: arrowprefix + 'bk'} + } + + function setArrowNonce(window, n) { + randomize_ids = true; + arrowprefix = prefix + n + '_'; + pathdata.fw.id = arrowprefix + 'fw'; + pathdata.bk.id = arrowprefix + 'bk'; + } + + function unsetArrowNonce(window) { + randomize_ids = false; + arrowprefix = prefix; + pathdata.fw.id = arrowprefix + 'fw'; + pathdata.bk.id = arrowprefix + 'bk'; + } + + function getLinked(elem, attr) { + var str = elem.getAttribute(attr); + if(!str) return null; + var m = str.match(/\(\#(.*)\)/); + if(!m || m.length !== 2) { + return null; + } + return S.getElem(m[1]); + } + + function showPanel(on) { + $('#arrow_panel').toggle(on); + + if(on) { + var el = selElems[0]; + var end = el.getAttribute("marker-end"); + var start = el.getAttribute("marker-start"); + var mid = el.getAttribute("marker-mid"); + var val; + + if(end && start) { + val = "both"; + } else if(end) { + val = "end"; + } else if(start) { + val = "start"; + } else if(mid) { + val = "mid"; + if(mid.indexOf("bk") != -1) { + val = "mid_bk"; + } + } + + if(!start && !mid && !end) { + val = "none"; + } + + $("#arrow_list").val(val); + } + } + + function resetMarker() { + var el = selElems[0]; + el.removeAttribute("marker-start"); + el.removeAttribute("marker-mid"); + el.removeAttribute("marker-end"); + } + + function addMarker(dir, type, id) { + // TODO: Make marker (or use?) per arrow type, since refX can be different + id = id || arrowprefix + dir; + + var marker = S.getElem(id); + + var data = pathdata[dir]; + + if(type == "mid") { + data.refx = 5; + } + + if(!marker) { + marker = addElem({ + "element": "marker", + "attr": { + "viewBox": "0 0 10 10", + "id": id, + "refY": 5, + "markerUnits": "strokeWidth", + "markerWidth": 5, + "markerHeight": 5, + "orient": "auto", + "style": "pointer-events:none" // Currently needed for Opera + } + }); + var arrow = addElem({ + "element": "path", + "attr": { + "d": data.d, + "fill": "#000000" + } + }); + marker.appendChild(arrow); + S.findDefs().appendChild(marker); + } + + marker.setAttribute('refX', data.refx); + + return marker; + } + + function setArrow() { + var type = this.value; + resetMarker(); + + if(type == "none") { + return; + } + + // Set marker on element + var dir = "fw"; + if(type == "mid_bk") { + type = "mid"; + dir = "bk"; + } else if(type == "both") { + addMarker("bk", type); + svgCanvas.changeSelectedAttribute("marker-start", "url(#" + pathdata.bk.id + ")"); + type = "end"; + dir = "fw"; + } else if (type == "start") { + dir = "bk"; + } + + addMarker(dir, type); + svgCanvas.changeSelectedAttribute("marker-"+type, "url(#" + pathdata[dir].id + ")"); + S.call("changed", selElems); + } + + function colorChanged(elem) { + var color = elem.getAttribute('stroke'); + + var mtypes = ['start','mid','end']; + var defs = S.findDefs(); + + $.each(mtypes, function(i, type) { + var marker = getLinked(elem, 'marker-'+type); + if(!marker) return; + + var cur_color = $(marker).children().attr('fill'); + var cur_d = $(marker).children().attr('d'); + var new_marker = null; + if(cur_color === color) return; + + var all_markers = $(defs).find('marker'); + // Different color, check if already made + all_markers.each(function() { + var attrs = $(this).children().attr(['fill', 'd']); + if(attrs.fill === color && attrs.d === cur_d) { + // Found another marker with this color and this path + new_marker = this; + } + }); + + if(!new_marker) { + // Create a new marker with this color + var last_id = marker.id; + var dir = last_id.indexOf('_fw') !== -1?'fw':'bk'; + + new_marker = addMarker(dir, type, arrowprefix + dir + all_markers.length); + + $(new_marker).children().attr('fill', color); + } + + $(elem).attr('marker-'+type, "url(#" + new_marker.id + ")"); + + // Check if last marker can be removed + var remove = true; + $(S.svgcontent).find('line, polyline, path, polygon').each(function() { + var elem = this; + $.each(mtypes, function(j, mtype) { + if($(elem).attr('marker-' + mtype) === "url(#" + marker.id + ")") { + return remove = false; + } + }); + if(!remove) return false; + }); + + // Not found, so can safely remove + if(remove) { + $(marker).remove(); + } + + }); + + } + + return { + name: "Arrows", + context_tools: [{ + type: "select", + panel: "arrow_panel", + title: "Select arrow type", + id: "arrow_list", + options: { + none: "No arrow", + end: "---->", + start: "<----", + both: "<--->", + mid: "-->--", + mid_bk: "--<--" + }, + defval: "none", + events: { + change: setArrow + } + }], + callback: function() { + $('#arrow_panel').hide(); + }, + addLangData: function(lang) { + return { + data: lang_list[lang] + }; + }, + selectedChanged: function(opts) { + + // Use this to update the current selected elements + selElems = opts.elems; + + var i = selElems.length; + var marker_elems = ['line','path','polyline','polygon']; + + while(i--) { + var elem = selElems[i]; + if(elem && $.inArray(elem.tagName, marker_elems) != -1) { + if(opts.selectedElement && !opts.multiselected) { + showPanel(true); + } else { + showPanel(false); + } + } else { + showPanel(false); + } + } + }, + elementChanged: function(opts) { + var elem = opts.elems[0]; + if(elem && ( + elem.getAttribute("marker-start") || + elem.getAttribute("marker-mid") || + elem.getAttribute("marker-end") + )) { + // var start = elem.getAttribute("marker-start"); + // var mid = elem.getAttribute("marker-mid"); + // var end = elem.getAttribute("marker-end"); + // Has marker, so see if it should match color + colorChanged(elem); + } + + } + }; +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/ext-closepath.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,92 @@ +/* + * ext-closepath.js + * + * Licensed under the Apache License, Version 2 + * + * Copyright(c) 2010 Jeff Schiller + * + */ + +// This extension adds a simple button to the contextual panel for paths +// The button toggles whether the path is open or closed +svgEditor.addExtension("ClosePath", function(S) { + var selElems, + updateButton = function(path) { + var seglist = path.pathSegList, + closed = seglist.getItem(seglist.numberOfItems - 1).pathSegType==1, + showbutton = closed ? '#tool_openpath' : '#tool_closepath', + hidebutton = closed ? '#tool_closepath' : '#tool_openpath'; + $(hidebutton).hide(); + $(showbutton).show(); + }, + showPanel = function(on) { + $('#closepath_panel').toggle(on); + if (on) { + var path = selElems[0]; + if (path) updateButton(path); + } + }, + + toggleClosed = function() { + var path = selElems[0]; + if (path) { + var seglist = path.pathSegList, + last = seglist.numberOfItems - 1; + // is closed + if(seglist.getItem(last).pathSegType == 1) { + seglist.removeItem(last); + } + else { + seglist.appendItem(path.createSVGPathSegClosePath()); + } + updateButton(path); + } + }; + + return { + name: "ClosePath", + svgicons: "extensions/closepath_icons.svg", + buttons: [{ + id: "tool_openpath", + type: "context", + panel: "closepath_panel", + title: "Open path", + events: { + 'click': function() { + toggleClosed(); + } + } + }, + { + id: "tool_closepath", + type: "context", + panel: "closepath_panel", + title: "Close path", + events: { + 'click': function() { + toggleClosed(); + } + } + }], + callback: function() { + $('#closepath_panel').hide(); + }, + selectedChanged: function(opts) { + selElems = opts.elems; + var i = selElems.length; + + while(i--) { + var elem = selElems[i]; + if(elem && elem.tagName == 'path') { + if(opts.selectedElement && !opts.multiselected) { + showPanel(true); + } else { + showPanel(false); + } + } else { + showPanel(false); + } + } + } + }; +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/ext-connector.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,555 @@ +/* + * ext-connector.js + * + * Licensed under the Apache License, Version 2 + * + * Copyright(c) 2010 Alexis Deveria + * + */ + +svgEditor.addExtension("Connector", function(S) { + var svgcontent = S.svgcontent, + svgroot = S.svgroot, + getNextId = S.getNextId, + getElem = S.getElem, + addElem = S.addSvgElementFromJson, + selManager = S.selectorManager, + curConfig = svgEditor.curConfig, + started = false, + start_x, + start_y, + cur_line, + start_elem, + end_elem, + connections = [], + conn_sel = ".se_connector", + se_ns, +// connect_str = "-SE_CONNECT-", + selElems = []; + + var lang_list = { + "en":[ + {"id": "mode_connect", "title": "Connect two objects" } + ], + "fr":[ + {"id": "mode_connect", "title": "Connecter deux objets"} + ] + }; + + function showPanel(on) { + var conn_rules = $('#connector_rules'); + if(!conn_rules.length) { + conn_rules = $('<style id="connector_rules"><\/style>').appendTo('head'); + } + conn_rules.text(!on?"":"#tool_clone, #tool_topath, #tool_angle, #xy_panel { display: none !important; }"); + $('#connector_panel').toggle(on); + } + + function setPoint(elem, pos, x, y, setMid) { + var pts = elem.points; + var pt = svgroot.createSVGPoint(); + pt.x = x; + pt.y = y; + if(pos === 'end') pos = pts.numberOfItems-1; + // TODO: Test for this on init, then use alt only if needed + try { + pts.replaceItem(pt, pos); + } catch(err) { + // Should only occur in FF which formats points attr as "n,n n,n", so just split + var pt_arr = elem.getAttribute("points").split(" "); + for(var i=0; i< pt_arr.length; i++) { + if(i == pos) { + pt_arr[i] = x + ',' + y; + } + } + elem.setAttribute("points",pt_arr.join(" ")); + } + + if(setMid) { + // Add center point + var pt_start = pts.getItem(0); + var pt_end = pts.getItem(pts.numberOfItems-1); + setPoint(elem, 1, (pt_end.x + pt_start.x)/2, (pt_end.y + pt_start.y)/2); + } + } + + function findConnectors() { + var elems = selElems; + var connectors = $(svgcontent).find(conn_sel); + connections = []; + + // Loop through connectors to see if one is connected to the element + connectors.each(function() { + var start = $(this).data("c_start"); + var end = $(this).data("c_end"); + + var parts = [getElem(start), getElem(end)]; + for(var i=0; i<2; i++) { + var c_elem = parts[i]; + var add_this = false; + // The connected element might be part of a selected group + $(c_elem).parents().each(function() { + if($.inArray(this, elems) !== -1) { + // Pretend this element is selected + add_this = true; + } + }); + + if(!c_elem || !c_elem.parentNode) { + $(this).remove(); + continue; + } + + if($.inArray(c_elem, elems) !== -1 || add_this) { + var bb = svgCanvas.getStrokedBBox([c_elem]); + connections.push({ + elem: c_elem, + connector: this, + is_start: (i === 0), + start_x: bb.x, + start_y: bb.y + }); + } + } + }); + } + + function updateConnectors() { + // Updates connector lines based on selected elements + // Is not used on mousemove, as it runs getStrokedBBox every time, + // which isn't necessary there. + findConnectors(); + if(connections.length) { + // Update line with element + var i = connections.length; + while(i--) { + var conn = connections[i]; + var line = conn.connector; + var elem = conn.elem; + + var sw = line.getAttribute('stroke-width'); + var pre = conn.is_start?'start':'end'; + + // Update bbox for this element + var bb = svgCanvas.getStrokedBBox([elem]); + bb.x = conn.start_x; + bb.y = conn.start_y; + $(line).data(pre+'_bb', bb); + var add_offset = $(line).data(pre+'_off'); + + var alt_pre = conn.is_start?'end':'start'; + + // Get center pt of connected element + var bb2 = $(line).data(alt_pre+'_bb'); + var src_x = bb2.x + bb2.width/2; + var src_y = bb2.y + bb2.height/2; + + // Set point of element being moved + var pt = getBBintersect(src_x, src_y, bb, add_offset?sw:0); + setPoint(line, conn.is_start?0:'end', pt.x, pt.y, true); + + // Set point of connected element + var pt2 = getBBintersect(pt.x, pt.y, $(line).data(alt_pre + '_bb'), $(line).data(alt_pre + '_off')?sw:0); + setPoint(line, conn.is_start?'end':0, pt2.x, pt2.y, true); + + // Update points attribute manually for webkit + if(navigator.userAgent.indexOf('AppleWebKit') != -1) { + var pts = line.points; + var len = pts.numberOfItems; + var pt_arr = Array(len); + for(var j=0; j< len; j++) { + var pt = pts.getItem(j); + pt_arr[j] = pt.x + ',' + pt.y; + } + line.setAttribute("points",pt_arr.join(" ")); + } + + } + } + } + + function getBBintersect(x, y, bb, offset) { + if(offset) { + offset -= 0; + bb = $.extend({}, bb); + bb.width += offset; + bb.height += offset; + bb.x -= offset/2; + bb.y -= offset/2; + } + + var mid_x = bb.x + bb.width/2; + var mid_y = bb.y + bb.height/2; + var len_x = x - mid_x; + var len_y = y - mid_y; + + var slope = Math.abs(len_y/len_x); + + var ratio; + + if(slope < bb.height/bb.width) { + ratio = (bb.width/2) / Math.abs(len_x); + } else { + ratio = (bb.height/2) / Math.abs(len_y); + } + + + return { + x: mid_x + len_x * ratio, + y: mid_y + len_y * ratio + } + } + + // Do once + (function() { + var gse = svgCanvas.groupSelectedElements; + + svgCanvas.groupSelectedElements = function() { + svgCanvas.removeFromSelection($(conn_sel).toArray()); + gse(); + } + + var mse = svgCanvas.moveSelectedElements; + + svgCanvas.moveSelectedElements = function() { + svgCanvas.removeFromSelection($(conn_sel).toArray()); + mse.apply(this, arguments); + updateConnectors(); + } + + se_ns = svgCanvas.getEditorNS(); + }()); + + // Do on reset + function init() { + // Make sure all connectors have data set + $(svgcontent).find('*').each(function() { + var conn = this.getAttributeNS(se_ns, "connector"); + if(conn) { + this.setAttribute('class', conn_sel.substr(1)); + var conn_data = conn.split(' '); + var sbb = svgCanvas.getStrokedBBox([getElem(conn_data[0])]); + var ebb = svgCanvas.getStrokedBBox([getElem(conn_data[1])]); + $(this).data('c_start',conn_data[0]) + .data('c_end',conn_data[1]) + .data('start_bb', sbb) + .data('end_bb', ebb); + svgCanvas.getEditorNS(true); + } + }); +// updateConnectors(); + } + +// $(svgroot).parent().mousemove(function(e) { +// // if(started +// // || svgCanvas.getMode() != "connector" +// // || e.target.parentNode.parentNode != svgcontent) return; +// +// console.log('y') +// // if(e.target.parentNode.parentNode === svgcontent) { +// // +// // } +// }); + + return { + name: "Connector", + svgicons: "images/conn.svg", + buttons: [{ + id: "mode_connect", + type: "mode", + icon: "images/cut.png", + title: "Connect two objects", + key: "Shift+3", + includeWith: { + button: '#tool_line', + isDefault: false, + position: 1 + }, + events: { + 'click': function() { + svgCanvas.setMode("connector"); + } + } + }], + addLangData: function(lang) { + return { + data: lang_list[lang] + }; + }, + mouseDown: function(opts) { + var e = opts.event; + start_x = opts.start_x, + start_y = opts.start_y; + var mode = svgCanvas.getMode(); + + if(mode == "connector") { + + if(started) return; + + var mouse_target = e.target; + + var parents = $(mouse_target).parents(); + + if($.inArray(svgcontent, parents) != -1) { + // Connectable element + + // If child of foreignObject, use parent + var fo = $(mouse_target).closest("foreignObject"); + start_elem = fo.length ? fo[0] : mouse_target; + + // Get center of source element + var bb = svgCanvas.getStrokedBBox([start_elem]); + var x = bb.x + bb.width/2; + var y = bb.y + bb.height/2; + + started = true; + cur_line = addElem({ + "element": "polyline", + "attr": { + "id": getNextId(), + "points": (x+','+y+' '+x+','+y+' '+start_x+','+start_y), + "stroke": '#' + curConfig.initStroke.color, + "stroke-width": (!start_elem.stroke_width || start_elem.stroke_width == 0) ? curConfig.initStroke.width : start_elem.stroke_width, + "fill": "none", + "opacity": curConfig.initStroke.opacity, + "style": "pointer-events:none" + } + }); + $(cur_line).data('start_bb', bb); + } + return { + started: true + }; + } else if(mode == "select") { + findConnectors(); + } + }, + mouseMove: function(opts) { + var zoom = svgCanvas.getZoom(); + var e = opts.event; + var x = opts.mouse_x/zoom; + var y = opts.mouse_y/zoom; + + var diff_x = x - start_x, + diff_y = y - start_y; + + var mode = svgCanvas.getMode(); + + if(mode == "connector" && started) { + + // Set start point (adjusts based on bb) + var pt = getBBintersect(x, y, $(cur_line).data('start_bb')); + start_x = pt.x; + start_y = pt.y; + + setPoint(cur_line, 0, pt.x, pt.y, true); + + // Set end point + setPoint(cur_line, 'end', x, y, true); + } else if(mode == "select") { + var slen = selElems.length; + + while(slen--) { + var elem = selElems[slen]; + // Look for selected connector elements + if(elem && $(elem).data('c_start')) { + // Remove the "translate" transform given to move + svgCanvas.removeFromSelection([elem]); + svgCanvas.getTransformList(elem).clear(); + + } + } + if(connections.length) { + // Update line with element + var i = connections.length; + while(i--) { + var conn = connections[i]; + var line = conn.connector; + var elem = conn.elem; + + var pre = conn.is_start?'start':'end'; + var sw = line.getAttribute('stroke-width'); + + // Update bbox for this element + var bb = $(line).data(pre+'_bb'); + bb.x = conn.start_x + diff_x; + bb.y = conn.start_y + diff_y; + $(line).data(pre+'_bb', bb); + + var alt_pre = conn.is_start?'end':'start'; + + // Get center pt of connected element + var bb2 = $(line).data(alt_pre+'_bb'); + var src_x = bb2.x + bb2.width/2; + var src_y = bb2.y + bb2.height/2; + + // Set point of element being moved + var pt = getBBintersect(src_x, src_y, bb, $(line).data(pre+'_off')?sw:0); + setPoint(line, conn.is_start?0:'end', pt.x, pt.y, true); + + // Set point of connected element + var pt2 = getBBintersect(pt.x, pt.y, $(line).data(alt_pre + '_bb'), $(line).data(alt_pre+'_off')?sw:0); + setPoint(line, conn.is_start?'end':0, pt2.x, pt2.y, true); + + } + + } + } + }, + mouseUp: function(opts) { + var zoom = svgCanvas.getZoom(); + var e = opts.event, + x = opts.mouse_x/zoom, + y = opts.mouse_y/zoom, + mouse_target = e.target; + + if(svgCanvas.getMode() == "connector") { + var fo = $(mouse_target).closest("foreignObject"); + if(fo.length) mouse_target = fo[0]; + if(mouse_target.parentNode.parentNode != svgcontent) { + // Not a valid target element, so remove line + $(cur_line).remove(); + started = false; + return { + keep: false, + element: null, + started: started + } + } else if(mouse_target == start_elem) { + // Start line through click + started = true; + return { + keep: true, + element: null, + started: started + } + } else { + // Valid end element + end_elem = mouse_target; + + var start_id = start_elem.id, end_id = end_elem.id; + var conn_str = start_id + " " + end_id; + var alt_str = end_id + " " + start_id; + // Don't create connector if one already exists + var dupe = $(svgcontent).find(conn_sel).filter(function() { + var conn = this.getAttributeNS(se_ns, "connector"); + if(conn == conn_str || conn == alt_str) return true; + }); + if(dupe.length) { + $(cur_line).remove(); + return { + keep: false, + element: null, + started: false + } + } + + var bb = svgCanvas.getStrokedBBox([end_elem]); + + var pt = getBBintersect(start_x, start_y, bb); + setPoint(cur_line, 'end', pt.x, pt.y, true); + $(cur_line) + .data("c_start", start_id) + .data("c_end", end_id) + .data("end_bb", bb); + se_ns = svgCanvas.getEditorNS(true); + cur_line.setAttributeNS(se_ns, "se:connector", conn_str); + cur_line.setAttribute('class', conn_sel.substr(1)); + cur_line.setAttribute('opacity', 1); + svgCanvas.addToSelection([cur_line]); + svgCanvas.moveToBottomSelectedElement(); + selManager.requestSelector(cur_line).showGrips(false); + started = false; + return { + keep: true, + element: cur_line, + started: started + } + } + } + }, + selectedChanged: function(opts) { + + // Use this to update the current selected elements + selElems = opts.elems; + + var i = selElems.length; + + while(i--) { + var elem = selElems[i]; + if(elem && $(elem).data('c_start')) { + selManager.requestSelector(elem).showGrips(false); + if(opts.selectedElement && !opts.multiselected) { + // TODO: Set up context tools and hide most regular line tools + showPanel(true); + } else { + showPanel(false); + } + } else { + showPanel(false); + } + } + }, + elementChanged: function(opts) { + var elem = opts.elems[0]; + if (elem && elem.tagName == 'svg' && elem.id == "svgcontent") { + // Update svgcontent (can change on import) + svgcontent = elem; + init(); + } + + // Has marker, so change offset + if(elem && ( + elem.getAttribute("marker-start") || + elem.getAttribute("marker-mid") || + elem.getAttribute("marker-end") + )) { + var start = elem.getAttribute("marker-start"); + var mid = elem.getAttribute("marker-mid"); + var end = elem.getAttribute("marker-end"); + cur_line = elem; + $(elem) + .data("start_off", !!start) + .data("end_off", !!end); + + if(elem.tagName == "line" && mid) { + // Convert to polyline to accept mid-arrow + + var x1 = elem.getAttribute('x1')-0; + var x2 = elem.getAttribute('x2')-0; + var y1 = elem.getAttribute('y1')-0; + var y2 = elem.getAttribute('y2')-0; + var id = elem.id; + + var mid_pt = (' '+((x1+x2)/2)+','+((y1+y2)/2) + ' '); + var pline = addElem({ + "element": "polyline", + "attr": { + "points": (x1+','+y1+ mid_pt +x2+','+y2), + "stroke": elem.getAttribute('stroke'), + "stroke-width": elem.getAttribute('stroke-width'), + "marker-mid": mid, + "fill": "none", + "opacity": elem.getAttribute('opacity') || 1 + } + }); + $(elem).after(pline).remove(); + svgCanvas.clearSelection(); + pline.id = id; + svgCanvas.addToSelection([pline]); + } + + } + updateConnectors(); + }, + toolButtonStateUpdate: function(opts) { + if(opts.nostroke) { + if ($('#mode_connect').hasClass('tool_button_current')) { + clickSelect(); + } + } + $('#mode_connect') + .toggleClass('disabled',opts.nostroke); + } + }; +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/ext-eyedropper.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,90 @@ +/* + * ext-eyedropper.js + * + * Licensed under the Apache License, Version 2 + * + * Copyright(c) 2010 Jeff Schiller + * + */ + +svgEditor.addExtension("eyedropper", function(S) { + var svgcontent = S.svgcontent, + svgns = "http://www.w3.org/2000/svg", + svgdoc = S.svgroot.parentNode.ownerDocument, + ChangeElementCommand = svgCanvas.getPrivateMethods().ChangeElementCommand, + addToHistory = svgCanvas.getPrivateMethods().addCommandToHistory, + currentStyle = {fillPaint: "red", fillOpacity: 1.0, + strokePaint: "black", strokeOpacity: 1.0, + strokeWidth: 5, strokeDashArray: null, + opacity: 1.0 }; + + return { + name: "eyedropper", + svgicons: "extensions/eyedropper-icon.xml", + buttons: [{ + id: "tool_eyedropper", + type: "mode", + title: "Eye Dropper Tool", + events: { + "click": function() { + svgCanvas.setMode("eyedropper"); + } + } + }], + + // if we have selected an element, grab its paint and enable the eye dropper button + selectedChanged: function(opts) { + // if we are in eyedropper mode, we don't want to disable the eye-dropper tool + var mode = svgCanvas.getMode(); + if (mode == "eyedropper") return; + + var elem = null; + var tool = $('#tool_eyedropper'); + // enable-eye-dropper if one element is selected + if (opts.elems.length == 1 && opts.elems[0] && + $.inArray(opts.elems[0].nodeName, ['svg', 'g', 'use']) == -1) + { + elem = opts.elems[0]; + tool.removeClass('disabled'); + // grab the current style + currentStyle.fillPaint = elem.getAttribute("fill") || "black"; + currentStyle.fillOpacity = elem.getAttribute("fill-opacity") || 1.0; + currentStyle.strokePaint = elem.getAttribute("stroke"); + currentStyle.strokeOpacity = elem.getAttribute("stroke-opacity") || 1.0; + currentStyle.strokeWidth = elem.getAttribute("stroke-width"); + currentStyle.strokeDashArray = elem.getAttribute("stroke-dasharray"); + currentStyle.opacity = elem.getAttribute("opacity") || 1.0; + } + // disable eye-dropper tool + else { + tool.addClass('disabled'); + } + }, + + mouseDown: function(opts) { + var mode = svgCanvas.getMode(); + if (mode == "eyedropper") { + var e = opts.event; + var target = e.target; + if ($.inArray(target.nodeName, ['svg', 'g', 'use']) == -1) { + var changes = {}; + + var change = function(elem, attrname, newvalue) { + changes[attrname] = elem.getAttribute(attrname); + elem.setAttribute(attrname, newvalue); + }; + + if (currentStyle.fillPaint) change(target, "fill", currentStyle.fillPaint); + if (currentStyle.fillOpacity) change(target, "fill-opacity", currentStyle.fillOpacity); + if (currentStyle.strokePaint) change(target, "stroke", currentStyle.strokePaint); + if (currentStyle.strokeOpacity) change(target, "stroke-opacity", currentStyle.strokeOpacity); + if (currentStyle.strokeWidth) change(target, "stroke-width", currentStyle.strokeWidth); + if (currentStyle.strokeDashArray) change(target, "stroke-dasharray", currentStyle.strokeDashArray); + if (currentStyle.opacity) change(target, "opacity", currentStyle.opacity); + + addToHistory(new ChangeElementCommand(target, changes)); + } + } + }, + }; +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/ext-foreignobject.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,277 @@ +/* + * ext-foreignobject.js + * + * Licensed under the Apache License, Version 2 + * + * Copyright(c) 2010 Jacques Distler + * Copyright(c) 2010 Alexis Deveria + * + */ + +svgEditor.addExtension("foreignObject", function(S) { + var svgcontent = S.svgcontent, + addElem = S.addSvgElementFromJson, + selElems, + svgns = "http://www.w3.org/2000/svg", + xlinkns = "http://www.w3.org/1999/xlink", + xmlns = "http://www.w3.org/XML/1998/namespace", + xmlnsns = "http://www.w3.org/2000/xmlns/", + se_ns = "http://svg-edit.googlecode.com", + htmlns = "http://www.w3.org/1999/xhtml", + mathns = "http://www.w3.org/1998/Math/MathML", + editingforeign = false, + svgdoc = S.svgroot.parentNode.ownerDocument, + started, + newFO; + + + var properlySourceSizeTextArea = function(){ + // TODO: remove magic numbers here and get values from CSS + var height = $('#svg_source_container').height() - 80; + $('#svg_source_textarea').css('height', height); + }; + + function showPanel(on) { + var fc_rules = $('#fc_rules'); + if(!fc_rules.length) { + fc_rules = $('<style id="fc_rules"><\/style>').appendTo('head'); + } + fc_rules.text(!on?"":" #tool_topath { display: none !important; }"); + $('#foreignObject_panel').toggle(on); + } + + function toggleSourceButtons(on) { + $('#tool_source_save, #tool_source_cancel').toggle(!on); + $('#foreign_save, #foreign_cancel').toggle(on); + } + + + // Function: setForeignString(xmlString, elt) + // This function sets the content of element elt to the input XML. + // + // Parameters: + // xmlString - The XML text. + // elt - the parent element to append to + // + // Returns: + // This function returns false if the set was unsuccessful, true otherwise. + function setForeignString(xmlString) { + var elt = selElems[0]; + try { + // convert string into XML document + var newDoc = Utils.text2xml('<svg xmlns="'+svgns+'" xmlns:xlink="'+xlinkns+'">'+xmlString+'</svg>'); + // run it through our sanitizer to remove anything we do not support + S.sanitizeSvg(newDoc.documentElement); + elt.parentNode.replaceChild(svgdoc.importNode(newDoc.documentElement.firstChild, true), elt); + S.call("changed", [elt]); + svgCanvas.clearSelection(); + } catch(e) { + console.log(e); + return false; + } + + return true; + }; + + function showForeignEditor() { + var elt = selElems[0]; + if (!elt || editingforeign) return; + editingforeign = true; + toggleSourceButtons(true); + elt.removeAttribute('fill'); + + var str = S.svgToString(elt, 0); + $('#svg_source_textarea').val(str); + $('#svg_source_editor').fadeIn(); + properlySourceSizeTextArea(); + $('#svg_source_textarea').focus(); + } + + function setAttr(attr, val) { + svgCanvas.changeSelectedAttribute(attr, val); + S.call("changed", selElems); + } + + + return { + name: "foreignObject", + svgicons: "extensions/foreignobject-icons.xml", + buttons: [{ + id: "tool_foreign", + type: "mode", + title: "Foreign Object Tool", + events: { + 'click': function() { + svgCanvas.setMode('foreign') + } + } + },{ + id: "edit_foreign", + type: "context", + panel: "foreignObject_panel", + title: "Edit ForeignObject Content", + events: { + 'click': function() { + showForeignEditor(); + } + } + }], + + context_tools: [{ + type: "input", + panel: "foreignObject_panel", + title: "Change foreignObject's width", + id: "foreign_width", + label: "w", + size: 3, + events: { + change: function() { + setAttr('width', this.value); + } + } + },{ + type: "input", + panel: "foreignObject_panel", + title: "Change foreignObject's height", + id: "foreign_height", + label: "h", + events: { + change: function() { + setAttr('height', this.value); + } + } + }, { + type: "input", + panel: "foreignObject_panel", + title: "Change foreignObject's font size", + id: "foreign_font_size", + label: "font-size", + size: 2, + defval: 16, + events: { + change: function() { + setAttr('font-size', this.value); + } + } + } + + + ], + callback: function() { + $('#foreignObject_panel').hide(); + + var endChanges = function() { + $('#svg_source_editor').hide(); + editingforeign = false; + $('#svg_source_textarea').blur(); + toggleSourceButtons(false); + } + + // TODO: Needs to be done after orig icon loads + setTimeout(function() { + // Create source save/cancel buttons + var save = $('#tool_source_save').clone() + .hide().attr('id', 'foreign_save').unbind() + .appendTo("#tool_source_back").click(function() { + + if (!editingforeign) return; + + if (!setForeignString($('#svg_source_textarea').val())) { + $.confirm("Errors found. Revert to original?", function(ok) { + if(!ok) return false; + endChanges(); + }); + } else { + endChanges(); + } + // setSelectMode(); + }); + + var cancel = $('#tool_source_cancel').clone() + .hide().attr('id', 'foreign_cancel').unbind() + .appendTo("#tool_source_back").click(function() { + endChanges(); + }); + + }, 3000); + }, + mouseDown: function(opts) { + var e = opts.event; + + if(svgCanvas.getMode() == "foreign") { + + started = true; + newFO = S.addSvgElementFromJson({ + "element": "foreignObject", + "attr": { + "x": opts.start_x, + "y": opts.start_y, + "id": S.getNextId(), + "font-size": 16, //cur_text.font_size, + "width": "48", + "height": "20", + "style": "pointer-events:inherit" + } + }); + var m = svgdoc.createElementNS(mathns, 'math'); + m.setAttributeNS(xmlnsns, 'xmlns', mathns); + m.setAttribute('display', 'inline'); + var mi = svgdoc.createElementNS(mathns, 'mi'); + mi.setAttribute('mathvariant', 'normal'); + mi.textContent = "\u03A6"; + var mo = svgdoc.createElementNS(mathns, 'mo'); + mo.textContent = "\u222A"; + var mi2 = svgdoc.createElementNS(mathns, 'mi'); + mi2.textContent = "\u2133"; + m.appendChild(mi); + m.appendChild(mo); + m.appendChild(mi2); + newFO.appendChild(m); + return { + started: true + } + } + }, + mouseUp: function(opts) { + var e = opts.event; + if(svgCanvas.getMode() == "foreign" && started) { + var attrs = $(newFO).attr(["width", "height"]); + keep = (attrs.width != 0 || attrs.height != 0); + svgCanvas.addToSelection([newFO], true); + + return { + keep: keep, + element: newFO + } + + } + + }, + selectedChanged: function(opts) { + // Use this to update the current selected elements + selElems = opts.elems; + + var i = selElems.length; + + while(i--) { + var elem = selElems[i]; + if(elem && elem.tagName == "foreignObject") { + if(opts.selectedElement && !opts.multiselected) { + $('#foreign_font_size').val(elem.getAttribute("font-size")); + $('#foreign_width').val(elem.getAttribute("width")); + $('#foreign_height').val(elem.getAttribute("height")); + + showPanel(true); + } else { + showPanel(false); + } + } else { + showPanel(false); + } + } + }, + elementChanged: function(opts) { + var elem = opts.elems[0]; + } + }; +});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/ext-helloworld.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,78 @@ +/* + * ext-helloworld.js + * + * Licensed under the Apache License, Version 2 + * + * Copyright(c) 2010 Alexis Deveria + * + */ + +/* + This is a very basic SVG-Edit extension. It adds a "Hello World" button in + the left panel. Clicking on the button, and then the canvas will show the + user the point on the canvas that was clicked on. +*/ + +svgEditor.addExtension("Hello World", function() { + + return { + name: "Hello World", + // For more notes on how to make an icon file, see the source of + // the hellorworld-icon.xml + svgicons: "extensions/helloworld-icon.xml", + + // Multiple buttons can be added in this array + buttons: [{ + // Must match the icon ID in helloworld-icon.xml + id: "hello_world", + + // This indicates that the button will be added to the "mode" + // button panel on the left side + type: "mode", + + // Tooltip text + title: "Say 'Hello World'", + + // Events + events: { + 'click': function() { + // The action taken when the button is clicked on. + // For "mode" buttons, any other button will + // automatically be de-pressed. + svgCanvas.setMode("hello_world"); + } + } + }], + // This is triggered when the main mouse button is pressed down + // on the editor canvas (not the tool panels) + mouseDown: function() { + // Check the mode on mousedown + if(svgCanvas.getMode() == "hello_world") { + + // The returned object must include "started" with + // a value of true in order for mouseUp to be triggered + return {started: true}; + } + }, + + // This is triggered from anywhere, but "started" must have been set + // to true (see above). Note that "opts" is an object with event info + mouseUp: function(opts) { + // Check the mode on mouseup + if(svgCanvas.getMode() == "hello_world") { + var zoom = svgCanvas.getZoom(); + + // Get the actual coordinate by dividing by the zoom value + var x = opts.mouse_x / zoom; + var y = opts.mouse_y / zoom; + + var text = "Hello World!\n\nYou clicked here: " + + x + ", " + y; + + // Show the text using the custom alert function + $.alert(text); + } + } + }; +}); +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/eyedropper-icon.xml Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,34 @@ +<svg xmlns="http://www.w3.org/2000/svg"> + +<g id="tool_eyedropper"> +<svg viewBox="0 0 320 320" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ --> + <defs> + <radialGradient id="eyedropper_svg_6" cx="0.5" cy="0.5" r="0.5"> + <stop offset="0" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" stop-color="#e5e5e5" stop-opacity="0.38"/> + </radialGradient> + <linearGradient id="eyedropper_svg_15" x1="0" y1="0" x2="0.58594" y2="0.55078"> + <stop offset="0" stop-color="#ffffff" stop-opacity="0.57"/> + <stop offset="1" stop-color="#000056" stop-opacity="1"/> + </linearGradient> + <linearGradient id="eyedropper_svg_19" x1="0" y1="0" x2="1" y2="1"> + <stop offset="0" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" stop-color="#ffffff" stop-opacity="0"/> + </linearGradient> + </defs> + <g display="inline"> + <title>Layer 1</title> + <path d="m193.899994,73l-119.899979,118l-15,39.5l10.25,4.5l43.750015,-20l108.999969,-112l-28.100006,-30z" id="svg_3" fill="none" stroke="#000000" stroke-width="5"/> + <path d="m58.649994,232c-2.75,28.200012 -26.399994,28.950012 -21.899994,59c4.5,30.049988 55,28 55.5,-1.25c0.5,-29.25 -20.25,-28.75 -22.25,-54.75l-11.350006,-3z" id="svg_4" fill="#aa56ff" stroke="#000000" stroke-width="7"/> + <path d="m45.474976,269.275024l13.775024,0.474976l-0.75,16.75l-14.25,-1.25l1.224976,-15.974976z" id="svg_5" fill="url(#eyedropper_svg_6)" stroke-width="5" fill-opacity="0.73"/> + <path d="m217.899994,46c21.5,-101.549999 141.600006,20.449997 28.100006,33l-5,44l-63,-66l39.899994,-11z" id="svg_2" fill="#000000" stroke-width="5"/> + <path d="m206.825012,61.075008c3.712494,-2.46249 7.637482,-3.53751 14.424988,-5.575008c10.125,-16.5 32.875,-41.5 40.5,-35c7.625,6.5 -21.25,35.625 -37.5,39.25c-5.5,10.125 -8,13.875 -17.25,16.5c-2.837494,-8.162514 -4.262482,-12.337486 -0.174988,-15.174992z" id="svg_7" fill="url(#eyedropper_svg_15)" stroke-width="5"/> + <path d="m133.049988,134.75l46.950012,9.25l-66,70l-42.5,20.5l-11.5,-5l14,-37.5l59.049988,-57.25z" id="svg_11" fill="#aa56ff" stroke="#000000" stroke-width="7"/> + <path d="m71.425034,212.350006l9.050888,-20.022537l51.516724,-49.327469l8.507355,0.97197l-69.074966,68.378036z" id="svg_16" fill="url(#eyedropper_svg_19)" stroke-width="5"/> + </g> +</svg> +</g> + + <g id="svg_eof"/> +</svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/foreignobject-icons.xml Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,96 @@ +<svg xmlns="http://www.w3.org/2000/svg"> + <g id="tool_foreign"> + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 84 84"> + <g fill="#444" opacity="0.2" transform="translate(6,6)"> + <path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0 + c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8 + c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42 + c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7 + c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/> + </g> + <g fill="#444" opacity="0.3" transform="translate(4,4)"> + <path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0 + c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8 + c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42 + c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7 + c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/> + </g> + <g fill="#444" opacity="0.5" transform="translate(2,2)"> + <path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0 + c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8 + c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42 + c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7 + c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/> + </g> + <g fill="#0000CC"> + <path id="xyz321" d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0 + c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8 + c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42 + c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7 + c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/> + </g> + </svg> + </g> + + <g id="edit_foreign"> + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="34 38 170 170" overflow="hidden"> + <g fill="#000088"> + <path d="M30.1,63.9v-4.3l30.2-14.9V50L36.5,61.7l23.8,11.7v5.3L30.1,63.9z"/> + <path d="M106.1,79.7v-1.1c4.2-0.5,4.8-1.1,4.8-5.2V58.2c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1 + c0,4.5,1.1,5.7,5.2,5.8v1.1H86.8v-1.1c4.1-0.3,4.9-1.1,4.9-5.1V57.9c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9 + c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5V55.4c0-3.5-0.6-4.6-2.5-4.6 + c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6 + c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H106.1z"/> + <path d="M147.3,80.5c-3,0-4.2-1.4-4.6-5.3c-4.4,3.7-7.3,5.3-10.5,5.3c-4.5,0-7.6-3.2-7.6-7.7c0-2.4,1-4.8,2.6-6.3 + c3.1-2.7,4.3-3.3,15.4-7.8v-4.4c0-3.9-1.9-6-5.5-6c-2.9,0-5.2,1.6-5.2,3.5c0,0.5,0.1,1.1,0.2,1.7c0.1,0.5,0.1,0.9,0.1,1.2 + c0,1.6-1.5,3-3.2,3s-3.1-1.4-3.1-3.1c0-1.8,1.2-3.9,3-5.4c2-1.7,5.5-2.7,9.1-2.7c4.4,0,7.5,1.4,9,4.2c1,1.7,1.4,3.7,1.4,7.3v14 + c0,3.2,0.5,4.2,2.2,4.2c1.1,0,1.9-0.4,3.2-1.4v1.9C151.3,79.6,149.8,80.5,147.3,80.5z M142.6,60.5c-8.7,3.2-11.7,5.8-11.7,10v0.3 + c0,3.1,2,5.5,4.5,5.5c1.5,0,3.5-0.6,5.3-1.6c1.5-0.9,1.9-1.6,1.9-3.8V60.5z"/> + <path d="M165.3,80.5c-4.2,0-6.3-3.1-6.3-9.1V49.7h-3.8c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.4,0.4-0.9,1.2-1.4 + c1.9-1.1,4.3-3.7,7-7.7c0.5-0.6,1-1.3,1.4-2c0.4,0,0.5,0.2,0.5,0.9v8.4h7.3v2.3h-7.3v20.6c0,4.6,1.1,6.5,3.7,6.5 + c1.6,0,2.7-0.6,4.3-2.5l0.9,0.8C171.8,78.7,169,80.5,165.3,80.5z"/> + <path d="M193.8,79.7v-1.1c4.1-0.4,4.9-1.3,4.9-6.2V58.1c0-5-1.8-7.6-5.4-7.6c-2.8,0-5,1.2-8,4.5v17.4 + c0,5,0.7,5.8,4.9,6.3v1.1h-15.6v-1.1c4.2-0.6,4.6-1.2,4.6-6.3V38.5c0-3.1-0.6-3.7-3.7-3.7c-0.4,0-0.6,0-0.9,0.1v-1.2l1.9-0.6 + c4-1.2,5.8-1.7,8.3-2.6l0.4,0.2v21.9c3.3-4.3,6.3-6,10.6-6c5.9,0,8.9,3.9,8.9,11.5v14.3c0,5,0.4,5.5,4.3,6.3v1.1h-15.2V79.7z"/> + <path d="M59.1,116.1v-4.3l30.2-14.9v5.3l-23.8,11.7l23.8,11.7v5.3L59.1,116.1z"/> + <path d="M135.1,131.9v-1.1c4.2-0.5,4.8-1.1,4.8-5.2v-15.1c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1 + c0,4.5,1.1,5.7,5.2,5.8v1.1h-16.1v-1.1c4.1-0.3,4.9-1.1,4.9-5.1v-15.7c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9 + c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5v-18.2c0-3.5-0.6-4.6-2.5-4.6 + c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6 + c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H135.1z"/> + <path d="M152.1,131.9v-1.1c5-0.3,5.7-1.1,5.7-6.3v-16.6c0-3.2-0.6-4.3-2.4-4.3c-0.6,0-1.6,0.1-2.4,0.2l-0.6,0.1v-1.1 + l11.2-4L164,99v25.6c0,5.2,0.6,5.9,5.3,6.3v1.1L152.1,131.9L152.1,131.9z M160.8,93.1c-2,0-3.7-1.6-3.7-3.7c0-2,1.7-3.7,3.7-3.7 + c2.1,0,3.7,1.7,3.7,3.7C164.6,91.6,163,93.1,160.8,93.1z"/> + <path d="M175.8,131v-5.3l23.7-11.8l-23.7-11.7v-5.3l30.1,14.9v4.3L175.8,131z"/> + <path d="M31.1,169.5v-4.3l30.2-14.9v5.3l-23.8,11.7L61.3,179v5.3L31.1,169.5z"/> + <path d="M71.3,186.4h-4.9l16.5-49.7h4.8L71.3,186.4z"/> + <path d="M127.1,185.3v-1.1c4.2-0.5,4.8-1.1,4.8-5.2v-15.2c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1 + c0,4.5,1.1,5.7,5.2,5.8v1.1h-16.1v-1.1c4.1-0.3,4.9-1.1,4.9-5.1v-15.6c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9 + c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5V161c0-3.5-0.6-4.6-2.5-4.6 + c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6 + c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H127.1L127.1,185.3z"/> + <path d="M168.3,186.1c-3,0-4.2-1.4-4.6-5.3c-4.4,3.7-7.3,5.3-10.5,5.3c-4.5,0-7.6-3.2-7.6-7.7c0-2.4,1-4.8,2.6-6.3 + c3.1-2.7,4.3-3.3,15.4-7.8v-4.4c0-3.9-1.9-6-5.5-6c-2.9,0-5.2,1.6-5.2,3.5c0,0.5,0.1,1.1,0.2,1.7c0.1,0.5,0.1,0.9,0.1,1.2 + c0,1.6-1.5,3-3.2,3s-3.1-1.4-3.1-3.1c0-1.8,1.2-3.9,3-5.4c2-1.7,5.5-2.7,9.1-2.7c4.4,0,7.5,1.4,9,4.2c1,1.7,1.4,3.7,1.4,7.3v14 + c0,3.2,0.5,4.2,2.2,4.2c1.1,0,1.9-0.4,3.2-1.4v1.9C172.3,185.2,170.8,186.1,168.3,186.1z M163.8,166.1c-8.7,3.2-11.7,5.8-11.7,10 + v0.3c0,3.1,2,5.5,4.5,5.5c1.5,0,3.5-0.6,5.3-1.6c1.5-0.9,1.9-1.6,1.9-3.8V166.1z"/> + <path d="M186.3,186.1c-4.2,0-6.3-3.1-6.3-9.1v-21.7h-3.8c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.4,0.4-0.9,1.2-1.4 + c1.9-1.1,4.3-3.7,7-7.7c0.5-0.6,1-1.3,1.4-2c0.4,0,0.5,0.2,0.5,0.9v8.4h7.3v2.3h-7.3v20.6c0,4.6,1.1,6.5,3.7,6.5 + c1.6,0,2.7-0.6,4.3-2.5l0.9,0.8C192.8,184.3,190,186.1,186.3,186.1z"/> + <path d="M209.1,185.3h-13.4v-1.1c4.2-0.6,4.6-1.2,4.6-6.3V144c0-3.1-0.6-3.7-3.7-3.7c-0.4,0-0.6,0-0.9,0.1v-1.2 + l1.9-0.6c4-1.2,5.8-1.7,8.3-2.6l0.4,0.2v21.9c0.9-1.2,1.9-2.2,2.8-3.1"/> + <path d="M209.1,157.9c-0.8,0.7-1.7,1.5-2.7,2.6v17.4c0,4,0.4,5.3,2.7,5.9"/> + </g> + <g> + <polyline opacity="0.2" fill="#231F20" points="209.1,76.4 118.7,186.5 139.1,186.4 209.1,121 209.1,76.4 "/> + <polyline opacity="0.4" fill="#231F20" points="209.1,76.2 118.5,186.5 129.7,186.4 200.2,120.3 209.1,100.8 209.1,76.4 "/> + <path fill="#FFD761" d="M121.6,88.7l0.8,87.5l62.3-56.7c0,0-15.3-25.8-24.8-30C151.1,85.6,121.6,88.7,121.6,88.7z"/> + <path fill="#FEA01E" d="M209.1,19.5h-54l-33.5,69.2c0,0,29.7-3.4,38.3,0.8c8.9,4.4,25,30.8,25,30.8l24.2-50V19.5z"/> + <path d="M120.4,153.7l-0.6,25l23.8-16.9c0,0-8-7-11.2-8.1C129.4,152.8,120.4,153.7,120.4,153.7z"/> + <polyline fill="none" stroke="#231F20" stroke-width="5" points="153.9,19.5 121.6,88.7 120.7,181.2 186.6,120.3 209.1,70.3 "/> + </g> + </svg> + </g> + + <g id="svg_eof"/> +</svg> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/extensions/helloworld-icon.xml Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,21 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<!-- + Sample icons file. This file looks like an SVG file with groups as its + children. Each group element has an ID that must match the ID of the button given + in the extension. The SVG inside the group makes up the actual icon, and + needs use a viewBox instead of width/height for it to scale properly. + + Multiple icons can be included, each within their own group. +--> + <g id="hello_world"> + <svg width="102" height="102" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ --> + <g> + <title>Layer 1</title> + <rect ry="30" rx="30" x="2.5" y="2.5" width="97" height="97" id="svg_3" fill="#008000" stroke="#000000" stroke-width="5"/> + <text x="52.668" y="42.5" id="svg_1" fill="#ffffff" stroke="#000000" stroke-width="0" font-size="24" font-family="Monospace" text-anchor="middle" xml:space="preserve">Hello</text> + <text x="52.668" y="71.5" fill="#ffffff" stroke="#000000" stroke-width="0" font-size="24" font-family="Monospace" text-anchor="middle" xml:space="preserve" id="svg_2">World!</text> + </g> + </svg> + </g> +</svg> \ No newline at end of file
--- a/htdocs/svg-edit/editor/images/logo.svg Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/images/logo.svg Fri Apr 23 22:38:00 2010 +0200 @@ -1,291 +1,32 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - viewBox="0 0 600 600" - id="svg2" - sodipodi:version="0.32" - inkscape:version="0.46" - width="48" - height="48" - sodipodi:docname="logo.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - version="1.0" - inkscape:export-filename="logo.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - <sodipodi:namedview - inkscape:window-height="858" - inkscape:window-width="911" - inkscape:pageshadow="2" - inkscape:pageopacity="0.0" - guidetolerance="10.0" - gridtolerance="10.0" - objecttolerance="10.0" - borderopacity="1.0" - bordercolor="#666666" - pagecolor="#ffffff" - id="base" - showgrid="false" - inkscape:zoom="11.352818" - inkscape:cx="27.728302" - inkscape:cy="25.018074" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:current-layer="a32" /> - <defs - id="defs14280"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 526.18109 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="744.09448 : 526.18109 : 1" - inkscape:persp3d-origin="372.04724 : 350.78739 : 1" - id="perspective71" /> - <linearGradient - gradientUnits="userSpaceOnUse" - id="XMLID_16_" - x1="67.8452" - x2="144.5898" - y1="115.5361" - y2="115.5361"> - <stop - id="stop780" - offset="0" - stop-color="#7D7D99" /> - <stop - id="stop781" - offset="0.1798" - stop-color="#B1B1C5" /> - <stop - id="stop782" - offset="0.3727" - stop-color="#BCBCC8" /> - <stop - id="stop783" - offset="0.6825" - stop-color="#C8C8CB" /> - <stop - id="stop784" - offset="1" - stop-color="#CCC" /> - </linearGradient> - <linearGradient - gradientTransform="matrix(-0.999,4.35e-2,4.35e-2,0.999,-1277.01,-496.517)" - gradientUnits="userSpaceOnUse" - id="XMLID_15_" - x1="-1401.459" - x2="-1354.6851" - y1="595.63092" - y2="699.47632"> - <stop - id="stop770" - offset="0" - stop-color="#FFA700" /> - <stop - id="stop771" - offset="0.7753" - stop-color="#FFD700" /> - <stop - id="stop772" - offset="1" - stop-color="#FF9200" /> - </linearGradient> - <linearGradient - gradientTransform="matrix(-0.999,4.35e-2,4.35e-2,0.999,-1277.01,-496.517)" - gradientUnits="userSpaceOnUse" - id="XMLID_14_" - x1="-1336.4497" - x2="-1325.3219" - y1="635.79492" - y2="622.53333"> - <stop - id="stop763" - offset="0" - stop-color="#FFC957" /> - <stop - id="stop764" - offset="1" - stop-color="#FF6D00" /> - </linearGradient> - <linearGradient - gradientUnits="userSpaceOnUse" - id="XMLID_13_" - x1="65.094704" - x2="137.6021" - y1="-0.79540002" - y2="160.1823"> - <stop - id="stop750" - offset="0" - stop-color="#FFA700" /> - <stop - id="stop751" - offset="0.7753" - stop-color="#FFD700" /> - <stop - id="stop752" - offset="1" - stop-color="#FF794B" /> - </linearGradient> - <linearGradient - gradientTransform="matrix(-0.999,4.35e-2,4.35e-2,0.999,-1277.01,-496.517)" - gradientUnits="userSpaceOnUse" - id="XMLID_12_" - x1="-1375.9844" - x2="-1355.0455" - y1="685.38092" - y2="706.32172"> - <stop - id="stop743" - offset="0" - stop-color="#F8F1DC" /> - <stop - id="stop744" - offset="1" - stop-color="#D6A84A" /> - </linearGradient> - <linearGradient - gradientTransform="matrix(0.1991,0.98,-0.98,0.1991,91.6944,573.565)" - gradientUnits="userSpaceOnUse" - id="XMLID_11_" - x1="-481.70071" - x2="-360.24561" - y1="-94.419403" - y2="-164.22141"> - <stop - id="stop736" - offset="0" - stop-color="#900" /> - <stop - id="stop737" - offset="1" - stop-color="#7C0000" /> - </linearGradient> - <clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath4418"> - <rect - height="79.958374" - id="rect4420" - stroke-miterlimit="4" - style="fill:none;stroke:#000000;stroke-width:0.14421287;stroke-miterlimit:4;stroke-dasharray:none" - transform="scale(-1,1)" - width="73.952118" - x="-196.68831" - y="126.58712" /> - </clipPath> - </defs> - <metadata - id="metadata30"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <a - xlink:href="http://svg-edit.googlecode.com/" - xlink:title="SVG-edit, an in-browser vector graphics editor" - target="_blank" - id="a32"> - <path - sodipodi:type="star" - style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3216" - sodipodi:sides="8" - sodipodi:cx="239.79607" - sodipodi:cy="346.96844" - sodipodi:r1="194.03661" - sodipodi:r2="155.59306" - sodipodi:arg1="0.78539816" - sodipodi:arg2="1.1780972" - inkscape:flatsided="false" - inkscape:rounded="0" - inkscape:randomized="0" - d="M 377.00067,484.17304 L 299.33895,490.71769 L 239.79607,541.00505 L 180.25318,490.71769 L 102.59147,484.17305 L 96.04682,406.51133 L 45.75946,346.96845 L 96.046819,287.42556 L 102.59147,209.76385 L 180.25318,203.2192 L 239.79607,152.93184 L 299.33895,203.2192 L 377.00067,209.76384 L 383.54531,287.42556 L 433.83267,346.96844 L 383.54531,406.51133 L 377.00067,484.17304 z" - transform="translate(4.1586051,6.9957853)" /> - <path - d="M 257.74,558.2 C 282.68,551.18 299.44,533.03 303.3,508.86 L 304.6,500.74 L 310.09,504.65 C 342.6,527.8 385.95,516.69 401.92,481.11 C 410.74,461.44 406.88,429.74 394.39,419.38 C 389.52,415.34 390.73,414.03 400.54,412.71 C 463.81,404.2 466.02,308.53 403.26,294.99 C 389.53,292.02 390.07,292.74 395.81,285.17 C 435.22,233.14 367.98,163.64 313.59,200.18 L 305.09,205.89 L 302.14,193.86 C 286.67,130.77 193.37,133.52 184.62,197.33 C 183.22,207.55 183.54,207.42 175.45,201.25 C 145.54,178.44 96.024,193.52 84.229,229.04 C 77.621,248.93 81.839,276.52 93.036,286.66 C 98.393,291.5 97.7,292.63 88.496,294.06 C 22.466,304.29 22.003,403.73 87.943,412.77 L 96.572,413.95 L 91.187,421.94 C 63.478,463.02 91.34,516.89 140.25,516.79 C 154.94,516.76 170.97,511.38 177.33,504.36 C 181.99,499.22 183.95,499.74 183.95,506.13 C 183.95,538.55 224.9,567.45 257.74,558.2 L 257.74,558.2 z M 224.97,526.08 C 211.13,516.23 207.03,494.21 216.63,481.24 C 220.49,476.01 220.78,473.32 220.78,442.14 L 220.78,408.66 L 196.55,432.83 C 177.87,451.47 172.32,458.16 172.32,462.07 C 172.32,481.92 139.36,496.53 122.68,484.07 C 99.738,466.94 105.5,432.15 132.4,425.3 C 138.8,423.67 144.87,418.74 163.57,399.95 L 186.8,376.62 L 154.85,376.63 C 124.63,376.64 122.38,376.9 113.36,381.47 C 76.809,400.02 46.091,351.65 78.652,326.81 C 88.187,319.54 106.02,319.02 115.45,325.74 C 121.2,329.85 123.45,330.1 154.18,330.1 L 186.8,330.1 L 163.79,307.04 C 147.4,290.61 139.05,283.62 134.78,282.77 C 106.14,277.04 98.685,240.4 122.56,222.71 C 139.4,210.23 172.44,224.79 172.28,244.63 C 172.25,248.57 177.44,254.67 196.02,272.54 L 219.81,295.41 L 220.34,263.32 C 220.84,233.01 220.64,230.91 216.67,225.55 C 202.3,206.11 216.23,177.52 241.09,175.46 C 267.18,173.29 284.31,199.14 272.29,222.54 C 267.54,231.79 267.31,233.68 267.3,264.18 L 267.29,296.13 L 290.36,273.12 C 306.39,257.14 313.79,248.33 314.59,244.3 C 320.55,214.53 361.13,208.27 375.2,234.95 C 385.62,254.7 375.71,276.27 353.68,281.82 C 346.89,283.53 341.33,288 322.38,307 L 299.33,330.1 L 332.92,330.1 C 363.2,330.1 367.04,329.73 371.86,326.3 C 384.69,317.16 402.12,319.56 413.39,332.03 C 438.43,359.76 402.17,402.01 371.86,380.43 C 367.04,377 363.2,376.62 332.92,376.62 L 299.33,376.62 L 322.38,399.72 C 341.33,418.73 346.89,423.2 353.68,424.91 C 390.29,434.13 386.87,485.55 349.44,488.65 C 332.45,490.06 313.81,474.97 313.81,459.8 C 313.81,458.26 303.34,446.56 290.55,433.8 L 267.29,410.6 L 267.3,442.55 C 267.31,472.77 267.57,475.02 272.15,484.03 C 287.66,514.61 252.66,545.8 224.97,526.08 L 224.97,526.08 z" - id="path34" - style="fill:#000000" /> - <g - clip-path="url(#clipPath4418)" - transform="matrix(-4.6717475,0,0,4.6717475,1143.4575,-562.74962)" - id="g36"> - <path - d="M 191.92,195.98 C 180.31,159.86 178.21,153.31 177.06,151.92 C 177.18,152 177.35,152.1 177.35,152.1 L 98.804,64.643 C 94.609,59.993 84.799,64.999 77.449,71.619 C 70.166,78.161 64.129,87.392 68.079,92.183 L 147.02,179.73 L 147.56,179.82 L 185.32,197.42 L 193.01,199.79 L 191.92,195.98 L 191.92,195.98 z" - id="path38" - style="opacity:0.2" /> - <path - d="M 193.56,193.52 C 181.95,157.39 179.84,150.85 178.7,149.45 C 178.82,149.52 178.99,149.63 178.99,149.63 L 100.44,62.175 C 96.245,57.524 86.429,62.53 79.083,69.15 C 71.802,75.695 65.763,84.923 69.715,89.716 L 148.66,177.26 L 149.19,177.36 L 186.96,194.95 L 194.64,197.32 L 193.56,193.52 L 193.56,193.52 z" - id="path40" - style="opacity:0.2" /> - <path - d="M 186.77,191.05 C 175.16,154.92 173.06,148.38 171.91,146.98 C 172.03,147.06 172.2,147.16 172.2,147.16 L 93.653,59.704 C 89.461,55.054 79.644,60.063 72.299,66.682 C 65.016,73.224 58.978,82.453 62.93,87.247 L 141.87,174.79 L 142.41,174.88 L 180.18,192.48 L 187.86,194.85 L 186.77,191.05 L 186.77,191.05 z" - id="path42" - style="opacity:0.2" /> - <path - d="M 186.43,189.36 C 174.82,153.23 172.72,146.69 171.57,145.29 C 171.69,145.37 171.86,145.47 171.86,145.47 L 93.314,58.016 C 89.115,53.365 79.299,58.373 71.955,64.993 C 64.672,71.536 58.633,80.767 62.585,85.559 L 141.53,173.1 L 142.06,173.2 L 179.83,190.8 L 187.52,193.16 L 186.43,189.36 L 186.43,189.36 z" - id="path44" - style="fill:#ffffff" /> - <path - d="M 186.43,189.36 C 174.82,153.23 172.72,146.69 171.57,145.29 C 171.69,145.37 171.86,145.47 171.86,145.47 L 93.314,58.016 C 89.115,53.365 79.299,58.373 71.955,64.993 C 64.672,71.536 58.633,80.767 62.585,85.559 L 141.53,173.1 L 142.06,173.2 L 179.83,190.8 L 187.52,193.16 L 186.43,189.36 L 186.43,189.36 z" - id="path46" - style="fill:url(#XMLID_11_)" /> - <path - d="M 166.97,147.76 L 180.69,185.89 L 144.32,167.99 L 144.49,167.84 C 144.24,167.76 143.99,167.66 143.79,167.52 L 143.66,167.64 L 68.36,84.072 L 68.483,83.968 C 66.237,81.478 69.515,74.874 75.791,69.216 C 82.071,63.564 88.971,60.997 91.216,63.483 L 166.51,147.05 L 166.97,147.76 L 166.97,147.76 z" - id="path48" - style="fill:url(#XMLID_12_)" /> - <path - d="M 148.65,170.12 C 150.73,169.75 153.29,168.64 155.9,166.98 C 157.52,165.96 159.18,164.7 160.8,163.24 C 162.26,161.94 163.54,160.57 164.64,159.23 C 166.72,156.7 167.96,154.02 168.42,151.8 L 166.97,147.76 L 166.5,147.05 L 91.707,64.028 C 92.315,66.268 90.745,69.966 87.644,73.768 C 86.51,75.157 85.203,76.557 83.699,77.909 C 82.125,79.328 80.504,80.561 78.932,81.563 C 74.439,84.434 70.304,85.491 68.384,84.049 L 68.359,84.07 L 143.66,167.64 L 143.79,167.52 C 143.99,167.66 144.24,167.76 144.49,167.84 L 144.32,167.99 L 148.65,170.12 L 148.65,170.12 z" - id="path50" - style="fill:url(#XMLID_13_)" /> - <path - d="M 68.083,83.41 C 69.815,85.182 74.077,84.186 78.726,81.216 C 80.267,80.234 81.858,79.023 83.403,77.63 C 84.879,76.305 86.162,74.929 87.275,73.567 C 90.853,69.179 92.366,64.925 90.752,62.983 L 90.775,62.959 L 166.59,147.08 C 167.23,149.34 166,153.58 162.84,157.44 C 161.76,158.75 160.5,160.09 159.07,161.37 C 157.48,162.8 155.85,164.04 154.26,165.04 C 149.52,168.05 144.96,169.24 143.24,167.35 C 142.85,166.91 141.15,165.01 141.1,164.94 L 67.845,83.626 L 68.083,83.41 L 68.083,83.41 z" - id="path52" - style="fill:#ffffff" /> - <path - d="M 75.79,69.215 C 82.07,63.563 88.97,60.996 91.215,63.482 L 108.18,82.31 L 109.33,108.8 L 91.355,109.58 L 68.359,84.071 L 68.482,83.967 C 66.236,81.477 69.514,74.874 75.79,69.215 L 75.79,69.215 z" - id="path54" - style="fill:#ffffff" /> - <path - d="M 68.083,83.41 C 69.815,85.182 74.077,84.186 78.726,81.216 C 80.267,80.234 81.858,79.023 83.403,77.63 C 84.879,76.305 86.162,74.929 87.275,73.567 C 90.853,69.179 92.366,64.925 90.752,62.983 L 90.775,62.959 L 166.59,147.08 C 167.23,149.34 166,153.58 162.84,157.44 C 161.76,158.75 160.5,160.09 159.07,161.37 C 157.48,162.8 155.85,164.04 154.26,165.04 C 149.52,168.05 144.96,169.24 143.24,167.35 C 142.85,166.91 141.15,165.01 141.1,164.94 L 67.845,83.626 L 68.083,83.41 L 68.083,83.41 z" - id="path56" - style="fill:#ffffff" /> - <path - d="M 75.79,69.215 C 82.07,63.563 88.97,60.996 91.215,63.482 L 108.18,82.31 L 109.33,108.8 L 91.355,109.58 L 68.359,84.071 L 68.482,83.967 C 66.236,81.477 69.514,74.874 75.79,69.215 L 75.79,69.215 z" - id="path58" - style="fill:url(#XMLID_14_)" /> - <path - d="M 68.083,83.41 C 69.815,85.182 74.077,84.186 78.726,81.216 C 80.267,80.234 81.858,79.023 83.403,77.63 C 84.879,76.305 86.162,74.929 87.275,73.567 C 90.853,69.179 92.366,64.925 90.752,62.983 L 90.775,62.959 L 166.59,147.08 C 167.23,149.34 166,153.58 162.84,157.44 C 161.76,158.75 160.5,160.09 159.07,161.37 C 157.48,162.8 155.85,164.04 154.26,165.04 C 149.52,168.05 144.96,169.24 143.24,167.35 C 142.85,166.91 141.15,165.01 141.1,164.94 L 67.845,83.626 L 68.083,83.41 L 68.083,83.41 z" - id="path60" - style="fill:url(#XMLID_15_)" /> - <path - d="M 74.357,90.713 C 74.357,90.713 80.393,90.501 85.042,87.531 C 86.584,86.548 88.174,85.338 89.719,83.945 C 91.196,82.619 92.479,81.244 93.592,79.881 C 96.52,76.292 98.061,72.793 97.641,70.574 L 90.776,62.957 L 90.753,62.981 C 92.367,64.923 90.855,69.177 87.276,73.565 C 86.163,74.927 84.88,76.303 83.404,77.628 C 81.859,79.021 80.268,80.232 78.727,81.214 C 74.079,84.185 69.817,85.181 68.084,83.408 L 67.846,83.625 L 141.1,164.94 C 141.15,165.01 142.85,166.9 143.25,167.34 C 143.59,167.72 144.05,167.97 144.59,168.11 L 74.357,90.713 L 74.357,90.713 z" - id="path62" - style="fill:url(#XMLID_16_)" /> - <path - d="M 172.04,175.35 C 170.4,176.83 168.73,178.12 167.09,179.19 L 180.69,185.89 L 175.6,171.74 C 174.54,172.95 173.35,174.18 172.04,175.35 z" - id="path64" - style="fill:#003333" /> - <path - d="M 163.12,157.05 L 86.968,73.93 C 87.068,73.81 87.181,73.688 87.275,73.566 C 88.703,71.814 89.795,70.076 90.5,68.508 L 166.27,151.22 C 165.72,153.04 164.67,155.08 163.12,157.05 L 163.12,157.05 z" - id="path66" - style="opacity:0.5;fill:#ffffff" /> - <path - d="M 87.275,73.566 C 87.909,72.792 88.464,72.018 88.969,71.266 L 164.98,154.24 C 164.41,155.3 163.7,156.39 162.84,157.43 C 162.09,158.33 161.27,159.24 160.37,160.13 L 84.152,76.932 C 85.316,75.824 86.361,74.692 87.275,73.566 L 87.275,73.566 z" - id="path68" - style="opacity:0.5;fill:#ffffff" /> - </g> - </a> +<svg viewBox="0 0 478 472" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"> + <defs> + <linearGradient id="svg_5" x1="0" y1="0" x2="1" y2="1"> + <stop offset="0" stop-color="#ffffe0" stop-opacity="1"/> + <stop offset="1" stop-color="#edc39c" stop-opacity="1"/> + </linearGradient> + <linearGradient id="svg_10" x1="0.57031" y1="0.78125" x2="0.28906" y2="0.41406"> + <stop offset="0" stop-color="#ff7f00" stop-opacity="1"/> + <stop offset="1" stop-color="#ffff00"/> + </linearGradient> + <linearGradient id="svg_18" x1="0.37891" y1="0.35938" x2="1" y2="1"> + <stop offset="0" stop-color="#e0e0e0" stop-opacity="1"/> + <stop offset="1" stop-color="#666666" stop-opacity="1"/> + </linearGradient> + </defs> + <g> + <title>Layer 1</title> + <path d="m68.82031,270.04688l-22,-33l17,-35l34,2l25,15l7,-35l28,-16l25,12l100,102l21,23l-15,35l-36,9l20,49l-31,24l-49,-17l-1,31l-33,21l-31,-19l-13,-35l-30,21l-30,-9l-5,-35l16,-31l-32,-6l-15,-19l3,-36l47,-18z" id="svg_19" fill="#ffffff"/> + <path fill="#1a171a" fill-rule="nonzero" id="path2902" d="m158.96452,155.03685c-25.02071,0 -45.37077,20.35121 -45.37077,45.3775c0,0.72217 0.01794,1.4399 0.0471,2.15645c-0.49339,-0.53604 -0.99355,-1.06085 -1.50603,-1.58452c-8.56077,-8.55519 -19.95982,-13.28413 -32.07432,-13.28413c-12.12122,0 -23.52027,4.72334 -32.08778,13.29646c-17.69347,17.69464 -17.69347,46.4619 0,64.17445c0.51809,0.51697 1.0485,1.0126 1.59015,1.50601c-0.72891,-0.03586 -1.45782,-0.04822 -2.19234,-0.04822c-25.02071,0 -45.37189,20.35117 -45.37189,45.37747c0,25.01398 20.35119,45.36517 45.37189,45.36517c0.72891,0 1.45221,-0.01236 2.1744,-0.04828c-0.5293,0.48221 -1.05412,0.98801 -1.56547,1.49368c-17.70021,17.68906 -17.70021,46.48654 -0.00628,64.18677c8.57872,8.56747 19.96655,13.2785 32.08778,13.2785c12.1145,0 23.5012,-4.71103 32.07433,-13.2785c0.51247,-0.51694 1.01823,-1.04849 1.50603,-1.57895c-0.02915,0.71213 -0.04709,1.44669 -0.04709,2.15759c0,25.01511 20.35007,45.37747 45.37077,45.37747c25.01398,0 45.37079,-20.3624 45.37079,-45.37747c0,-0.7222 -0.01689,-1.44553 -0.05266,-2.18112c0.48105,0.52933 0.97562,1.04849 1.48697,1.56662c8.57982,8.57977 19.97775,13.2908 32.1057,13.2908c12.11003,0 23.51358,-4.71103 32.0687,-13.2785c17.68906,-17.70013 17.68906,-46.48538 0,-64.17441c-0.50577,-0.4946 -1.01141,-1.00034 -1.54306,-1.48248c0.69983,0.03592 1.42316,0.04828 2.16992,0.04828c25.01514,0 45.35284,-20.35123 45.35284,-45.36517c0,-25.02631 -20.33774,-45.37747 -45.35284,-45.37747c-0.74683,0 -1.47009,0.01236 -2.19345,0.04822c0.53152,-0.49341 1.06082,-0.98904 1.59128,-1.50601c8.55521,-8.55521 13.2785,-19.94186 13.2785,-32.07545c0,-12.12793 -4.72336,-23.52028 -13.30319,-32.0934c-8.55515,-8.56076 -19.95866,-13.2841 -32.0687,-13.2841c-12.12122,0 -23.52025,4.72334 -32.08777,13.2841c-0.51137,0.5181 -1.01822,1.04851 -1.5049,1.57895c0.03586,-0.72331 0.05266,-1.43991 0.05266,-2.16881c0,-25.02629 -20.35681,-45.3775 -45.37079,-45.3775m0,20.71901c13.61607,0 24.65851,11.03122 24.65851,24.65849c0,6.62749 -2.651,12.62137 -6.9101,17.04979l0,51.67419l36.53975,-36.53523c0.12001,-6.14418 2.48277,-12.24686 7.18146,-16.94667c4.81305,-4.81305 11.12094,-7.22409 17.44116,-7.22409c6.30228,0 12.61577,2.41104 17.43552,7.22409c9.62166,9.63287 9.62166,25.24948 0,34.87669c-4.69977,4.68634 -10.80803,7.04915 -16.95334,7.18147l-36.5341,36.53305l51.66742,0c4.42841,-4.25351 10.42905,-6.90451 17.08008,-6.90451c13.59137,0 24.62933,11.03799 24.62933,24.66525c0,13.61606 -11.03796,24.66519 -24.62933,24.66519c-6.65106,0 -12.65167,-2.66333 -17.08008,-6.91681l-51.64836,0l36.50273,36.50946c6.16995,0.14465 12.26587,2.50522 16.96568,7.20618c9.6216,9.61487 9.6216,25.23151 0,34.85757c-4.80856,4.81979 -11.13327,7.22974 -17.43556,7.22974c-6.32019,0 -12.63371,-2.40991 -17.44786,-7.22974c-4.68074,-4.68744 -7.04802,-10.79572 -7.17473,-16.94098l-36.53975,-36.53415l0,51.66742c4.25908,4.44635 6.9101,10.43466 6.9101,17.0621c0,13.62729 -11.04243,24.66415 -24.65851,24.66415c-13.62166,0 -24.65848,-11.0369 -24.65848,-24.66415c0,-6.62744 2.64539,-12.61575 6.90335,-17.0621l0,-51.66742l-36.53864,36.54648c-0.12672,6.14413 -2.48838,12.26477 -7.18147,16.94098c-4.81416,4.81873 -11.12206,7.22974 -17.42882,7.22974c-6.31461,0 -12.6225,-2.41101 -17.43555,-7.22974c-9.63284,-9.62833 -9.63284,-25.24277 0,-34.8699c4.68073,-4.67627 10.79012,-7.05026 16.94101,-7.18262l36.533,-36.53302l-51.66632,0c-4.44075,4.25348 -10.42902,6.91681 -17.06211,6.91681c-13.61606,0 -24.65288,-11.04913 -24.65288,-24.66519c0,-13.62726 11.03682,-24.66525 24.65288,-24.66525c6.63309,0 12.62136,2.651 17.06211,6.90451l51.68537,0l-36.55208,-36.54538c-6.14527,-0.12 -12.25354,-2.49403 -16.94775,-7.19377c-9.62611,-9.61493 -9.62611,-25.23715 0,-34.86441c4.81419,-4.81305 11.12769,-7.22406 17.44228,-7.22406c6.30676,0 12.61465,2.41101 17.42883,7.22406c4.69978,4.69307 7.06034,10.80246 7.18144,16.94777l36.5386,36.53299l0,-51.66074c-4.25795,-4.42841 -6.90334,-10.42229 -6.90334,-17.04979c0,-13.62726 11.03682,-24.65848 24.65848,-24.65848"/> + <path d="m188.82031,210.04688l16,-47l155,-148l107,100l-158,156.99999l-44,12l-76,-74z" id="svg_6" fill="url(#svg_10)" stroke="#ffffff" stroke-width="0"/> + <path d="m335.57031,40.29688c-11.5,39.75 55.5,115.25 109.25,98.75l21,-20.99999l-103,-101l-27.25,23.25z" id="svg_11" fill="url(#svg_18)" stroke="#ffffff" stroke-width="0"/> + <rect x="272.80404" y="20.76382" width="42.35197" height="232.66835" id="svg_13" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 293.98, 137.1)" opacity="0.4"/> + <rect x="282.80404" y="22.76382" width="14" height="232.66835" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 289.805, 139.1)" opacity="0.4" id="svg_14"/> + <ellipse cx="415.13312" cy="64.38066" id="svg_12" fill="#ea7598" stroke="#ffffff" stroke-width="0" rx="67.79251" ry="34.82026" transform="rotate(39.4735, 415.133, 64.379)"/> + <path d="m212.07031,166.04688c-8.5,47 36.25,103.75 99.25,96.75l-152.5,53.25l53.25,-150z" id="svg_4" fill="url(#svg_5)" stroke="#ffffff" stroke-width="0"/> + <path d="m181.32031,242.54688c0.5,20.5 26.75,45 46.75,48.5l-66.25,20l19.5,-68.5z" id="svg_3" fill="#27382f" stroke="#ffffff" stroke-width="0"/> + </g> + <g> + <title>Layer 2</title> + <path d="m152.82031,317.04688l51,-152l157,-153c40,-12.00001 118,48 105,105l-157,152.99999l-156,47z" id="svg_1" fill="none" stroke="#800000" stroke-width="17"/> + </g> </svg>
--- a/htdocs/svg-edit/editor/images/svg_edit_icons.svg Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/images/svg_edit_icons.svg Fri Apr 23 22:38:00 2010 +0200 @@ -1,106 +1,39 @@ <svg xmlns="http://www.w3.org/2000/svg"> -<!-- All images except logo created with SVG-edit - http://svg-edit.googlecode.com/ --> +<!-- All images created with SVG-edit - http://svg-edit.googlecode.com/ --> <g id="logo"> - <svg version="1.0" - id="svg2" inkscape:output_extension="org.inkscape.output.svg.inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:cc="http://creativecommons.org/ns#" inkscape:export-ydpi="90" inkscape:export-xdpi="90" xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve"> - <a id="a32" xlink:href="http://svg-edit.googlecode.com/" xlink:title="SVG-edit, an in-browser vector graphics editor"> - - <path id="path3216" inkscape:randomized="0" inkscape:rounded="0" inkscape:flatsided="false" sodipodi:arg2="1.1780972" sodipodi:arg1="0.78539816" sodipodi:r2="155.59306" sodipodi:r1="194.03661" sodipodi:cy="346.96844" sodipodi:cx="239.79607" sodipodi:sides="8" sodipodi:type="star" fill="#FFFFFF" d=" - M30.5,39.3l-6.2,0.5l-4.8,4l-4.8-4l-6.2-0.5L8,33.1l-4-4.8l4-4.8l0.5-6.2l6.2-0.5l4.8-4l4.8,4l6.2,0.5l0.5,6.2l4,4.8l-4,4.8 - L30.5,39.3z"/> - <path id="path34" d="M20.6,44.7c2-0.6,3.3-2,3.6-3.9l0.1-0.7l0.4,0.3c2.6,1.9,6.1,1,7.3-1.9c0.7-1.6,0.4-4.1-0.6-4.9 - c-0.4-0.3-0.3-0.4,0.5-0.5c5.1-0.7,5.2-8.3,0.2-9.4c-1.1-0.2-1.1-0.2-0.6-0.8c3.2-4.2-2.2-9.7-6.6-6.8l-0.7,0.5l-0.2-1 - c-1.2-5-8.7-4.8-9.4,0.3c-0.1,0.8-0.1,0.8-0.7,0.3c-2.4-1.8-6.4-0.6-7.3,2.2c-0.5,1.6-0.2,3.8,0.7,4.6c0.4,0.4,0.4,0.5-0.4,0.6 - c-5.3,0.8-5.3,8.8,0,9.5l0.7,0.1l-0.4,0.6c-2.2,3.3,0,7.6,3.9,7.6c1.2,0,2.5-0.4,3-1c0.4-0.4,0.5-0.4,0.5,0.1 - C14.7,43.1,18,45.4,20.6,44.7L20.6,44.7z M18,42.1c-1.1-0.8-1.4-2.5-0.7-3.6c0.3-0.4,0.3-0.6,0.3-3.1v-2.7l-1.9,1.9 - c-1.5,1.5-1.9,2-1.9,2.3c0,1.6-2.6,2.8-4,1.8C8,37.4,8.4,34.6,10.6,34c0.5-0.1,1-0.5,2.5-2l1.9-1.9l-2.6,0c-2.4,0-2.6,0-3.3,0.4 - c-2.9,1.5-5.4-2.4-2.8-4.4c0.8-0.6,2.2-0.6,2.9-0.1c0.5,0.3,0.6,0.3,3.1,0.3h2.6l-1.8-1.8c-1.3-1.3-2-1.9-2.3-1.9 - c-2.3-0.5-2.9-3.4-1-4.8c1.3-1,4,0.2,4,1.8c0,0.3,0.4,0.8,1.9,2.2l1.9,1.8l0-2.6c0-2.4,0-2.6-0.3-3c-1.1-1.6,0-3.8,2-4 - c2.1-0.2,3.5,1.9,2.5,3.8c-0.4,0.7-0.4,0.9-0.4,3.3l0,2.6l1.8-1.8c1.3-1.3,1.9-2,1.9-2.3c0.5-2.4,3.7-2.9,4.8-0.7 - c0.8,1.6,0,3.3-1.7,3.7c-0.5,0.1-1,0.5-2.5,2l-1.8,1.8h2.7c2.4,0,2.7,0,3.1-0.3c1-0.7,2.4-0.5,3.3,0.5c2,2.2-0.9,5.6-3.3,3.9 - c-0.4-0.3-0.7-0.3-3.1-0.3h-2.7l1.8,1.8c1.5,1.5,2,1.9,2.5,2c2.9,0.7,2.7,4.9-0.3,5.1c-1.4,0.1-2.8-1.1-2.8-2.3 - c0-0.1-0.8-1.1-1.9-2.1l-1.9-1.9l0,2.6c0,2.4,0,2.6,0.4,3.3C23,41.2,20.2,43.7,18,42.1L18,42.1z"/> - <g> - <g id="g36" transform="matrix(-4.6717475,0,0,4.6717475,1143.4575,-562.74962)"> - <path id="path38" opacity="0.2" enable-background="new " d="M240.5,126.5c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7 - c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.5,126.5L240.5,126.5z"/> - <path id="path40" opacity="0.2" enable-background="new " d="M240.7,126.3c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7 - c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.7,126.3L240.7,126.3z"/> - <path id="path42" opacity="0.2" enable-background="new " d="M240.1,126.1c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7 - c-0.3-0.4-1.1,0-1.7,0.6c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126.1L240.1,126.1z"/> - <path id="path44" fill="#FFFFFF" d="M240.1,126c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7c-0.3-0.4-1.1,0-1.7,0.6 - c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126L240.1,126z"/> - - <linearGradient id="path46_1_" gradientUnits="userSpaceOnUse" x1="251.6057" y1="30.2918" x2="373.0601" y2="100.0934" gradientTransform="matrix(-7.441159e-02 -0.3663 0.3663 -7.441159e-02 239.8726 211.8456)"> - <stop offset="0" style="stop-color:#990000"/> - <stop offset="1" style="stop-color:#7C0000"/> - </linearGradient> - <path id="path46" fill="url(#path46_1_)" d="M240.1,126c-0.9-2.9-1.1-3.4-1.2-3.5c0,0,0,0,0,0l-6.3-7c-0.3-0.4-1.1,0-1.7,0.6 - c-0.6,0.5-1.1,1.3-0.7,1.6l6.3,7l0,0l3,1.4l0.6,0.2L240.1,126L240.1,126z"/> - - <linearGradient id="path48_1_" gradientUnits="userSpaceOnUse" x1="448.9506" y1="-141.7113" x2="469.8885" y2="-162.6511" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)"> - <stop offset="0" style="stop-color:#F8F1DC"/> - <stop offset="1" style="stop-color:#D6A84A"/> - </linearGradient> - <path id="path48" fill="url(#path48_1_)" d="M238.5,122.6l1.1,3.1l-2.9-1.4l0,0c0,0,0,0-0.1,0l0,0l-6-6.7l0,0 - c-0.2-0.2,0.1-0.7,0.6-1.2c0.5-0.5,1.1-0.7,1.2-0.5L238.5,122.6L238.5,122.6L238.5,122.6z"/> - - <linearGradient id="path50_1_" gradientUnits="userSpaceOnUse" x1="473.214" y1="-2.063" x2="545.7217" y2="-163.0414" gradientTransform="matrix(-0.3737 0 0 -0.3737 407.2458 109.9867)"> - <stop offset="0" style="stop-color:#FFA700"/> - <stop offset="0.7753" style="stop-color:#FFD700"/> - <stop offset="1" style="stop-color:#FF794B"/> - </linearGradient> - <path id="path50" fill="url(#path50_1_)" d="M237.1,124.4c0.2,0,0.4-0.1,0.6-0.3c0.1-0.1,0.3-0.2,0.4-0.3 - c0.1-0.1,0.2-0.2,0.3-0.3c0.2-0.2,0.3-0.4,0.3-0.6l-0.1-0.3l0-0.1l-6-6.6c0,0.2-0.1,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3 - c-0.1,0.1-0.3,0.2-0.4,0.3c-0.4,0.2-0.7,0.3-0.8,0.2l0,0l6,6.7l0,0c0,0,0,0,0.1,0l0,0L237.1,124.4L237.1,124.4z"/> - <path id="path52" fill="#FFFFFF" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3 - c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3 - c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/> - <path id="path54" fill="#FFFFFF" d="M231.2,116.4c0.5-0.5,1.1-0.7,1.2-0.5l1.4,1.5l0.1,2.1l-1.4,0.1l-1.8-2l0,0 - C230.5,117.3,230.7,116.8,231.2,116.4L231.2,116.4z"/> - <path id="path56" fill="#FFFFFF" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3 - c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3 - c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/> - - <linearGradient id="path58_1_" gradientUnits="userSpaceOnUse" x1="440.489" y1="-131.0965" x2="451.6169" y2="-117.8349" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)"> - <stop offset="0" style="stop-color:#FFC957"/> - <stop offset="1" style="stop-color:#FF6D00"/> - </linearGradient> - <path id="path58" fill="url(#path58_1_)" d="M231.2,116.4c0.5-0.5,1.1-0.7,1.2-0.5l1.4,1.5l0.1,2.1l-1.4,0.1l-1.8-2l0,0 - C230.5,117.3,230.7,116.8,231.2,116.4L231.2,116.4z"/> - - <linearGradient id="path60_1_" gradientUnits="userSpaceOnUse" x1="454.4041" y1="-122.501" x2="501.1769" y2="-226.3438" gradientTransform="matrix(0.3734 -1.625768e-02 -1.625768e-02 -0.3734 65.4455 75.4761)"> - <stop offset="0" style="stop-color:#FFA700"/> - <stop offset="0.7753" style="stop-color:#FFD700"/> - <stop offset="1" style="stop-color:#FF9200"/> - </linearGradient> - <path id="path60" fill="url(#path60_1_)" d="M230.6,117.5c0.1,0.1,0.5,0.1,0.9-0.2c0.1-0.1,0.3-0.2,0.4-0.3 - c0.1-0.1,0.2-0.2,0.3-0.3c0.3-0.4,0.4-0.7,0.3-0.8l0,0l6.1,6.7c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3 - c-0.1,0.1-0.3,0.2-0.4,0.3c-0.4,0.2-0.7,0.3-0.9,0.2c0,0-0.2-0.2-0.2-0.2L230.6,117.5L230.6,117.5L230.6,117.5z"/> - - <linearGradient id="path62_1_" gradientUnits="userSpaceOnUse" x1="472.6249" y1="-26.9638" x2="549.3671" y2="-26.9638" gradientTransform="matrix(-0.3737 0 0 -0.3737 407.2458 109.9867)"> - <stop offset="0" style="stop-color:#7D7D99"/> - <stop offset="0.1798" style="stop-color:#B1B1C5"/> - <stop offset="0.3727" style="stop-color:#BCBCC8"/> - <stop offset="0.6825" style="stop-color:#C8C8CB"/> - <stop offset="1" style="stop-color:#CCCCCC"/> - </linearGradient> - <path id="path62" fill="url(#path62_1_)" d="M231.1,118.1c0,0,0.5,0,0.9-0.3c0.1-0.1,0.3-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.3-0.3 - c0.2-0.3,0.4-0.6,0.3-0.7l-0.5-0.6l0,0c0.1,0.2,0,0.5-0.3,0.8c-0.1,0.1-0.2,0.2-0.3,0.3c-0.1,0.1-0.3,0.2-0.4,0.3 - c-0.4,0.2-0.7,0.3-0.9,0.2l0,0l5.9,6.5c0,0,0.1,0.2,0.2,0.2c0,0,0.1,0.1,0.1,0.1L231.1,118.1L231.1,118.1z"/> - <path id="path64" fill="#003333" d="M238.9,124.8c-0.1,0.1-0.3,0.2-0.4,0.3l1.1,0.5l-0.4-1.1C239.1,124.7,239,124.8,238.9,124.8z - "/> - <path id="path66" opacity="0.5" fill="#FFFFFF" enable-background="new " d="M238.2,123.4l-6.1-6.6c0,0,0,0,0,0 - c0.1-0.1,0.2-0.3,0.3-0.4l6.1,6.6C238.4,123.1,238.4,123.2,238.2,123.4L238.2,123.4z"/> - <path id="path68" opacity="0.5" fill="#FFFFFF" enable-background="new " d="M232.2,116.7c0.1-0.1,0.1-0.1,0.1-0.2l6.1,6.6 - c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.1,0.1-0.2,0.2l-6.1-6.7C232,116.9,232.1,116.8,232.2,116.7L232.2,116.7z"/> - </g> - </g> - </a> - </svg> +<svg viewBox="0 0 478 472" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"> + <defs> + <linearGradient id="svg_5" x1="0" y1="0" x2="1" y2="1"> + <stop offset="0" stop-color="#ffffe0" stop-opacity="1"/> + <stop offset="1" stop-color="#edc39c" stop-opacity="1"/> + </linearGradient> + <linearGradient id="svg_10" x1="0.57031" y1="0.78125" x2="0.28906" y2="0.41406"> + <stop offset="0" stop-color="#ff7f00" stop-opacity="1"/> + <stop offset="1" stop-color="#ffff00"/> + </linearGradient> + <linearGradient id="svg_18" x1="0.37891" y1="0.35938" x2="1" y2="1"> + <stop offset="0" stop-color="#e0e0e0" stop-opacity="1"/> + <stop offset="1" stop-color="#666666" stop-opacity="1"/> + </linearGradient> + </defs> + <g> + <title>Layer 1</title> + <path d="m68.82031,270.04688l-22,-33l17,-35l34,2l25,15l7,-35l28,-16l25,12l100,102l21,23l-15,35l-36,9l20,49l-31,24l-49,-17l-1,31l-33,21l-31,-19l-13,-35l-30,21l-30,-9l-5,-35l16,-31l-32,-6l-15,-19l3,-36l47,-18z" id="svg_19" fill="#ffffff"/> + <path fill="#1a171a" fill-rule="nonzero" id="path2902" d="m158.96452,155.03685c-25.02071,0 -45.37077,20.35121 -45.37077,45.3775c0,0.72217 0.01794,1.4399 0.0471,2.15645c-0.49339,-0.53604 -0.99355,-1.06085 -1.50603,-1.58452c-8.56077,-8.55519 -19.95982,-13.28413 -32.07432,-13.28413c-12.12122,0 -23.52027,4.72334 -32.08778,13.29646c-17.69347,17.69464 -17.69347,46.4619 0,64.17445c0.51809,0.51697 1.0485,1.0126 1.59015,1.50601c-0.72891,-0.03586 -1.45782,-0.04822 -2.19234,-0.04822c-25.02071,0 -45.37189,20.35117 -45.37189,45.37747c0,25.01398 20.35119,45.36517 45.37189,45.36517c0.72891,0 1.45221,-0.01236 2.1744,-0.04828c-0.5293,0.48221 -1.05412,0.98801 -1.56547,1.49368c-17.70021,17.68906 -17.70021,46.48654 -0.00628,64.18677c8.57872,8.56747 19.96655,13.2785 32.08778,13.2785c12.1145,0 23.5012,-4.71103 32.07433,-13.2785c0.51247,-0.51694 1.01823,-1.04849 1.50603,-1.57895c-0.02915,0.71213 -0.04709,1.44669 -0.04709,2.15759c0,25.01511 20.35007,45.37747 45.37077,45.37747c25.01398,0 45.37079,-20.3624 45.37079,-45.37747c0,-0.7222 -0.01689,-1.44553 -0.05266,-2.18112c0.48105,0.52933 0.97562,1.04849 1.48697,1.56662c8.57982,8.57977 19.97775,13.2908 32.1057,13.2908c12.11003,0 23.51358,-4.71103 32.0687,-13.2785c17.68906,-17.70013 17.68906,-46.48538 0,-64.17441c-0.50577,-0.4946 -1.01141,-1.00034 -1.54306,-1.48248c0.69983,0.03592 1.42316,0.04828 2.16992,0.04828c25.01514,0 45.35284,-20.35123 45.35284,-45.36517c0,-25.02631 -20.33774,-45.37747 -45.35284,-45.37747c-0.74683,0 -1.47009,0.01236 -2.19345,0.04822c0.53152,-0.49341 1.06082,-0.98904 1.59128,-1.50601c8.55521,-8.55521 13.2785,-19.94186 13.2785,-32.07545c0,-12.12793 -4.72336,-23.52028 -13.30319,-32.0934c-8.55515,-8.56076 -19.95866,-13.2841 -32.0687,-13.2841c-12.12122,0 -23.52025,4.72334 -32.08777,13.2841c-0.51137,0.5181 -1.01822,1.04851 -1.5049,1.57895c0.03586,-0.72331 0.05266,-1.43991 0.05266,-2.16881c0,-25.02629 -20.35681,-45.3775 -45.37079,-45.3775m0,20.71901c13.61607,0 24.65851,11.03122 24.65851,24.65849c0,6.62749 -2.651,12.62137 -6.9101,17.04979l0,51.67419l36.53975,-36.53523c0.12001,-6.14418 2.48277,-12.24686 7.18146,-16.94667c4.81305,-4.81305 11.12094,-7.22409 17.44116,-7.22409c6.30228,0 12.61577,2.41104 17.43552,7.22409c9.62166,9.63287 9.62166,25.24948 0,34.87669c-4.69977,4.68634 -10.80803,7.04915 -16.95334,7.18147l-36.5341,36.53305l51.66742,0c4.42841,-4.25351 10.42905,-6.90451 17.08008,-6.90451c13.59137,0 24.62933,11.03799 24.62933,24.66525c0,13.61606 -11.03796,24.66519 -24.62933,24.66519c-6.65106,0 -12.65167,-2.66333 -17.08008,-6.91681l-51.64836,0l36.50273,36.50946c6.16995,0.14465 12.26587,2.50522 16.96568,7.20618c9.6216,9.61487 9.6216,25.23151 0,34.85757c-4.80856,4.81979 -11.13327,7.22974 -17.43556,7.22974c-6.32019,0 -12.63371,-2.40991 -17.44786,-7.22974c-4.68074,-4.68744 -7.04802,-10.79572 -7.17473,-16.94098l-36.53975,-36.53415l0,51.66742c4.25908,4.44635 6.9101,10.43466 6.9101,17.0621c0,13.62729 -11.04243,24.66415 -24.65851,24.66415c-13.62166,0 -24.65848,-11.0369 -24.65848,-24.66415c0,-6.62744 2.64539,-12.61575 6.90335,-17.0621l0,-51.66742l-36.53864,36.54648c-0.12672,6.14413 -2.48838,12.26477 -7.18147,16.94098c-4.81416,4.81873 -11.12206,7.22974 -17.42882,7.22974c-6.31461,0 -12.6225,-2.41101 -17.43555,-7.22974c-9.63284,-9.62833 -9.63284,-25.24277 0,-34.8699c4.68073,-4.67627 10.79012,-7.05026 16.94101,-7.18262l36.533,-36.53302l-51.66632,0c-4.44075,4.25348 -10.42902,6.91681 -17.06211,6.91681c-13.61606,0 -24.65288,-11.04913 -24.65288,-24.66519c0,-13.62726 11.03682,-24.66525 24.65288,-24.66525c6.63309,0 12.62136,2.651 17.06211,6.90451l51.68537,0l-36.55208,-36.54538c-6.14527,-0.12 -12.25354,-2.49403 -16.94775,-7.19377c-9.62611,-9.61493 -9.62611,-25.23715 0,-34.86441c4.81419,-4.81305 11.12769,-7.22406 17.44228,-7.22406c6.30676,0 12.61465,2.41101 17.42883,7.22406c4.69978,4.69307 7.06034,10.80246 7.18144,16.94777l36.5386,36.53299l0,-51.66074c-4.25795,-4.42841 -6.90334,-10.42229 -6.90334,-17.04979c0,-13.62726 11.03682,-24.65848 24.65848,-24.65848"/> + <path d="m188.82031,210.04688l16,-47l155,-148l107,100l-158,156.99999l-44,12l-76,-74z" id="svg_6" fill="url(#svg_10)" stroke="#ffffff" stroke-width="0"/> + <path d="m335.57031,40.29688c-11.5,39.75 55.5,115.25 109.25,98.75l21,-20.99999l-103,-101l-27.25,23.25z" id="svg_11" fill="url(#svg_18)" stroke="#ffffff" stroke-width="0"/> + <rect x="272.80404" y="20.76382" width="42.35197" height="232.66835" id="svg_13" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 293.98, 137.1)" opacity="0.4"/> + <rect x="282.80404" y="22.76382" width="14" height="232.66835" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 289.805, 139.1)" opacity="0.4" id="svg_14"/> + <ellipse cx="415.13312" cy="64.38066" id="svg_12" fill="#ea7598" stroke="#ffffff" stroke-width="0" rx="67.79251" ry="34.82026" transform="rotate(39.4735, 415.133, 64.379)"/> + <path d="m212.07031,166.04688c-8.5,47 36.25,103.75 99.25,96.75l-152.5,53.25l53.25,-150z" id="svg_4" fill="url(#svg_5)" stroke="#ffffff" stroke-width="0"/> + <path d="m181.32031,242.54688c0.5,20.5 26.75,45 46.75,48.5l-66.25,20l19.5,-68.5z" id="svg_3" fill="#27382f" stroke="#ffffff" stroke-width="0"/> + </g> + <g> + <title>Layer 2</title> + <path d="m152.82031,317.04688l51,-152l157,-153c40,-12.00001 118,48 105,105l-157,152.99999l-156,47z" id="svg_1" fill="none" stroke="#800000" stroke-width="17"/> + </g> +</svg> </g> @@ -265,6 +198,65 @@ </svg> </g> +<g id="add_subpath"> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 124 124" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <linearGradient id="svg_4" x1="0.33594" y1="0.28125" x2="1" y2="1"> + <stop offset="0" stop-color="#ffffff" stop-opacity="1"/> + <stop offset="1" stop-color="#33a533" stop-opacity="1"/> + </linearGradient> + </defs> + <g> + <path d="m6,103l55,-87c85,33.64 -26,37.12 55,87l-110,0z" id="svg_1" fill="url(#svg_4)" stroke="#000000" stroke-width="4" stroke-dasharray="null"/> + <g id="svg_7"> + <circle stroke-dasharray="null" stroke-width="5" stroke="#000000" fill="#ffffff" id="svg_6" r="22.63281" cy="88.5" cx="45.5"/> + <line stroke-dasharray="null" stroke-width="7" stroke="#000000" id="svg_2" y2="104.03768" x2="45.5" y1="72.96232" x1="45.5"/> + <line stroke-dasharray="null" stroke-width="7" stroke="#000000" id="svg_3" y2="88.5" x2="61.03768" y1="88.5" x1="29.96232"/> + </g> + </g> + </svg> +</g> + +<g id="close_path"> +<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g> + <title>Layer 1</title> + <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m121.5,40l-84,106l27,115l166,2l29,-111"/> + <line x1="240" y1="136" x2="169.5" y2="74" stroke="#A00" stroke-width="25" fill="none"/> + <path stroke="none" fill ="#A00" d="m158,65l31,74l-3,-50l51,-3z"/> + <g stroke-width="15" stroke="#00f" fill="#0ff"> + <circle r="30" cy="41" cx="123"/> + <circle r="30" cy="146" cx="40"/> + <circle r="30" cy="260" cx="69"/> + <circle r="30" cy="260" cx="228"/> + <circle r="30" cy="148" cx="260"/> + </g> + </g> +</svg> +</g> + +<g id="open_path"> +<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g> + <title>Layer 1</title> + <path stroke="#000" stroke-width="15" fill="#ffc8c8" d="m123.5,38l-84,106l27,115l166,2l29,-111"/> + <line x1="276.5" y1="153" x2="108.5" y2="24" stroke="#000" stroke-width="10" fill="none"/> + <g stroke-width="15" stroke="#00f" fill="#0ff"> + <circle r="30" cy="41" cx="123"/> + <circle r="30" cy="146" cx="40"/> + <circle r="30" cy="260" cx="69"/> + <circle r="30" cy="260" cx="228"/> + <circle r="30" cy="148" cx="260"/> + </g> + <g stroke="#A00" stroke-width="15" fill="none"> + <line x1="168" y1="24" x2="210" y2="150"/> + <line x1="210" y1="24" x2="168" y2="150"/> + </g> + </g> +</svg> +</g> + + <g id="image"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <defs> @@ -308,6 +300,12 @@ </svg> </g> +<g id="arrow_right_big"> + <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 50"> + <path stroke="#000000" fill="#000000" d="m0,0l0,50l25,-25l-25,-25z"/> + </svg> +</g> + <g id="arrow_down"> <svg viewBox="0 0 50 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <path transform="rotate(90, 26, 13)" d="m14,-12l0,50l25,-25l-25,-25z" fill="#000000" stroke="#000000"/> @@ -316,10 +314,16 @@ <g id="new_image"> -<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <rect x="2.42792" y="1.6692" width="18" height="21" id="svg_55" fill="#eaeaea" stroke="#606060"/> - <circle stroke-width="0" stroke="#a0a0a0" fill="#fff175" id="svg_65" r="3.83333" cy="6.24769" cx="19.16813"/> - </svg> + <circle stroke-width="0" stroke="#a0a0a0" fill="url(#svg_9)" id="svg_65" r="6.300781" cy="7.529969" cx="17.761984"/> + <defs> + <radialGradient id="svg_9" cx="0.5" cy="0.5" r="0.5"> + <stop offset="0.1" stop-color="#ffe500" stop-opacity="1"/> + <stop offset="1" stop-color="#ffff00" stop-opacity="0"/> + </radialGradient> + </defs> +</svg> </g> <g id="save"> @@ -359,6 +363,19 @@ </svg> </g> +<g id="import"> +<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <linearGradient y2="0.875" x2="0.21484" y1="0.00391" x1="0.04297" id="svg_46_import"> + <stop stop-opacity="1" stop-color="#81f4bb" offset="0"/> + <stop stop-opacity="1" stop-color="#37b76e" offset="1"/> + </linearGradient> + </defs> + <rect x="2.42792" y="1.6692" width="18" height="21" id="svg_55" fill="#eaeaea" stroke="#606060"/> + <path stroke="#285582" fill="url(#svg_46_import)" id="svg_45" d="m7.14286,12.74903l5.21236,5.79151l5.50193,-5.88803l-2.50965,-0.09653l0,-2.79923c0,-2.3166 -2.3166,-5.59846 -6.56371,-5.59846c-4.05405,0 -6.27413,3.37838 -6.56371,6.75676c0.48263,-1.5444 2.7027,-4.53668 4.44015,-4.44015c2.12355,-0.09653 2.79923,1.64093 2.79923,3.37838l0.09653,2.79923l-2.41313,0.09653z"/> +</svg> +</g> + <g id="docprops"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <defs>
--- a/htdocs/svg-edit/editor/jgraduate/css/jGraduate-0.2.0.css Fri Apr 23 22:29:49 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/* - * jGraduate Default CSS - * - * Copyright (c) 2009 Jeff Schiller - * - * Licensed under the Apache License Version 2 - */ - -h2.jGraduate_Title { - font-family: Arial, Helvetica, Sans-Serif; - font-size: 11px !important; - font-weight: bold; - margin: -13px 0px 0px 0px; - padding: 0px; - text-align: center; -} - -.jGraduate_Picker { - font-family: Arial, Helvetica, Sans-Serif; - font-size: 12px; - border-style: solid; - border-color: lightgrey black black lightgrey; - border-width: 1px; - background-color: #EFEFEF; - position: absolute; - padding: 10px; -} - -li.jGraduate_tab_color, li.jGraduate_tab_lingrad { - background-color: #ccc; - display: inline; - border: solid 1px grey; - padding: 3px; - margin: 2px; - cursor: pointer; -} - -li.jGraduate_tab_current { - background-color: #EFEFEF; - display: inline; - padding: 3px; - margin: 2px; - border: solid 1px black; - cursor: pointer; -} - -.jGraduate_colPick { - display: none; -} - -.jGraduate_lgPick { - display: none; - border: outset 1px #666; - padding: 10px 7px 5px 5px; - overflow: auto; -} - -.jGraduate_tabs { - position: relative; - background-color: #EFEFEF; - padding: 0px; - margin: 0px; - margin-bottom: 5px; -} - -div.jGraduate_Swatch { - float: left; - margin: 8px; -} -div.jGraduate_GradContainer { - border: 2px inset #EEE; - background-image: url(../images/map-opacity.png); - background-position: 0px 0px; - height: 256px; -} - -.jGraduate_AlphaArrows { - position: absolute; - margin-top: -10px; - margin-left: 250.5px; -} - -div.jGraduate_Opacity { - border: 2px inset #eee; - margin-top: 14px; - background-color: black; - background-image: url(../images/Maps.png); - background-position: 0px -2816px; - height: 20px; - cursor: ew-resize; -} - -div.jGraduate_OpacityField { - position: absolute; - bottom: 25px; - left: 292px; -} - -div.jGraduate_Form { - float: left; - width: 140px; - margin: -3px 3px 0px 4px; -} - -div.jGraduate_StopSection { - width: 120px; - text-align: center; -} - -div.jGraduate_OkCancel { - float: left; - width: 113px; -} - -input.jGraduate_Ok, input.jGraduate_Cancel { - display: block; - width: 100px; - margin-left: -4px; - margin-right: -4px; -} -input.jGraduate_Ok { - margin: 9px -4px 5px -4px; -} - -.colorBox { - float: left; - height: 16px; - width: 16px; - border: 1px solid #808080; - cursor: pointer; - margin: 4px 4px 4px 30px; -} - -.colorBox + label { - float: left; - margin-top: 7px; -} - -label.jGraduate_Form_Heading { - position: relative; - top: 10px; - background-color: #EFEFEF; - padding: 2px; - font-weight: bold; - font-size: 13px; -} - -div.jGraduate_Form_Section { - border-style: solid; - border-width: 1px; - border-color: grey; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - padding: 15px 5px 5px 5px; - margin: 2px; - width: 110px; - text-align: center; - overflow: auto; -} - -div.jGraduate_LightBox { - position: fixed; - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; - background-color: #000; - opacity: 0.5; - display: none; -} - -div.jGraduate_stopPicker { - position: absolute; - display: none; - background: #E8E8E8; -} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/jgraduate/css/jgraduate.css Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,266 @@ +/* + * jGraduate Default CSS + * + * Copyright (c) 2009 Jeff Schiller + * + * Licensed under the Apache License Version 2 + */ + +h2.jGraduate_Title { + font-family: Arial, Helvetica, Sans-Serif; + font-size: 11px !important; + font-weight: bold; + margin: -13px 0px 0px 0px; + padding: 0px; + text-align: center; +} + +.jGraduate_Picker { + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + border-style: solid; + border-color: lightgrey black black lightgrey; + border-width: 1px; + background-color: #EFEFEF; + position: absolute; + padding: 10px; +} + +.jGraduate_tabs li { + background-color: #ccc; + display: inline; + border: solid 1px grey; + padding: 3px; + margin: 2px; + cursor: pointer; +} + +li.jGraduate_tab_current { + background-color: #EFEFEF; + display: inline; + padding: 3px; + margin: 2px; + border: solid 1px black; + cursor: pointer; +} + +.jGraduate_colPick { + display: none; +} + +.jGraduate_lgPick { + display: none; + border: outset 1px #666; + padding: 10px 7px 5px 5px; + overflow: auto; +} + +.jGraduate_rgPick { + display: none; + border: outset 1px #666; + padding: 10px 7px 5px 5px; + overflow: auto; +/* position: relative;*/ +} + +.jGraduate_tabs { + position: relative; + background-color: #EFEFEF; + padding: 0px; + margin: 0px; + margin-bottom: 5px; +} + +div.jGraduate_Swatch { + float: left; + margin: 8px; +} +div.jGraduate_GradContainer { + border: 2px inset #EEE; + background-image: url(../images/map-opacity.png); + background-position: 0px 0px; + height: 256px; +} + +.jGraduate_AlphaArrows { + position: absolute; + margin-top: -10px; + margin-left: 250.5px; +} + +div.jGraduate_Opacity { + border: 2px inset #eee; + margin-top: 14px; + background-color: black; + background-image: url(../images/Maps.png); + background-position: 0px -2816px; + height: 20px; + cursor: ew-resize; +} + +div.lg_jGraduate_OpacityField { + position: absolute; + bottom: 25px; + left: 292px; +} + +div.jGraduate_Form { + float: left; + width: 140px; + margin: -3px 3px 0px 4px; +} + +div.jGraduate_StopSection { + width: 120px; + text-align: center; +} + +div.jGraduate_RadiusField { + + text-align: center; + float: left; +} + +div.jGraduate_RadiusField input { + margin-top: 10px; +} + +.jGraduate_RadiusField .jGraduate_Form_Section { + width: 250px; + padding: 2px; + height: 80px; + overflow: visible; +} + +.jGraduate_Radius { + border:1px solid #BBB; + cursor:ew-resize; + height:20px; + margin-top:14px; + position: relative; +} + + +.jGraduate_RadiusArrows { + top: 0; + left: 0; + position: absolute; + margin-top: -10px; + margin-left: 250.5px; +} + + +div.jGraduate_OkCancel { + float: left; + width: 113px; +} + +input.jGraduate_Ok, input.jGraduate_Cancel { + display: block; + width: 100px; + margin-left: -4px; + margin-right: -4px; +} +input.jGraduate_Ok { + margin: 9px -4px 5px -4px; +} + +.colorBox { + float: left; + height: 16px; + width: 16px; + border: 1px solid #808080; + cursor: pointer; + margin: 4px 4px 4px 30px; +} + +.colorBox + label { + float: left; + margin-top: 7px; +} + +label.jGraduate_Form_Heading { + position: relative; + top: 10px; + background-color: #EFEFEF; + padding: 2px; + font-weight: bold; + font-size: 13px; +} + +div.jGraduate_Form_Section { + border-style: solid; + border-width: 1px; + border-color: grey; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + padding: 15px 5px 5px 5px; + margin: 2px; + width: 110px; + text-align: center; + overflow: auto; +} + +div.jGraduate_LightBox { + position: fixed; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + background-color: #000; + opacity: 0.5; + display: none; +} + +div.jGraduate_stopPicker { + position: absolute; + display: none; + background: #E8E8E8; +} + + +.jGraduate_rgPick { + width: 530px; +} + +.jGraduate_rgPick div.jGraduate_Form { + width: 270px; + position: absolute; + left: 284px; + width: 266px; + top: 130px; + margin: -3px 3px 0px 4px; +} + +.jGraduate_Colorblocks { + display: table; + border-spacing: 0 5px; +} + +.jGraduate_colorblock { + display: table-row; +} + +.jGraduate_Colorblocks .jGraduate_colorblock > * { + display: table-cell; + vertical-align: middle; + margin: 0; + float: none; +} + +.jGraduate_rgPick div.jGraduate_StopSection { + float: left; + width: 133px; + margin: 0; +} + +.jGraduate_rgPick .jGraduate_OkCancel { + position: absolute; + right: 0; +} + +.rg_jGraduate_OpacityField { + position: absolute; + left: 288px; + bottom: 24px; +} \ No newline at end of file
--- a/htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/jgraduate/jquery.jgraduate.js Fri Apr 23 22:38:00 2010 +0200 @@ -3,8 +3,10 @@ * * jQuery Plugin for a gradient picker * - * Copyright (c) 2009 Jeff Schiller + * Copyright (c) 2010 Jeff Schiller * http://blog.codedread.com/ + * Copyright (c) 2010 Alexis Deveria + * http://a.deveria.com/ * * Apache 2 License @@ -23,12 +25,14 @@ alpha: Number representing opacity (0-100), solidColor: String representing #RRGGBB hex of color, linearGradient: object of interface SVGLinearGradientElement, + radialGradient: object of interface SVGRadialGradientElement, } $.jGraduate.Paint() -> constructs a 'none' color $.jGraduate.Paint({copy: o}) -> creates a copy of the paint o $.jGraduate.Paint({hex: "#rrggbb"}) -> creates a solid color paint with hex = "#rrggbb" $.jGraduate.Paint({linearGradient: o, a: 50}) -> creates a linear gradient paint with opacity=0.5 +$.jGraduate.Paint({radialGradient: o, a: 7}) -> creates a radial gradient paint with opacity=0.07 $.jGraduate.Paint({hex: "#rrggbb", linearGradient: o}) -> throws an exception? - picker accepts the following object as input: @@ -42,6 +46,9 @@ * */ + +(function() { + var ns = { svg: 'http://www.w3.org/2000/svg', xlink: 'http://www.w3.org/1999/xlink' }; if(!window.console) { window.console = new function() { @@ -74,27 +81,38 @@ if (options.copy) { this.type = options.copy.type; this.alpha = options.copy.alpha; + this.solidColor = null; + this.linearGradient = null; + this.radialGradient = null; + switch(this.type) { case "none": - this.solidColor = null; - this.linearGradient = null; break; case "solidColor": this.solidColor = options.copy.solidColor; - this.linearGradient = null; break; case "linearGradient": - this.solidColor = null; this.linearGradient = $.cloneNode(options.copy.linearGradient); break; + case "radialGradient": + this.radialGradient = $.cloneNode(options.copy.radialGradient); + break; } } // create linear gradient paint else if (options.linearGradient) { this.type = "linearGradient"; this.solidColor = null; + this.radialGradient = null; this.linearGradient = $.cloneNode(options.linearGradient); } + // create linear gradient paint + else if (options.radialGradient) { + this.type = "radialGradient"; + this.solidColor = null; + this.linearGradient = null; + this.radialGradient = $.cloneNode(options.radialGradient); + } // create solid color paint else if (options.solidColor) { this.type = "solidColor"; @@ -105,6 +123,7 @@ this.type = "none"; this.solidColor = null; this.linearGradient = null; + this.radialGradient = null; } } }; @@ -134,6 +153,15 @@ } var okClicked = function() { + // TODO: Fix this ugly hack + if($this.paint.type == "radialGradient") { + $this.paint.linearGradient = null; + } else if($this.paint.type == "linearGradient") { + $this.paint.radialGradient = null; + } else if($this.paint.type == "solidColor") { + $this.paint.linearGradient = null; + $this.paint.radialGradient = null; + } $.isFunction($this.okCallback) && $this.okCallback($this.paint); $this.hide(); }, @@ -156,23 +184,26 @@ if ($this.paint.type == "none") { $this.paint = $.jGraduate.Paint({solidColor: 'ffffff'}); } - + $this.addClass('jGraduate_Picker'); $this.html('<ul class="jGraduate_tabs">' + - '<li class="jGraduate_tab_color jGraduate_tab_current">Solid Color</li>' + - '<li class="jGraduate_tab_lingrad">Linear Gradient</li>' + + '<li class="jGraduate_tab_color jGraduate_tab_current" data-type="col">Solid Color</li>' + + '<li class="jGraduate_tab_lingrad" data-type="lg">Linear Gradient</li>' + + '<li class="jGraduate_tab_radgrad" data-type="rg">Radial Gradient</li>' + '</ul>' + '<div class="jGraduate_colPick"></div>' + - '<div class="jGraduate_lgPick"></div>'); + '<div class="jGraduate_lgPick"></div>' + + '<div class="jGraduate_rgPick"></div>'); var colPicker = $(idref + '> .jGraduate_colPick'); var lgPicker = $(idref + '> .jGraduate_lgPick'); + var rgPicker = $(idref + '> .jGraduate_rgPick'); lgPicker.html( '<div id="' + id + '_jGraduate_Swatch" class="jGraduate_Swatch">' + '<h2 class="jGraduate_Title">' + $settings.window.pickerTitle + '</h2>' + - '<div id="' + id + '_jGraduate_GradContainer" class="jGraduate_GradContainer"></div>' + - '<div id="' + id + '_jGraduate_Opacity" class="jGraduate_Opacity" title="Click to set overall opacity of the gradient paint">' + - '<img id="' + id + '_jGraduate_AlphaArrows" class="jGraduate_AlphaArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif"></img>' + + '<div id="' + id + '_lg_jGraduate_GradContainer" class="jGraduate_GradContainer"></div>' + + '<div id="' + id + '_lg_jGraduate_Opacity" class="jGraduate_Opacity" title="Click to set overall opacity of the gradient paint">' + + '<img id="' + id + '_lg_jGraduate_AlphaArrows" class="jGraduate_AlphaArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif"></img>' + '</div>' + '</div>' + '<div class="jGraduate_Form">' + @@ -198,374 +229,861 @@ '<label id="' + id + '_jGraduate_endOpacity">100%</label>' + '</div>' + '</div>' + - '<div class="jGraduate_OpacityField">' + - '<label class="jGraduate_OpacityLabel">A: </label>' + - '<input type="text" id="' + id + '_jGraduate_OpacityInput" class="jGraduate_OpacityInput" size="3" value="100"/>%' + + '<div class="lg_jGraduate_OpacityField">' + + '<label class="lg_jGraduate_OpacityLabel">A: </label>' + + '<input type="text" id="' + id + '_lg_jGraduate_OpacityInput" class="jGraduate_OpacityInput" size="3" value="100"/>%' + '</div>' + '</div>' + '<div class="jGraduate_OkCancel">' + - '<input type="button" id="' + id + '_jGraduate_Ok" class="jGraduate_Ok" value="OK"/>' + - '<input type="button" id="' + id + '_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/>' + + '<input type="button" id="' + id + '_lg_jGraduate_Ok" class="jGraduate_Ok" value="OK"/>' + + '<input type="button" id="' + id + '_lg_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/>' + '</div>' + '<div class="jGraduate_LightBox"></div>' + '<div id="' + id + '_jGraduate_stopPicker" class="jGraduate_stopPicker"></div>'); + + rgPicker.html( + '<div class="jGraduate_Swatch">' + + '<h2 class="jGraduate_Title">' + $settings.window.pickerTitle + '</h2>' + + '<div id="' + id + '_rg_jGraduate_GradContainer" class="jGraduate_GradContainer"></div>' + + '<div id="' + id + '_rg_jGraduate_Opacity" class="jGraduate_Opacity" title="Click to set overall opacity of the gradient paint">' + + '<img id="' + id + '_rg_jGraduate_AlphaArrows" class="jGraduate_AlphaArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif"></img>' + + '</div>' + + '</div>' + + '<div id="jGraduate_radColors" class="jGraduate_StopSection">' + + '<label class="jGraduate_Form_Heading">Colors</label>' + + '<div class="jGraduate_Form_Section jGraduate_Colorblocks">' + + '<div class="jGraduate_colorblock"><span>Center:</span>' + + '<div id="' + id + '_jGraduate_colorBoxCenter" class="colorBox"></div>' + + '<label id="' + id + '_rg_jGraduate_centerOpacity"> 100%</label></div>' + + + '<div class="jGraduate_colorblock"><span>Outer:</span>' + + '<div id="' + id + '_jGraduate_colorBoxOuter" class="colorBox"></div>' + + '<label id="' + id + '_jGraduate_outerOpacity"> 100%</label></div>' + + '</div>' + + '</div>' + + '<div class="jGraduate_StopSection">' + + '</div>' + + '<div class="jGraduate_Form">' + + '<div class="jGraduate_StopSection">' + + '<label class="jGraduate_Form_Heading">Center Point</label>' + + '<div class="jGraduate_Form_Section">' + + '<label>x:</label>' + + '<input type="text" id="' + id + '_jGraduate_cx" size="3" title="Enter x value between 0.0 and 1.0"/>' + + '<label> y:</label>' + + '<input type="text" id="' + id + '_jGraduate_cy" size="3" title="Enter y value between 0.0 and 1.0"/>' + + '</div>' + + '</div>' + + '<div class="jGraduate_StopSection">' + + '<label class="jGraduate_Form_Heading">Focal Point</label>' + + '<div class="jGraduate_Form_Section">' + + '<label>Match center: <input type="checkbox" checked="checked" id="' + id + '_jGraduate_match_ctr"/></label><br/>' + + '<label>x:</label>' + + '<input type="text" id="' + id + '_jGraduate_fx" size="3" title="Enter x value between 0.0 and 1.0"/>' + + '<label> y:</label>' + + '<input type="text" id="' + id + '_jGraduate_fy" size="3" title="Enter y value between 0.0 and 1.0"/>' + + '</div>' + + '</div>' + + '<div class="jGraduate_RadiusField">' + + '<label class="jGraduate_Form_Heading">Radius</label>' + + '<div class="jGraduate_Form_Section">' + + '<div id="' + id + '_jGraduate_RadiusContainer" class="jGraduate_RadiusContainer"></div>' + + '<input type="text" id="' + id + '_jGraduate_RadiusInput" size="3" value="100"/>%' + + '<div id="' + id + '_jGraduate_Radius" class="jGraduate_Radius" title="Click to set radius">' + + '<img id="' + id + '_jGraduate_RadiusArrows" class="jGraduate_RadiusArrows" src="' + $settings.images.clientPath + 'rangearrows2.gif"></img>' + + '</div>' + + '</div>' + + '</div>' + + '</div>' + + '<div class="rg_jGraduate_OpacityField">' + + '<label class="rg_jGraduate_OpacityLabel">A: </label>' + + '<input type="text" id="' + id + '_rg_jGraduate_OpacityInput" class="jGraduate_OpacityInput" size="3" value="100"/>%' + + '</div>' + + '<div class="jGraduate_OkCancel">' + + '<input type="button" id="' + id + '_rg_jGraduate_Ok" class="jGraduate_Ok" value="OK"/>' + + '<input type="button" id="' + id + '_rg_jGraduate_Cancel" class="jGraduate_Cancel" value="Cancel"/>' + + '</div>' + + '<div class="jGraduate_LightBox"></div>' + + '<div id="' + id + '_rg_jGraduate_stopPicker" class="jGraduate_stopPicker"></div>'); // -------------- // Set up all the SVG elements (the gradient, stops and rectangle) var MAX = 256, MARGINX = 0, MARGINY = 0, STOP_RADIUS = 15/2, SIZEX = MAX - 2*MARGINX, SIZEY = MAX - 2*MARGINY; - var container = document.getElementById(id+'_jGraduate_GradContainer'); - var svg = container.appendChild(document.createElementNS(ns.svg, 'svg')); - svg.id = id+'_jgraduate_svg'; - svg.setAttribute('width', MAX); - svg.setAttribute('height', MAX); - svg.setAttribute("xmlns", ns.svg); - - // if we are sent a gradient, import it - if ($this.paint.type == "linearGradient") { - $this.paint.linearGradient.id = id+'_jgraduate_grad'; - $this.paint.linearGradient = svg.appendChild($.cloneNode($this.paint.linearGradient)); - } - else { // we create a gradient - var grad = svg.appendChild(document.createElementNS(ns.svg, 'linearGradient')); - grad.id = id+'_jgraduate_grad'; - grad.setAttribute('x1','0.0'); - grad.setAttribute('y1','0.0'); - grad.setAttribute('x2','1.0'); - grad.setAttribute('y2','1.0'); - - var begin = grad.appendChild(document.createElementNS(ns.svg, 'stop')); - begin.setAttribute('offset', '0.0'); - begin.setAttribute('stop-color', '#ff0000'); - - var end = grad.appendChild(document.createElementNS(ns.svg, 'stop')); - end.setAttribute('offset', '1.0'); - end.setAttribute('stop-color', '#ffff00'); - - $this.paint.linearGradient = grad; - } - - var gradalpha = $this.paint.alpha; - $('#' + id + '_jGraduate_OpacityInput').val(gradalpha); - var posx = parseInt(255*(gradalpha/100)) - 4.5; - $('#' + id + '_jGraduate_AlphaArrows').css({'margin-left':posx}); - $('#' + id + '_jgraduate_rect').attr('fill-opacity', gradalpha/100); - - var x1 = parseFloat($this.paint.linearGradient.getAttribute('x1')||0.0), - y1 = parseFloat($this.paint.linearGradient.getAttribute('y1')||0.0), - x2 = parseFloat($this.paint.linearGradient.getAttribute('x2')||1.0), - y2 = parseFloat($this.paint.linearGradient.getAttribute('y2')||0.0); - - var rect = document.createElementNS(ns.svg, 'rect'); - rect.id = id + '_jgraduate_rect'; - rect.setAttribute('x', MARGINX); - rect.setAttribute('y', MARGINY); - rect.setAttribute('width', SIZEY); - rect.setAttribute('height', SIZEY); - rect.setAttribute('fill', 'url(#'+id+'_jgraduate_grad)'); - rect.setAttribute('fill-opacity', '1.0'); - rect = svg.appendChild(rect); - - // stop visuals created here - var beginStop = document.createElementNS(ns.svg, 'image'); - beginStop.id = id + "_stop1"; - beginStop.setAttribute('class', 'stop'); - beginStop.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint.gif'); - beginStop.setAttributeNS(ns.xlink, "title", "Begin Stop"); - beginStop.appendChild(document.createElementNS(ns.svg, 'title')).appendChild( - document.createTextNode("Begin Stop")); - beginStop.setAttribute('width', 18); - beginStop.setAttribute('height', 18); - beginStop.setAttribute('x', MARGINX + SIZEX*x1 - STOP_RADIUS); - beginStop.setAttribute('y', MARGINY + SIZEY*y1 - STOP_RADIUS); - beginStop.setAttribute('cursor', 'move'); - // must append only after setting all attributes due to Webkit Bug 27952 - // https://bugs.webkit.org/show_bug.cgi?id=27592 - beginStop = svg.appendChild(beginStop); - - var endStop = document.createElementNS(ns.svg, 'image'); - endStop.id = id + "_stop2"; - endStop.setAttribute('class', 'stop'); - endStop.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint.gif'); - endStop.setAttributeNS(ns.xlink, "title", "End Stop"); - endStop.appendChild(document.createElementNS(ns.svg, 'title')).appendChild( - document.createTextNode("End Stop")); - endStop.setAttribute('width', 18); - endStop.setAttribute('height', 18); - endStop.setAttribute('x', MARGINX + SIZEX*x2 - STOP_RADIUS); - endStop.setAttribute('y', MARGINY + SIZEY*y2 - STOP_RADIUS); - endStop.setAttribute('cursor', 'move'); - endStop = svg.appendChild(endStop); - - // bind GUI elements - $('#'+id+'_jGraduate_Ok').bind('click', function() { - $this.paint.type = "linearGradient"; - $this.paint.solidColor = null; - okClicked(); - }); - $('#'+id+'_jGraduate_Cancel').bind('click', function(paint) { - cancelClicked(); - }); - - var x1 = $this.paint.linearGradient.getAttribute('x1'); - if(!x1) x1 = "0.0"; - x1Input = $('#'+id+'_jGraduate_x1'); - x1Input.val(x1); - x1Input.change( function() { - if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { - this.value = 0.0; - } - $this.paint.linearGradient.setAttribute('x1', this.value); - beginStop.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS); - }); - - var y1 = $this.paint.linearGradient.getAttribute('y1'); - if(!y1) y1 = "0.0"; - y1Input = $('#'+id+'_jGraduate_y1'); - y1Input.val(y1); - y1Input.change( function() { - if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { - this.value = 0.0; - } - $this.paint.linearGradient.setAttribute('y1', this.value); - beginStop.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS); - }); - - var x2 = $this.paint.linearGradient.getAttribute('x2'); - if(!x2) x2 = "1.0"; - x2Input = $('#'+id+'_jGraduate_x2'); - x2Input.val(x2); - x2Input.change( function() { - if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { - this.value = 1.0; - } - $this.paint.linearGradient.setAttribute('x2', this.value); - endStop.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS); + + $.each(['lg', 'rg'], function(i) { + var grad_id = id + '_' + this; + var container = document.getElementById(grad_id+'_jGraduate_GradContainer'); + var svg = container.appendChild(document.createElementNS(ns.svg, 'svg')); + svg.id = grad_id + '_jgraduate_svg'; + svg.setAttribute('width', MAX); + svg.setAttribute('height', MAX); + svg.setAttribute("xmlns", ns.svg); }); - - var y2 = $this.paint.linearGradient.getAttribute('y2'); - if(!y2) y2 = "0.0"; - y2Input = $('#'+id+'_jGraduate_y2'); - y2Input.val(y2); - y2Input.change( function() { - if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { - this.value = 0.0; - } - $this.paint.linearGradient.setAttribute('y2', this.value); - endStop.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS); - }); - - var stops = $this.paint.linearGradient.getElementsByTagNameNS(ns.svg, 'stop'); - var numstops = stops.length; - // if there are not at least two stops, then - if (numstops < 2) { - while (numstops < 2) { - $this.paint.linearGradient.appendChild( document.createElementNS(ns.svg, 'stop') ); - ++numstops; - } - stops = $this.paint.linearGradient.getElementsByTagNameNS(ns.svg, 'stop'); - } - - var setOpacitySlider = function(e, div) { - var offset = div.offset(); - var x = (e.pageX - offset.left - parseInt(div.css('border-left-width'))); - if (x > 255) x = 255; - if (x < 0) x = 0; - var posx = x - 4.5; - x /= 255; - $('#' + id + '_jGraduate_AlphaArrows').css({'margin-left':posx}); - $('#' + id + '_jgraduate_rect').attr('fill-opacity', x); - x = parseInt(x*100); - $('#' + id + '_jGraduate_OpacityInput').val(x); - $this.paint.alpha = x; - }; - - // handle dragging on the opacity slider - var bSlidingOpacity = false; - $('.jGraduate_Opacity').mousedown(function(evt) { - setOpacitySlider(evt, $(this)); - bSlidingOpacity = true; - evt.preventDefault(); - }); - $('.jGraduate_Opacity').mousemove(function(evt) { - if (bSlidingOpacity) { - setOpacitySlider(evt, $(this)); - evt.preventDefault(); - } - }); - $('.jGraduate_Opacity').mouseup(function(evt) { - setOpacitySlider(evt, $(this)); - bSlidingOpacity = false; - evt.preventDefault(); - }); - - // handle dragging the stop around the swatch - var draggingStop = null; - var startx = -1, starty = -1; - // for whatever reason, Opera does not allow $('image.stop') here, - // and Firefox 1.5 does not allow $('.stop') - $('.stop, #color_picker_jGraduate_GradContainer image').mousedown(function(evt) { - draggingStop = this; - startx = evt.clientX; - starty = evt.clientY; - evt.preventDefault(); - }); - $('#'+id+'_jgraduate_svg').mousemove(function(evt) { - if (null != draggingStop) { - var dx = evt.clientX - startx; - var dy = evt.clientY - starty; - startx += dx; - starty += dy; - var x = parseFloat(draggingStop.getAttribute('x')) + dx; - var y = parseFloat(draggingStop.getAttribute('y')) + dy; - - // clamp stop to the swatch - if (x < MARGINX - STOP_RADIUS) x = MARGINX - STOP_RADIUS; - if (y < MARGINY - STOP_RADIUS) y = MARGINY - STOP_RADIUS; - if (x > MARGINX + SIZEX - STOP_RADIUS) x = MARGINX + SIZEX - STOP_RADIUS; - if (y > MARGINY + SIZEY - STOP_RADIUS) y = MARGINY + SIZEY - STOP_RADIUS; - - draggingStop.setAttribute('x', x); - draggingStop.setAttribute('y', y); - - // calculate stop offset - var fracx = (x - MARGINX + STOP_RADIUS)/SIZEX; - var fracy = (y - MARGINY + STOP_RADIUS)/SIZEY; - - if (draggingStop.id == (id+'_stop1')) { - x1Input.val(fracx); - y1Input.val(fracy); - $this.paint.linearGradient.setAttribute('x1', fracx); - $this.paint.linearGradient.setAttribute('y1', fracy); - } - else { - x2Input.val(fracx); - y2Input.val(fracy); - $this.paint.linearGradient.setAttribute('x2', fracx); - $this.paint.linearGradient.setAttribute('y2', fracy); - } - - evt.preventDefault(); - } - }); - $('#'+id+'_jgraduate_svg').mouseup(function(evt) { - draggingStop = null; - }); - - var beginColor = stops[0].getAttribute('stop-color'); - if(!beginColor) beginColor = '#000'; - beginColorBox = $('#'+id+'_jGraduate_colorBoxBegin'); - beginColorBox.css({'background-color':beginColor}); - - var beginOpacity = stops[0].getAttribute('stop-opacity'); - if(!beginOpacity) beginOpacity = '1.0'; - $('#'+id+'jGraduate_beginOpacity').html( (beginOpacity*100)+'%' ); - - var endColor = stops[stops.length-1].getAttribute('stop-color'); - if(!endColor) endColor = '#000'; - endColorBox = $('#'+id+'_jGraduate_colorBoxEnd'); - endColorBox.css({'background-color':endColor}); - - var endOpacity = stops[stops.length-1].getAttribute('stop-opacity'); - if(!endOpacity) endOpacity = '1.0'; - $('#'+id+'jGraduate_endOpacity').html( (endOpacity*100)+'%' ); - - $('#'+id+'_jGraduate_colorBoxBegin').click(function() { - $('div.jGraduate_LightBox').show(); - var colorbox = $(this); - var thisAlpha = (parseFloat(beginOpacity)*255).toString(16); + + + // Linear gradient + (function() { + var svg = document.getElementById(id + '_lg_jgraduate_svg'); + + // if we are sent a gradient, import it + if ($this.paint.type == "linearGradient") { + $this.paint.linearGradient.id = id+'_jgraduate_grad'; + $this.paint.linearGradient = svg.appendChild($.cloneNode($this.paint.linearGradient)); + } else { // we create a gradient + var grad = svg.appendChild(document.createElementNS(ns.svg, 'linearGradient')); + grad.id = id+'_jgraduate_grad'; + grad.setAttribute('x1','0.0'); + grad.setAttribute('y1','0.0'); + grad.setAttribute('x2','1.0'); + grad.setAttribute('y2','1.0'); + + var begin = grad.appendChild(document.createElementNS(ns.svg, 'stop')); + begin.setAttribute('offset', '0.0'); + begin.setAttribute('stop-color', '#ff0000'); + + var end = grad.appendChild(document.createElementNS(ns.svg, 'stop')); + end.setAttribute('offset', '1.0'); + end.setAttribute('stop-color', '#ffff00'); + + $this.paint.linearGradient = grad; + } + + var gradalpha = $this.paint.alpha; + $('#' + id + '_lg_jGraduate_OpacityInput').val(gradalpha); + var posx = parseInt(255*(gradalpha/100)) - 4.5; + $('#' + id + '_lg_jGraduate_AlphaArrows').css({'margin-left':posx}); + + var x1 = parseFloat($this.paint.linearGradient.getAttribute('x1')||0.0), + y1 = parseFloat($this.paint.linearGradient.getAttribute('y1')||0.0), + x2 = parseFloat($this.paint.linearGradient.getAttribute('x2')||1.0), + y2 = parseFloat($this.paint.linearGradient.getAttribute('y2')||0.0); + + var rect = document.createElementNS(ns.svg, 'rect'); + rect.id = id + '_lg_jgraduate_rect'; + rect.setAttribute('x', MARGINX); + rect.setAttribute('y', MARGINY); + rect.setAttribute('width', SIZEY); + rect.setAttribute('height', SIZEY); + rect.setAttribute('fill', 'url(#'+id+'_jgraduate_grad)'); + rect.setAttribute('fill-opacity', '1.0'); + rect = svg.appendChild(rect); + $('#' + id + '_lg_jgraduate_rect').attr('fill-opacity', gradalpha/100); + + // stop visuals created here + var beginStop = document.createElementNS(ns.svg, 'image'); + beginStop.id = id + "_stop1"; + beginStop.setAttribute('class', 'stop'); + beginStop.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint.gif'); + beginStop.setAttributeNS(ns.xlink, "title", "Begin Stop"); + beginStop.appendChild(document.createElementNS(ns.svg, 'title')).appendChild( + document.createTextNode("Begin Stop")); + beginStop.setAttribute('width', 18); + beginStop.setAttribute('height', 18); + beginStop.setAttribute('x', MARGINX + SIZEX*x1 - STOP_RADIUS); + beginStop.setAttribute('y', MARGINY + SIZEY*y1 - STOP_RADIUS); + beginStop.setAttribute('cursor', 'move'); + // must append only after setting all attributes due to Webkit Bug 27952 + // https://bugs.webkit.org/show_bug.cgi?id=27592 + beginStop = svg.appendChild(beginStop); + + var endStop = document.createElementNS(ns.svg, 'image'); + endStop.id = id + "_stop2"; + endStop.setAttribute('class', 'stop'); + endStop.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint.gif'); + endStop.setAttributeNS(ns.xlink, "title", "End Stop"); + endStop.appendChild(document.createElementNS(ns.svg, 'title')).appendChild( + document.createTextNode("End Stop")); + endStop.setAttribute('width', 18); + endStop.setAttribute('height', 18); + endStop.setAttribute('x', MARGINX + SIZEX*x2 - STOP_RADIUS); + endStop.setAttribute('y', MARGINY + SIZEY*y2 - STOP_RADIUS); + endStop.setAttribute('cursor', 'move'); + endStop = svg.appendChild(endStop); + + // bind GUI elements + $('#'+id+'_lg_jGraduate_Ok').bind('click', function() { + $this.paint.type = "linearGradient"; + $this.paint.solidColor = null; + okClicked(); + }); + $('#'+id+'_lg_jGraduate_Ok').bind('click', function(paint) { + cancelClicked(); + }); + + var x1 = $this.paint.linearGradient.getAttribute('x1'); + if(!x1) x1 = "0.0"; + var x1Input = $('#'+id+'_jGraduate_x1'); + x1Input.val(x1); + x1Input.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 0.0; + } + $this.paint.linearGradient.setAttribute('x1', this.value); + beginStop.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS); + }); + + var y1 = $this.paint.linearGradient.getAttribute('y1'); + if(!y1) y1 = "0.0"; + var y1Input = $('#'+id+'_jGraduate_y1'); + y1Input.val(y1); + y1Input.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 0.0; + } + $this.paint.linearGradient.setAttribute('y1', this.value); + beginStop.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS); + }); + + var x2 = $this.paint.linearGradient.getAttribute('x2'); + if(!x2) x2 = "1.0"; + var x2Input = $('#'+id+'_jGraduate_x2'); + x2Input.val(x2); + x2Input.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 1.0; + } + $this.paint.linearGradient.setAttribute('x2', this.value); + endStop.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS); + }); + + var y2 = $this.paint.linearGradient.getAttribute('y2'); + if(!y2) y2 = "0.0"; + y2Input = $('#'+id+'_jGraduate_y2'); + y2Input.val(y2); + y2Input.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 0.0; + } + $this.paint.linearGradient.setAttribute('y2', this.value); + endStop.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS); + }); + + var stops = $this.paint.linearGradient.getElementsByTagNameNS(ns.svg, 'stop'); + var numstops = stops.length; + // if there are not at least two stops, then + if (numstops < 2) { + while (numstops < 2) { + $this.paint.linearGradient.appendChild( document.createElementNS(ns.svg, 'stop') ); + ++numstops; + } + stops = $this.paint.linearGradient.getElementsByTagNameNS(ns.svg, 'stop'); + } + + var setLgOpacitySlider = function(e, div) { + var offset = div.offset(); + var x = (e.pageX - offset.left - parseInt(div.css('border-left-width'))); + if (x > 255) x = 255; + if (x < 0) x = 0; + var posx = x - 4.5; + x /= 255; + $('#' + id + '_lg_jGraduate_AlphaArrows').css({'margin-left':posx}); + $('#' + id + '_lg_jgraduate_rect').attr('fill-opacity', x); + x = parseInt(x*100); + $('#' + id + '_lg_jGraduate_OpacityInput').val(x); + $this.paint.alpha = x; + }; + + // handle dragging on the opacity slider + var bSlidingOpacity = false; + $('#' + id + '_lg_jGraduate_Opacity').mousedown(function(evt) { + setLgOpacitySlider(evt, $(this)); + bSlidingOpacity = true; + evt.preventDefault(); + }).mousemove(function(evt) { + if (bSlidingOpacity) { + setLgOpacitySlider(evt, $(this)); + evt.preventDefault(); + } + }).mouseup(function(evt) { + setLgOpacitySlider(evt, $(this)); + bSlidingOpacity = false; + evt.preventDefault(); + }); + + // handle dragging the stop around the swatch + var draggingStop = null; + var startx = -1, starty = -1; + // for whatever reason, Opera does not allow $('image.stop') here, + // and Firefox 1.5 does not allow $('.stop') + $('.stop, #color_picker_lg_jGraduate_GradContainer image').mousedown(function(evt) { + draggingStop = this; + startx = evt.clientX; + starty = evt.clientY; + evt.preventDefault(); + }); + $('#'+id+'_lg_jgraduate_svg').mousemove(function(evt) { + if (null != draggingStop) { + var dx = evt.clientX - startx; + var dy = evt.clientY - starty; + startx += dx; + starty += dy; + var x = parseFloat(draggingStop.getAttribute('x')) + dx; + var y = parseFloat(draggingStop.getAttribute('y')) + dy; + + // clamp stop to the swatch + if (x < MARGINX - STOP_RADIUS) x = MARGINX - STOP_RADIUS; + if (y < MARGINY - STOP_RADIUS) y = MARGINY - STOP_RADIUS; + if (x > MARGINX + SIZEX - STOP_RADIUS) x = MARGINX + SIZEX - STOP_RADIUS; + if (y > MARGINY + SIZEY - STOP_RADIUS) y = MARGINY + SIZEY - STOP_RADIUS; + + draggingStop.setAttribute('x', x); + draggingStop.setAttribute('y', y); + + // calculate stop offset + var fracx = (x - MARGINX + STOP_RADIUS)/SIZEX; + var fracy = (y - MARGINY + STOP_RADIUS)/SIZEY; + + if (draggingStop.id == (id+'_stop1')) { + x1Input.val(fracx); + y1Input.val(fracy); + $this.paint.linearGradient.setAttribute('x1', fracx); + $this.paint.linearGradient.setAttribute('y1', fracy); + } + else { + x2Input.val(fracx); + y2Input.val(fracy); + $this.paint.linearGradient.setAttribute('x2', fracx); + $this.paint.linearGradient.setAttribute('y2', fracy); + } + + evt.preventDefault(); + } + }); + $('#'+id+'_lg_jgraduate_svg').mouseup(function(evt) { + draggingStop = null; + }); + + var beginColor = stops[0].getAttribute('stop-color'); + if(!beginColor) beginColor = '#000'; + beginColorBox = $('#'+id+'_jGraduate_colorBoxBegin'); + beginColorBox.css({'background-color':beginColor}); + + var beginOpacity = stops[0].getAttribute('stop-opacity'); + if(!beginOpacity) beginOpacity = '1.0'; + $('#'+id+'lg_jGraduate_beginOpacity').html( (beginOpacity*100)+'%' ); + + var endColor = stops[stops.length-1].getAttribute('stop-color'); + if(!endColor) endColor = '#000'; + endColorBox = $('#'+id+'_jGraduate_colorBoxEnd'); + endColorBox.css({'background-color':endColor}); + + var endOpacity = stops[stops.length-1].getAttribute('stop-opacity'); + if(!endOpacity) endOpacity = '1.0'; + $('#'+id+'jGraduate_endOpacity').html( (endOpacity*100)+'%' ); + + $('#'+id+'_jGraduate_colorBoxBegin').click(function() { + $('div.jGraduate_LightBox').show(); + var colorbox = $(this); + var thisAlpha = (parseFloat(beginOpacity)*255).toString(16); + while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; } + color = beginColor.substr(1) + thisAlpha; + $('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'bottom': 15}).jPicker({ + window: { title: "Pick the start color and opacity for the gradient" }, + images: { clientPath: $settings.images.clientPath }, + color: { active: color, alphaSupport: true } + }, function(color){ + beginColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none"; + beginOpacity = color.get_A() ? color.get_A()/100 : 1; + colorbox.css('background', beginColor); + $('#'+id+'_jGraduate_beginOpacity').html(parseInt(beginOpacity*100)+'%'); + stops[0].setAttribute('stop-color', beginColor); + stops[0].setAttribute('stop-opacity', beginOpacity); + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_jGraduate_stopPicker').hide(); + }, null, function() { + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_jGraduate_stopPicker').hide(); + }); + }); + $('#'+id+'_jGraduate_colorBoxEnd').click(function() { + $('div.jGraduate_LightBox').show(); + var colorbox = $(this); + var thisAlpha = (parseFloat(endOpacity)*255).toString(16); + while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; } + color = endColor.substr(1) + thisAlpha; + $('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'top': 15}).jPicker({ + window: { title: "Pick the end color and opacity for the gradient" }, + images: { clientPath: $settings.images.clientPath }, + color: { active: color, alphaSupport: true } + }, function(color){ + endColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none"; + endOpacity = color.get_A() ? color.get_A()/100 : 1; + colorbox.css('background', endColor); + $('#'+id+'_jGraduate_endOpacity').html(parseInt(endOpacity*100)+'%'); + stops[1].setAttribute('stop-color', endColor); + stops[1].setAttribute('stop-opacity', endOpacity); + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_jGraduate_stopPicker').hide(); + }, null, function() { + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_jGraduate_stopPicker').hide(); + }); + }); + + // -------------- + var thisAlpha = ($this.paint.alpha*255/100).toString(16); while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; } - color = beginColor.substr(1) + thisAlpha; - $('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'bottom': 15}).jPicker({ - window: { title: "Pick the start color and opacity for the gradient" }, + color = $this.paint.solidColor == "none" ? "" : $this.paint.solidColor + thisAlpha; + colPicker.jPicker( + { + window: { title: $settings.window.pickerTitle }, images: { clientPath: $settings.images.clientPath }, color: { active: color, alphaSupport: true } - }, function(color){ - beginColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none"; - beginOpacity = color.get_A() ? color.get_A()/100 : 1; - colorbox.css('background', beginColor); - $('#'+id+'_jGraduate_beginOpacity').html(parseInt(beginOpacity*100)+'%'); - stops[0].setAttribute('stop-color', beginColor); - stops[0].setAttribute('stop-opacity', beginOpacity); - $('div.jGraduate_LightBox').hide(); - $('#'+id+'_jGraduate_stopPicker').hide(); - }, null, function() { - $('div.jGraduate_LightBox').hide(); - $('#'+id+'_jGraduate_stopPicker').hide(); - }); - }); - $('#'+id+'_jGraduate_colorBoxEnd').click(function() { - $('div.jGraduate_LightBox').show(); - var colorbox = $(this); - var thisAlpha = (parseFloat(endOpacity)*255).toString(16); + }, + function(color) { + $this.paint.type = "solidColor"; + $this.paint.alpha = color.get_A() ? color.get_A() : 100; + $this.paint.solidColor = color.get_Hex() ? color.get_Hex() : "none"; + $this.paint.linearGradient = null; + okClicked(); + }, + null, + function(){ cancelClicked(); } + ); + }()); + + + // Radial gradient + (function() { + var svg = document.getElementById(id + '_rg_jgraduate_svg'); + + // if we are sent a gradient, import it + if ($this.paint.type == "radialGradient") { + $this.paint.radialGradient.id = id+'_rg_jgraduate_grad'; + $this.paint.radialGradient = svg.appendChild($.cloneNode($this.paint.radialGradient)); + } else { // we create a gradient + var grad = svg.appendChild(document.createElementNS(ns.svg, 'radialGradient')); + grad.id = id+'_rg_jgraduate_grad'; + grad.setAttribute('cx','0.5'); + grad.setAttribute('cy','0.5'); + grad.setAttribute('r','0.5'); + + var begin = grad.appendChild(document.createElementNS(ns.svg, 'stop')); + begin.setAttribute('offset', '0.0'); + begin.setAttribute('stop-color', '#ff0000'); + + var end = grad.appendChild(document.createElementNS(ns.svg, 'stop')); + end.setAttribute('offset', '1.0'); + end.setAttribute('stop-color', '#ffff00'); + + $this.paint.radialGradient = grad; + } + + var gradalpha = $this.paint.alpha; + $('#' + id + '_rg_jGraduate_OpacityInput').val(gradalpha); + var posx = parseInt(255*(gradalpha/100)) - 4.5; + $('#' + id + '_rg_jGraduate_AlphaArrows').css({'margin-left':posx}); + + var grad = $this.paint.radialGradient; + + var cx = parseFloat(grad.getAttribute('cx')||0.5), + cy = parseFloat(grad.getAttribute('cy')||0.5), + fx = parseFloat(grad.getAttribute('fx')||0.5), + fy = parseFloat(grad.getAttribute('fy')||0.5); + + // No match, so show focus point + var showFocus = grad.getAttribute('fx') != null && !(cx == fx && cy == fy); + + var rect = document.createElementNS(ns.svg, 'rect'); + rect.id = id + '_rg_jgraduate_rect'; + rect.setAttribute('x', MARGINX); + rect.setAttribute('y', MARGINY); + rect.setAttribute('width', SIZEY); + rect.setAttribute('height', SIZEY); + rect.setAttribute('fill', 'url(#'+id+'_rg_jgraduate_grad)'); + rect.setAttribute('fill-opacity', '1.0'); + + rect = svg.appendChild(rect); + + $('#' + id + '_rg_jgraduate_rect').attr('fill-opacity', gradalpha/100); + + // stop visuals created here + var centerPoint = document.createElementNS(ns.svg, 'image'); + centerPoint.id = id + "_center_pt"; + centerPoint.setAttribute('class', 'stop'); + centerPoint.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint_c.png'); + centerPoint.setAttributeNS(ns.xlink, "title", "Center Point"); + centerPoint.appendChild(document.createElementNS(ns.svg, 'title')).appendChild( + document.createTextNode("Center Point")); + centerPoint.setAttribute('width', 18); + centerPoint.setAttribute('height', 18); + centerPoint.setAttribute('x', MARGINX + SIZEX*cx - STOP_RADIUS); + centerPoint.setAttribute('y', MARGINY + SIZEY*cy - STOP_RADIUS); + centerPoint.setAttribute('cursor', 'move'); + + + var focusPoint = document.createElementNS(ns.svg, 'image'); + focusPoint.id = id + "_focus_pt"; + focusPoint.setAttribute('class', 'stop'); + focusPoint.setAttributeNS(ns.xlink, 'href', $settings.images.clientPath + 'mappoint_f.png'); + focusPoint.setAttributeNS(ns.xlink, "title", "Focus Point"); + focusPoint.appendChild(document.createElementNS(ns.svg, 'title')).appendChild( + document.createTextNode("Focus Point")); + focusPoint.setAttribute('width', 18); + focusPoint.setAttribute('height', 18); + focusPoint.setAttribute('x', MARGINX + SIZEX*fx - STOP_RADIUS); + focusPoint.setAttribute('y', MARGINY + SIZEY*fy - STOP_RADIUS); + focusPoint.setAttribute('cursor', 'move'); + + // must append only after setting all attributes due to Webkit Bug 27952 + // https://bugs.webkit.org/show_bug.cgi?id=27592 + + // centerPoint is added last so it is moved first + focusPoint = svg.appendChild(focusPoint); + centerPoint = svg.appendChild(centerPoint); + + // bind GUI elements + $('#'+id+'_rg_jGraduate_Ok').bind('click', function() { + $this.paint.type = "radialGradient"; + $this.paint.solidColor = null; + okClicked(); + }); + $('#'+id+'_rg_jGraduate_Cancel').bind('click', function(paint) { + cancelClicked(); + }); + + var cx = $this.paint.radialGradient.getAttribute('cx'); + if(!cx) cx = "0.0"; + var cxInput = $('#'+id+'_jGraduate_cx'); + cxInput.val(cx); + cxInput.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 0.0; + } + $this.paint.radialGradient.setAttribute('cx', this.value); + centerPoint.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS); + }); + + var cy = $this.paint.radialGradient.getAttribute('cy'); + if(!cy) cy = "0.0"; + var cyInput = $('#'+id+'_jGraduate_cy'); + cyInput.val(cy); + cyInput.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 0.0; + } + $this.paint.radialGradient.setAttribute('cy', this.value); + centerPoint.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS); + }); + + var fx = $this.paint.radialGradient.getAttribute('fx'); + if(!fx) fx = "1.0"; + var fxInput = $('#'+id+'_jGraduate_fx'); + fxInput.val(fx); + fxInput.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 1.0; + } + $this.paint.radialGradient.setAttribute('fx', this.value); + focusPoint.setAttribute('x', MARGINX + SIZEX*this.value - STOP_RADIUS); + }); + + var fy = $this.paint.radialGradient.getAttribute('fy'); + if(!fy) fy = "0.0"; + var fyInput = $('#'+id+'_jGraduate_fy'); + fyInput.val(fy); + fyInput.change( function() { + if (isNaN(parseFloat(this.value)) || this.value < 0.0 || this.value > 1.0) { + this.value = 0.0; + } + $this.paint.radialGradient.setAttribute('fy', this.value); + focusPoint.setAttribute('y', MARGINY + SIZEY*this.value - STOP_RADIUS); + }); + + if(!showFocus) { + focusPoint.setAttribute('display', 'none'); + fxInput.val(""); + fyInput.val(""); + } + + $("#" + id + "_jGraduate_match_ctr")[0].checked = !showFocus; + + var lastfx, lastfy; + + $("#" + id + "_jGraduate_match_ctr").change(function() { + showFocus = !this.checked; + focusPoint.setAttribute('display', showFocus?'inline':'none'); + fxInput.val(""); + fyInput.val(""); + var grad = $this.paint.radialGradient; + if(!showFocus) { + lastfx = grad.getAttribute('fx'); + lastfy = grad.getAttribute('fy'); + grad.removeAttribute('fx'); + grad.removeAttribute('fy'); + } else { + var fx = lastfx || .5; + var fy = lastfy || .5; + grad.setAttribute('fx', fx); + grad.setAttribute('fy', fy); + fxInput.val(fx); + fyInput.val(fy); + } + }); + + var stops = $this.paint.radialGradient.getElementsByTagNameNS(ns.svg, 'stop'); + var numstops = stops.length; + // if there are not at least two stops, then + if (numstops < 2) { + while (numstops < 2) { + $this.paint.radialGradient.appendChild( document.createElementNS(ns.svg, 'stop') ); + ++numstops; + } + stops = $this.paint.radialGradient.getElementsByTagNameNS(ns.svg, 'stop'); + } + var radius = $this.paint.radialGradient.getAttribute('r')-0; + var radiusx = parseInt((245/2)*(radius)) - 4.5; + $('#' + id + '_jGraduate_RadiusArrows').css({'margin-left':radiusx}); + $('#' + id + '_jGraduate_RadiusInput').val(parseInt(radius*100)).change(function(e) { + var x = this.value / 100; + if(x < 0.01) { + x = 0.01; + } + + $this.paint.radialGradient.setAttribute('r', x); + // Allow higher value, but pretend it's the max for the slider + if(x > 2) x = 2; + var posx = parseInt((245/2) * x) - 4.5; + $('#' + id + '_jGraduate_RadiusArrows').css({'margin-left':posx}); + + }); + + var setRgOpacitySlider = function(e, div) { + var offset = div.offset(); + var x = (e.pageX - offset.left - parseInt(div.css('border-left-width'))); + if (x > 255) x = 255; + if (x < 0) x = 0; + var posx = x - 4.5; + x /= 255; + $('#' + id + '_rg_jGraduate_AlphaArrows').css({'margin-left':posx}); + $('#' + id + '_rg_jgraduate_rect').attr('fill-opacity', x); + x = parseInt(x*100); + $('#' + id + '_rg_jGraduate_OpacityInput').val(x); + $this.paint.alpha = x; + }; + + // handle dragging on the opacity slider + var bSlidingOpacity = false; + $('#' + id + '_rg_jGraduate_Opacity').mousedown(function(evt) { + setRgOpacitySlider(evt, $(this)); + bSlidingOpacity = true; + evt.preventDefault(); + }).mousemove(function(evt) { + if (bSlidingOpacity) { + setRgOpacitySlider(evt, $(this)); + evt.preventDefault(); + } + }).mouseup(function(evt) { + setRgOpacitySlider(evt, $(this)); + bSlidingOpacity = false; + evt.preventDefault(); + }); + + var setRadiusSlider = function(e, div) { + var offset = div.offset(); + var x = (e.pageX - offset.left - parseInt(div.css('border-left-width'))); + if (x > 245) x = 245; + if (x <= 1) x = 1; + var posx = x - 5; + x /= (245/2); + $('#' + id + '_jGraduate_RadiusArrows').css({'margin-left':posx}); + $this.paint.radialGradient.setAttribute('r', x); + x = parseInt(x*100); + + $('#' + id + '_jGraduate_RadiusInput').val(x); + }; + + // handle dragging on the radius slider + var bSlidingRadius = false; + $('#' + id + '_jGraduate_Radius').mousedown(function(evt) { + setRadiusSlider(evt, $(this)); + bSlidingRadius = true; + evt.preventDefault(); + }).mousemove(function(evt) { + if (bSlidingRadius) { + setRadiusSlider(evt, $(this)); + evt.preventDefault(); + } + }).mouseup(function(evt) { + setRadiusSlider(evt, $(this)); + bSlidingRadius = false; + evt.preventDefault(); + }); + + + // handle dragging the stop around the swatch + var draggingStop = null; + var startx = -1, starty = -1; + // for whatever reason, Opera does not allow $('image.stop') here, + // and Firefox 1.5 does not allow $('.stop') + $('.stop, #color_picker_rg_jGraduate_GradContainer image').mousedown(function(evt) { + draggingStop = this; + startx = evt.clientX; + starty = evt.clientY; + evt.preventDefault(); + }); + $('#'+id+'_rg_jgraduate_svg').mousemove(function(evt) { + if (null != draggingStop) { + var dx = evt.clientX - startx; + var dy = evt.clientY - starty; + startx += dx; + starty += dy; + var x = parseFloat(draggingStop.getAttribute('x')) + dx; + var y = parseFloat(draggingStop.getAttribute('y')) + dy; + + // clamp stop to the swatch + if (x < MARGINX - STOP_RADIUS) x = MARGINX - STOP_RADIUS; + if (y < MARGINY - STOP_RADIUS) y = MARGINY - STOP_RADIUS; + if (x > MARGINX + SIZEX - STOP_RADIUS) x = MARGINX + SIZEX - STOP_RADIUS; + if (y > MARGINY + SIZEY - STOP_RADIUS) y = MARGINY + SIZEY - STOP_RADIUS; + + draggingStop.setAttribute('x', x); + draggingStop.setAttribute('y', y); + + // calculate stop offset + var fracx = (x - MARGINX + STOP_RADIUS)/SIZEX; + var fracy = (y - MARGINY + STOP_RADIUS)/SIZEY; + + + if (draggingStop.id == (id+'_center_pt')) { + cxInput.val(fracx); + cyInput.val(fracy); + $this.paint.radialGradient.setAttribute('cx', fracx); + $this.paint.radialGradient.setAttribute('cy', fracy); + + if(!showFocus) { + $this.paint.radialGradient.setAttribute('fx', fracx); + $this.paint.radialGradient.setAttribute('fy', fracy); + } + } + else { + fxInput.val(fracx); + fyInput.val(fracy); + $this.paint.radialGradient.setAttribute('fx', fracx); + $this.paint.radialGradient.setAttribute('fy', fracy); + } + + evt.preventDefault(); + } + }); + $('#'+id+'_rg_jgraduate_svg').mouseup(function(evt) { + draggingStop = null; + }); + + var centerColor = stops[0].getAttribute('stop-color'); + if(!centerColor) centerColor = '#000'; + centerColorBox = $('#'+id+'_jGraduate_colorBoxCenter'); + centerColorBox.css({'background-color':centerColor}); + + var centerOpacity = stops[0].getAttribute('stop-opacity'); + if(!centerOpacity) centerOpacity = '1.0'; + $('#'+id+'jGraduate_centerOpacity').html( (centerOpacity*100)+'%' ); + + var outerColor = stops[stops.length-1].getAttribute('stop-color'); + if(!outerColor) outerColor = '#000'; + outerColorBox = $('#'+id+'_jGraduate_colorBoxOuter'); + outerColorBox.css({'background-color':outerColor}); + + var outerOpacity = stops[stops.length-1].getAttribute('stop-opacity'); + if(!outerOpacity) outerOpacity = '1.0'; + $('#'+id+'rg_jGraduate_outerOpacity').html( (outerOpacity*100)+'%' ); + + $('#'+id+'_jGraduate_colorBoxCenter').click(function() { + $('div.jGraduate_LightBox').show(); + var colorbox = $(this); + var thisAlpha = (parseFloat(centerOpacity)*255).toString(16); + while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; } + color = centerColor.substr(1) + thisAlpha; + $('#'+id+'_rg_jGraduate_stopPicker').css({'left': 100, 'bottom': 15}).jPicker({ + window: { title: "Pick the center color and opacity for the gradient" }, + images: { clientPath: $settings.images.clientPath }, + color: { active: color, alphaSupport: true } + }, function(color){ + centerColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none"; + centerOpacity = color.get_A() ? color.get_A()/100 : 1; + colorbox.css('background', centerColor); + $('#'+id+'_rg_jGraduate_centerOpacity').html(parseInt(centerOpacity*100)+'%'); + stops[0].setAttribute('stop-color', centerColor); + stops[0].setAttribute('stop-opacity', centerOpacity); + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_rg_jGraduate_stopPicker').hide(); + }, null, function() { + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_rg_jGraduate_stopPicker').hide(); + }); + }); + $('#'+id+'_jGraduate_colorBoxOuter').click(function() { + $('div.jGraduate_LightBox').show(); + var colorbox = $(this); + var thisAlpha = (parseFloat(outerOpacity)*255).toString(16); + while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; } + color = outerColor.substr(1) + thisAlpha; + $('#'+id+'_rg_jGraduate_stopPicker').css({'left': 100, 'top': 15}).jPicker({ + window: { title: "Pick the outer color and opacity for the gradient" }, + images: { clientPath: $settings.images.clientPath }, + color: { active: color, alphaSupport: true } + }, function(color){ + outerColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none"; + outerOpacity = color.get_A() ? color.get_A()/100 : 1; + colorbox.css('background', outerColor); + $('#'+id+'_jGraduate_outerOpacity').html(parseInt(outerOpacity*100)+'%'); + stops[1].setAttribute('stop-color', outerColor); + stops[1].setAttribute('stop-opacity', outerOpacity); + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_rg_jGraduate_stopPicker').hide(); + }, null, function() { + $('div.jGraduate_LightBox').hide(); + $('#'+id+'_rg_jGraduate_stopPicker').hide(); + }); + }); + + // -------------- + var thisAlpha = ($this.paint.alpha*255/100).toString(16); while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; } - color = endColor.substr(1) + thisAlpha; - $('#'+id+'_jGraduate_stopPicker').css({'left': 100, 'top': 15}).jPicker({ - window: { title: "Pick the end color and opacity for the gradient" }, + color = $this.paint.solidColor == "none" ? "" : $this.paint.solidColor + thisAlpha; + colPicker.jPicker( + { + window: { title: $settings.window.pickerTitle }, images: { clientPath: $settings.images.clientPath }, color: { active: color, alphaSupport: true } - }, function(color){ - endColor = color.get_Hex() ? ('#'+color.get_Hex()) : "none"; - endOpacity = color.get_A() ? color.get_A()/100 : 1; - colorbox.css('background', endColor); - $('#'+id+'_jGraduate_endOpacity').html(parseInt(endOpacity*100)+'%'); - stops[1].setAttribute('stop-color', endColor); - stops[1].setAttribute('stop-opacity', endOpacity); - $('div.jGraduate_LightBox').hide(); - $('#'+id+'_jGraduate_stopPicker').hide(); - }, null, function() { - $('div.jGraduate_LightBox').hide(); - $('#'+id+'_jGraduate_stopPicker').hide(); - }); - }); - - // -------------- - var thisAlpha = ($this.paint.alpha*255/100).toString(16); - while (thisAlpha.length < 2) { thisAlpha = "0" + thisAlpha; } - color = $this.paint.solidColor == "none" ? "" : $this.paint.solidColor + thisAlpha; - colPicker.jPicker( - { - window: { title: $settings.window.pickerTitle }, - images: { clientPath: $settings.images.clientPath }, - color: { active: color, alphaSupport: true } - }, - function(color) { - $this.paint.type = "solidColor"; - $this.paint.alpha = color.get_A() ? color.get_A() : 100; - $this.paint.solidColor = color.get_Hex() ? color.get_Hex() : "none"; - $this.paint.linearGradient = null; - okClicked(); - }, - null, - function(){ cancelClicked(); } - ); - - $(idref + ' .jGraduate_tab_color').click( function(){ - $(idref + ' .jGraduate_tab_lingrad').removeClass('jGraduate_tab_current'); - $(idref + ' .jGraduate_tab_color').addClass('jGraduate_tab_current'); - lgPicker.hide(); - colPicker.show(); - }); - $(idref + ' .jGraduate_tab_lingrad').click( function(){ - $(idref + ' .jGraduate_tab_color').removeClass('jGraduate_tab_current'); - $(idref + ' .jGraduate_tab_lingrad').addClass('jGraduate_tab_current'); - colPicker.hide(); - lgPicker.show(); + }, + function(color) { + $this.paint.type = "solidColor"; + $this.paint.alpha = color.get_A() ? color.get_A() : 100; + $this.paint.solidColor = color.get_Hex() ? color.get_Hex() : "none"; + $this.paint.radialGradient = null; + okClicked(); + }, + null, + function(){ cancelClicked(); } + ); + }()); + + var tabs = $(idref + ' .jGraduate_tabs li'); + tabs.click(function() { + tabs.removeClass('jGraduate_tab_current'); + $(this).addClass('jGraduate_tab_current'); + $(idref + " > div").hide(); + $(idref + ' .jGraduate_' + $(this).attr('data-type') + 'Pick').show(); }); - if ($this.paint.type == "linearGradient") { - lgPicker.show(); - colPicker.hide(); - $(idref + ' .jGraduate_tab_color').removeClass('jGraduate_tab_current'); - $(idref + ' .jGraduate_tab_lingrad').addClass('jGraduate_tab_current'); + $(idref + " > div").hide(); + tabs.removeClass('jGraduate_tab_current'); + var tab; + switch ( $this.paint.type ) { + case 'linearGradient': + tab = $(idref + ' .jGraduate_tab_lingrad'); + break; + case 'radialGradient': + tab = $(idref + ' .jGraduate_tab_radgrad'); + break; + default: + tab = $(idref + ' .jGraduate_tab_color'); + break; } - else { - colPicker.show(); - lgPicker.hide(); - $(idref + ' .jGraduate_tab_color').addClass('jGraduate_tab_current'); - $(idref + ' .jGraduate_tab_lingrad').removeClass('jGraduate_tab_current'); - } + tab.addClass('jGraduate_tab_current').click(); $this.show(); }); }; +})(); \ No newline at end of file
--- a/htdocs/svg-edit/editor/jquery-ui/jquery-ui-1.7.2.custom.min.js Fri Apr 23 22:29:49 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* - * jQuery UI 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI - */ -jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,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,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* - * jQuery UI Draggable 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * ui.core.js - */ -(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,offset:this.positionAbs}}}));a.extend(a.ui.draggable,{version:"1.7.2",eventPrefix:"drag",defaults:{addClasses:true,appendTo:"parent",axis:false,cancel:":input,option",connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,delay:0,distance:1,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false}});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(b,c){var e=a(this).data("draggable").options;var d=a.makeArray(a(e.stack.group)).sort(function(g,f){return(parseInt(a(g).css("zIndex"),10)||e.stack.min)-(parseInt(a(f).css("zIndex"),10)||e.stack.min)});a(d).each(function(f){this.style.zIndex=e.stack.min+f});this[0].style.zIndex=e.stack.min+d.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);; -/* jQuery UI Slider 1.7.2 - * - * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Slider - * - * Depends: - * ui.core.js - */ -(function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("<div></div>");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length<c.values.length){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d<b))){d=b}if(d!=this.values(e)){var c=this.values();c[e]=d;var h=this._trigger("slide",f,{handle:this.handles[e],value:d,values:c});var b=this.values(e?0:1);if(h!==false){this.values(e,d,(f.type=="mousedown"&&this.options.animate),true)}}}else{if(d!=this.value()){var h=this._trigger("slide",f,{handle:this.handles[e],value:d});if(h!==false){this._setData("value",d,(f.type=="mousedown"&&this.options.animate))}}}},_stop:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("stop",d,b)},_change:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("change",d,b)},value:function(b){if(arguments.length){this._setData("value",b);this._change(null,0)}return this._value()},values:function(b,e,c,d){if(arguments.length>1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);; \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/jquery-ui/jquery-ui-1.8.custom.min.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,84 @@ +/*! + * jQuery UI 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + *//* + * jQuery UI 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(a){a.ui={version:"1.8",plugin:{add:function(c,d,f){var e=a.ui[c].prototype;for(var b in f){e.plugins[b]=e.plugins[b]||[];e.plugins[b].push([d,f[b]])}},call:function(b,d,c){var f=b.plugins[d];if(!f||!b.element[0].parentNode){return}for(var e=0;e<f.length;e++){if(b.options[f[e][0]]){f[e][1].apply(b.element,c)}}}},contains:function(d,c){return document.compareDocumentPosition?d.compareDocumentPosition(c)&16:d!==c&&d.contains(c)},hasScroll:function(e,c){if(a(e).css("overflow")=="hidden"){return false}var b=(c&&c=="left")?"scrollLeft":"scrollTop",d=false;if(e[b]>0){return true}e[b]=1;d=(e[b]>0);e[b]=0;return d},isOverAxis:function(c,b,d){return(c>b)&&(c<(b+d))},isOver:function(g,c,f,e,b,d){return a.ui.isOverAxis(g,f,b)&&a.ui.isOverAxis(c,e,d)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,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,SHIFT:16,SPACE:32,TAB:9,UP:38}};a.fn.extend({_focus:a.fn.focus,focus:function(b,c){return typeof b==="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus();(c&&c.call(d))},b)}):this._focus.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var b;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){b=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{b=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!b.length?a(document):b},zIndex:function(e){if(e!==undefined){return this.css("zIndex",e)}if(this.length){var c=a(this[0]),b,d;while(c.length&&c[0]!==document){b=c.css("position");if(b=="absolute"||b=="relative"||b=="fixed"){d=parseInt(c.css("zIndex"));if(!isNaN(d)&&d!=0){return d}}c=c.parent()}}return 0}});a.extend(a.expr[":"],{data:function(d,c,b){return !!a.data(d,b[3])},focusable:function(c){var d=c.nodeName.toLowerCase(),b=a.attr(c,"tabindex");return(/input|select|textarea|button|object/.test(d)?!c.disabled:"a"==d||"area"==d?c.href||!isNaN(b):!isNaN(b))&&!a(c)["area"==d?"parents":"closest"](":hidden").length},tabbable:function(c){var b=a.attr(c,"tabindex");return(isNaN(b)||b>=0)&&a(c).is(":focusable")}})})(jQuery);;/*! + * jQuery UI Widget 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Widget + *//* + * jQuery UI Widget 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Widget + */ +(function(b){var a=b.fn.remove;b.fn.remove=function(c,d){return this.each(function(){if(!d){if(!c||b.filter(c,[this]).length){b("*",this).add(this).each(function(){b(this).triggerHandler("remove")})}}return a.call(b(this),c,d)})};b.widget=function(d,f,c){var e=d.split(".")[0],h;d=d.split(".")[1];h=e+"-"+d;if(!c){c=f;f=b.Widget}b.expr[":"][h]=function(i){return !!b.data(i,d)};b[e]=b[e]||{};b[e][d]=function(i,j){if(arguments.length){this._createWidget(i,j)}};var g=new f();g.options=b.extend({},g.options);b[e][d].prototype=b.extend(true,g,{namespace:e,widgetName:d,widgetEventPrefix:b[e][d].prototype.widgetEventPrefix||d,widgetBaseClass:h},c);b.widget.bridge(d,b[e][d])};b.widget.bridge=function(d,c){b.fn[d]=function(g){var e=typeof g==="string",f=Array.prototype.slice.call(arguments,1),h=this;g=!e&&f.length?b.extend.apply(null,[true,g].concat(f)):g;if(e&&g.substring(0,1)==="_"){return h}if(e){this.each(function(){var i=b.data(this,d),j=i&&b.isFunction(i[g])?i[g].apply(i,f):i;if(j!==i&&j!==undefined){h=j;return false}})}else{this.each(function(){var i=b.data(this,d);if(i){if(g){i.option(g)}i._init()}else{b.data(this,d,new c(g,this))}})}return h}};b.Widget=function(c,d){if(arguments.length){this._createWidget(c,d)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(d,e){this.element=b(e).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(e)[this.widgetName],d);var c=this;this.element.bind("remove."+this.widgetName,function(){c.destroy()});this._create();this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled")},widget:function(){return this.element},option:function(e,f){var d=e,c=this;if(arguments.length===0){return b.extend({},c.options)}if(typeof e==="string"){if(f===undefined){return this.options[e]}d={};d[e]=f}b.each(d,function(g,h){c._setOption(g,h)});return c},_setOption:function(c,d){this.options[c]=d;if(c==="disabled"){this.widget()[d?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",d)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(d,e,f){var h=this.options[d];e=b.Event(e);e.type=(d===this.widgetEventPrefix?d:this.widgetEventPrefix+d).toLowerCase();f=f||{};if(e.originalEvent){for(var c=b.event.props.length,g;c;){g=b.event.props[--c];e[g]=e.originalEvent[g]}}this.element.trigger(e,f);return !(b.isFunction(h)&&h.call(this.element[0],e,f)===false||e.isDefaultPrevented())}}})(jQuery);;/*! + * jQuery UI Mouse 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + *//* + * jQuery UI Mouse 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(a){a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(c){return b._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(b._preventClickEvent){b._preventClickEvent=false;c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(d){d.originalEvent=d.originalEvent||{};if(d.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(d));this._mouseDownEvent=d;var c=this,e=(d.which==1),b=(typeof this.options.cancel=="string"?a(d.target).parents().add(d.target).filter(this.options.cancel).length:false);if(!e||b||!this._mouseCapture(d)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(d)!==false);if(!this._mouseStarted){d.preventDefault();return true}}this._mouseMoveDelegate=function(f){return c._mouseMove(f)};this._mouseUpDelegate=function(f){return c._mouseUp(f)};a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(a.browser.safari||d.preventDefault());d.originalEvent.mouseHandled=true;return true},_mouseMove:function(b){if(a.browser.msie&&!b.button){return this._mouseUp(b)}if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,b)!==false);(this._mouseStarted?this._mouseDrag(b):this._mouseUp(b))}return !this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(b.target==this._mouseDownEvent.target);this._mouseStop(b)}return false},_mouseDistanceMet:function(b){return(Math.max(Math.abs(this._mouseDownEvent.pageX-b.pageX),Math.abs(this._mouseDownEvent.pageY-b.pageY))>=this.options.distance)},_mouseDelayMet:function(b){return this.mouseDelayMet},_mouseStart:function(b){},_mouseDrag:function(b){},_mouseStop:function(b){},_mouseCapture:function(b){return true}})})(jQuery);;/* + * jQuery UI Draggable 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */(function(a){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;(c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt));if(c.containment){this._setContainment()}if(this._trigger("start",b)===false){this._clear();return false}this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();if(this._trigger("drag",b,c)===false){this._mouseUp({});return false}this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode){return false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(b._trigger("stop",c)!==false){b._clear()}})}else{if(this._trigger("stop",c)!==false){this._clear()}}return false},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({})}else{this._clear()}return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(typeof b=="string"){b=b.split(" ")}if(a.isArray(b)){b={left:+b[0],top:+b[1]||0}}if("left" in b){this.offset.click.left=b.left+this.margins.left}if("right" in b){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if("top" in b){this.offset.click.top=b.top+this.margins.top}if("bottom" in b){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.left<this.containment[0]){d=this.containment[0]+this.offset.click.left}if(e.pageY-this.offset.click.top<this.containment[1]){c=this.containment[1]+this.offset.click.top}if(e.pageX-this.offset.click.left>this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:(!(g-this.offset.click.top<this.containment[1])?g-h.grid[1]:g+h.grid[1])):g;var f=this.originalPageX+Math.round((d-this.originalPageX)/h.grid[0])*h.grid[0];d=this.containment?(!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:(!(f-this.offset.click.left<this.containment[0])?f-h.grid[0]:f+h.grid[0])):f}}return{top:(c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(i?0:b.scrollTop())))),left:(d-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:b.scrollLeft())))}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false},_trigger:function(b,c,d){d=d||this._uiHash();a.ui.plugin.call(this,b,[c,d]);if(b=="drag"){this.positionAbs=this._convertPositionTo("absolute")}return a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(b){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});a.extend(a.ui.draggable,{version:"1.8"});a.ui.plugin.add("draggable","connectToSortable",{start:function(c,e){var d=a(this).data("draggable"),f=d.options,b=a.extend({},e,{item:d.element});d.sortables=[];a(f.connectToSortable).each(function(){var g=a.data(this,"sortable");if(g&&!g.options.disabled){d.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",c,b)}})},stop:function(c,e){var d=a(this).data("draggable"),b=a.extend({},e,{item:d.element});a.each(d.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;d.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert){this.instance.options.revert=true}this.instance._mouseStop(c);this.instance.options.helper=this.instance.options._helper;if(d.options.helper=="original"){this.instance.currentItem.css({top:"auto",left:"auto"})}}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",c,b)}})},drag:function(c,f){var e=a(this).data("draggable"),b=this;var d=function(i){var n=this.offset.click.top,m=this.offset.click.left;var g=this.positionAbs.top,k=this.positionAbs.left;var j=i.height,l=i.width;var p=i.top,h=i.left;return a.ui.isOver(g+n,k+m,p,h,j,l)};a.each(e.sortables,function(g){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(b).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return f.helper[0]};c.target=this.instance.currentItem[0];this.instance._mouseCapture(c,true);this.instance._mouseStart(c,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top;e._trigger("toSortable",c);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}if(this.instance.currentItem){this.instance._mouseDrag(c)}}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",c,this.instance._uiHash(this.instance));this.instance._mouseStop(c,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder){this.instance.placeholder.remove()}e._trigger("fromSortable",c);e.dropped=false}}})}});a.ui.plugin.add("draggable","cursor",{start:function(c,d){var b=a("body"),e=a(this).data("draggable").options;if(b.css("cursor")){e._cursor=b.css("cursor")}b.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._cursor){a("body").css("cursor",d._cursor)}}});a.ui.plugin.add("draggable","iframeFix",{start:function(b,c){var d=a(this).data("draggable").options;a(d.iframeFix===true?"iframe":d.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop+f.scrollSpeed}else{if(d.pageY-c.overflowOffset.top<f.scrollSensitivity){c.scrollParent[0].scrollTop=b=c.scrollParent[0].scrollTop-f.scrollSpeed}}}if(!f.axis||f.axis!="y"){if((c.overflowOffset.left+c.scrollParent[0].offsetWidth)-d.pageX<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft+f.scrollSpeed}else{if(d.pageX-c.overflowOffset.left<f.scrollSensitivity){c.scrollParent[0].scrollLeft=b=c.scrollParent[0].scrollLeft-f.scrollSpeed}}}}else{if(!f.axis||f.axis!="x"){if(d.pageY-a(document).scrollTop()<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()-f.scrollSpeed)}else{if(a(window).height()-(d.pageY-a(document).scrollTop())<f.scrollSensitivity){b=a(document).scrollTop(a(document).scrollTop()+f.scrollSpeed)}}}if(!f.axis||f.axis!="y"){if(d.pageX-a(document).scrollLeft()<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()-f.scrollSpeed)}else{if(a(window).width()-(d.pageX-a(document).scrollLeft())<f.scrollSensitivity){b=a(document).scrollLeft(a(document).scrollLeft()+f.scrollSpeed)}}}}if(b!==false&&a.ui.ddmanager&&!f.dropBehaviour){a.ui.ddmanager.prepareOffsets(c,d)}}});a.ui.plugin.add("draggable","snap",{start:function(c,d){var b=a(this).data("draggable"),e=b.options;b.snapElements=[];a(e.snap.constructor!=String?(e.snap.items||":data(draggable)"):e.snap).each(function(){var g=a(this);var f=g.offset();if(this!=b.element[0]){b.snapElements.push({item:this,width:g.outerWidth(),height:g.outerHeight(),top:f.top,left:f.left})}})},drag:function(u,p){var g=a(this).data("draggable"),q=g.options;var y=q.snapTolerance;var x=p.offset.left,w=x+g.helperProportions.width,f=p.offset.top,e=f+g.helperProportions.height;for(var v=g.snapElements.length-1;v>=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y<x&&x<n+y&&m-y<f&&f<A+y)||(s-y<x&&x<n+y&&m-y<e&&e<A+y)||(s-y<w&&w<n+y&&m-y<f&&f<A+y)||(s-y<w&&w<n+y&&m-y<e&&e<A+y))){if(g.snapElements[v].snapping){(g.options.snap.release&&g.options.snap.release.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=false;continue}if(q.snapMode!="inner"){var c=Math.abs(m-e)<=y;var z=Math.abs(A-f)<=y;var j=Math.abs(s-w)<=y;var k=Math.abs(n-x)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m-g.helperProportions.height,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s-g.helperProportions.width}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n}).left-g.margins.left}}var h=(c||z||j||k);if(q.snapMode!="outer"){var c=Math.abs(m-f)<=y;var z=Math.abs(A-e)<=y;var j=Math.abs(s-x)<=y;var k=Math.abs(n-w)<=y;if(c){p.position.top=g._convertPositionTo("relative",{top:m,left:0}).top-g.margins.top}if(z){p.position.top=g._convertPositionTo("relative",{top:A-g.helperProportions.height,left:0}).top-g.margins.top}if(j){p.position.left=g._convertPositionTo("relative",{top:0,left:s}).left-g.margins.left}if(k){p.position.left=g._convertPositionTo("relative",{top:0,left:n-g.helperProportions.width}).left-g.margins.left}}if(!g.snapElements[v].snapping&&(c||z||j||k||h)){(g.options.snap.snap&&g.options.snap.snap.call(g.element,u,a.extend(g._uiHash(),{snapItem:g.snapElements[v].item})))}g.snapElements[v].snapping=(c||z||j||k||h)}}});a.ui.plugin.add("draggable","stack",{start:function(c,d){var f=a(this).data("draggable").options;var e=a.makeArray(a(f.stack)).sort(function(h,g){return(parseInt(a(h).css("zIndex"),10)||0)-(parseInt(a(g).css("zIndex"),10)||0)});if(!e.length){return}var b=parseInt(e[0].style.zIndex)||0;a(e).each(function(g){this.style.zIndex=b+g});this[0].style.zIndex=b+e.length}});a.ui.plugin.add("draggable","zIndex",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("zIndex")){e._zIndex=b.css("zIndex")}b.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._zIndex){a(c.helper).css("zIndex",d._zIndex)}}})})(jQuery);;/* + * jQuery UI Slider 1.8 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */(function(b){var a=5;b.widget("ui.slider",b.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var c=this,d=this.options;this._keySliding=false;this._mouseSliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");if(d.disabled){this.element.addClass("ui-slider-disabled ui-disabled")}this.range=b([]);if(d.range){if(d.range===true){this.range=b("<div></div>");if(!d.values){d.values=[this._valueMin(),this._valueMin()]}if(d.values.length&&d.values.length!=2){d.values=[d.values[0],d.values[0]]}}else{this.range=b("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(d.range=="min"||d.range=="max"){this.range.addClass("ui-slider-range-"+d.range)}this.range.addClass("ui-widget-header")}if(b(".ui-slider-handle",this.element).length==0){b('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(d.values&&d.values.length){while(b(".ui-slider-handle",this.element).length<d.values.length){b('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=b(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(e){e.preventDefault()}).hover(function(){if(!d.disabled){b(this).addClass("ui-state-hover")}},function(){b(this).removeClass("ui-state-hover")}).focus(function(){if(!d.disabled){b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");b(this).addClass("ui-state-focus")}else{b(this).blur()}}).blur(function(){b(this).removeClass("ui-state-focus")});this.handles.each(function(e){b(this).data("index.ui-slider-handle",e)});this.handles.keydown(function(j){var g=true;var f=b(this).data("index.ui-slider-handle");if(c.options.disabled){return}switch(j.keyCode){case b.ui.keyCode.HOME:case b.ui.keyCode.END:case b.ui.keyCode.PAGE_UP:case b.ui.keyCode.PAGE_DOWN:case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:g=false;if(!c._keySliding){c._keySliding=true;b(this).addClass("ui-state-active");c._start(j,f)}break}var h,e,i=c._step();if(c.options.values&&c.options.values.length){h=e=c.values(f)}else{h=e=c.value()}switch(j.keyCode){case b.ui.keyCode.HOME:e=c._valueMin();break;case b.ui.keyCode.END:e=c._valueMax();break;case b.ui.keyCode.PAGE_UP:e=h+((c._valueMax()-c._valueMin())/a);break;case b.ui.keyCode.PAGE_DOWN:e=h-((c._valueMax()-c._valueMin())/a);break;case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:if(h==c._valueMax()){return}e=h+i;break;case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:if(h==c._valueMin()){return}e=h-i;break}c._slide(j,f,e);return g}).keyup(function(f){var e=b(this).data("index.ui-slider-handle");if(c._keySliding){c._keySliding=false;c._stop(f,e);c._change(f,e);b(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy();return this},_mouseCapture:function(e){var f=this.options;if(f.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var i={x:e.pageX,y:e.pageY};var k=this._normValueFromMouse(i);var d=this._valueMax()-this._valueMin()+1,g;var l=this,j;this.handles.each(function(m){var n=Math.abs(k-l.values(m));if(d>n){d=n;g=b(this);j=m}});if(f.range==true&&this.values(1)==f.min){g=b(this.handles[++j])}this._start(e,j);this._mouseSliding=true;l._handleIndex=j;g.addClass("ui-state-active").focus();var h=g.offset();var c=!b(e.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=c?{left:0,top:0}:{left:e.pageX-h.left-(g.width()/2),top:e.pageY-h.top-(g.height()/2)-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)};k=this._normValueFromMouse(i);this._slide(e,j,k);this._animateOff=true;return true},_mouseStart:function(c){return true},_mouseDrag:function(e){var c={x:e.pageX,y:e.pageY};var d=this._normValueFromMouse(c);this._slide(e,this._handleIndex,d);return false},_mouseStop:function(c){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(c,this._handleIndex);this._change(c,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var d,i;if("horizontal"==this.orientation){d=this.elementSize.width;i=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{d=this.elementSize.height;i=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var g=(i/d);if(g>1){g=1}if(g<0){g=0}if("vertical"==this.orientation){g=1-g}var f=this._valueMax()-this._valueMin(),j=g*f,c=j%this.options.step,h=this._valueMin()+j-c;if(c>(this.options.step/2)){h+=this.options.step}return parseFloat(h.toFixed(5))},_start:function(e,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("start",e,c)},_slide:function(g,f,e){var h=this.handles[f];if(this.options.values&&this.options.values.length){var c=this.values(f?0:1);if((this.options.values.length==2&&this.options.range===true)&&((f==0&&e>c)||(f==1&&e<c))){e=c}if(e!=this.values(f)){var d=this.values();d[f]=e;var i=this._trigger("slide",g,{handle:this.handles[f],value:e,values:d});var c=this.values(f?0:1);if(i!==false){this.values(f,e,true)}}}else{if(e!=this.value()){var i=this._trigger("slide",g,{handle:this.handles[f],value:e});if(i!==false){this.value(e)}}}},_stop:function(e,d){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("stop",e,c)},_change:function(e,d){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[d],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(d);c.values=this.values()}this._trigger("change",e,c)}},value:function(c){if(arguments.length){this.options.value=this._trimValue(c);this._refreshValue();this._change(null,0)}return this._value()},values:function(e,h){if(arguments.length>1){this.options.values[e]=this._trimValue(h);this._refreshValue();this._change(null,e)}if(arguments.length){if(b.isArray(arguments[0])){var g=this.options.values,d=arguments[0];for(var f=0,c=g.length;f<c;f++){g[f]=this._trimValue(d[f]);this._change(null,f)}this._refreshValue()}else{if(this.options.values&&this.options.values.length){return this._values(e)}else{return this.value()}}}else{return this._values()}},_setOption:function(d,e){var c,f=0;if(jQuery.isArray(this.options.values)){f=this.options.values.length}b.Widget.prototype._setOption.apply(this,arguments);switch(d){case"disabled":if(e){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case"value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case"values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c++){this._change(null,c)}this._animateOff=false;break}},_step:function(){var c=this.options.step;return c},_value:function(){var c=this.options.value;c=this._trimValue(c);return c},_values:function(d){if(arguments.length){var g=this.options.values[d];g=this._trimValue(g);return g}else{var f=this.options.values.slice();for(var e=0,c=f.length;e<c;e++){f[e]=this._trimValue(f[e])}return f}},_trimValue:function(c){if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c},_valueMin:function(){var c=this.options.min;return c},_valueMax:function(){var c=this.options.max;return c},_refreshValue:function(){var g=this.options.range,e=this.options,m=this;var d=(!this._animateOff)?e.animate:false;if(this.options.values&&this.options.values.length){var j,i;this.handles.each(function(q,o){var p=(m.values(q)-m._valueMin())/(m._valueMax()-m._valueMin())*100;var n={};n[m.orientation=="horizontal"?"left":"bottom"]=p+"%";b(this).stop(1,1)[d?"animate":"css"](n,e.animate);if(m.options.range===true){if(m.orientation=="horizontal"){(q==0)&&m.range.stop(1,1)[d?"animate":"css"]({left:p+"%"},e.animate);(q==1)&&m.range[d?"animate":"css"]({width:(p-lastValPercent)+"%"},{queue:false,duration:e.animate})}else{(q==0)&&m.range.stop(1,1)[d?"animate":"css"]({bottom:(p)+"%"},e.animate);(q==1)&&m.range[d?"animate":"css"]({height:(p-lastValPercent)+"%"},{queue:false,duration:e.animate})}}lastValPercent=p})}else{var k=this.value(),h=this._valueMin(),l=this._valueMax(),f=l!=h?(k-h)/(l-h)*100:0;var c={};c[m.orientation=="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[d?"animate":"css"](c,e.animate);(g=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[d?"animate":"css"]({width:f+"%"},e.animate);(g=="max")&&(this.orientation=="horizontal")&&this.range[d?"animate":"css"]({width:(100-f)+"%"},{queue:false,duration:e.animate});(g=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[d?"animate":"css"]({height:f+"%"},e.animate);(g=="max")&&(this.orientation=="vertical")&&this.range[d?"animate":"css"]({height:(100-f)+"%"},{queue:false,duration:e.animate})}}});b.extend(b.ui.slider,{version:"1.8"})})(jQuery);; \ No newline at end of file
--- a/htdocs/svg-edit/editor/jquery.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/jquery.js Fri Apr 23 22:38:00 2010 +0200 @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.4.1 + * jQuery JavaScript Library v1.4.2 * http://jquery.com/ * * Copyright 2010, John Resig @@ -11,142 +11,144 @@ * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: Mon Jan 25 19:43:33 2010 -0500 + * Date: Sat Feb 13 22:33:48 2010 -0500 */ -(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j? -e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f, -a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType=== -11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment(); -c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent, -va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]], -[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a, -this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this, -a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice}; -c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$= -Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload", -c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false; -return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]|| -r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d= -a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!== -v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b}, -uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded", -L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support= -{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null}; -b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild); -c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props= -{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true, -{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this, -a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d); -return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]|| -a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m= -c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca), -d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o= -a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value|| -{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val()); -if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d); -f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText= -""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j= -function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a, -d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+ -s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a, -"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d, -b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b, -d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), -fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| -d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b= -0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true}; -c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b= -a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!== -"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this, -"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"|| -d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a= -a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this, -f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a, -b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+ -a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector, -live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.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".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache=== -k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g|| -typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u= -l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&& -y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q, -h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da= -l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, -TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length, -p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p= -h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}}, -TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&& -"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true); -return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"=== -g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2=== -0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+ -q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>= -0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="? -k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g}; -try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g=== -h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END, -l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id"); -return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href", -2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length=== -0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[], -l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a, -function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d= -0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)> --1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(), -a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")}, -nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e): -e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!== -b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"], -col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)}, -wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length? -d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments, -false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&& -!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)|| -["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this, -b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j=== -"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n, -Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&& -this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j=== -"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild); -j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i, -Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})}; -c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a, -b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&& -a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left= -a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb= -J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b= -c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&& -(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a, -b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}: -function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")} -function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)|| -N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&& -c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&& -A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept", -e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)? -"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e, -w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]= -f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n, -function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/, -W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove(); -ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&& -c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"), -o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a); -else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle", -1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a, -b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]== -null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop=== -"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow= -this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos= -c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!= -null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(), -f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f= -b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)|| -0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"), -d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild); -d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop}, -bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left- -e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a= -this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}}); -c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]|| -e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window); \ No newline at end of file +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? +e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= +j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, +"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= +true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| +c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", +L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, +"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ +a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], +d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== +a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& +!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= +true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", +i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", +" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= +this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= +e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= +null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, +"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= +a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, +isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= +{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; +if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& +!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, +toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, +u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.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".split(" "), +function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; +if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; +for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- +1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, +CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, +relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= +l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; +h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= +m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| +!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= +h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, +gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; +c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? +a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& +this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| +u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== +1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); +this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], +"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, +animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= +j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); +this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| +c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? +function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= +this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; +k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& +f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/jquerybbq/jquery.bbq.min.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,18 @@ +/* + * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010 + * http://benalman.com/projects/jquery-bbq-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this); +/* + * jQuery hashchange event - v1.2 - 2/11/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this); \ No newline at end of file
--- a/htdocs/svg-edit/editor/js-hotkeys/README.md Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/js-hotkeys/README.md Fri Apr 23 22:38:00 2010 +0200 @@ -1,47 +1,32 @@ #About -**jQuery.hotkeys** is a plug-in that lets you easily add and remove handlers for keyboard events anywhere in your code supporting almost any key combination. +**jQuery Hotkeys** is a plug-in that lets you easily add and remove handlers for keyboard events anywhere in your code supporting almost any key combination. -It is based on a library [Shortcut.js](http://www.openjs.com/scripts/events/keyboard_shortcuts/shortcut.js) written by [Binny V A](http://www.openjs.com/). +This plugin is based off of the plugin by Tzury Bar Yochay: [jQuery.hotkeys](http://github.com/tzuryby/hotkeys) The syntax is as follows: -<pre> -$(expression).bind(<types>,<options>, <handler>); -$(expression).unbind(<types>,<options>, <handler>); - -$(document).bind('keydown', 'Ctrl+a', fn); -// e.g. replace '$' sign with 'EUR' -$('input.foo').bind('keyup', '$', function(){ - this.value = this.value.replace('$', 'EUR'); -}); - -$('div.foo').unbind('keydown', 'Ctrl+a', fn); -</pre> -## [Live Demo](http://jshotkeys.googlepages.com/test-static-01.html) + $(expression).bind(types, keys, handler); + $(expression).unbind(types, handler); + + $(document).bind('keydown', 'ctrl+a', fn); + + // e.g. replace '$' sign with 'EUR' + $('input.foo').bind('keyup', '$', function(){ + this.value = this.value.replace('$', 'EUR'); + }); ## Types Supported types are `'keydown'`, `'keyup'` and `'keypress'` -## Options -The options are `'combi'` i.e. the key combination, and `'disableInInput'` which allow your code not to be executed when the cursor is located inside an input ( `$(elem).is('input') || $(elem).is('textarea')` ). - -As you can see, the key combination can be passed as string or as an object. You may pass an object in case you wish to override the default option for `disableInInput` which is set to `false`: -<pre> -$(document).bind('keydown', {combi:'a', disableinInput: true}, fn); -</pre> -I.e. when cursor is within an input field, `'a'` will be inserted into the input field without interfering. +## Notes If you want to use more than one modifiers (e.g. alt+ctrl+z) you should define them by an alphabetical order e.g. alt+ctrl+shift -Modifiers are case insensitive, i.e. 'Ctrl+a' 'ctrl+a'. - -## Handler -In previous versions there was an option propagate which is removed now and implemented at the user code level. - -When using jQuery, if an event handler returns false, jQuery will call `stopPropagation()` and `preventDefault()` +Hotkeys aren't tracked if you're inside of an input element (unless you explicitly bind the hotkey directly to the input). This helps to avoid conflict with normal user typing. ## jQuery Compatibility -Tested with *jQuery 1.2.6* + +Works with jQuery 1.4.2 and newer. It known to be working with all the major browsers on all available platforms (Win/Mac/Linux) @@ -51,43 +36,10 @@ * Safari-3 * Chrome-0.2 -## Features added in this version (0.7.x) - * Implemented as $.fn - let you use `this`. - * jQuery selectors are supported. - * Extending `$.fn.bind` and `$.fn.unbind` so you get a single interface for binding events to handlers - -## Overriding jQuery -The plugin wraps the following jQuery methods: - * $.fn.bind - * $.fn.unbind - * $.find - -Even though the plugin overrides these methods, the original methods will *always* be called. - -The plugin will add functionality only for the `keydown`, `keyup` and `keypress` event types. Any other types are passed untouched to the original `'bind()'` and `'unbind()'` methods. - -Moreover, if you call `bind()` without passing the shortcut key combination e.g. `$(document).bind('keydown', fn)` only the original `'bind()'` method will be executed. - -I also modified the `$.fn.find` method by adding a single line at the top of the function body. here is the code: - -<pre> - jQuery.fn.find = function( selector ) { - // the line I added - this.query=selector; - // call jQuery original find - return jQuery.fn.__find__.apply(this, arguments); - }; -</pre> - -You can read about this at [jQuery's User Group](http://groups.google.com/group/jquery-en/browse_thread/thread/18f9825e8d22f18d) - -###Notes +### Addendum Firefox is the most liberal one in the manner of letting you capture all short-cuts even those that are built-in in the browser such as `Ctrl-t` for new tab, or `Ctrl-a` for selecting all text. You can always bubble them up to the browser by returning `true` in your handler. Others, (IE) either let you handle built-in short-cuts, but will add their functionality after your code has executed. Or (Opera/Safari) will *not* pass those events to the DOM at all. -*So, if you bind `Ctrl-Q` or `Alt-F4` and your Safari/Opera window is closed don't be surprised.* - - -###Current Version is: beta 0.7 \ No newline at end of file +*So, if you bind `Ctrl-Q` or `Alt-F4` and your Safari/Opera window is closed don't be surprised.* \ No newline at end of file
--- a/htdocs/svg-edit/editor/js-hotkeys/jquery.hotkeys.min.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/js-hotkeys/jquery.hotkeys.min.js Fri Apr 23 22:38:00 2010 +0200 @@ -1,19 +1,15 @@ -(function(jQuery){jQuery.fn.__bind__=jQuery.fn.bind;jQuery.fn.__unbind__=jQuery.fn.unbind;jQuery.fn.__find__=jQuery.fn.find;var hotkeys={version:'0.7.9',override:/keypress|keydown|keyup/g,triggersMap:{},specialKeys:{27:'esc',9:'tab',32:'space',13:'return',8:'backspace',145:'scroll',20:'capslock',144:'numlock',19:'pause',45:'insert',36:'home',46:'del',35:'end',33:'pageup',34:'pagedown',37:'left',38:'up',39:'right',40:'down',109:'-',112:'f1',113:'f2',114:'f3',115:'f4',116:'f5',117:'f6',118:'f7',119:'f8',120:'f9',121:'f10',122:'f11',123:'f12',191:'/'},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"},newTrigger:function(type,combi,callback){var result={};result[type]={};result[type][combi]={cb:callback,disableInInput:false};return result;}};hotkeys.specialKeys=jQuery.extend(hotkeys.specialKeys,{96:'0',97:'1',98:'2',99:'3',100:'4',101:'5',102:'6',103:'7',104:'8',105:'9',106:'*',107:'+',109:'-',110:'.',111:'/'});jQuery.fn.find=function(selector){this.query=selector;return jQuery.fn.__find__.apply(this,arguments);};jQuery.fn.unbind=function(type,combi,fn){if(jQuery.isFunction(combi)){fn=combi;combi=null;} -if(combi&&typeof combi==='string'){var selectorId=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();var hkTypes=type.split(' ');for(var x=0;x<hkTypes.length;x++){delete hotkeys.triggersMap[selectorId][hkTypes[x]][combi];}} -return this.__unbind__(type,fn);};jQuery.fn.bind=function(type,data,fn){var handle=type.match(hotkeys.override);if(jQuery.isFunction(data)||!handle){return this.__bind__(type,data,fn);} -else{var result=null,pass2jq=jQuery.trim(type.replace(hotkeys.override,''));if(pass2jq){result=this.__bind__(pass2jq,data,fn);} -if(typeof data==="string"){data={'combi':data};} -if(data.combi){for(var x=0;x<handle.length;x++){var eventType=handle[x];var combi=data.combi.toLowerCase(),trigger=hotkeys.newTrigger(eventType,combi,fn),selectorId=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();trigger[eventType][combi].disableInInput=data.disableInInput;if(!hotkeys.triggersMap[selectorId]){hotkeys.triggersMap[selectorId]=trigger;} -else if(!hotkeys.triggersMap[selectorId][eventType]){hotkeys.triggersMap[selectorId][eventType]=trigger[eventType];} -var mapPoint=hotkeys.triggersMap[selectorId][eventType][combi];if(!mapPoint){hotkeys.triggersMap[selectorId][eventType][combi]=[trigger[eventType][combi]];} -else if(mapPoint.constructor!==Array){hotkeys.triggersMap[selectorId][eventType][combi]=[mapPoint];} -else{hotkeys.triggersMap[selectorId][eventType][combi][mapPoint.length]=trigger[eventType][combi];} -this.each(function(){var jqElem=jQuery(this);if(jqElem.attr('hkId')&&jqElem.attr('hkId')!==selectorId){selectorId=jqElem.attr('hkId')+";"+selectorId;} -jqElem.attr('hkId',selectorId);});result=this.__bind__(handle.join(' '),data,hotkeys.handler)}} -return result;}};hotkeys.findElement=function(elem){if(!jQuery(elem).attr('hkId')){if(jQuery.browser.opera||jQuery.browser.safari){while(!jQuery(elem).attr('hkId')&&elem.parentNode){elem=elem.parentNode;}}} -return elem;};hotkeys.handler=function(event){var target=hotkeys.findElement(event.currentTarget),jTarget=jQuery(target),ids=jTarget.attr('hkId');if(ids){ids=ids.split(';');var code=event.which,type=event.type,special=hotkeys.specialKeys[code],character=!special&&String.fromCharCode(code).toLowerCase(),shift=event.shiftKey,ctrl=event.ctrlKey,alt=event.altKey||event.originalEvent.altKey,mapPoint=null;for(var x=0;x<ids.length;x++){if(hotkeys.triggersMap[ids[x]][type]){mapPoint=hotkeys.triggersMap[ids[x]][type];break;}} -if(mapPoint){var trigger;if(!shift&&!ctrl&&!alt){trigger=mapPoint[special]||(character&&mapPoint[character]);} -else{var modif='';if(alt)modif+='alt+';if(ctrl)modif+='ctrl+';if(shift)modif+='shift+';trigger=mapPoint[modif+special];if(!trigger){if(character){trigger=mapPoint[modif+character]||mapPoint[modif+hotkeys.shiftNums[character]]||(modif==='shift+'&&mapPoint[hotkeys.shiftNums[character]]);}}} -if(trigger){var result=false;for(var x=0;x<trigger.length;x++){if(trigger[x].disableInInput){var elem=jQuery(event.target);if(jTarget.is("input")||jTarget.is("textarea")||jTarget.is("select")||elem.is("input")||elem.is("textarea")||elem.is("select")){return true;}} -result=result||trigger[x].cb.apply(this,[event]);} -return result;}}}};window.hotkeys=hotkeys;return jQuery;})(jQuery); \ No newline at end of file +/* + * jQuery Hotkeys Plugin + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * + * http://github.com/jeresig/jquery.hotkeys + * + * Based upon the plugin by Tzury Bar Yochay: + * http://github.com/tzuryby/hotkeys + * + * Original idea by: + * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/ +*/ + +(function(b){b.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};function a(d){if(typeof d.data!=="string"){return}var c=d.handler,e=d.data.toLowerCase().split(" ");d.handler=function(n){if(this!==n.target&&(/textarea|select/i.test(n.target.nodeName)||n.target.type==="text")){return}var h=n.type!=="keypress"&&b.hotkeys.specialKeys[n.which],o=String.fromCharCode(n.which).toLowerCase(),k,m="",g={};if(n.altKey&&h!=="alt"){m+="alt+"}if(n.ctrlKey&&h!=="ctrl"){m+="ctrl+"}if(n.metaKey&&!n.ctrlKey&&h!=="meta"){m+="meta+"}if(n.shiftKey&&h!=="shift"){m+="shift+"}if(h){g[m+h]=true}else{g[m+o]=true;g[m+b.hotkeys.shiftNums[o]]=true;if(m==="shift+"){g[b.hotkeys.shiftNums[o]]=true}}for(var j=0,f=e.length;j<f;j++){if(g[e[j]]){return c.apply(this,arguments)}}}}b.each(["keydown","keyup","keypress"],function(){b.event.special[this]={add:a}})})(jQuery); \ No newline at end of file
--- a/htdocs/svg-edit/editor/locale/README.txt Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/README.txt Fri Apr 23 22:38:00 2010 +0200 @@ -9,8 +9,9 @@ * lang.cs.js * lang.de.js * lang.en.js - * lang.es.js + * lang.es.js * lang.fr.js + * lang.ja.js * lang.nl.js * lang.ro.js * lang.sk.js
--- a/htdocs/svg-edit/editor/locale/lang.af.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.af.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elemente"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Klik op die Gereedskap"}, -{"id": "tools_ellipse_show", "title": "Ellips / Circle Gereedskap"}, -{"id": "tools_rect_show", "title": "Vierkante / Rect Gereedskap"}, {"id": "zoom", "title": "Change zoom vlak"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.ar.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.ar.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "فك تجميع عناصر"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "أداة تكبير"}, -{"id": "tools_ellipse_show", "title": "القطع الناقص / الدائرة أداة"}, -{"id": "tools_rect_show", "title": "مربع / Rect أداة"}, {"id": "zoom", "title": "تغيير مستوى التكبير"}, {"id": "zoomLabel", "textContent": "التكبير:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.az.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.az.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse/Circle Tool"}, -{"id": "tools_rect_show", "title": "Square/Rect Tool"}, {"id": "zoom", "title": "Change zoom level"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.be.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.be.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Элементы Разгруппировать"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Эліпс / круг інструментаў"}, -{"id": "tools_rect_show", "title": "Плошча / Rect Tool"}, {"id": "zoom", "title": "Змяненне маштабу"}, {"id": "zoomLabel", "textContent": "Павялічыць:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.bg.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.bg.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Разгрупирай Елементи"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Елипса / Circle Tool"}, -{"id": "tools_rect_show", "title": "Площ / Rect Tool "}, {"id": "zoom", "title": "Промяна на ниво на мащабиране"}, {"id": "zoomLabel", "textContent": "увеличение:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.ca.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.ca.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Desagrupar elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Lipse / Eina Cercle"}, -{"id": "tools_rect_show", "title": "Quadrat / Rect Eina"}, {"id": "zoom", "title": "Canviar el nivell de zoom"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.cs.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.cs.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Zrušit seskupení"}, {"id": "tool_wireframe", "title": "Zobrazit jen kostru"}, {"id": "tool_zoom", "title": "Přiblížení"}, -{"id": "tools_ellipse_show", "title": "Elipsa / Kružnice"}, -{"id": "tools_rect_show", "title": "Čtverec / Obdélník"}, {"id": "zoom", "title": "Změna přiblížení"}, {"id": "zoomLabel", "textContent": "přiblížení:"}, {"id": "sidepanel_handle", "textContent": "V r s t v y", "title": "Táhnutím změnit velikost"},
--- a/htdocs/svg-edit/editor/locale/lang.cy.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.cy.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Elfennau Ungroup"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Offer Chwyddo"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Cylch Arfau"}, -{"id": "tools_rect_show", "title": "Sgwâr / Rect Tool"}, {"id": "zoom", "title": "Newid lefel chwyddo"}, {"id": "zoomLabel", "textContent": "chwyddo:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.da.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.da.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Opdel Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Skift zoomniveau"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.de.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.de.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Gruppierung aufheben"}, {"id": "tool_wireframe", "title": "Drahtmodell Modus"}, {"id": "tool_zoom", "title": "Zoomfaktor vergrößern oder verringern"}, -{"id": "tools_ellipse_show", "title": "Ellipsen und Kreise zeichnen"}, -{"id": "tools_rect_show", "title": "Rechtecke und Quadrate zeichnen"}, {"id": "zoom", "title": "vergrößern"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "E b e n e n", "title": "Ziehe links/rechts um die Seitenleiste anzupassen"},
--- a/htdocs/svg-edit/editor/locale/lang.el.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.el.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Κατάργηση ομαδοποίησης Στοιχεία"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Πλατεία / Ορθ Tool"}, {"id": "zoom", "title": "Αλλαγή επίπεδο μεγέθυνσης"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.en.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.en.js Fri Apr 23 22:38:00 2010 +0200 @@ -67,7 +67,7 @@ {"id": "stroke_color", "title": "Change stroke color"}, {"id": "stroke_style", "title": "Change stroke dash style"}, {"id": "stroke_tool_bottom", "textContent": "stroke:"}, -{"id": "stroke_width", "title": "Change stroke width"}, +{"id": "stroke_width", "title": "Change stroke width by 1, shift-click to change by 0.1"}, {"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."}, {"id": "svginfo_change_background", "textContent": "Editor Background"}, {"id": "svginfo_dim", "textContent": "Canvas Dimensions"}, @@ -101,6 +101,7 @@ {"id": "tool_fhrect", "title": "Free-Hand Rectangle"}, {"id": "tool_group", "title": "Group Elements"}, {"id": "tool_image", "title": "Image Tool"}, +{"id": "tool_import", "textContent": "Import Image"}, {"id": "tool_italic", "title": "Italic Text"}, {"id": "tool_line", "title": "Line Tool"}, {"id": "tool_move_bottom", "title": "Move to Bottom"}, @@ -125,8 +126,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse/Circle Tool"}, -{"id": "tools_rect_show", "title": "Square/Rect Tool"}, {"id": "zoom", "title": "Change zoom level"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.es.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.es.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Desagrupar objetos"}, {"id": "tool_wireframe", "title": "Modo marco de alambre"}, {"id": "tool_zoom", "title": "Zoom"}, -{"id": "tools_ellipse_show", "title": "Círculo / Elipse"}, -{"id": "tools_rect_show", "title": "Cuadrado / Rectángulo"}, {"id": "zoom", "title": "Cambiar el nivel de zoom"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "C a p a s", "title": "Arrastrar hacia la izquierda/derecha para modificar el tamaño del panel lateral"},
--- a/htdocs/svg-edit/editor/locale/lang.et.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.et.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Lõhu Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellips / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Muuda suumi taset"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.fa.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.fa.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "خارج کردن عناصر از گروه "}, {"id": "tool_wireframe", "title": "حالت نمایش لبه ها "}, {"id": "tool_zoom", "title": "ابزار بزرگ نمایی "}, -{"id": "tools_ellipse_show", "title": "ابزار بیضی/دایره "}, -{"id": "tools_rect_show", "title": "ابزار مستطیل/مربع "}, {"id": "zoom", "title": "تغییر بزرگ نمایی"}, {"id": "zoomLabel", "textContent": "بزرگ نمایی:"}, {"id": "sidepanel_handle", "textContent": "لایه ها", "title": "برای تغییر اندازه منوی کناری، آن را به سمت راست/چپ بکشید "},
--- a/htdocs/svg-edit/editor/locale/lang.fi.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.fi.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Suurennustyökalu"}, -{"id": "tools_ellipse_show", "title": "Ellipsi / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Muuta suurennustaso"}, {"id": "zoomLabel", "textContent": "zoomin:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.fr.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.fr.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Dégrouper les éléments"}, {"id": "tool_wireframe", "title": "Mode Fil de Fer"}, {"id": "tool_zoom", "title": "Zoom"}, -{"id": "tools_ellipse_show", "title": "Cercle / Ellipse / Ellipse à main levée"}, -{"id": "tools_rect_show", "title": "Carré / Rectangle / Rectangle à main levée"}, {"id": "zoom", "title": "Changer le niveau de zoom"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "C A L Q U E S", "title": "Tirer vers la gauche/droite pour redimensionner le panneau"},
--- a/htdocs/svg-edit/editor/locale/lang.fy.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.fy.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Groepering opheffe"}, {"id": "tool_wireframe", "title": "Triemodel"}, {"id": "tool_zoom", "title": "Zoom"}, -{"id": "tools_ellipse_show", "title": "Ellips/sirkel"}, -{"id": "tools_rect_show", "title": "Fjouwerkant/rjochthoeke"}, {"id": "zoom", "title": "Yn-/útzoome"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "L a g e n", "title": "Sleep nei links/rjochts om it sidepaniel grutter as lytser te meitjen"},
--- a/htdocs/svg-edit/editor/locale/lang.ga.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.ga.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Eilimintí Díghrúpáil"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zúmáil Uirlis"}, -{"id": "tools_ellipse_show", "title": "Éilips / Ciorcal Uirlis"}, -{"id": "tools_rect_show", "title": "Mhuirfean / Rect Uirlis"}, {"id": "zoom", "title": "Athraigh súmáil leibhéal"}, {"id": "zoomLabel", "textContent": "súmáil isteach:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.gl.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.gl.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Elementos Desagrupadas"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Procura / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Recta Tool"}, {"id": "zoom", "title": "Cambiar o nivel de zoom"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.he.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.he.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "אלמנטים פרק קבוצה"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "זום כלי"}, -{"id": "tools_ellipse_show", "title": "אליפסה / עיגול הכלי"}, -{"id": "tools_rect_show", "title": "ריבוע / כלי"}, {"id": "zoom", "title": "שינוי גודל תצוגה"}, {"id": "zoomLabel", "textContent": "זום:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.hi.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.hi.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,11 +125,9 @@ {"id": "tool_ungroup", "title": "अंश को समूह से अलग करें"}, {"id": "tool_wireframe", "title": "रूपरेखा मोड"}, {"id": "tool_zoom", "title": "ज़ूम उपकरण"}, -{"id": "tools_ellipse_show", "title": "दीर्घवृत्त / सर्किल उपकरण"}, -{"id": "tools_rect_show", "title": "वर्ग / रंगरूट उपकरण"}, {"id": "zoom", "title": "बदलें स्तर ज़ूम"}, {"id": "zoomLabel", "textContent": "जूम:"}, -{"id": "sidepanel_handle", "textContent": "परतें", "title": "दायें/बाएं घसीट कर आकार बदलें"}, +{"id": "sidepanel_handle","textContent":"प र तें","title":"दायें/बाएं घसीट कर आकार बदलें"}, { "js_strings": { "QerrorsRevertToSource": "आपके एस.वी.जी. स्रोत में त्रुटियों थी.\nक्या आप मूल एस.वी.जी स्रोत पर वापिस जाना चाहते हैं?",
--- a/htdocs/svg-edit/editor/locale/lang.hr.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.hr.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Razgrupiranje Elementi"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Alat za zumiranje"}, -{"id": "tools_ellipse_show", "title": "Elipsa / Circle Tool"}, -{"id": "tools_rect_show", "title": "Trg / Prav Alat"}, {"id": "zoom", "title": "Promjena razine zumiranja"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.hu.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.hu.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Szétbont elemei"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipszis / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Change nagyítási"}, {"id": "zoomLabel", "textContent": "nagyítási:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.hy.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.hy.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse/Circle Tool"}, -{"id": "tools_rect_show", "title": "Square/Rect Tool"}, {"id": "zoom", "title": "Change zoom level"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.id.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.id.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elemen"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Mengubah tingkat pembesaran"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.is.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.is.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Sporbaugur / Circle Tool"}, -{"id": "tools_rect_show", "title": "Ferningur / rect Tól"}, {"id": "zoom", "title": "Breyta Stækkunarstig"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.it.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.it.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Separa Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Cambia il livello di zoom"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.ja.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.ja.js Fri Apr 23 22:38:00 2010 +0200 @@ -1,158 +1,156 @@ [ -{"id": "align_relative_to", "title": "整列するために相対的な ..."}, -{"id": "angle", "title": "変更の回転角"}, +{"id": "align_relative_to", "title": "揃える"}, +{"id": "angle", "title": "回転角の変更"}, {"id": "angleLabel", "textContent": "角度:"}, -{"id": "bkgnd_color", "title": "変更の背景色/不透明度"}, -{"id": "circle_cx", "title": "変更円の佐川急便の座標"}, -{"id": "circle_cy", "title": "変更サークルサイ座標"}, +{"id": "bkgnd_color", "title": "背景色/不透明度の変更"}, +{"id": "circle_cx", "title": "円の中心を変更(X座標)"}, +{"id": "circle_cy", "title": "円の中心を変更(Y座標)"}, {"id": "circle_r", "title": "変更円の半径"}, -{"id": "cornerRadiusLabel", "textContent": "コーナー半径:"}, -{"id": "curve_segments", "textContent": "Curve"}, -{"id": "ellipse_cx", "title": "の座標佐川急便楕円を変更する"}, -{"id": "ellipse_cy", "title": "変更楕円サイ座標"}, -{"id": "ellipse_rx", "title": "変更する楕円のx半径"}, -{"id": "ellipse_ry", "title": "変更する楕円のy半径"}, -{"id": "fill_color", "title": "変更の塗りつぶしの色"}, -{"id": "fill_tool_bottom", "textContent": "満ちる:"}, -{"id": "fitToContent", "textContent": "フィットコンテンツへ"}, -{"id": "fit_to_all", "textContent": "フィットすべてのコンテンツに"}, -{"id": "fit_to_canvas", "textContent": "フィットキャンバスに"}, -{"id": "fit_to_layer_content", "textContent": "に合うようにレイヤーのコンテンツ"}, -{"id": "fit_to_sel", "textContent": "フィットを選択する"}, -{"id": "font_family", "title": "フォントの変更ご家族"}, +{"id": "cornerRadiusLabel", "textContent": "角の半径:"}, +{"id": "curve_segments", "textContent": "カーブ"}, +{"id": "ellipse_cx", "title": "楕円の中心を変更(X座標)"}, +{"id": "ellipse_cy", "title": "楕円の中心を変更(Y座標)"}, +{"id": "ellipse_rx", "title": "楕円の半径を変更(X座標)"}, +{"id": "ellipse_ry", "title": "楕円の半径を変更(Y座標)"}, +{"id": "fill_color", "title": "塗りの色を変更"}, +{"id": "fill_tool_bottom", "textContent": "塗り:"}, +{"id": "fitToContent", "textContent": "コンテンツに合わせる"}, +{"id": "fit_to_all", "textContent": "すべてのコンテンツに合わせる"}, +{"id": "fit_to_canvas", "textContent": "キャンバスに合わせる"}, +{"id": "fit_to_layer_content", "textContent": "レイヤー上のコンテンツに合わせる"}, +{"id": "fit_to_sel", "textContent": "選択対象に合わせる"}, +{"id": "font_family", "title": "フォントファミリーの変更"}, {"id": "font_size", "title": "文字サイズの変更"}, -{"id": "group_opacity", "title": "変更項目の不透明度を選択"}, +{"id": "group_opacity", "title": "不透明度"}, {"id": "icon_large", "textContent": "Large"}, {"id": "icon_medium", "textContent": "Medium"}, {"id": "icon_small", "textContent": "Small"}, {"id": "icon_xlarge", "textContent": "Extra Large"}, {"id": "iheightLabel", "textContent": "高さ:"}, -{"id": "image_height", "title": "変更するイメージの高さ"}, -{"id": "image_opt_embed", "textContent": "Embed data (local files)"}, -{"id": "image_opt_ref", "textContent": "Use file reference"}, +{"id": "image_height", "title": "画像の高さを変更"}, +{"id": "image_opt_embed", "textContent": "SVGファイルに埋め込む"}, +{"id": "image_opt_ref", "textContent": "画像を参照する"}, {"id": "image_url", "title": "URLを変更"}, -{"id": "image_width", "title": "変更するイメージの幅"}, -{"id": "includedImages", "textContent": "Included Images"}, +{"id": "image_width", "title": "画像の幅を変更"}, +{"id": "includedImages", "textContent": "挿入された画像の扱い"}, {"id": "iwidthLabel", "textContent": "幅:"}, {"id": "largest_object", "textContent": "最大のオブジェクト"}, -{"id": "layer_delete", "title": "レイヤーの削除"}, -{"id": "layer_down", "title": "レイヤ下へ移動"}, -{"id": "layer_new", "title": "New Layer"}, -{"id": "layer_rename", "title": "名前を変更するレイヤ"}, -{"id": "layer_up", "title": "最大のレイヤに移動"}, -{"id": "layersLabel", "textContent": "層:"}, -{"id": "line_x1", "title": "変更行のx座標を開始"}, -{"id": "line_x2", "title": "変更行のx座標を終了"}, -{"id": "line_y1", "title": "変更直線y開始の座標"}, -{"id": "line_y2", "title": "変更直線y期の座標"}, +{"id": "layer_delete", "title": "レイヤの削除"}, +{"id": "layer_down", "title": "レイヤを下へ移動"}, +{"id": "layer_new", "title": "新規レイヤ"}, +{"id": "layer_rename", "title": "レイヤの名前を変更"}, +{"id": "layer_up", "title": "レイヤを上へ移動"}, +{"id": "layersLabel", "textContent": "レイヤ:"}, +{"id": "line_x1", "title": "開始X座標"}, +{"id": "line_x2", "title": "終了X座標"}, +{"id": "line_y1", "title": "開始Y座標"}, +{"id": "line_y2", "title": "終了Y座標"}, {"id": "page", "textContent": "ページ"}, -{"id": "palette", "title": "をクリックして、色、シフトを埋めるストロークの色を変更するをクリックして変更する"}, -{"id": "path_node_x", "title": "Change node's x coordinate"}, -{"id": "path_node_y", "title": "Change node's y coordinate"}, -{"id": "rect_height", "title": "変更する四角形の高さ"}, -{"id": "rect_rx", "title": "変更長方形コーナー半径"}, -{"id": "rect_width", "title": "変更する長方形の幅"}, +{"id": "palette", "title": "クリックで塗りの色を選択、Shift+クリックで線の色を選択"}, +{"id": "path_node_x", "title": "ノードのX座標を変更"}, +{"id": "path_node_y", "title": "ノードのY座標を変更"}, +{"id": "rect_height", "title": "長方形の高さを変更"}, +{"id": "rect_rx", "title": "長方形の角の半径を変更"}, +{"id": "rect_width", "title": "長方形の幅を変更"}, {"id": "relativeToLabel", "textContent": "相対:"}, {"id": "rheightLabel", "textContent": "高さ:"}, {"id": "rwidthLabel", "textContent": "幅:"}, -{"id": "seg_type", "title": "Change Segment type"}, -{"id": "selLayerLabel", "textContent": "Move elements to:"}, -{"id": "selLayerNames", "title": "Move selected elements to a different layer"}, -{"id": "selectedPredefined", "textContent": "を選択する事前定義された:"}, -{"id": "selected_objects", "textContent": "選ばれたオブジェクト"}, -{"id": "selected_x", "title": "Change X coordinate"}, -{"id": "selected_y", "title": "Change Y coordinate"}, +{"id": "seg_type", "title": "線分の種類を変更"}, +{"id": "selLayerLabel", "textContent": "移動先レイヤ:"}, +{"id": "selLayerNames", "title": "選択対象を別のレイヤに移動"}, +{"id": "selectedPredefined", "textContent": "デフォルト"}, +{"id": "selected_objects", "textContent": "選択オブジェクト"}, +{"id": "selected_x", "title": "X座標を変更"}, +{"id": "selected_y", "title": "Y座標を変更"}, {"id": "smallest_object", "textContent": "最小のオブジェクト"}, -{"id": "straight_segments", "textContent": "Straight"}, -{"id": "stroke_color", "title": "変更ストロークの色"}, -{"id": "stroke_style", "title": "変更ストロークダッシュスタイル"}, -{"id": "stroke_tool_bottom", "textContent": "打撃:"}, -{"id": "stroke_width", "title": "変更ストローク幅"}, -{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."}, -{"id": "svginfo_change_background", "textContent": "Editor Background"}, -{"id": "svginfo_dim", "textContent": "Canvas Dimensions"}, -{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"}, +{"id": "straight_segments", "textContent": "直線"}, +{"id": "stroke_color", "title": "線の色を変更"}, +{"id": "stroke_style", "title": "線種の変更"}, +{"id": "stroke_tool_bottom", "textContent": "線:"}, +{"id": "stroke_width", "title": "線幅の変更"}, +{"id": "svginfo_bg_note", "textContent": "※背景色はファイルに保存されません。"}, +{"id": "svginfo_change_background", "textContent": "エディタの背景色"}, +{"id": "svginfo_dim", "textContent": "キャンバスの大きさ"}, +{"id": "svginfo_editor_prefs", "textContent": "エディタの設定"}, {"id": "svginfo_height", "textContent": "高さ:"}, -{"id": "svginfo_icons", "textContent": "Icon size"}, -{"id": "svginfo_image_props", "textContent": "Image Properties"}, -{"id": "svginfo_lang", "textContent": "Language"}, -{"id": "svginfo_title", "textContent": "Title"}, +{"id": "svginfo_icons", "textContent": "アイコンの大きさ"}, +{"id": "svginfo_image_props", "textContent": "イメージの設定"}, +{"id": "svginfo_lang", "textContent": "言語"}, +{"id": "svginfo_title", "textContent": "タイトル"}, {"id": "svginfo_width", "textContent": "幅:"}, -{"id": "text", "title": "変更するテキストの内容"}, +{"id": "text", "title": "テキストの内容の変更"}, {"id": "tool_alignbottom", "title": "下揃え"}, {"id": "tool_aligncenter", "title": "中央揃え"}, {"id": "tool_alignleft", "title": "左揃え"}, -{"id": "tool_alignmiddle", "title": "整列中東"}, +{"id": "tool_alignmiddle", "title": "中央揃え"}, {"id": "tool_alignright", "title": "右揃え"}, -{"id": "tool_aligntop", "title": "整列トップ"}, -{"id": "tool_bold", "title": "太字テキスト"}, -{"id": "tool_circle", "title": "サークル"}, -{"id": "tool_clear", "textContent": "新しいイメージ"}, -{"id": "tool_clone", "title": "クローン要素"}, -{"id": "tool_clone_multi", "title": "クローンの要素"}, -{"id": "tool_delete", "title": "削除する要素"}, -{"id": "tool_delete_multi", "title": "Delete Selected Elements"}, +{"id": "tool_aligntop", "title": "上揃え"}, +{"id": "tool_bold", "title": "太字"}, +{"id": "tool_circle", "title": "円"}, +{"id": "tool_clear", "textContent": "新規イメージ"}, +{"id": "tool_clone", "title": "複製"}, +{"id": "tool_clone_multi", "title": "選択対象を複製"}, +{"id": "tool_delete", "title": "削除"}, +{"id": "tool_delete_multi", "title": "選択対象を削除"}, {"id": "tool_docprops", "textContent": "文書のプロパティ"}, {"id": "tool_docprops_cancel", "textContent": "キャンセル"}, {"id": "tool_docprops_save", "textContent": "OK"}, {"id": "tool_ellipse", "title": "楕円"}, {"id": "tool_fhellipse", "title": "フリーハンド楕円"}, {"id": "tool_fhpath", "title": "鉛筆ツール"}, -{"id": "tool_fhrect", "title": "フリーハンドのRectangle"}, -{"id": "tool_group", "title": "グループ要素"}, +{"id": "tool_fhrect", "title": "フリーハンド長方形"}, +{"id": "tool_group", "title": "グループ化"}, {"id": "tool_image", "title": "イメージツール"}, -{"id": "tool_italic", "title": "イタリック体のテキスト"}, -{"id": "tool_line", "title": "ラインツール"}, -{"id": "tool_move_bottom", "title": "下に移動"}, -{"id": "tool_move_top", "title": "トップに移動します。"}, -{"id": "tool_node_clone", "title": "Clone Node"}, -{"id": "tool_node_delete", "title": "Delete Node"}, -{"id": "tool_node_link", "title": "Link Control Points"}, -{"id": "tool_open", "textContent": "[イメージを開く"}, -{"id": "tool_path", "title": "Path tool"}, -{"id": "tool_rect", "title": "四角形"}, -{"id": "tool_redo", "title": "REDOログ"}, -{"id": "tool_reorient", "title": "Reorient path"}, +{"id": "tool_italic", "title": "イタリック体"}, +{"id": "tool_line", "title": "直線ツール"}, +{"id": "tool_move_bottom", "title": "奥に移動"}, +{"id": "tool_move_top", "title": "手前に移動"}, +{"id": "tool_node_clone", "title": "ノードを複製"}, +{"id": "tool_node_delete", "title": "ノードを削除"}, +{"id": "tool_node_link", "title": "制御点の接続"}, +{"id": "tool_open", "textContent": "イメージを開く"}, +{"id": "tool_path", "title": "パスツール"}, +{"id": "tool_rect", "title": "長方形"}, +{"id": "tool_redo", "title": "やり直し"}, +{"id": "tool_reorient", "title": "現在の角度を0度とする"}, {"id": "tool_save", "textContent": "画像を保存"}, {"id": "tool_select", "title": "選択ツール"}, -{"id": "tool_source", "title": "[編集]ソース"}, +{"id": "tool_source", "title": "ソースの編集"}, {"id": "tool_source_cancel", "textContent": "キャンセル"}, -{"id": "tool_source_save", "textContent": "Apply Changes"}, -{"id": "tool_square", "title": "広場"}, +{"id": "tool_source_save", "textContent": "適用"}, +{"id": "tool_square", "title": "正方形"}, {"id": "tool_text", "title": "テキストツール"}, -{"id": "tool_topath", "title": "Convert to Path"}, +{"id": "tool_topath", "title": "パスに変換"}, {"id": "tool_undo", "title": "元に戻す"}, -{"id": "tool_ungroup", "title": "グループ化を解除要素"}, -{"id": "tool_wireframe", "title": "Wireframe Mode [F]"}, +{"id": "tool_ungroup", "title": "グループ化を解除"}, +{"id": "tool_wireframe", "title": "ワイヤーフレームで表示 [F]"}, {"id": "tool_zoom", "title": "ズームツール"}, -{"id": "tools_ellipse_show", "title": "楕円/サークルツール"}, -{"id": "tools_rect_show", "title": "スクエア/ Rectツール"}, -{"id": "zoom", "title": "変更のズームレベル"}, +{"id": "zoom", "title": "ズーム倍率の変更"}, {"id": "zoomLabel", "textContent": "ズーム:"}, -{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"}, +{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "ドラッグで幅の調整"}, { "js_strings": { - "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", - "QignoreSourceChanges": "Ignore changes made to SVG source?", - "QmoveElemsToLayer": "Move selected elements to layer '%s'?", - "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", - "cancel": "Cancel", - "dupeLayerName": "There is already a layer named that!", - "enterNewImgURL": "Enter the new image URL", - "enterNewLayerName": "Please enter the new layer name", - "enterUniqueLayerName": "Please enter a unique layer name", - "featNotSupported": "Feature not supported", - "invalidAttrValGiven": "Invalid value given", + "QerrorsRevertToSource": "ソースにエラーがあります。\n元のソースに戻しますか?", + "QignoreSourceChanges": "ソースの変更を無視しますか?", + "QmoveElemsToLayer": "選択した要素をレイヤー '%s' に移動しますか?", + "QwantToClear": "キャンバスをクリアしますか?\nアンドゥ履歴も消去されます。", + "cancel": "キャンセル", + "dupeLayerName": "同名のレイヤーが既に存在します。", + "enterNewImgURL": "画像のURLを入力してください。", + "enterNewLayerName": "レイヤの新しい名前を入力してください。", + "enterUniqueLayerName": "新規レイヤの一意な名前を入力してください。", + "featNotSupported": "機能はサポートされていません。", + "invalidAttrValGiven": "無効な値が指定されています。", "key_backspace": "backspace", "key_del": "delete", "key_down": "down", "key_up": "up", - "layer": "Layer", - "layerHasThatName": "Layer already has that name", - "noContentToFitTo": "No content to fit to", + "layer": "レイヤ", + "layerHasThatName": "既に同名が付いています。", + "noContentToFitTo": "合わせる対象のコンテンツがありません。", "ok": "OK", - "pathCtrlPtTooltip": "Drag control point to adjust curve properties", - "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type" + "pathCtrlPtTooltip": "カーブの形状を調整するには、制御点をドラッグしてください。", + "pathNodeTooltip": "移動するには、ノードをドラッグしてください。ノードをダブルクリックすると線分の種類を変更できます。" } } ] \ No newline at end of file
--- a/htdocs/svg-edit/editor/locale/lang.ko.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.ko.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "그룹 해제 요소"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "줌 도구"}, -{"id": "tools_ellipse_show", "title": "타원 / 원형 도구"}, -{"id": "tools_rect_show", "title": "광장 / RECT 도구"}, {"id": "zoom", "title": "변경 수준으로 확대"}, {"id": "zoomLabel", "textContent": "축소:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.lt.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.lt.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Išgrupuoti elementai"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Įrankį"}, -{"id": "tools_ellipse_show", "title": "Elipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Keisti mastelį"}, {"id": "zoomLabel", "textContent": "Padidinti:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.lv.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.lv.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Atgrupēt Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Elipse / Circle rīks"}, -{"id": "tools_rect_show", "title": "Kvadrātveida / Rect rīks"}, {"id": "zoom", "title": "Pārmaiņu mērogu"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.mk.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.mk.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Елементи"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Алатка за зумирање"}, -{"id": "tools_ellipse_show", "title": "Елипса / круг Алатка"}, -{"id": "tools_rect_show", "title": "Square / Rect Алатка"}, {"id": "zoom", "title": "Промена зум ниво"}, {"id": "zoomLabel", "textContent": "зум:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.ms.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.ms.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elemen"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / rect Tool"}, {"id": "zoom", "title": "Mengubah peringkat pembesaran"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.mt.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.mt.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellissi / Circle Tool"}, -{"id": "tools_rect_show", "title": "Pjazza / Rect Tool"}, {"id": "zoom", "title": "Bidla zoom livell"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.nl.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.nl.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Groepering opheffen"}, {"id": "tool_wireframe", "title": "Draadmodel"}, {"id": "tool_zoom", "title": "Zoom"}, -{"id": "tools_ellipse_show", "title": "Ellips/cirkel"}, -{"id": "tools_rect_show", "title": "Vierkant/rechthoek"}, {"id": "zoom", "title": "In-/uitzoomen"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "L a g e n", "title": "Sleep naar links/rechts om het zijpaneel te vergroten/verkleinen"},
--- a/htdocs/svg-edit/editor/locale/lang.no.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.no.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Dele opp Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / sirkel Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Endre zoomnivå"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.pl.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.pl.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Elementy Rozgrupuj"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Elipsa / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Zmiana poziomu powiększenia"}, {"id": "zoomLabel", "textContent": "Zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.pt-PT.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.pt-PT.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Elementos Desagrupar"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Elipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Alterar o nível de zoom"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.ro.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.ro.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Anulare Grupare Elemente"}, {"id": "tool_wireframe", "title": "Mod Schelet"}, {"id": "tool_zoom", "title": "Unealta de Zoom"}, -{"id": "tools_ellipse_show", "title": "Unealta de Elipsă / Cerc"}, -{"id": "tools_rect_show", "title": "Unealta de Pătrat / Dreptunghi"}, {"id": "zoom", "title": "Schimbarea nivelului de zoom"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "S t r a t u r i", "title": "Trage stanga/dreapta pentru redimensionare panou lateral"},
--- a/htdocs/svg-edit/editor/locale/lang.sk.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.sk.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Zrušiť skupinu"}, {"id": "tool_wireframe", "title": "Drôtový model"}, {"id": "tool_zoom", "title": "Priblíženie"}, -{"id": "tools_ellipse_show", "title": "Elipsa / Kružnica"}, -{"id": "tools_rect_show", "title": "Štvorec / Obdĺžnik"}, {"id": "zoom", "title": "Zmena priblíženia"}, {"id": "zoomLabel", "textContent": "priblíženie:"}, {"id": "sidepanel_handle", "textContent": "V r s t v y", "title": "Ťahajte vľavo/vpravo na zmenu veľkosti"},
--- a/htdocs/svg-edit/editor/locale/lang.sl.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.sl.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Razdruži Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Elipsa / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / rect Tool"}, {"id": "zoom", "title": "Spreminjanje povečave"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.sq.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.sq.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Elemente Ungroup"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Elips / Rrethi Tool"}, -{"id": "tools_rect_show", "title": "Sheshi / rect Tool"}, {"id": "zoom", "title": "Ndryshimi zoom nivel"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.sr.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.sr.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Разгрупирање Елементи"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Алатка за зумирање"}, -{"id": "tools_ellipse_show", "title": "Елипса / круг Алат"}, -{"id": "tools_rect_show", "title": "Скуаре / прав Алат"}, {"id": "zoom", "title": "Промените ниво зумирања"}, {"id": "zoomLabel", "textContent": "зум:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.sv.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.sv.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Dela Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoomverktyget"}, -{"id": "tools_ellipse_show", "title": "Ellips / Circle Tool"}, -{"id": "tools_rect_show", "title": "Square / Rect Tool"}, {"id": "zoom", "title": "Ändra zoomnivå"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.sw.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.sw.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Mraba / Rect Tool"}, {"id": "zoom", "title": "Change zoom ngazi"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.th.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.th.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "องค์ประกอบ Ungroup"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "เครื่องมือซูม"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "ตาราง / เครื่องมือ Rect"}, {"id": "zoom", "title": "เปลี่ยนระดับการซูม"}, {"id": "zoomLabel", "textContent": "ซูม:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.tl.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.tl.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Sangkap"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Mag-zoom Kasangkapan"}, -{"id": "tools_ellipse_show", "title": "Tambilugan / Circle Kasangkapan"}, -{"id": "tools_rect_show", "title": "Square / Rect Kasangkapan"}, {"id": "zoom", "title": "Baguhin ang antas ng zoom"}, {"id": "zoomLabel", "textContent": "mag-zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.tr.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.tr.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Çöz Elemanları"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Elips / Circle Aracı"}, -{"id": "tools_rect_show", "title": "Kare / Rect Aracı"}, {"id": "zoom", "title": "Yakınlaştırma düzeyini değiştirebilirsiniz"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.uk.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.uk.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Елементи розгрупувати"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Еліпс / коло інструментів"}, -{"id": "tools_rect_show", "title": "Площа / Rect Tool"}, {"id": "zoom", "title": "Зміна масштабу"}, {"id": "zoomLabel", "textContent": "Збільшити:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.vi.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.vi.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "Ungroup Elements"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "Zoom Tool"}, -{"id": "tools_ellipse_show", "title": "Ellipse / Circle Tool"}, -{"id": "tools_rect_show", "title": "Vuông / Rect Tool"}, {"id": "zoom", "title": "Thay đổi mức độ phóng"}, {"id": "zoomLabel", "textContent": "zoom:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.yi.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.yi.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "ונגראָופּ עלעמענץ"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "פארגרעסער טול"}, -{"id": "tools_ellipse_show", "title": "עלליפּסע / סירקלע טול"}, -{"id": "tools_rect_show", "title": "קוואדראט / רעקט טול"}, {"id": "zoom", "title": "ענדערן פארגרעסער הייך"}, {"id": "zoomLabel", "textContent": "פארגרעסער:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- a/htdocs/svg-edit/editor/locale/lang.zh-CN.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.zh-CN.js Fri Apr 23 22:38:00 2010 +0200 @@ -125,8 +125,6 @@ {"id": "tool_ungroup", "title": "取消组合元素"}, {"id": "tool_wireframe", "title": "Wireframe Mode"}, {"id": "tool_zoom", "title": "缩放工具"}, -{"id": "tools_ellipse_show", "title": "椭圆/圆工具"}, -{"id": "tools_rect_show", "title": "广场/整流工具"}, {"id": "zoom", "title": "更改缩放级别"}, {"id": "zoomLabel", "textContent": "变焦:"}, {"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"},
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/svg-edit/editor/locale/lang.zh-HK.js Fri Apr 23 22:38:00 2010 +0200 @@ -0,0 +1,156 @@ +[ +{"id": "align_relative_to", "title": "相对对齐 ..."}, +{"id": "angle", "title": "旋转角度的变化"}, +{"id": "angleLabel", "textContent": "角:"}, +{"id": "bkgnd_color", "title": "更改背景颜色/不透明"}, +{"id": "circle_cx", "title": "改变循环的CX坐标"}, +{"id": "circle_cy", "title": "改变循环的赛扬坐标"}, +{"id": "circle_r", "title": "改变圆的半径"}, +{"id": "cornerRadiusLabel", "textContent": "角半径:"}, +{"id": "curve_segments", "textContent": "Curve"}, +{"id": "ellipse_cx", "title": "改变椭圆的CX坐标"}, +{"id": "ellipse_cy", "title": "改变椭圆的赛扬坐标"}, +{"id": "ellipse_rx", "title": "改变椭圆的x半径"}, +{"id": "ellipse_ry", "title": "改变椭圆的y半径"}, +{"id": "fill_color", "title": "更改填充颜色"}, +{"id": "fill_tool_bottom", "textContent": "充满:"}, +{"id": "fitToContent", "textContent": "适合内容"}, +{"id": "fit_to_all", "textContent": "适合于所有的内容"}, +{"id": "fit_to_canvas", "textContent": "适合画布"}, +{"id": "fit_to_layer_content", "textContent": "适合层内容"}, +{"id": "fit_to_sel", "textContent": "适合选择"}, +{"id": "font_family", "title": "更改字体家族"}, +{"id": "font_size", "title": "更改字体大小"}, +{"id": "group_opacity", "title": "更改所选项目不透明"}, +{"id": "icon_large", "textContent": "Large"}, +{"id": "icon_medium", "textContent": "Medium"}, +{"id": "icon_small", "textContent": "Small"}, +{"id": "icon_xlarge", "textContent": "Extra Large"}, +{"id": "iheightLabel", "textContent": "高度:"}, +{"id": "image_height", "title": "更改图像高度"}, +{"id": "image_opt_embed", "textContent": "Embed data (local files)"}, +{"id": "image_opt_ref", "textContent": "Use file reference"}, +{"id": "image_url", "title": "更改网址"}, +{"id": "image_width", "title": "更改图像的宽度"}, +{"id": "includedImages", "textContent": "Included Images"}, +{"id": "iwidthLabel", "textContent": "宽度:"}, +{"id": "largest_object", "textContent": "最大对象"}, +{"id": "layer_delete", "title": "删除层"}, +{"id": "layer_down", "title": "层向下移动"}, +{"id": "layer_new", "title": "新层"}, +{"id": "layer_rename", "title": "重命名层"}, +{"id": "layer_up", "title": "移动层最多"}, +{"id": "layersLabel", "textContent": "层:"}, +{"id": "line_x1", "title": "更改行的起点的x坐标"}, +{"id": "line_x2", "title": "更改行的结束x坐标"}, +{"id": "line_y1", "title": "更改行的起点的y坐标"}, +{"id": "line_y2", "title": "更改行的结束y坐标"}, +{"id": "page", "textContent": "网页"}, +{"id": "palette", "title": "点击更改填充颜色,按住Shift键单击更改颜色中风"}, +{"id": "path_node_x", "title": "Change node's x coordinate"}, +{"id": "path_node_y", "title": "Change node's y coordinate"}, +{"id": "rect_height", "title": "更改矩形的高度"}, +{"id": "rect_rx", "title": "矩形角半径的变化"}, +{"id": "rect_width", "title": "更改矩形的宽度"}, +{"id": "relativeToLabel", "textContent": "相对于:"}, +{"id": "rheightLabel", "textContent": "身高:"}, +{"id": "rwidthLabel", "textContent": "宽度:"}, +{"id": "seg_type", "title": "Change Segment type"}, +{"id": "selLayerLabel", "textContent": "Move elements to:"}, +{"id": "selLayerNames", "title": "Move selected elements to a different layer"}, +{"id": "selectedPredefined", "textContent": "选择预定义:"}, +{"id": "selected_objects", "textContent": "选对象"}, +{"id": "selected_x", "title": "Change X coordinate"}, +{"id": "selected_y", "title": "Change Y coordinate"}, +{"id": "smallest_object", "textContent": "最小的对象"}, +{"id": "straight_segments", "textContent": "Straight"}, +{"id": "stroke_color", "title": "中风的颜色变化"}, +{"id": "stroke_style", "title": "更改行程冲刺风格"}, +{"id": "stroke_tool_bottom", "textContent": "敲击:"}, +{"id": "stroke_width", "title": "笔划宽度的变化"}, +{"id": "svginfo_bg_note", "textContent": "Note: Background will not be saved with image."}, +{"id": "svginfo_change_background", "textContent": "Editor Background"}, +{"id": "svginfo_dim", "textContent": "Canvas Dimensions"}, +{"id": "svginfo_editor_prefs", "textContent": "Editor Preferences"}, +{"id": "svginfo_height", "textContent": "高度:"}, +{"id": "svginfo_icons", "textContent": "Icon size"}, +{"id": "svginfo_image_props", "textContent": "Image Properties"}, +{"id": "svginfo_lang", "textContent": "Language"}, +{"id": "svginfo_title", "textContent": "Title"}, +{"id": "svginfo_width", "textContent": "宽度:"}, +{"id": "text", "title": "更改文字内容"}, +{"id": "tool_alignbottom", "title": "底部对齐"}, +{"id": "tool_aligncenter", "title": "居中对齐"}, +{"id": "tool_alignleft", "title": "左对齐"}, +{"id": "tool_alignmiddle", "title": "中间对齐"}, +{"id": "tool_alignright", "title": "右对齐"}, +{"id": "tool_aligntop", "title": "顶端对齐"}, +{"id": "tool_bold", "title": "粗体"}, +{"id": "tool_circle", "title": "圈"}, +{"id": "tool_clear", "textContent": "新形象"}, +{"id": "tool_clone", "title": "克隆元素"}, +{"id": "tool_clone_multi", "title": "克隆元素"}, +{"id": "tool_delete", "title": "删除元素"}, +{"id": "tool_delete_multi", "title": "删除所选元素"}, +{"id": "tool_docprops", "textContent": "文档属性"}, +{"id": "tool_docprops_cancel", "textContent": "取消"}, +{"id": "tool_docprops_save", "textContent": "保存"}, +{"id": "tool_ellipse", "title": "椭圆"}, +{"id": "tool_fhellipse", "title": "免费手椭圆"}, +{"id": "tool_fhpath", "title": "铅笔工具"}, +{"id": "tool_fhrect", "title": "免费手矩形"}, +{"id": "tool_group", "title": "族元素"}, +{"id": "tool_image", "title": "图像工具"}, +{"id": "tool_italic", "title": "斜体文本"}, +{"id": "tool_line", "title": "线工具"}, +{"id": "tool_move_bottom", "title": "移至底部"}, +{"id": "tool_move_top", "title": "移动到顶部"}, +{"id": "tool_node_clone", "title": "Clone Node"}, +{"id": "tool_node_delete", "title": "Delete Node"}, +{"id": "tool_node_link", "title": "Link Control Points"}, +{"id": "tool_open", "textContent": "打开图像"}, +{"id": "tool_path", "title": "Path Tool"}, +{"id": "tool_rect", "title": "矩形"}, +{"id": "tool_redo", "title": "重做"}, +{"id": "tool_reorient", "title": "Reorient path"}, +{"id": "tool_save", "textContent": "保存图像"}, +{"id": "tool_select", "title": "选择工具"}, +{"id": "tool_source", "title": "编辑源"}, +{"id": "tool_source_cancel", "textContent": "取消"}, +{"id": "tool_source_save", "textContent": "保存"}, +{"id": "tool_square", "title": "广场"}, +{"id": "tool_text", "title": "文字工具"}, +{"id": "tool_topath", "title": "Convert to Path"}, +{"id": "tool_undo", "title": "撤消"}, +{"id": "tool_ungroup", "title": "Ungroup Elements"}, +{"id": "tool_wireframe", "title": "Wireframe Mode"}, +{"id": "tool_zoom", "title": "缩放工具"}, +{"id": "zoom", "title": "更改缩放级别"}, +{"id": "zoomLabel", "textContent": "变焦:"}, +{"id": "sidepanel_handle", "textContent": "L a y e r s", "title": "Drag left/right to resize side panel"}, +{ + "js_strings": { + "QerrorsRevertToSource": "There were parsing errors in your SVG source.\nRevert back to original SVG source?", + "QignoreSourceChanges": "Ignore changes made to SVG source?", + "QmoveElemsToLayer": "Move selected elements to layer '%s'?", + "QwantToClear": "Do you want to clear the drawing?\nThis will also erase your undo history!", + "cancel": "Cancel", + "dupeLayerName": "There is already a layer named that!", + "enterNewImgURL": "Enter the new image URL", + "enterNewLayerName": "Please enter the new layer name", + "enterUniqueLayerName": "Please enter a unique layer name", + "featNotSupported": "Feature not supported", + "invalidAttrValGiven": "Invalid value given", + "key_backspace": "backspace", + "key_del": "delete", + "key_down": "down", + "key_up": "up", + "layer": "Layer", + "layerHasThatName": "Layer already has that name", + "noContentToFitTo": "No content to fit to", + "ok": "OK", + "pathCtrlPtTooltip": "Drag control point to adjust curve properties", + "pathNodeTooltip": "Drag node to move it. Double-click node to change segment type" + } +} +] \ No newline at end of file
--- a/htdocs/svg-edit/editor/locale/lang.zh-TW.js Fri Apr 23 22:29:49 2010 +0200 +++ b/htdocs/svg-edit/editor/locale/lang.zh-TW.js Fri Apr 23 22:38:00 2010 +0200 @@ -87,12 +87,12 @@ {"id":"tool_aligntop","title":"頂端對齊"}, {"id":"tool_bold","title":"粗體"}, {"id":"tool_circle","title":"圓"}, -{"id":"tool_clear","title":"清空圖像"}, +{"id":"tool_clear","textContent":"清空圖像"}, {"id":"tool_clone","title":"複製"}, {"id":"tool_clone_multi","title":"複製所選元素"}, {"id":"tool_delete","title":"刪除"}, {"id":"tool_delete_multi","title":"刪除所選元素"}, -{"id":"tool_docprops","title":"文件屬性"}, +{"id":"tool_docprops","textContent":"文件屬性"}, {"id":"tool_docprops_cancel","textContent":"取消"}, {"id":"tool_docprops_save","textContent":"保存"}, {"id":"tool_ellipse","title":"橢圓"}, @@ -108,12 +108,12 @@ {"id":"tool_node_clone","title":"增加節點"}, {"id":"tool_node_delete","title":"刪除節點"}, {"id":"tool_node_link","title":"將控制點連起來"}, -{"id":"tool_open","title":"打開圖像"}, +{"id":"tool_open","textContent":"打開圖像"}, {"id":"tool_path","title":"路徑工具"}, {"id":"tool_rect","title":"矩形"}, {"id":"tool_redo","title":"復原"}, {"id":"tool_reorient","title":"調整路徑"}, -{"id":"tool_save","title":"保存圖像"}, +{"id":"tool_save","textContent":"保存圖像"}, {"id":"tool_select","title":"選擇工具"}, {"id":"tool_source","title":"編輯SVG原始碼"}, {"id":"tool_source_cancel","textContent":"取消"}, @@ -125,8 +125,6 @@ {"id":"tool_ungroup","title":"取消群組"}, {"id":"tool_wireframe","title":"框線模式(只瀏覽線條)"}, {"id":"tool_zoom","title":"縮放工具"}, -{"id":"tools_ellipse_show","title":"橢圓/圓工具"}, -{"id":"tools_rect_show","title":"矩形/方形工具"}, {"id":"zoom","title":"更改縮放級別"}, {"id":"zoomLabel","textContent":"調整頁面大小:"}, {"id":"sidepanel_handle","textContent":"圖層","title":"拖拉以改變側邊面板的大小"},
--- a/htdocs/svg-edit/editor/locale/lang.zh.js Fri Apr 23 22:29:49 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -[ -{"id": "align_relative_to", "title": "相对对齐 ..."}, -{"id": "angle", "title": "旋转角度的变化"}, -{"id": "angleLabel", "textContent": "角:"}, -{"id": "bkgnd_color", "title": "更改背景颜色/不透明"}, -{"id": "circle_cx", "title": "改变循环的CX坐标"}, -{"id": "circle_cy", "title": "改变循环的赛扬坐标"}, -{"id": "circle_r", "title": "改变圆的半径"}, -{"id": "cornerRadiusLabel", "textContent": "角半径:"}, -{"id": "curve_segments", "textContent": "Curve"}, -{"id": "ellipse_cx", "title": "改变椭圆的CX坐标"}, -{"id": "ellipse_cy", "title": "改变椭圆的赛扬坐标"}, -{"id": "ellipse_rx", "title": "改变椭圆的x半径"}, -{"id": "ellipse_ry", "title": "改变椭圆的y半径"}, -{"id": "fill_color", "title": "更改填充颜色"}, -{"id": "fill_tool_bottom", "textContent": "充满:"},