From: Dennis Nienhüser Date: Sun, 19 Jun 2011 12:01:28 +0000 (+0200) Subject: Add desktop summit page X-Git-Url: https://vcs.maemo.org/git/?p=marble;a=commitdiff_plain;h=bf586388a2dcfed5e9505dd1a956f8ac951b7c3a Add desktop summit page --- diff --git a/www/css/ReMooz.css b/www/css/ReMooz.css new file mode 100644 index 0000000..485ada2 --- /dev/null +++ b/www/css/ReMooz.css @@ -0,0 +1,186 @@ +.remooz-element +{ + cursor: -moz-zoom-in; +} + +/** + * Box layout + */ + +.remooz-box +{ + position: absolute; + top: 0; + left: 0; + background: #fff no-repeat center; + z-index: 100; +} +.remooz-loading +{ + background-image: url(spinner.gif); +} +.remooz-body +{ + width: 100%; + height: 100%; +} +.remooz-box-focus.remooz-type-image .remooz-body +{ + cursor: -moz-zoom-out; +} +.remooz-box-dragging .remooz-body +{ + cursor: move; +} + +/** + * Close button + */ + +.remooz-btn-close +{ + position: absolute; + left: -15px; + top: -15px; + width: 30px; + height: 30px; + text-decoration: none; + border: 0; + background: url(closebox.png) no-repeat center; + visibility: hidden; + cursor: pointer; +} +.remooz-engine-trident4 .remooz-btn-close +{ + background-image: url(closebox.gif); +} + +/** + * Caption title + */ + +.remooz-title +{ + position: relative; + left: 0; + top: 15px; + text-align: left; +} +.remooz-title-bg +{ + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: #000; + z-index: 99; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + /* shadow opacity differs from box shadow because its default set to opacity 0.8 */ + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.9); +} +.remooz-title-content +{ + position: relative; + padding: 5px 15px; + color: #fff; + z-index: 101; + font: 11px/1.5 Verdana, Geneva, Arial, Helvetica, sans-serif; +} + +.remooz-engine-trident4 .remooz-title-bg +{ + display: none; +} +.remooz-engine-trident4 .remooz-title-content +{ + background-color: #333; +} + +.remooz-title-content h6 +{ + font-size: 1.2em; + font-weight: bold; + color: #eee; +} +.remooz-title-content p +{ + color: #eee; +} + +/** + * Type specific + */ + +.remooz-type-image img +{ + display: block; + border: 0; + width: 100%; + height: 100%; +} + +/** + * Shadow + */ + +.remooz-bg +{ + position: absolute; + width: 33px; + height: 40px; +} + +.remooz-bg-n +{ + left: 0; + top: -40px; + width: 100%; + background: url(remo_bg_n.png) repeat-x; +} +.remooz-bg-ne +{ + right: -33px; + top: -40px; + background: url(remo_bg_ne.png) no-repeat; +} +.remooz-bg-e +{ + right: -33px; + top: 0; + height: 100%; + background: url(remo_bg_e.png) repeat-y; +} +.remooz-bg-se +{ + right: -33px; + bottom: -40px; + background: url(remo_bg_se.png) no-repeat; +} +.remooz-bg-s +{ + left: 0; + bottom: -40px; + width: 100%; + background: url(remo_bg_s.png) repeat-x; +} +.remooz-bg-sw +{ + left: -33px; + bottom: -40px; + background: url(remo_bg_sw.png) no-repeat; +} +.remooz-bg-w +{ + left: -33px; + top: 0; + height: 100%; + background: url(remo_bg_w.png) repeat-y; +} +.remooz-bg-nw +{ + left: -33px; + top: -40px; + background: url(remo_bg_nw.png) no-repeat; +} \ No newline at end of file diff --git a/www/css/img/carrow1.gif b/www/css/img/carrow1.gif new file mode 100755 index 0000000..316dea7 Binary files /dev/null and b/www/css/img/carrow1.gif differ diff --git a/www/css/img/carrow2.gif b/www/css/img/carrow2.gif new file mode 100755 index 0000000..24a6be1 Binary files /dev/null and b/www/css/img/carrow2.gif differ diff --git a/www/css/img/closebox.gif b/www/css/img/closebox.gif new file mode 100644 index 0000000..4a75a44 Binary files /dev/null and b/www/css/img/closebox.gif differ diff --git a/www/css/img/closebox.png b/www/css/img/closebox.png new file mode 100644 index 0000000..4de4396 Binary files /dev/null and b/www/css/img/closebox.png differ diff --git a/www/css/img/fleche1.gif b/www/css/img/fleche1.gif new file mode 100644 index 0000000..218233d Binary files /dev/null and b/www/css/img/fleche1.gif differ diff --git a/www/css/img/fleche1.png b/www/css/img/fleche1.png new file mode 100644 index 0000000..61e8660 Binary files /dev/null and b/www/css/img/fleche1.png differ diff --git a/www/css/img/fleche2.gif b/www/css/img/fleche2.gif new file mode 100644 index 0000000..dc91f06 Binary files /dev/null and b/www/css/img/fleche2.gif differ diff --git a/www/css/img/fleche2.png b/www/css/img/fleche2.png new file mode 100644 index 0000000..bbf66a1 Binary files /dev/null and b/www/css/img/fleche2.png differ diff --git a/www/css/img/loading-bar-black.gif b/www/css/img/loading-bar-black.gif new file mode 100755 index 0000000..99368d6 Binary files /dev/null and b/www/css/img/loading-bar-black.gif differ diff --git a/www/css/img/open.gif b/www/css/img/open.gif new file mode 100644 index 0000000..d145e66 Binary files /dev/null and b/www/css/img/open.gif differ diff --git a/www/css/img/open.png b/www/css/img/open.png new file mode 100644 index 0000000..aebf498 Binary files /dev/null and b/www/css/img/open.png differ diff --git a/www/css/img/remo_bg_e.png b/www/css/img/remo_bg_e.png new file mode 100644 index 0000000..17811a0 Binary files /dev/null and b/www/css/img/remo_bg_e.png differ diff --git a/www/css/img/remo_bg_n.png b/www/css/img/remo_bg_n.png new file mode 100644 index 0000000..d8b7768 Binary files /dev/null and b/www/css/img/remo_bg_n.png differ diff --git a/www/css/img/remo_bg_ne.png b/www/css/img/remo_bg_ne.png new file mode 100644 index 0000000..92f8d5e Binary files /dev/null and b/www/css/img/remo_bg_ne.png differ diff --git a/www/css/img/remo_bg_nw.png b/www/css/img/remo_bg_nw.png new file mode 100644 index 0000000..bc7ed49 Binary files /dev/null and b/www/css/img/remo_bg_nw.png differ diff --git a/www/css/img/remo_bg_s.png b/www/css/img/remo_bg_s.png new file mode 100644 index 0000000..e55f927 Binary files /dev/null and b/www/css/img/remo_bg_s.png differ diff --git a/www/css/img/remo_bg_se.png b/www/css/img/remo_bg_se.png new file mode 100644 index 0000000..f9ff05c Binary files /dev/null and b/www/css/img/remo_bg_se.png differ diff --git a/www/css/img/remo_bg_sw.png b/www/css/img/remo_bg_sw.png new file mode 100644 index 0000000..7390444 Binary files /dev/null and b/www/css/img/remo_bg_sw.png differ diff --git a/www/css/img/remo_bg_w.png b/www/css/img/remo_bg_w.png new file mode 100644 index 0000000..71c89d6 Binary files /dev/null and b/www/css/img/remo_bg_w.png differ diff --git a/www/css/img/spinner.gif b/www/css/img/spinner.gif new file mode 100644 index 0000000..88fac73 Binary files /dev/null and b/www/css/img/spinner.gif differ diff --git a/www/css/jd.gallery.css b/www/css/jd.gallery.css new file mode 100755 index 0000000..26aa6cc --- /dev/null +++ b/www/css/jd.gallery.css @@ -0,0 +1,371 @@ +#myGallery, #myGallerySet, #flickrGallery +{ + width: 460px; + height: 345px; + z-index:5; + border: 1px solid #000; +} + +.jdGallery a +{ + outline:0; +} + +#flickrGallery +{ + width: 500px; + height: 334px; +} + +#myGallery img.thumbnail, #myGallerySet img.thumbnail +{ + display: none; +} + +.jdGallery +{ + overflow: hidden; + position: relative; +} + +.jdGallery img +{ + border: 0; + margin: 0; +} + +.jdGallery .slideElement +{ + width: 100%; + height: 100%; + background-color: #000; + background-repeat: no-repeat; + background-position: center center; + background-image: url('img/loading-bar-black.gif'); +} + +.jdGallery .loadingElement +{ + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + background-color: #000; + background-repeat: no-repeat; + background-position: center center; + background-image: url('img/loading-bar-black.gif'); +} + +.jdGallery .slideInfoZone +{ + position: absolute; + z-index: 10; + width: 100%; + margin: 0px; + left: 0; + bottom: 0; + height: 38px; + background: #222; + color: #fff; + text-indent: 0; + overflow: hidden; +} + +* html .jdGallery .slideInfoZone +{ + bottom: -1px; +} + +.jdGallery .slideInfoZone h2 +{ + padding: 0; + font-size: 100%; + margin: 0; + margin: 2px 5px; + font-weight: bold; + color: inherit; +} + +.jdGallery .slideInfoZone p +{ + padding: 0; + font-size: 80%; + margin: 2px 5px; + color: #eee; +} + +.jdGallery div.carouselContainer +{ + position: absolute; + height: 135px; + width: 100%; + z-index: 10; + margin: 0px; + left: 0; + top: 0; +} + +.jdGallery a.carouselBtn +{ + position: absolute; + bottom: 0; + right: 30px; + height: 20px; + /*width: 100px; background: url('img/carousel_btn.gif') no-repeat;*/ + text-align: center; + padding: 0 10px; + font-size: 13px; + background: #333; + color: #fff; + cursor: pointer; +} + +.jdGallery .carousel +{ + position: absolute; + width: 100%; + margin: 0px; + left: 0; + top: 0; + height: 115px; + background: #333; + color: #fff; + text-indent: 0; + overflow: hidden; +} + +.jdExtCarousel +{ + overflow: hidden; + position: relative; +} + +.jdGallery .carousel .carouselWrapper, .jdExtCarousel .carouselWrapper +{ + position: absolute; + width: 100%; + height: 78px; + top: 10px; + left: 0; + overflow: hidden; +} + +.jdGallery .carousel .carouselInner, .jdExtCarousel .carouselInner +{ + position: relative; +} + +.jdGallery .carousel .carouselInner .thumbnail, .jdExtCarousel .carouselInner .thumbnail +{ + cursor: pointer; + background: #000; + background-position: center center; + float: left; + border: solid 1px #fff; +} + +.jdGallery .wall .thumbnail, .jdExtCarousel .wall .thumbnail +{ + margin-bottom: 10px; +} + +.jdGallery .carousel .label, .jdExtCarousel .label +{ + font-size: 13px; + position: absolute; + bottom: 5px; + left: 10px; + padding: 0; + margin: 0; +} + +.jdGallery .carousel .wallButton, .jdExtCarousel .wallButton +{ + font-size: 10px; + position: absolute; + bottom: 5px; + right: 10px; + padding: 1px 2px; + margin: 0; + background: #222; + border: 1px solid #888; + cursor: pointer; +} + +.jdGallery .carousel .label .number, .jdExtCarousel .label .number +{ + color: #b5b5b5; +} + +.jdGallery a +{ + font-size: 100%; + text-decoration: none; + color: inherit; +} + +.jdGallery a.right, .jdGallery a.left +{ + position: absolute; + height: 99%; + width: 25%; + cursor: pointer; + z-index:10; + filter:alpha(opacity=20); + -moz-opacity:0.2; + -khtml-opacity: 0.2; + opacity: 0.2; +} + +* html .jdGallery a.right, * html .jdGallery a.left +{ + filter:alpha(opacity=50); +} + +.jdGallery a.right:hover, .jdGallery a.left:hover +{ + filter:alpha(opacity=80); + -moz-opacity:0.8; + -khtml-opacity: 0.8; + opacity: 0.8; +} + +.jdGallery a.left +{ + left: 0; + top: 0; + background: url('img/fleche1.png') no-repeat center left; +} + +* html .jdGallery a.left { background: url('img/fleche1.gif') no-repeat center left; } + +.jdGallery a.right +{ + right: 0; + top: 0; + background: url('img/fleche2.png') no-repeat center right; +} + +* html .jdGallery a.right { background: url('img/fleche2.gif') no-repeat center right; } + +.jdGallery a.open +{ + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.withArrows a.open +{ + position: absolute; + top: 0; + left: 25%; + height: 99%; + width: 50%; + cursor: pointer; + z-index: 10; + background: none; + -moz-opacity:0.8; + -khtml-opacity: 0.8; + opacity: 0.8; +} + +.withArrows a.open:hover { background: url('img/open.png') no-repeat center center; } + +* html .withArrows a.open:hover { background: url('img/open.gif') no-repeat center center; + filter:alpha(opacity=80); } + + +/* Gallery Sets */ + +.jdGallery a.gallerySelectorBtn +{ + z-index: 15; + position: absolute; + top: 0; + left: 30px; + height: 20px; + /*width: 100px; background: url('img/carousel_btn.gif') no-repeat;*/ + text-align: center; + padding: 0 10px; + font-size: 13px; + background: #333; + color: #fff; + cursor: pointer; + opacity: .4; + -moz-opacity: .4; + -khtml-opacity: 0.4; + filter:alpha(opacity=40); +} + +.jdGallery .gallerySelector +{ + z-index: 20; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background: #000; +} + +.jdGallery .gallerySelector h2 +{ + margin: 0; + padding: 10px 20px 10px 20px; + font-size: 20px; + line-height: 30px; + color: #fff; +} + +.jdGallery .gallerySelector .gallerySelectorWrapper +{ + overflow: hidden; +} + +.jdGallery .gallerySelector .gallerySelectorInner div.galleryButton +{ + margin-left: 10px; + margin-top: 10px; + border: 1px solid #888; + padding: 5px; + height: 40px; + color: #fff; + cursor: pointer; + float: left; +} + +.jdGallery .gallerySelector .gallerySelectorInner div.hover +{ + background: #333; +} + +.jdGallery .gallerySelector .gallerySelectorInner div.galleryButton div.preview +{ + background: #000; + background-position: center center; + float: left; + border: none; + width: 40px; + height: 40px; + margin-right: 5px; +} + +.jdGallery .gallerySelector .gallerySelectorInner div.galleryButton h3 +{ + margin: 0; + padding: 0; + font-size: 12px; + font-weight: normal; +} + +.jdGallery .gallerySelector .gallerySelectorInner div.galleryButton p.info +{ + margin: 0; + padding: 0; + font-size: 12px; + font-weight: normal; + color: #aaa; +} \ No newline at end of file diff --git a/www/css/layout.css b/www/css/layout.css new file mode 100755 index 0000000..aa008b2 --- /dev/null +++ b/www/css/layout.css @@ -0,0 +1,91 @@ +body { + color: #ccc; + font-family: "Trebuchet MS", "Lucida Grande", Arial, Helvetica, sans-serif; + margin: 0 auto; + padding: 0; + font-size: 0.6em; + background: #111 url('../images/bg/gradient1.gif') top left repeat-x; +} + +h1 +{ + color: #fff; + font-size: 47px; + font-weight: bolder; + margin: 0 40px; + padding: 0.08em 0; +} + +h1 sup +{ + color: #ddd; +} + +h1 a +{ + color: #fff; + text-decoration: none; +} + +h1 .company, h1 a .company +{ + color: #d01a71; +} + +h2 +{ + color: #ddd; + font-size: 2.5em; +} + +h3 +{ + color: #fff; + font-size: 1.5em; +} + +h4 +{ + font-size: 1.3em; +} + +.content +{ + margin: 0 20px; +} + +.content a +{ + color: #fff; +} + + +.content p.linkage +{ + margin-top: 2em; + text-align: right; + font-size: 1.7em; + color: #ddd; +} + +.content p.linkage a { color: #fff; } + +/*.content p.linkage a +{ + color: #fff; + background: url('../images/bg/biglink_off.gif') center right no-repeat; + padding: 10px 20px; + text-decoration: none; +} + +.content p.linkage a:hover +{ + background: url('../images/bg/biglink_on.gif') center right no-repeat; + font-style: italic; +}*/ + +#myGallery +{ + text-align: left; + margin: 0 auto; +} \ No newline at end of file diff --git a/www/ds/images/desktopsummit-marble.png b/www/ds/images/desktopsummit-marble.png new file mode 100644 index 0000000..240c61b Binary files /dev/null and b/www/ds/images/desktopsummit-marble.png differ diff --git a/www/ds/images/screenshot107.png b/www/ds/images/screenshot107.png new file mode 100644 index 0000000..48438e1 Binary files /dev/null and b/www/ds/images/screenshot107.png differ diff --git a/www/ds/images/screenshot108.png b/www/ds/images/screenshot108.png new file mode 100644 index 0000000..7a81b3b Binary files /dev/null and b/www/ds/images/screenshot108.png differ diff --git a/www/ds/images/screenshot110.png b/www/ds/images/screenshot110.png new file mode 100644 index 0000000..ef861f5 Binary files /dev/null and b/www/ds/images/screenshot110.png differ diff --git a/www/ds/images/screenshot111.png b/www/ds/images/screenshot111.png new file mode 100644 index 0000000..460f386 Binary files /dev/null and b/www/ds/images/screenshot111.png differ diff --git a/www/ds/images/screenshot112.png b/www/ds/images/screenshot112.png new file mode 100644 index 0000000..8631b07 Binary files /dev/null and b/www/ds/images/screenshot112.png differ diff --git a/www/ds/images/screenshot113.png b/www/ds/images/screenshot113.png new file mode 100644 index 0000000..3b7a23d Binary files /dev/null and b/www/ds/images/screenshot113.png differ diff --git a/www/ds/images/screenshot114.png b/www/ds/images/screenshot114.png new file mode 100644 index 0000000..a9d9251 Binary files /dev/null and b/www/ds/images/screenshot114.png differ diff --git a/www/ds/images/screenshot115.png b/www/ds/images/screenshot115.png new file mode 100644 index 0000000..1440d0c Binary files /dev/null and b/www/ds/images/screenshot115.png differ diff --git a/www/ds/index.html b/www/ds/index.html new file mode 100644 index 0000000..2dc62c9 --- /dev/null +++ b/www/ds/index.html @@ -0,0 +1,126 @@ + + + + + +Marble Desktop Summit + + + + + + + + + + + + + + + +
+ + + +

+Are you attending the Desktop Summit 2011 in Berlin? Do you own a Nokia N900? Then we've got something for you. +

+ +

+The Marble Desktop Summit 2011 package contains data for offline usage in Berlin. Find your way and explore Berlin during the Desktop Summit. Install the Marble Desktop Summit 2011 package to get offline OSM maps, offline routing and offline search data for Berlin in a single package. +

+ +

+Please be patient. We'll add installation instructions here in time for the conference. +

+ +
+
+

Offline Berlin OpenStreetMap

+

View the map of Berlin to orient yourself.

+ + + +
+ +
+

Bookmarks

+

A couple of important places are included as bookmarks.

+ + + +
+ +
+

Offline Route Planning

+

Rent a car at the airport and have Marble calculate the route to your hotel. You can use the bookmarks to select start and destination quickly.

+ + + +
+ +
+

Turn Instructions

+

Turn instructions describe each turn point of the route.

+ + + +
+ +
+

Offline Pedestrian Routing

+

Want to go to the hotel from the conference venue? Marble guides your walk to the next subway station.

+ + + +
+ +
+

Offline Address Search

+

Search for any address in Berlin.

+ + + +
+ +
+

Offline POI Search

+

List all points of interest for a certain category. Turn on the GPS to have the nearby ones appear on top.

+ + + +
+ +
+

Offline Fuzzy Search

+

Not sure about the exact name? Use fuzzy searches (case insensitive, '*' as wildcard).

+ + + +
+ +
+ +
+
+

Maintained by the Marble developers.

+ + + diff --git a/www/scripts/History.Routing.js b/www/scripts/History.Routing.js new file mode 100644 index 0000000..879d9e9 --- /dev/null +++ b/www/scripts/History.Routing.js @@ -0,0 +1,126 @@ +/** + * History.Routing + * + * @version 2.0 + * + * @license MIT License + * @author Harald Kirschner + * @copyright 2008 Author + */ + +History.implement(new Options()); + +History.implement({ + + options: { + separator: ';' + }, + + routes: [], + + register: function(route) { + if (this.routes.push(route) == 1) this.addEvent('changed', this.match); + }, + + unregister: function(route) { + this.routes.remove(route); + }, + + match: function(state, previous, manual) { + if (!manual) this.routes.each(Function.methodize('match', this.state)); + }, + + generate: function() { + return this.routes.map(Function.methodize('generate')).clean().join(this.options.separator); + }, + + update: function() { + return this.setState(this.generate()); + } + +}); + +History.Route = new Class({ + + Implements: [Events, Options], + + /** + * pattern: Regular expression that matches the string updated from onGenerate + * defaults: Default values array, initially empty. + * flags: When regexp is a String, this is the second argument for new RegExp. + * skipDefaults: default true; generate is not called when current values are similar to the default values. + * generate: Should return the string for the state string, values are first argument + * onMatch: Will be called when the regexp matches, with the new values as argument. + */ + options: { + skipDefaults: true, + defaults: [], + pattern: null, + flags: '', + generate: function(values) { + return values[0]; + }, + onMatch: $empty + }, + + initialize: function(options){ + this.setOptions(options); + this.pattern = this.options.pattern || '(.*)'; + if ($type(this.pattern) == 'string') this.pattern = new RegExp(this.pattern, this.options.flags); + this.values = this.defaults = this.options.defaults.slice(); + History.register(this); + return this; + }, + + setValues: function(values) { + if (this.values.toString() == values.toString()) return this; + this.values = values; + History.update(); + return this; + }, + + setValue: function(index, value) { + if (this.values[index] == value) return this; + this.values[index] = value; + History.update(); + return this; + }, + + build: function(values) { + var tmp = this.values.slice(); + this.values = values; + var state = History.generate(); + this.values = tmp; + return state; + }, + + destroy: function() { + History.unregister(this); + }, + + generate: function() { + if (this.options.skipDefaultMatch && (String(this.values) == String(this.defaults))) return null; + return this.options.generate.call(this, this.values); + }, + + match: function(state) { + var bits = state.match(this.pattern); + var defaults = this.defaults; + if (bits) { + bits.splice(0, 1); + for (var i = 0, j = bits.length; i < j; i++) bits[i] = $pick(bits[i], defaults[i] || null); + if (String(bits) != String(defaults)) this.values = bits; + } else { + this.values = this.defaults.slice(); + } + this.fireEvent('onMatch', [this.values, this.defaults]); + } + +}); + +Function.methodize = function(name) { + var args = Array.slice(arguments, 1); + return function(obj) { + return obj[name].apply(obj, args); + }; +}; diff --git a/www/scripts/History.js b/www/scripts/History.js new file mode 100644 index 0000000..28a76d9 --- /dev/null +++ b/www/scripts/History.js @@ -0,0 +1,109 @@ +/** + * History + * + * @version 1.0 + * + * @license MIT License + * @author Harald Kirschner + * @copyright 2008 Author + */ + +var History = $extend(history, { + + implement: function(obj) { + return $extend(this, obj); + } + +}); + +History.implement(new Events($empty)); + +History.implement({ + + state: null, + + start: function() { + if (this.started) return this; + this.state = this.getHash(); + if (Browser.Engine.trident) { + var iframe = new Element('iframe', { + 'src': "javascript:''", + 'styles': { + 'position': 'absolute', + 'top': '-1000px' + } + }).inject(document.body).contentWindow; + var writeState = function(state) { + iframe.document.write('Moo!'); + iframe.document.close(); + }; + $extend(this, { + '$listener': function(state) { + state = decodeURIComponent(state); + if (this.state != state) this.setHash(state).changeState(state); + }.bind(this), + 'setState': function(state, force) { + if (this.state != state || force) { + if (!force) this.setHash(state).changeState(state, true); + writeState(state); + } + return this; + }, + 'trace': function() { + var state = this.getHash(); + if (state != this.state) writeState(state); + } + }); + var check = (function() { + if (iframe.document && iframe.document.body) { + check = $clear(check); + if (!iframe.document.body.innerHTML) this.setState(this.state); + } + }).periodical(50, this); + } else { + if (Browser.Engine.presto915) { + new Element('img', { + 'src': "javascript:location.href='javascript:History.trace();';", + 'styles': { + 'position': 'absolute', + 'top': '-1000px' + } + }).inject(document.body); + } + } + this.trace.periodical(150, this); + this.started = true; + return this; + }, + + changeState: function(state, manual) { + var stateOld = this.state; + this.state = state; + this.fireEvent('changed', [state, stateOld, manual]); + }, + + trace: function() { + var state = this.getHash(); + if (state != this.state) this.changeState(state); + }, + + getHash: function() { + var href = location.href, pos = href.indexOf('#') + 1; + return (pos) ? href.substr(pos) : ''; + }, + + setHash: function(state) { + location.hash = '#' + state; + return this; + }, + + setState: function(state) { + if (this.state !== state) this.setHash(state).changeState(state, true); + return this; + }, + + getState: function() { + return this.state; + } + +}); diff --git a/www/scripts/ReMooz.js b/www/scripts/ReMooz.js new file mode 100644 index 0000000..c03b3b6 --- /dev/null +++ b/www/scripts/ReMooz.js @@ -0,0 +1,364 @@ +/** + * ReMooz - Zoomer + * + * Inspired by so many boxes and zooms + * + * @version 1.0 + * + * @license MIT-style license + * @author Harald Kirschner + * @copyright Author + */ + +var ReMooz = new Class({ + + Implements: [Events, Options, Chain], + + options: { + link: null, + type: 'image', + container: null, + className: null, + centered: false, + dragging: true, + closeOnClick: true, + shadow: (Browser.Engine.trident) ? 'onOpenEnd' : 'onOpen', // performance + resize: true, + margin: 20, + resizeFactor: 0.95, + resizeLimit: false, // {x: 640, y: 640} + fixedSize: false, + cutOut: true, + addClick: true, + opacityLoad: 0.6, + opacityResize: 1, + opacityTitle: 0.9, + resizeOptions: {}, + fxOptions: {}, + closer: true, + parse: false, // 'rel' + parseSecure: false, + temporary: false, + onBuild: $empty, + onLoad: $empty, + onOpen: $empty, + onOpenEnd: $empty, + onClose: $empty, + onCloseEnd: $empty, + generateTitle: function(el) { + var text = el.get('title'); + if (!text) return false; + var title = text.split(' :: '); + var head = new Element('h6', {'html': title[0]}); + return (title[1]) ? [head, new Element('p', {'html': title[1]})] : head; + } + }, + + initialize: function(element, options) { + this.element = $(element); + this.setOptions(options); + if (this.options.parse) { + var obj = this.element.getProperty(this.options.parse); + if (obj && (obj = JSON.decode(obj, this.options.parseSecure))) this.setOptions(obj); + } + var origin = this.options.origin; + this.origin = ((origin) ? $(origin) || this.element.getElement(origin) : null) || this.element; + this.link = this.options.link || this.element.get('href') || this.element.get('src'); + this.container = $(this.options.container) || this.element.getDocument(); + this.bound = { + 'click': function(e) { + this.open.delay(1, this); + return false; + }.bind(this), + 'close': this.close.bind(this), + 'dragClose': function(e) { + if (e.rightClick) return; + this.close(); + }.bind(this) + }; + if (this.options.addClick) this.bindToElement(); + }, + + destroy: function() { + if (this.box) this.box.destroy(); + this.box = this.tweens = this.body = this.content = null; + }, + + bindToElement: function(element) { + ($(element) || this.element).addClass('remooz-element').addEvent('click', this.bound.click); + return this; + }, + + getOriginCoordinates: function() { + var coords = this.origin.getCoordinates(); + delete coords.right; + delete coords.bottom; + return coords; + }, + + open: function(e) { + if (this.opened) return (e) ? this.close() : this; + this.opened = this.loading = true; + if (!this.box) this.build(); + this.coords = this.getOriginCoordinates(); + this.coords.opacity = this.options.opacityLoad; + this.coords.display = ''; + this.tweens.box.set(this.coords); + this.box.addClass('remooz-loading'); + ReMooz.open(this.fireEvent('onLoad')); + this['open' + this.options.type.capitalize()](); + return this; + }, + + finishOpen: function() { + this.tweens.fade.start(0, 1); + this.drag.attach(); + this.fireEvent('onOpenEnd').callChain(); + }, + + close: function() { + if (!this.opened) return this; + this.opened = false; + ReMooz.close(this.fireEvent('onClose')); + if (this.loading) { + this.box.setStyle('display', 'none'); + return this; + } + this.drag.detach(); + this.tweens.fade.cancel().set(0).fireEvent('onComplete'); + if (this.tweens.box.timer) this.tweens.box.clearChain(); + var vars = this.getOriginCoordinates(); + if (this.options.opacityResize != 1) vars.opacity = this.options.opacityResize; + this.tweens.box.start(vars).chain(this.closeEnd.bind(this)); + return this; + }, + + closeEnd: function() { + if (this.options.cutOut) this.element.setStyle('visibility', 'visible'); + this.box.setStyle('display', 'none'); + this.fireEvent('onCloseEnd').callChain(); + if (this.options.temporary) this.destroy(); + }, + + openImage: function() { + var tmp = new Image(); + tmp.onload = tmp.onabort = tmp.onerror = function(fast) { + this.loading = tmp.onload = tmp.onabort = tmp.onerror = null; + if (!tmp.width || !this.opened) { + this.fireEvent('onError').close(); + return; + } + var to = {x: tmp.width, y: tmp.height}; + if (!this.content) this.content = $(tmp).inject(this.body); + else tmp = null; + this[(this.options.resize) ? 'zoomRelativeTo' : 'zoomTo'].create({ + 'delay': (tmp && fast !== true) ? 1 : null, + 'arguments': [to], + 'bind': this + })(); + }.bind(this); + tmp.src = this.link; + if (tmp && tmp.complete && tmp.onload) tmp.onload(true); + }, + + /** + * @todo Test implementation + */ + openElement: function() { + this.content = this.content || $(this.link) || $E(this.link); + if (!this.content) { + this.fireEvent('onError').close(); + return; + } + this.content.inject(this.body); + this.zoomTo({x: this.content.scrollWidth, y: this.content.scrollHeight}); + }, + + zoomRelativeTo: function(to) { + var scale = this.options.resizeLimit; + if (!scale) { + scale = this.container.getSize(); + scale.x *= this.options.resizeFactor; + scale.y *= this.options.resizeFactor; + } + for (var i = 2; i--;) { + if (to.x > scale.x) { + to.y *= scale.x / to.x; + to.x = scale.x; + } else if (to.y > scale.y) { + to.x *= scale.y / to.y; + to.y = scale.y; + } + } + return this.zoomTo({x: to.x.toInt(), y: to.y.toInt()}); + }, + + zoomTo: function(to) { + to = this.options.fixedSize || to; + var box = this.container.getSize(), scroll = this.container.getScroll(); + var pos = (!this.options.centered) ? { + x: (this.coords.left + (this.coords.width / 2) - to.x / 2).toInt() + .limit(scroll.x + this.options.margin, scroll.x + box.x - this.options.margin - to.x), + y: (this.coords.top + (this.coords.height / 2) - to.y / 2).toInt() + .limit(scroll.y + this.options.margin, scroll.y + box.y - this.options.margin - to.y) + } : { + x: scroll.x + ((box.x - to.x) / 2).toInt(), + y: scroll.y + ((box.y - to.y) / 2).toInt() + }; + if (this.options.cutOut) this.element.setStyle('visibility', 'hidden'); + this.box.removeClass('remooz-loading'); + var vars = {left: pos.x, top: pos.y, width: to.x, height: to.y}; + if (this.options.opacityResize != 1) vars.opacity = [this.options.opacityResize, 1]; + else this.box.set('opacity', 1); + this.tweens.box.start(vars).chain(this.finishOpen.bind(this)); + this.fireEvent('onOpen'); + }, + + build: function() { + this.addEvent('onBlur', function() { + this.focused = false; + this.box.removeClass('remooz-box-focus').setStyle('z-index', ReMooz.options.zIndex); + }, true); + this.addEvent('onFocus', function() { + this.focused = true; + this.box.addClass('remooz-box-focus').setStyle('z-index', ReMooz.options.zIndexFocus); + }, true); + + var classes = ['remooz-box', 'remooz-type-' + this.options.type, 'remooz-engine-' + Browser.Engine.name + Browser.Engine.version]; + if (this.options.className) classes.push(this.options.className); + this.box = new Element('div', { + 'class': classes.join(' '), + 'styles': { + 'display': 'none', + 'top': 0, + 'left': 0, + 'zIndex': ReMooz.options.zIndex + } + }); + + this.tweens = { + 'box': new Fx.Morph(this.box, $merge({ + 'duration': 400, + 'unit': 'px', + 'transition': Fx.Transitions.Quart.easeOut, + 'chain': 'cancel' + }, this.options.resizeOptions) + ), + 'fade': new Fx.Tween(null, $merge({ + 'property': 'opacity', + 'duration': (Browser.Engine.trident) ? 0 : 300, + 'chain': 'cancel' + }, this.options.fxOptions)).addEvents({ + 'onComplete': function() { + if (!this.element.get('opacity')) this.element.setStyle('display', 'none'); + }, + 'onStart': function() { + if (!this.element.get('opacity')) this.element.setStyle('display', ''); + } + } + ) + }; + this.tweens.fade.element = $$(); + + if (this.options.shadow) { + if (Browser.Engine.webkit420) { + this.box.setStyle('-webkit-box-shadow', '0 0 10px rgba(0, 0, 0, 0.7)'); + } else if (!Browser.Engine.trident4) { + var shadow = new Element('div', {'class': 'remooz-bg-wrap'}).inject(this.box); + ['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'].each(function(dir) { + new Element('div', {'class': 'remooz-bg remooz-bg-' + dir}).inject(shadow); + }); + this.tweens.bg = new Fx.Tween(shadow, { + 'property': 'opacity', + 'chain': 'cancel' + }).set(0); + this.addEvent(this.options.shadow, this.tweens.bg.set.bind(this.tweens.bg, 1), true); + this.addEvent('onClose', this.tweens.bg.set.bind(this.tweens.bg, 0), true); + } + } + + if (this.options.closer) { + var closer = new Element('a', { + 'class': 'remooz-btn-close', + 'events': {'click': this.bound.close} + }).inject(this.box); + this.tweens.fade.element.push(closer); + } + this.body = new Element('div', {'class': 'remooz-body'}).inject(this.box); + + var title = this.options.title || this.options.generateTitle.call(this, this.element); + if (title) { // thx ie6 + var title = new Element('div', {'class': 'remooz-title'}).adopt( + new Element('div', {'class': 'remooz-title-bg', 'opacity': this.options.opacityTitle}), + new Element('div', {'class': 'remooz-title-content'}).adopt(title) + ).inject(this.box); + this.tweens.fade.element.push(title); + } + this.tweens.fade.set(0).fireEvent('onComplete'); + + this.drag = new Drag.Move(this.box, { + 'snap': 15, + 'preventDefault': true, + 'onBeforeStart': function() { + if (!this.focused && !this.loading) ReMooz.focus(this); + else if (this.loading || this.options.closeOnClick) this.box.addEvent('mouseup', this.bound.dragClose); + }.bind(this), + 'onSnap': function() { + this.box.removeEvent('mouseup', this.bound.dragClose); + if (!this.options.dragging) this.drag.stop(); + else this.box.addClass('remooz-box-dragging'); + }.bind(this), + 'onComplete': function() { + this.box.removeClass('remooz-box-dragging'); + }.bind(this) + }); + this.drag.detach(); + + this.fireEvent('onBuild', this.box, this.element); + this.box.inject(this.element.getDocument().body); + } + +}); + +ReMooz.factory = function(extended) { + return $extend(this, extended); +}; + +ReMooz.factory(new Options).factory({ + + options: { + zIndex: 41, + zIndexFocus: 42, + query: 'a.remooz', + modal: false + }, + + assign: function(elements, options) { + return $$(elements).map(function(element) { + return new ReMooz(element, options); + }, this); + }, + + stack: [], + + open: function(obj) { + var last = this.stack.getLast(); + this.focus(obj); + if (last && this.options.modal) last.close(); + }, + + close: function(obj) { + var length = this.stack.length - 1; + if (length > 1 && this.stack[length] == obj) this.focus(this.stack[length - 1]); + this.stack.erase(obj); + }, + + focus: function(obj) { + var last = this.stack.getLast(); + obj.fireEvent('onFocus', [obj]); + if (last == obj) return; + if (last) last.fireEvent('onBlur', [last]); + this.stack.erase(obj).push(obj); + } + +}); \ No newline at end of file diff --git a/www/scripts/jd.gallery.js b/www/scripts/jd.gallery.js new file mode 100755 index 0000000..03164c0 --- /dev/null +++ b/www/scripts/jd.gallery.js @@ -0,0 +1,789 @@ +/* + This file is part of JonDesign's SmoothGallery v2.1beta1. + + JonDesign's SmoothGallery is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + JonDesign's SmoothGallery is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JonDesign's SmoothGallery; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/) + Contributed code by: + - Christian Ehret (bugfix) + - Nitrix (bugfix) + - Valerio from Mad4Milk for his great help with the carousel scrolling and many other things. + - Archie Cowan for helping me find a bugfix on carousel inner width problem. + - Tomocchino from #mootools for the preloader class + Many thanks to: + - The mootools team for the great mootools lib, and it's help and support throughout the project. + - Harald Kirschner (digitarald: http://digitarald.de/) for all his great libs. Some used here as plugins. +*/ + +/* some quirks to circumvent broken stuff in mt1.2 */ +function isBody(element){ + return (/^(?:body|html)$/i).test(element.tagName); +}; +Element.implement({ + getPosition: function(relative){ + if (isBody(this)) return {x: 0, y: 0}; + var el = this, position = {x: 0, y: 0}; + while (el){ + position.x += el.offsetLeft; + position.y += el.offsetTop; + el = el.offsetParent; + } + var rpos = (relative) ? $(relative).getPosition() : {x: 0, y: 0}; + return {x: position.x - rpos.x, y: position.y - rpos.y}; + } +}); + +// declaring the class +var gallery = { + Implements: [Events, Options], + options: { + showArrows: true, + showCarousel: true, + showInfopane: true, + embedLinks: true, + fadeDuration: 500, + timed: false, + delay: 9000, + preloader: true, + preloaderImage: true, + preloaderErrorImage: true, + /* Data retrieval */ + manualData: [], + populateFrom: false, + populateData: true, + destroyAfterPopulate: true, + elementSelector: "div.imageElement", + titleSelector: "h3", + subtitleSelector: "p", + linkSelector: "a.open", + imageSelector: "img.full", + thumbnailSelector: "img.thumbnail", + defaultTransition: "fade", + /* InfoPane options */ + slideInfoZoneOpacity: 0.7, + slideInfoZoneSlide: true, + /* Carousel options */ + carouselMinimizedOpacity: 0.4, + carouselMinimizedHeight: 20, + carouselMaximizedOpacity: 0.9, + thumbHeight: 75, + thumbWidth: 100, + thumbSpacing: 10, + thumbIdleOpacity: 0.2, + textShowCarousel: 'Pictures', + showCarouselLabel: true, + thumbCloseCarousel: true, + useThumbGenerator: false, + thumbGenerator: 'resizer.php', + useExternalCarousel: false, + carouselElement: false, + carouselHorizontal: true, + activateCarouselScroller: true, + carouselPreloader: true, + textPreloadingCarousel: 'Loading...', + /* CSS Classes */ + baseClass: 'jdGallery', + withArrowsClass: 'withArrows', + /* Plugins: HistoryManager */ + useHistoryManager: false, + customHistoryKey: false, + /* Plugins: ReMooz */ + useReMooz: false + }, + initialize: function(element, options) { + this.setOptions(options); + this.fireEvent('onInit'); + this.currentIter = 0; + this.lastIter = 0; + this.maxIter = 0; + this.galleryElement = element; + this.galleryData = this.options.manualData; + this.galleryInit = 1; + this.galleryElements = Array(); + this.thumbnailElements = Array(); + this.galleryElement.addClass(this.options.baseClass); + + if (this.options.useReMooz&&(this.options.defaultTransition=="fade")) + this.options.defaultTransition="crossfade"; + + this.populateFrom = element; + if (this.options.populateFrom) + this.populateFrom = this.options.populateFrom; + if (this.options.populateData) + this.populateData(); + element.style.display="block"; + + if (this.options.useHistoryManager) + this.initHistory(); + + if ((this.options.embedLinks)|(this.options.useReMooz)) + { + this.currentLink = new Element('a').addClass('open').setProperties({ + href: '#', + title: '' + }).injectInside(element); + if ((!this.options.showArrows) && (!this.options.showCarousel)) + this.galleryElement = element = this.currentLink; + else + this.currentLink.setStyle('display', 'none'); + } + + this.constructElements(); + if ((this.galleryData.length>1)&&(this.options.showArrows)) + { + var leftArrow = new Element('a').addClass('left').addEvent( + 'click', + this.prevItem.bind(this) + ).injectInside(element); + var rightArrow = new Element('a').addClass('right').addEvent( + 'click', + this.nextItem.bind(this) + ).injectInside(element); + this.galleryElement.addClass(this.options.withArrowsClass); + } + this.loadingElement = new Element('div').addClass('loadingElement').injectInside(element); + if (this.options.showInfopane) this.initInfoSlideshow(); + if (this.options.showCarousel) this.initCarousel(); + this.doSlideShow(1); + }, + populateData: function() { + currentArrayPlace = this.galleryData.length; + options = this.options; + var data = $A(this.galleryData); + data.extend(this.populateGallery(this.populateFrom, currentArrayPlace)); + this.galleryData = data; + this.fireEvent('onPopulated'); + }, + populateGallery: function(element, startNumber) { + var data = []; + options = this.options; + currentArrayPlace = startNumber; + element.getElements(options.elementSelector).each(function(el) { + elementDict = $H({ + image: el.getElement(options.imageSelector).getProperty('src'), + number: currentArrayPlace, + transition: this.options.defaultTransition + }); + if ((options.showInfopane) | (options.showCarousel)) + elementDict.extend({ + title: el.getElement(options.titleSelector).innerHTML, + description: el.getElement(options.subtitleSelector).innerHTML + }); + if ((options.embedLinks) | (options.useReMooz)) + elementDict.extend({ + link: el.getElement(options.linkSelector).href||false, + linkTitle: el.getElement(options.linkSelector).title||false, + linkTarget: el.getElement(options.linkSelector).getProperty('target')||false + }); + if ((!options.useThumbGenerator) && (options.showCarousel)) + elementDict.extend({ + thumbnail: el.getElement(options.thumbnailSelector).getProperty('src') + }); + else if (options.useThumbGenerator) + elementDict.extend({ + thumbnail: options.thumbGenerator + '?imgfile=' + elementDict.image + '&max_width=' + options.thumbWidth + '&max_height=' + options.thumbHeight + }); + + data.extend([elementDict]); + currentArrayPlace++; + if (this.options.destroyAfterPopulate) + el.dispose(); + }); + return data; + }, + constructElements: function() { + el = this.galleryElement; + if (this.options.embedLinks && (!this.options.showArrows)) + el = this.currentLink; + this.maxIter = this.galleryData.length; + var currentImg; + for(i=0;i= this.maxIter) + this.nextIter = 0; + this.galleryInit = 0; + this.goTo(this.nextIter); + }, + prevItem: function() { + this.fireEvent('onPreviousCalled'); + this.nextIter = this.currentIter-1; + if (this.nextIter <= -1) + this.nextIter = this.maxIter - 1; + this.galleryInit = 0; + this.goTo(this.nextIter); + }, + goTo: function(num) { + this.clearTimer(); + if(this.options.preloader) + { + this.galleryElements[num].load(); + if (num==0) + this.galleryElements[this.maxIter - 1].load(); + else + this.galleryElements[num - 1].load(); + if (num==(this.maxIter - 1)) + this.galleryElements[0].load(); + else + this.galleryElements[num + 1].load(); + + } + if (this.options.embedLinks) + this.clearLink(); + if (this.options.showInfopane) + { + this.slideInfoZone.clearChain(); + this.hideInfoSlideShow().chain(this.changeItem.pass(num, this)); + } else + this.currentChangeDelay = this.changeItem.delay(500, this, num); + if (this.options.embedLinks) + this.makeLink(num); + this.prepareTimer(); + /*if (this.options.showCarousel) + this.clearThumbnailsHighlights();*/ + }, + changeItem: function(num) { + this.fireEvent('onStartChanging'); + this.galleryInit = 0; + if (this.currentIter != num) + { + for(i=0;i' + (myself.relatedImage.number + 1) + "/" + this.maxIter + ": " + myself.relatedImage.title); + }.pass(currentImg, this), + 'mouseout': function (myself) { + myself.cancel(); + myself.start({'opacity': this.options.thumbIdleOpacity}); + }.pass(currentImg, this), + 'click': function (myself) { + this.goTo(myself.relatedImage.number); + if (this.options.thumbCloseCarousel&&(!this.options.useExternalCarousel)) + this.hideCarousel(); + }.pass(currentImg, this) + }); + + currentImg.relatedImage = this.galleryData[i]; + this.thumbnailElements[parseInt(i)] = currentImg; + } + }, + log: function(value) { + if(console.log) + console.log(value); + }, + preloadThumbnails: function() { + var thumbnails = []; + for(i=0;i oldPos) newFx.start({opacity: 1}); + else + { + newFx.set({opacity: 1}); + oldFx.start({opacity: 0}); + } + }, + crossfade: function(oldFx, newFx, oldPos, newPos){ + oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear; + oldFx.options.duration = newFx.options.duration = this.options.fadeDuration; + newFx.start({opacity: 1}); + oldFx.start({opacity: 0}); + }, + fadebg: function(oldFx, newFx, oldPos, newPos){ + oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear; + oldFx.options.duration = newFx.options.duration = this.options.fadeDuration / 2; + oldFx.start({opacity: 0}).chain(newFx.start.pass([{opacity: 1}], newFx)); + } +}); + +/* All code copyright 2007 Jonathan Schemoul */ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Follows: Preloader (class) + * Simple class for preloading images with support for progress reporting + * Copyright 2007 Tomocchino. + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +var Preloader = new Class({ + + Implements: [Events, Options], + + options: { + root : '', + period : 100 + }, + + initialize: function(options){ + this.setOptions(options); + }, + + load: function(sources) { + this.index = 0; + this.images = []; + this.sources = this.temps = sources; + this.total = this. sources.length; + + this.fireEvent('onStart', [this.index, this.total]); + this.timer = this.progress.periodical(this.options.period, this); + + this.sources.each(function(source, index){ + this.images[index] = new Asset.image(this.options.root + source, { + 'onload' : function(){ this.index++; if(this.images[index]) this.fireEvent('onLoad', [this.images[index], index, source]); }.bind(this), + 'onerror' : function(){ this.index++; this.fireEvent('onError', [this.images.splice(index, 1), index, source]); }.bind(this), + 'onabort' : function(){ this.index++; this.fireEvent('onError', [this.images.splice(index, 1), index, source]); }.bind(this) + }); + }, this); + }, + + progress: function() { + this.fireEvent('onProgress', [Math.min(this.index, this.total), this.total]); + if(this.index >= this.total) this.complete(); + }, + + complete: function(){ + $clear(this.timer); + this.fireEvent('onComplete', [this.images]); + }, + + cancel: function(){ + $clear(this.timer); + } + +}); + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Follows: formatString (function) + * Original name: Yahoo.Tools.printf + * Copyright Yahoo. + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +function formatString() { + var num = arguments.length; + var oStr = arguments[0]; + for (var i = 1; i < num; i++) { + var pattern = "\\{" + (i-1) + "\\}"; + var re = new RegExp(pattern, "g"); + oStr = oStr.replace(re, arguments[i]); + } + return oStr; +} \ No newline at end of file diff --git a/www/scripts/jd.gallery.set.js b/www/scripts/jd.gallery.set.js new file mode 100644 index 0000000..89ade56 --- /dev/null +++ b/www/scripts/jd.gallery.set.js @@ -0,0 +1,183 @@ +/* + This file is part of JonDesign's SmoothGallery v2.1beta1. + + JonDesign's SmoothGallery is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + JonDesign's SmoothGallery is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JonDesign's SmoothGallery; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/) +*/ + +var gallerySet = new Class({ + Extends: gallery, + initialize: function(element, options) { + this.setOptions({ + manualSetData: [], + gallerySelector: "div.galleryElement", + galleryTitleSelector: "h2", + textGallerySelector: 'Galleries', + textShowGallerySelector: 'Other Galleries', + textGalleryInfo: '{0} pictures', + startWithSelector: true, + /* Changing default options */ + textShowCarousel: '{0}/{1} Pictures', + carouselPreloader: false + }); + this.setOptions(options); + this.gallerySet = this.options.manualSetData; + this.addEvent('onPopulated', this.createGallerySelectorTab.bind(this)); + this.addEvent('onPopulated', this.createGallerySelector.bind(this)); + this.startWithSelectorFn = this.toggleGallerySelector.pass(true, this); + if (this.options.startWithSelector) + this.addEvent('onGallerySelectorCreated', this.startWithSelectorFn); + this.parent(element, this.options); + }, + populateData: function() { + options = this.options; + var data = $A(this.gallerySet); + this.populateFrom.getElements(options.gallerySelector).each(function (galEl) { + currentGalArrayPlace = 0; + galleryDict = { + title: galEl.getElement(options.galleryTitleSelector).innerHTML, + elements: [] + } + galleryDict.elements.extend(this.populateGallery(galEl, 0)); + data.extend([galleryDict]); + if (this.options.destroyAfterPopulate) + galEl.dispose(); + }, this); + this.gallerySet = data; + this.galleryData = data[0].elements; + this.currentGallery = 0; + this.fireEvent('onPopulated'); + }, + changeGallery: function(number) + { + if (number!=this.currentGallery) + { + this.changeData(this.gallerySet[number].elements); + this.maxIter = this.gallerySet[number].elements.length; + this.currentGallery = number; + this.gallerySelectorBtn.set('html', this.gallerySet[number].title); + this.fireEvent('onGalleryChanged'); + } + this.toggleGallerySelector(false); + }, + createGallerySelectorTab: function() { + this.gallerySelectorBtn = new Element('a').addClass('gallerySelectorBtn').setProperties({ + title: this.options.textShowGallerySelector + }).set('html', this.options.textShowGallerySelector).addEvent( + 'click', + function(){ this.toggleGallerySelector(true); }.bind(this) + ).injectInside(this.galleryElement); + this.addEvent('onShowCarousel', function(){this.gallerySelectorBtn.setStyle('zIndex', 10)}.bind(this)); + this.addEvent('onCarouselHidden', function(){this.gallerySelectorBtn.setStyle('zIndex', 15)}.bind(this)); + }, + createGallerySelector: function() { + this.gallerySelector = new Fx.Morph( + new Element('div').addClass( + 'gallerySelector' + ).injectInside( + this.galleryElement + ).setStyles({ + 'display': 'none', + 'opacity': '0' + }) + ); + this.gallerySelectorTitle = + new Element('h2').set('html', + this.options.textGallerySelector + ).injectInside(this.gallerySelector.element); + var gallerySelectorHeight = this.galleryElement.offsetHeight - 50 - 10 - 2; + this.gallerySelectorWrapper = new Fx.Morph( + new Element('div').addClass( + 'gallerySelectorWrapper' + ).setStyle( + 'height', + gallerySelectorHeight + "px" + ).injectInside(this.gallerySelector.element) + ); + this.gallerySelectorInner = new Element('div').addClass('gallerySelectorInner').injectInside(this.gallerySelectorWrapper.element); + this.gallerySelectorWrapper.scroller = new Scroller(this.gallerySelectorWrapper.element, { + area: 100, + velocity: 0.3 + }).start(); + this.createGalleryButtons(); + this.fireEvent('onGallerySelectorCreated'); + }, + createGalleryButtons: function () { + var galleryButtonWidth = + ((this.galleryElement.offsetWidth - 30) / 2) - 14; + this.gallerySet.each(function(galleryItem, index){ + var button = new Element('div').addClass('galleryButton').injectInside( + this.gallerySelectorInner + ).addEvents({ + 'mouseover': function(myself){ + myself.button.addClass('hover'); + }.pass(galleryItem, this), + 'mouseout': function(myself){ + myself.button.removeClass('hover'); + }.pass(galleryItem, this), + 'click': function(myself, number){ + this.changeGallery.pass(number,this)(); + }.pass([galleryItem, index], this) + }).setStyle('width', galleryButtonWidth); + galleryItem.button = button; + var thumbnail = ""; + if (this.options.showCarousel) + thumbnail = galleryItem.elements[0].thumbnail; + else + thumbnail = galleryItem.elements[0].image; + new Element('div').addClass('preview').setStyle( + 'backgroundImage', + "url('" + thumbnail + "')" + ).injectInside(button); + new Element('h3').set('html', galleryItem.title).injectInside(button); + new Element('p').addClass('info').set('html', formatString(this.options.textGalleryInfo, galleryItem.elements.length)).injectInside(button); + }, this); + new Element('br').injectInside(this.gallerySelectorInner).setStyle('clear','both'); + }, + toggleGallerySelector: function(state) { + if (state) + this.gallerySelector.start({'opacity' : 1}).element.setStyle('display','block'); + else + this.gallerySelector.start({'opacity' : 0}); + }, + initHistory: function() { + this.fireEvent('onHistoryInit'); + this.historyKey = this.galleryElement.id + '-gallery'; + if (this.options.customHistoryKey) + this.historyKey = this.options.customHistoryKey(); + this.history = new History.Route({ + defaults: [1,1], + pattern: this.historyKey + '\\((\\d+)\\)-picture\\((\\d+)\\)', + generate: function(values) { + return [this.historyKey, '(', values[0], ')', '-picture','(', values[1], ')'].join(''); + }.bind(this), + onMatch: function(values, defaults) { + this.changeGallery.pass(parseInt(values[0]) - 1, this).delay(10); + if(this.gallerySelector) + this.toggleGallerySelector.pass(false, this).delay(500); + this.goTo.pass(parseInt(values[1]) - 1, this).delay(100); + }.bind(this) + }); + updateHistory = function(){ + this.history.setValues([this.currentGallery + 1, this.currentIter + 1]); + this.history.defaults=[this.currentGallery + 1, this.currentIter + 1]; + }.bind(this); + + this.addEvent('onChanged', updateHistory); + this.addEvent('onGalleryChanged', updateHistory); + this.fireEvent('onHistoryInited'); + } +}); \ No newline at end of file diff --git a/www/scripts/jd.gallery.transitions.js b/www/scripts/jd.gallery.transitions.js new file mode 100644 index 0000000..c0ecbfb --- /dev/null +++ b/www/scripts/jd.gallery.transitions.js @@ -0,0 +1,90 @@ +/* + This file is part of JonDesign's SmoothGallery v2.1beta1. + + JonDesign's SmoothGallery is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + JonDesign's SmoothGallery is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JonDesign's SmoothGallery; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/) +*/ + +gallery.Transitions.extend({ + fadeslideleft: function(oldFx, newFx, oldPos, newPos){ + oldFx.options.transition = newFx.options.transition = Fx.Transitions.Cubic.easeOut; + oldFx.options.duration = newFx.options.duration = 1500; + if (newPos > oldPos) + { + newFx.start({ + left: [this.galleryElement.offsetWidth, 0], + opacity: 1 + }); + oldFx.start({opacity: [1,0]}); + } else { + newFx.start({opacity: [0,1]}); + oldFx.start({ + left: [0, this.galleryElement.offsetWidth], + opacity: 0 + }).chain(function(fx){fx.set({left: 0});}.pass(oldFx)); + } + }, + continuoushorizontal: function(oldFx, newFx, oldPos, newPos){ + oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear; + if ( + ((newPos > oldPos) || ((newPos==0) && (oldPos == (this.maxIter-1) ))) && + (!((newPos == (this.maxIter-1 )) && (oldPos == 0))) + ) { + oldFx.set({opacity: 1}); + oldFx.start({ + left: [0, this.galleryElement.offsetWidth * -1] + }); + newFx.set({opacity: 1, left: this.galleryElement.offsetWidth}); + newFx.start({ + left: [this.galleryElement.offsetWidth, 0] + }); + } else { + oldFx.set({opacity: 1}); + oldFx.start({ + left: [0, this.galleryElement.offsetWidth] + }); + newFx.set({opacity: 1, left: this.galleryElement.offsetWidth * -1}); + newFx.start({ + left: [this.galleryElement.offsetWidth * -1, 0] + }); + } + }, + continuousvertical: function(oldFx, newFx, oldPos, newPos){ + oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear; + if ( + ((newPos > oldPos) || ((newPos==0) && (oldPos == (this.maxIter-1) ))) && + (!((newPos == (this.maxIter-1 )) && (oldPos == 0))) + ) { + oldFx.set({opacity: 1}); + oldFx.start({ + top: [0, this.galleryElement.offsetHeight * -1] + }); + newFx.set({opacity: 1, top: this.galleryElement.offsetHeight}); + newFx.start({ + top: [this.galleryElement.offsetHeight, 0] + }); + } else { + oldFx.set({opacity: 1}); + oldFx.start({ + top: [0, this.galleryElement.offsetHeight] + }); + newFx.set({opacity: 1, top: this.galleryElement.offsetHeight * -1}); + newFx.start({ + top: [this.galleryElement.offsetHeight * -1, 0] + }); + } + } +}); \ No newline at end of file diff --git a/www/scripts/mootools-1.2-more.js b/www/scripts/mootools-1.2-more.js new file mode 100644 index 0000000..eb33dc4 --- /dev/null +++ b/www/scripts/mootools-1.2-more.js @@ -0,0 +1,103 @@ +//MooTools More, . Copyright (c) 2006-2008 Valerio Proietti, , MIT Style License. + +Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(B,A){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0); +if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper);}},true);this.element=this.subject=$(B);this.parent(A);var C=this.element.retrieve("wrapper"); +this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0); +this.now=[];this.open=true;},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight;},horizontal:function(){this.margin="margin-left"; +this.layout="width";this.offset=this.element.offsetWidth;},set:function(A){this.element.setStyle(this.margin,A[0]);this.wrapper.setStyle(this.layout,A[1]); +return this;},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B[F]=Fx.compute(E[F],D[F],C);});return B;},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this; +}this[E||this.options.mode]();var D=this.element.getStyle(this.margin).toInt();var C=this.wrapper.getStyle(this.layout).toInt();var A=[[D,C],[0,this.offset]]; +var G=[[D,C],[-this.offset,0]];var F;switch(B){case"in":F=A;break;case"out":F=G;break;case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G; +}return this.parent(F[0],F[1]);},slideIn:function(A){return this.start("in",A);},slideOut:function(A){return this.start("out",A);},hide:function(A){this[A||this.options.mode](); +this.open=false;return this.set([-this.offset,0]);},show:function(A){this[A||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(A){return this.start("toggle",A); +}});Element.Properties.slide={set:function(B){var A=this.retrieve("slide");if(A){A.cancel();}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B)); +},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A);}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options"))); +}return this.retrieve("slide");}};Element.implement({slide:function(D,E){D=D||"toggle";var B=this.get("slide"),A;switch(D){case"hide":B.hide(E);break;case"show":B.show(E); +break;case"toggle":var C=this.retrieve("slide:flag",B.open);B[(C)?"slideOut":"slideIn"](E);this.store("slide:flag",!C);A=true;break;default:B.start(D,E); +}if(!A){this.eliminate("slide:flag");}return this;}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B); +this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);}var C=this.element; +if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D);},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D); +},true);}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1]);},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C)); +});return B;},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this;}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H}; +for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A;}else{D[G]=B[G];}D[G]+=this.options.offset[G];}return this.parent([B.x,B.y],[D.x,D.y]); +},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom"); +},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y);}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B); +this.parent(A);},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};for(var B in A){F[B]=this.parent(A[B],E[B],I);}}return C; +},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);}}return this;},start:function(C){if(!this.check(arguments.callee,C)){return this; +}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);A[B]=E.from;G[B]=E.to;}}return this.parent(H,I); +}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined}); +this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element; +this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)}; +this.attach();},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this;},detach:function(){this.handles.removeEvent("mousedown",this.bound.start); +return this;},start:function(C){if(this.options.preventDefault){C.preventDefault();}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page; +var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue;}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt(); +}else{this.value.now[D]=this.element[this.options.modifiers[D]];}if(this.options.invert){this.value.now[D]*=-1;}this.mouse.pos[D]=C.page[D]-this.value.now[D]; +if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])();}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}; +}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop);},check:function(A){if(this.options.preventDefault){A.preventDefault(); +}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop}); +this.fireEvent("start",this.element).fireEvent("snap",this.element);}},drag:function(A){if(this.options.preventDefault){A.preventDefault();}this.mouse.now=A.page; +for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue;}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1; +}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1];}else{if($chk(this.limit[B][0])&&(this.value.now[B]B.left&&A.xB.top);},checkDroppables:function(){var A=this.droppables.filter(this.checkAgainst,this).getLast(); +if(this.overed!=A){if(this.overed){this.fireEvent("leave",[this.element,this.overed]);}if(A){this.overed=A;this.fireEvent("enter",[this.element,A]);}else{this.overed=null; +}}},drag:function(A){this.parent(A);if(this.droppables.length){this.checkDroppables();}},stop:function(A){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]); +this.overed=null;return this.parent(A);}});Element.implement({makeDraggable:function(A){return new Drag.Move(this,A);}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(B,A){this.parent(B,A); +this.load();},save:function(){var A=JSON.encode(this.hash);if(!A||A.length>4096){return false;}if(A=="{}"){this.dispose();}else{this.write(A);}return true; +},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this;}});Hash.Cookie.implement((function(){var A={};Hash.each(Hash.prototype,function(C,B){A[B]=function(){var D=C.apply(this.hash,arguments); +if(this.options.autoSave){this.save();}return D;};});return A;})());var Color=new Native({initialize:function(B,C){if(arguments.length>=3){C="rgb";B=Array.slice(arguments,0,3); +}else{if(typeof B=="string"){if(B.match(/rgb/)){B=B.rgbToHex().hexToRgb(true);}else{if(B.match(/hsb/)){B=B.hsbToRgb();}else{B=B.hexToRgb(true);}}}}C=C||"rgb"; +switch(C){case"hsb":var A=B;B=B.hsbToRgb();B.hsb=A;break;case"hex":B=B.hexToRgb(true);break;}B.rgb=B.slice(0,3);B.hsb=B.hsb||B.rgbToHsb();B.hex=B.rgbToHex(); +return $extend(B,this);}});Color.implement({mix:function(){var A=Array.slice(arguments);var C=($type(A.getLast())=="number")?A.pop():50;var B=this.slice(); +A.each(function(D){D=new Color(D);for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C));}});return new Color(B,"rgb");},invert:function(){return new Color(this.map(function(A){return 255-A; +}));},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb");},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb"); +},setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb");}});function $RGB(C,B,A){return new Color([C,B,A],"rgb");}function $HSB(C,B,A){return new Color([C,B,A],"hsb"); +}function $HEX(A){return new Color(A,"hex");}Array.implement({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J); +var K=I-E;H=I/255;F=(I!=0)?K/I:0;if(F==0){G=0;}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A;}else{if(C==I){G=2+D-L;}else{G=4+A-D;}}G/=6; +if(G<0){G++;}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)];},hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C]; +}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255);var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255); +switch(Math.floor(A/60)){case 0:return[C,B,F];case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D]; +}}return false;}});String.implement({rgbToHsb:function(){var A=this.match(/\d{1,3}/g);return(A)?hsb.rgbToHsb():null;},hsbToRgb:function(){var A=this.match(/\d{1,3}/g); +return(A)?A.hsbToRgb():null;}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={};},addEvent:function(B,A){this.checker[B]=this.checker[B]||{}; +this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false;}else{this.events[B].push(A);}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D])); +},this);return this;},check:function(C,A,B){this.checker[C][B]=true;var D=this.instances.every(function(F,E){return this.checker[C][E]||false;},this);if(!D){return ; +}this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A);},this);}});var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D); +var B=new Element("script",{src:F,type:"text/javascript"});var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document; +B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E();}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return ; +}$clear(C);E();}).periodical(50);}return B.inject(G.head);},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head); +},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E; +var G=B[F];delete B[F];D[F]=function(){if(!D){return ;}if(!A.parentNode){A.width=D.width;A.height=D.height;}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A); +A.fireEvent(E,A,1);};});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1);}return A.setProperties(B);},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C); +if(!D.push){D=[D];}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete(); +}}});A.push(E);});return new Elements(A);}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step); +}this.knob.setStyle(this.property,A);},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D); +this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this)); +}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x"; +this.property="left";F="offsetWidth";}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0; +this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps; +this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property; +B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob(); +this.end();}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full;}},set:function(A){if(!((this.range>0)^(A0)^(A>this.max))){A=this.max;}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this; +},clickedElement:function(C){var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset); +this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A);},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0); +this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop();},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis]; +A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step; +this.fireEvent("change",this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+""); +}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B;},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset; +}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B);}},initialize:function(B,A){this.setOptions(A); +this.element=$(B);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this); +},start:function(){this.listener.addEvent("mousemove",this.coord);},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer); +},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this);}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0}; +for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity;}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity; +}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y]);}}}); \ No newline at end of file diff --git a/www/scripts/mootools-1.2.1-core-yc.js b/www/scripts/mootools-1.2.1-core-yc.js new file mode 100644 index 0000000..752b98c --- /dev/null +++ b/www/scripts/mootools-1.2.1-core-yc.js @@ -0,0 +1,349 @@ +//MooTools, , My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2008 Valerio Proietti, , MIT Style License. + +var MooTools={version:"1.2.1",build:"0d4845aab3d9a4fdee2f0d4a6dd59210e4b697cf"};var Native=function(K){K=K||{};var A=K.name;var I=K.legacy;var B=K.protect; +var C=K.implement;var H=K.generics;var F=K.initialize;var G=K.afterImplement||function(){};var D=F||I;H=H!==false;D.constructor=Native;D.$family={name:"native"}; +if(I&&F){D.prototype=I.prototype;}D.prototype.constructor=D;if(A){var E=A.toLowerCase();D.prototype.$family={name:E};Native.typize(D,E);}var J=function(N,L,O,M){if(!B||M||!N.prototype[L]){N.prototype[L]=O; +}if(H){Native.genericize(N,L,B);}G.call(N,L,O);return N;};D.alias=function(N,L,O){if(typeof N=="string"){if((N=this.prototype[N])){return J(this,L,N,O); +}}for(var M in N){this.alias(M,N[M],L);}return this;};D.implement=function(M,L,O){if(typeof M=="string"){return J(this,M,L,O);}for(var N in M){J(this,N,M[N],L); +}return this;};if(C){D.implement(C);}return D;};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments); +return B.prototype[C].apply(D.shift(),D);};}};Native.implement=function(D,C){for(var B=0,A=D.length;B-1:this.indexOf(A)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim(); +},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase()); +});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1"); +},toInt:function(A){return parseInt(this,A||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/); +return(A)?A.slice(1).hexToRgb(B):null;},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null;},stripScripts:function(B){var A=""; +var C=this.replace(/]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return"";});if(B===true){$exec(A);}else{if($type(B)=="function"){B(A,C); +}}return C;},substitute:function(A,B){return this.replace(B||(/\\?\{([^{}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1);}return(A[C]!=undefined)?A[C]:""; +});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;}}return null; +},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C); +},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null; +},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;},empty:function(){Hash.each(this,function(B,A){delete this[A];},this); +return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this)); +},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false; +}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;}}return false;},getKeys:function(){var A=[]; +Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);});return A;},toQueryString:function(A){var B=[]; +Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H; +});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"}); +var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A;}this.$extended=true;var J=A.type; +var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode;}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111; +if(D>0&&D<13){M="f"+D;}}M=M||String.fromCharCode(B).toLowerCase();}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body; +var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY}; +if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3;}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement; +break;case"mouseout":L=A.relatedTarget||A.toElement;}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){L=false; +}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey}); +}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault(); +},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault(); +}else{this.event.returnValue=false;}return this;}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(){for(var E in this){if($type(this[E])!="function"){this[E]=$unlink(this[E]); +}}this.constructor=A;if(Class.prototyping){return this;}var D=(this.initialize)?this.initialize.apply(this,arguments):this;if(this.options&&this.options.initialize){this.options.initialize.call(this); +}return D;};for(var C in Class.Mutators){if(!B[C]){continue;}B=Class.Mutators[C](B,B[C]);delete B[C];}$extend(A,this);A.constructor=Class;A.prototype=B; +return A;}});Class.Mutators={Extends:function(C,A){Class.prototyping=A.prototype;var B=new A;delete B.parent;B=Class.inherit(B,C);delete Class.prototyping; +return B;},Implements:function(A,B){$splat(B).each(function(C){Class.prototying=C;$extend(A,($type(C)=="class")?new C:C);delete Class.prototyping;});return A; +}};Class.extend({inherit:function(B,E){var A=arguments.callee.caller;for(var D in E){var C=E[D];var G=B[D];var F=$type(C);if(G&&F=="function"){if(C!=G){if(A){C.__parent=G; +B[D]=C;}else{Class.override(B,D,C);}}}else{if(F=="object"){B[D]=$merge(G,C);}else{B[D]=C;}}}if(A){B.parent=function(){return arguments.callee.caller.__parent.apply(this,arguments); +};}return B;},override:function(B,A,E){var D=Class.prototyping;if(D&&B[A]!=D[A]){D=null;}var C=function(){var F=this.parent;this.parent=D?D[A]:B[A];var G=E.apply(this,arguments); +this.parent=F;return G;};B[A]=C;}});Class.implement({implement:function(){var A=this.prototype;$each(arguments,function(B){Class.inherit(A,B);});return this; +}});var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false; +},clearChain:function(){this.$chain.empty();return this;}});var Events=new Class({$events:{},addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events[C]=this.$events[C]||[]; +this.$events[C].include(B);if(A){B.internal=true;}}return this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},fireEvent:function(C,B,A){C=Events.removeOn(C); +if(!this.$events||!this.$events[C]){return this;}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();},this);return this;},removeEvent:function(B,A){B=Events.removeOn(B); +if(!this.$events[B]){return this;}if(!A.internal){this.$events[B].erase(A);}return this;},removeEvents:function(C){if($type(C)=="object"){for(var D in C){this.removeEvent(D,C[D]); +}return this;}if(C){C=Events.removeOn(C);}for(var D in this.$events){if(C&&C!=D){continue;}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A]); +}}return this;}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase();});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments)); +if(!this.addEvent){return this;}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue;}this.addEvent(A,this.options[A]); +delete this.options[A];}return this;}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A); +if(C){return C(B);}if(typeof A=="string"){return document.newElement(A,B);}return $(A).set(B);},afterImplement:function(A,B){Element.Prototype[A]=B;if(Array[A]){return ; +}Elements.implement(A,function(){var C=[],G=true;for(var E=0,D=this.length;E";}return $.element(this.createElement(A)).set(B);},newTextNode:function(A){return this.createTextNode(A); +},getDocument:function(){return this;},getWindow:function(){return this.window;}});Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B;}var A=$type(B); +return($[A])?$[A](B,C,this.document):null;},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A);}var F=[];var C=Array.flatten(arguments); +for(var D=0,B=C.length;D1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F;},this);return new Elements(C,{ddup:B,cash:!D}); +}});(function(){var H={},F={};var I={input:"checked",option:"selected",textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerHTML":"value"}; +var C=function(L){return(F[L]||(F[L]={}));};var G=function(N,L){if(!N){return ;}var M=N.uid;if(Browser.Engine.trident){if(N.clearAttributes){var P=L&&N.cloneNode(false); +N.clearAttributes();if(P){N.mergeAttributes(P);}}else{if(N.removeEvents){N.removeEvents();}}if((/object/i).test(N.tagName)){for(var O in N){if(typeof N[O]=="function"){N[O]=$empty; +}}Element.dispose(N);}}if(!M){return ;}H[M]=F[M]=null;};var D=function(){Hash.each(H,G);if(Browser.Engine.trident){$A(document.getElementsByTagName("object")).each(G); +}if(window.CollectGarbage){CollectGarbage();}H=F=null;};var J=function(N,L,S,M,P,R){var O=N[S||L];var Q=[];while(O){if(O.nodeType==1&&(!M||Element.match(O,M))){if(!P){return $(O,R); +}Q.push(O);}O=O[L];}return(P)?new Elements(Q,{ddup:false,cash:!R}):null;};var E={html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?"innerText":"textContent"}; +var B=["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"];var K=["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]; +Hash.extend(E,B.associate(B));Hash.extend(E,K.associate(K.map(String.toLowerCase)));var A={before:function(M,L){if(L.parentNode){L.parentNode.insertBefore(M,L); +}},after:function(M,L){if(!L.parentNode){return ;}var N=L.nextSibling;(N)?L.parentNode.insertBefore(M,N):L.parentNode.appendChild(M);},bottom:function(M,L){L.appendChild(M); +},top:function(M,L){var N=L.firstChild;(N)?L.insertBefore(M,N):L.appendChild(M);}};A.inside=A.bottom;Hash.each(A,function(L,M){M=M.capitalize();Element.implement("inject"+M,function(N){L(this,$(N,true)); +return this;});Element.implement("grab"+M,function(N){L($(N,true),this);return this;});});Element.implement({set:function(O,M){switch($type(O)){case"object":for(var N in O){this.set(N,O[N]); +}break;case"string":var L=Element.Properties.get(O);(L&&L.set)?L.set.apply(this,Array.slice(arguments,1)):this.setProperty(O,M);}return this;},get:function(M){var L=Element.Properties.get(M); +return(L&&L.get)?L.get.apply(this,Array.slice(arguments,1)):this.getProperty(M);},erase:function(M){var L=Element.Properties.get(M);(L&&L.erase)?L.erase.apply(this):this.removeProperty(M); +return this;},setProperty:function(M,N){var L=E[M];if(N==undefined){return this.removeProperty(M);}if(L&&B[M]){N=!!N;}(L)?this[L]=N:this.setAttribute(M,""+N); +return this;},setProperties:function(L){for(var M in L){this.setProperty(M,L[M]);}return this;},getProperty:function(M){var L=E[M];var N=(L)?this[L]:this.getAttribute(M,2); +return(B[M])?!!N:(L)?N:N||null;},getProperties:function(){var L=$A(arguments);return L.map(this.getProperty,this).associate(L);},removeProperty:function(M){var L=E[M]; +(L)?this[L]=(L&&B[M])?false:"":this.removeAttribute(M);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this; +},hasClass:function(L){return this.className.contains(L," ");},addClass:function(L){if(!this.hasClass(L)){this.className=(this.className+" "+L).clean(); +}return this;},removeClass:function(L){this.className=this.className.replace(new RegExp("(^|\\s)"+L+"(?:\\s|$)"),"$1");return this;},toggleClass:function(L){return this.hasClass(L)?this.removeClass(L):this.addClass(L); +},adopt:function(){Array.flatten(arguments).each(function(L){L=$(L,true);if(L){this.appendChild(L);}},this);return this;},appendText:function(M,L){return this.grab(this.getDocument().newTextNode(M),L); +},grab:function(M,L){A[L||"bottom"]($(M,true),this);return this;},inject:function(M,L){A[L||"bottom"](this,$(M,true));return this;},replaces:function(L){L=$(L,true); +L.parentNode.replaceChild(this,L);return this;},wraps:function(M,L){M=$(M,true);return this.replaces(M).grab(M,L);},getPrevious:function(L,M){return J(this,"previousSibling",null,L,false,M); +},getAllPrevious:function(L,M){return J(this,"previousSibling",null,L,true,M);},getNext:function(L,M){return J(this,"nextSibling",null,L,false,M);},getAllNext:function(L,M){return J(this,"nextSibling",null,L,true,M); +},getFirst:function(L,M){return J(this,"nextSibling","firstChild",L,false,M);},getLast:function(L,M){return J(this,"previousSibling","lastChild",L,false,M); +},getParent:function(L,M){return J(this,"parentNode",null,L,false,M);},getParents:function(L,M){return J(this,"parentNode",null,L,true,M);},getChildren:function(L,M){return J(this,"nextSibling","firstChild",L,true,M); +},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(O,N){var M=this.ownerDocument.getElementById(O); +if(!M){return null;}for(var L=M.parentNode;L!=this;L=L.parentNode){if(!L){return null;}}return $.element(M,N);},getSelected:function(){return new Elements($A(this.options).filter(function(L){return L.selected; +}));},getComputedStyle:function(M){if(this.currentStyle){return this.currentStyle[M.camelCase()];}var L=this.getDocument().defaultView.getComputedStyle(this,null); +return(L)?L.getPropertyValue([M.hyphenate()]):null;},toQueryString:function(){var L=[];this.getElements("input, select, textarea",true).each(function(M){if(!M.name||M.disabled){return ; +}var N=(M.tagName.toLowerCase()=="select")?Element.getSelected(M).map(function(O){return O.value;}):((M.type=="radio"||M.type=="checkbox")&&!M.checked)?null:M.value; +$splat(N).each(function(O){if(typeof O!="undefined"){L.push(M.name+"="+encodeURIComponent(O));}});});return L.join("&");},clone:function(O,L){O=O!==false; +var R=this.cloneNode(O);var N=function(V,U){if(!L){V.removeAttribute("id");}if(Browser.Engine.trident){V.clearAttributes();V.mergeAttributes(U);V.removeAttribute("uid"); +if(V.options){var W=V.options,S=U.options;for(var T=W.length;T--;){W[T].selected=S[T].selected;}}}var X=I[U.tagName.toLowerCase()];if(X&&U[X]){V[X]=U[X]; +}};if(O){var P=R.getElementsByTagName("*"),Q=this.getElementsByTagName("*");for(var M=P.length;M--;){N(P[M],Q[M]);}}N(R,this);return $(R);},destroy:function(){Element.empty(this); +Element.dispose(this);G(this,true);return null;},empty:function(){$A(this.childNodes).each(function(L){Element.destroy(L);});return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this; +},hasChild:function(L){L=$(L,true);if(!L){return false;}if(Browser.Engine.webkit&&Browser.Engine.version<420){return $A(this.getElementsByTagName(L.tagName)).contains(L); +}return(this.contains)?(this!=L&&this.contains(L)):!!(this.compareDocumentPosition(L)&16);},match:function(L){return(!L||(L==this)||(Element.get(this,"tag")==L)); +}});Native.implement([Element,Window,Document],{addListener:function(O,N){if(O=="unload"){var L=N,M=this;N=function(){M.removeListener("unload",N);L(); +};}else{H[this.uid]=this;}if(this.addEventListener){this.addEventListener(O,N,false);}else{this.attachEvent("on"+O,N);}return this;},removeListener:function(M,L){if(this.removeEventListener){this.removeEventListener(M,L,false); +}else{this.detachEvent("on"+M,L);}return this;},retrieve:function(M,L){var O=C(this.uid),N=O[M];if(L!=undefined&&N==undefined){N=O[M]=L;}return $pick(N); +},store:function(M,L){var N=C(this.uid);N[M]=L;return this;},eliminate:function(L){var M=C(this.uid);delete M[L];return this;}});window.addListener("unload",D); +})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText=""; +}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();}};Element.Properties.html=(function(){var C=document.createElement("div"); +var A={table:[1,"","
"],select:[1,""],tbody:[2,"","
"],tr:[3,"","
"]}; +A.thead=A.tfoot=A.tbody;var B={set:function(){var E=Array.flatten(arguments).join("");var F=Browser.Engine.trident&&A[this.get("tag")];if(F){var G=C;G.innerHTML=F[1]+E+F[2]; +for(var D=F[0];D--;){G=G.firstChild;}this.empty().adopt(G.childNodes);}else{this.innerHTML=E;}}};B.erase=B.set;return B;})();if(Browser.Engine.webkit&&Browser.Engine.version<420){Element.Properties.text={get:function(){if(this.innerText){return this.innerText; +}var A=this.ownerDocument.newElement("div",{html:this.innerHTML}).inject(this.ownerDocument.body);var B=A.innerText;A.destroy();return B;}};}Element.Properties.events={set:function(A){this.addEvents(A); +}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this; +}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G);}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J); +}return true;};}F=A.base||F;}var D=function(){return G.call(I);};var B=Element.NativeEvents[F];if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow()); +if(C.call(I,J)===false){J.stop();}};}this.addListener(F,D);}H[E].values.push(D);return this;},removeEvent:function(C,B){var A=this.retrieve("events");if(!A||!A[C]){return this; +}var F=A[C].keys.indexOf(B);if(F==-1){return this;}A[C].keys.splice(F,1);var E=A[C].values.splice(F,1)[0];var D=Element.Events.get(C);if(D){if(D.onRemove){D.onRemove.call(this,B); +}C=D.base||C;}return(Element.NativeEvents[C])?this.removeListener(C,E):this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this; +},removeEvents:function(A){if($type(A)=="object"){for(var C in A){this.removeEvent(C,A[C]);}return this;}var B=this.retrieve("events");if(!B){return this; +}if(!A){for(var C in B){this.removeEvents(C);}this.eliminate("events");}else{if(B[A]){while(B[A].keys[0]){this.removeEvent(A,B[A].keys[0]);}B[A]=null;}}return this; +},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this;}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})(); +},this);return this;},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this;}if(!A){for(var B in C){this.cloneEvents(D,B);}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E); +},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1}; +(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true;}if(C===false){return false;}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C)); +};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}}); +})();Element.Properties.styles={set:function(A){this.setStyles(A);}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden"; +}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")"; +}this.style.opacity=A;this.store("opacity",A);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true); +},getOpacity:function(){return this.get("opacity");},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat"; +}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return"";}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E; +}).join(" ");}else{if(A==String(Number(A))){A=Math.round(A);}}this.style[B]=A;return this;},getStyle:function(G){switch(G){case"opacity":return this.get("opacity"); +case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat";}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue; +}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E));}return A.join(" ");}A=this.getComputedStyle(G);}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/); +if(C){A=A.replace(C[0],C[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0; +B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt();},this);return this["offset"+G.capitalize()]-D+"px"; +}if((Browser.Engine.presto)&&String(A).test("px")){return A;}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return A;},setStyles:function(B){for(var A in B){this.setStyle(A,B[A]); +}return this;},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B);},this);return A;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"}); +Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles; +var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px";});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color"; +F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I); +}else{this.scrollLeft=H;this.scrollTop=I;}return this;},getSize:function(){if(B(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight}; +},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(B(this)){return this.getWindow().getScroll(); +}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode; +}return H;},getOffsetParent:function(){var H=this;if(B(H)){return null;}if(!Browser.Engine.trident){return H.offsetParent;}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H; +}}return null;},getOffsets:function(){if(Browser.Engine.trident){var L=this.getBoundingClientRect(),J=this.getDocument().documentElement;return{x:L.left+J.scrollLeft-J.clientLeft,y:L.top+J.scrollTop-J.clientTop}; +}var I=this,H={x:0,y:0};if(B(this)){return H;}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);H.y+=G(I); +}var K=I.parentNode;if(K&&D(K,"overflow")!="visible"){H.x+=C(K);H.y+=G(K);}}else{if(I!=this&&Browser.Engine.webkit){H.x+=C(I);H.y+=G(I);}}I=I.offsetParent; +}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);H.y-=G(this);}return H;},getPosition:function(K){if(B(this)){return{x:0,y:0};}var L=this.getOffsets(),I=this.getScrolls(); +var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};return{x:H.x-J.x,y:H.y-J.y};},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates(); +}var H=this.getPosition(J),I=this.getSize();var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K;},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")}; +},position:function(H){return this.setStyles(this.computePosition(H));}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow(); +if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight};}var H=A(this);return{x:H.clientWidth,y:H.clientHeight};},getScroll:function(){var I=this.getWindow(); +var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop};},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)}; +},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x}; +}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0;}function F(H){return D(H,"-moz-box-sizing")=="border-box";}function G(H){return E(H,"border-top-width"); +}function C(H){return E(H,"border-left-width");}function B(H){return(/^(?:body|html)$/i).test(H.tagName);}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body; +}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y; +},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x; +},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(","); +var C,E={};for(var D=0,B=H.length;D1),cash:!G});}});Element.implement({match:function(B){if(!B||(B==this)){return true;}var D=Selectors.Utils.parseTagAndID(B); +var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false;}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true; +}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)}; +Selectors.Utils={chk:function(B,C){if(!C){return true;}var A=$uid(B);if(!C[A]){return C[A]=true;}return false;},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F]; +}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false;}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0; +if(B!=0){A--;while(A<1){A+=B;}while(A>=B){A-=B;}}else{B=A;D="index";}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"}; +break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"}; +break;default:C={a:(B-1),special:"index"};}return Selectors.Cache.nth[F]=C;},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E]; +}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[5],C=D[6],J=D[7];if(I){H.classes.push(I); +}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J});}else{H.attributes.push({name:C,operator:"=",value:J});}}else{if(G){H.attributes.push({name:G,operator:F,value:B}); +}}}}if(!H.classes.length){delete H.classes;}if(!H.attributes.length){delete H.attributes;}if(!H.pseudos.length){delete H.pseudos;}if(!H.classes&&!H.attributes&&!H.pseudos){H=null; +}return Selectors.Cache.parsed[E]=H;},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false]; +},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false;}}}if(C.attributes){for(D=C.attributes.length; +D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false;}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D]; +if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false;}}}return true;},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true); +return(C&&Selectors.Filters.byTag(C,A))?[C]:[];}else{return B.getElementsByTagName(A);}},search:function(I,H,N){var B=[];var C=H.trim().replace(Selectors.RegExps.splitter,function(Y,X,W){B.push(X); +return":)"+W;}).split(":)");var J,E,U;for(var T=0,P=C.length;T":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;EA){return false;}}return(C==A);},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A); +},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A);}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this); +}}};(function(){var B=function(){if(Browser.loaded){return ;}Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready");};if(Browser.Engine.trident){var A=document.createElement("div"); +(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose();}))?B():arguments.callee.delay(50);})(); +}else{if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50); +})();}else{window.addEvent("load",B);document.addEvent("DOMContentLoaded",B);}}})();var JSON=new Hash({$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16); +},encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]"; +case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C);}});return"{"+A+"}";case"number":case"boolean":return String(B); +case false:return"null";}return null;},decode:function(string,secure){if($type(string)!="string"||!string.length){return null;}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null; +}return eval("("+string+")");}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B; +this.setOptions(A);},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain;}if(this.options.path){B+="; path="+this.options.path; +}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString();}if(this.options.secure){B+="; secure"; +}this.options.document.cookie=this.key+"="+B;return this;},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)"); +return(A)?decodeURIComponent(A[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this;}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C); +};Cookie.read=function(A){return new Cookie(A).read();};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object; +},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={}; +var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments); +};})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D;}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"; +E.movie=L;}else{H.type="application/x-shockwave-flash";H.data=L;}var J=''; +}}J+="";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A); +return this;},inject:function(A){$(A,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments)); +}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction(''+__flash__argumentsToXML(arguments,2)+""); +return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore"},initialize:function(A){this.subject=this.subject||this; +this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var B=this.options.wait;if(B===false){this.options.link="cancel"; +}},getTransition:function(){return function(A){return -(Math.cos(Math.PI*A)-1)/2;};},step:function(){var A=$time();if(A=(7-4*B)/11){C=A*A-Math.pow((11-6*B-11*D)/4,2); +break;}}return C;},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2]); +});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request(); +this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return ; +}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML}; +this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}this.xhr.onreadystatechange=$empty;},isSuccess:function(){return((this.status>=200)&&(this.status<300)); +},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A);}return A.stripScripts(this.options.evalScripts); +},success:function(B,A){this.onSuccess(this.processScripts(B),A);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain(); +},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},setHeader:function(A,B){this.headers.set(A,B); +return this;},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A);}.bind(this));},check:function(A){if(!this.running){return true; +}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false;}return false; +},send:function(I){if(!this.check(arguments.callee,I)){return this;}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I};}var D=this.options; +I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E); +}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H;}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A; +E=(E)?F+"&"+E:F;A="post";}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C); +}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null;}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this); +this.headers.each(function(K,J){try{this.xhr.setRequestHeader(J,K);}catch(L){this.fireEvent("exception",[J,K]);}},this);this.fireEvent("request");this.xhr.send(E); +if(!this.options.async){this.onStateChange();}return this;},cancel:function(){if(!this.running){return this;}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty; +this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});(function(){var A={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined}); +return this.send($extend(C,{method:B.toLowerCase()}));};});Request.implement(A);})();Element.Properties.send={set:function(A){var B=this.retrieve("send"); +if(B){B.cancel();}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A)); +},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A);}this.store("send",new Request(this.retrieve("send:options"))); +}return this.retrieve("send");}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/]*>([\s\S]*?)<\/body>/i); +C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D=""+C+"",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM"); +G.async=false;G.loadXML(D);}else{G=new DOMParser().parseFromString(D,"text/xml");}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length; +F