summaryrefslogtreecommitdiff
path: root/javascript/libs/jquery/plugins/fancybox
diff options
context:
space:
mode:
authorspiderr <spider@viovio.com>2012-03-03 16:05:21 -0500
committerspiderr <spider@viovio.com>2012-03-03 16:07:51 -0500
commitcd05cda925e3a6419e4cb65b84ce21359476409c (patch)
treeaaa6b7c8423a931784227c41f2c1006a35fbb26a /javascript/libs/jquery/plugins/fancybox
parentfaadb445182ee4ce4c9b04d7f0308e1a5a7dee0f (diff)
downloadutil-cd05cda925e3a6419e4cb65b84ce21359476409c.tar.gz
util-cd05cda925e3a6419e4cb65b84ce21359476409c.tar.bz2
util-cd05cda925e3a6419e4cb65b84ce21359476409c.zip
update jquery to 1.7.1 and follow distro file organization; update fancybox to latest
Diffstat (limited to 'javascript/libs/jquery/plugins/fancybox')
-rw-r--r--javascript/libs/jquery/plugins/fancybox/fancy.css359
-rw-r--r--javascript/libs/jquery/plugins/fancybox/fancybox_loading.gifbin0 -> 4270 bytes
-rw-r--r--javascript/libs/jquery/plugins/fancybox/fancybox_sprite.pngbin0 -> 3633 bytes
-rw-r--r--javascript/libs/jquery/plugins/fancybox/helpers/fancybox_buttons.pngbin0 -> 2396 bytes
-rw-r--r--javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.css85
-rw-r--r--javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.js115
-rw-r--r--javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.css54
-rw-r--r--javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.js157
-rw-r--r--javascript/libs/jquery/plugins/fancybox/jquery.fancybox.css222
-rw-r--r--javascript/libs/jquery/plugins/fancybox/jquery.fancybox.js2612
-rw-r--r--javascript/libs/jquery/plugins/fancybox/jquery.fancybox.pack.js81
11 files changed, 2124 insertions, 1561 deletions
diff --git a/javascript/libs/jquery/plugins/fancybox/fancy.css b/javascript/libs/jquery/plugins/fancybox/fancy.css
deleted file mode 100644
index 6f53d8f..0000000
--- a/javascript/libs/jquery/plugins/fancybox/fancy.css
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * FancyBox - jQuery Plugin
- * Simple and fancy lightbox alternative
- *
- * Examples and documentation at: http://fancybox.net
- *
- * Copyright (c) 2008 - 2010 Janis Skarnelis
- * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
- *
- * Version: 1.3.4 (11/11/2010)
- * Requires: jQuery v1.3+
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
-
-#fancybox-loading {
- position: fixed;
- top: 50%;
- left: 50%;
- width: 40px;
- height: 40px;
- margin-top: -20px;
- margin-left: -20px;
- cursor: pointer;
- overflow: hidden;
- z-index: 1104;
- display: none;
-}
-
-#fancybox-loading div {
- position: absolute;
- top: 0;
- left: 0;
- width: 40px;
- height: 480px;
- background-image: url('fancybox.png');
-}
-
-#fancybox-overlay {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- z-index: 1100;
- display: none;
-}
-
-#fancybox-tmp {
- padding: 0;
- margin: 0;
- border: 0;
- overflow: auto;
- display: none;
-}
-
-#fancybox-wrap {
- position: absolute;
- top: 0;
- left: 0;
- padding: 20px;
- z-index: 1101;
- outline: none;
- display: none;
-}
-
-#fancybox-outer {
- position: relative;
- width: 100%;
- height: 100%;
- background: #fff;
-}
-
-#fancybox-content {
- width: 0;
- height: 0;
- padding: 0;
- outline: none;
- position: relative;
- overflow: hidden;
- z-index: 1102;
- border: 0px solid #fff;
-}
-
-#fancybox-hide-sel-frame {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background: transparent;
- z-index: 1101;
-}
-
-#fancybox-close {
- position: absolute;
- top: -15px;
- right: -15px;
- width: 30px;
- height: 30px;
- background: transparent url('fancybox.png') -40px 0px;
- cursor: pointer;
- z-index: 1103;
- display: none;
-}
-
-#fancybox-error {
- color: #444;
- font: normal 12px/20px Arial;
- padding: 14px;
- margin: 0;
-}
-
-#fancybox-img {
- width: 100%;
- height: 100%;
- padding: 0;
- margin: 0;
- border: none;
- outline: none;
- line-height: 0;
- vertical-align: top;
-}
-
-#fancybox-frame {
- width: 100%;
- height: 100%;
- border: none;
- display: block;
-}
-
-#fancybox-left, #fancybox-right {
- position: absolute;
- bottom: 0px;
- height: 100%;
- width: 35%;
- cursor: pointer;
- outline: none;
- background: transparent url('blank.gif');
- z-index: 1102;
- display: none;
-}
-
-#fancybox-left {
- left: 0px;
-}
-
-#fancybox-right {
- right: 0px;
-}
-
-#fancybox-left-ico, #fancybox-right-ico {
- position: absolute;
- top: 50%;
- left: -9999px;
- width: 30px;
- height: 30px;
- margin-top: -15px;
- cursor: pointer;
- z-index: 1102;
- display: block;
-}
-
-#fancybox-left-ico {
- background-image: url('fancybox.png');
- background-position: -40px -30px;
-}
-
-#fancybox-right-ico {
- background-image: url('fancybox.png');
- background-position: -40px -60px;
-}
-
-#fancybox-left:hover, #fancybox-right:hover {
- visibility: visible; /* IE6 */
-}
-
-#fancybox-left:hover span {
- left: 20px;
-}
-
-#fancybox-right:hover span {
- left: auto;
- right: 20px;
-}
-
-.fancybox-bg {
- position: absolute;
- padding: 0;
- margin: 0;
- border: 0;
- width: 20px;
- height: 20px;
- z-index: 1001;
-}
-
-#fancybox-bg-n {
- top: -20px;
- left: 0;
- width: 100%;
- background-image: url('fancybox-x.png');
-}
-
-#fancybox-bg-ne {
- top: -20px;
- right: -20px;
- background-image: url('fancybox.png');
- background-position: -40px -162px;
-}
-
-#fancybox-bg-e {
- top: 0;
- right: -20px;
- height: 100%;
- background-image: url('fancybox-y.png');
- background-position: -20px 0px;
-}
-
-#fancybox-bg-se {
- bottom: -20px;
- right: -20px;
- background-image: url('fancybox.png');
- background-position: -40px -182px;
-}
-
-#fancybox-bg-s {
- bottom: -20px;
- left: 0;
- width: 100%;
- background-image: url('fancybox-x.png');
- background-position: 0px -20px;
-}
-
-#fancybox-bg-sw {
- bottom: -20px;
- left: -20px;
- background-image: url('fancybox.png');
- background-position: -40px -142px;
-}
-
-#fancybox-bg-w {
- top: 0;
- left: -20px;
- height: 100%;
- background-image: url('fancybox-y.png');
-}
-
-#fancybox-bg-nw {
- top: -20px;
- left: -20px;
- background-image: url('fancybox.png');
- background-position: -40px -122px;
-}
-
-#fancybox-title {
- font-family: Helvetica;
- font-size: 12px;
- z-index: 1102;
-}
-
-.fancybox-title-inside {
- padding-bottom: 10px;
- text-align: center;
- color: #333;
- background: #fff;
- position: relative;
-}
-
-.fancybox-title-outside {
- padding-top: 10px;
- color: #fff;
-}
-
-.fancybox-title-over {
- position: absolute;
- bottom: 0;
- left: 0;
- color: #FFF;
- text-align: left;
-}
-
-#fancybox-title-over {
- padding: 10px;
- background-image: url('fancy_title_over.png');
- display: block;
-}
-
-.fancybox-title-float {
- position: absolute;
- left: 0;
- bottom: -20px;
- height: 32px;
-}
-
-#fancybox-title-float-wrap {
- border: none;
- border-collapse: collapse;
- width: auto;
-}
-
-#fancybox-title-float-wrap td {
- border: none;
- white-space: nowrap;
-}
-
-#fancybox-title-float-left {
- padding: 0 0 0 15px;
- background: url('fancybox.png') -40px -90px no-repeat;
-}
-
-#fancybox-title-float-main {
- color: #FFF;
- line-height: 29px;
- font-weight: bold;
- padding: 0 0 3px 0;
- background: url('fancybox-x.png') 0px -40px;
-}
-
-#fancybox-title-float-right {
- padding: 0 0 0 15px;
- background: url('fancybox.png') -55px -90px no-repeat;
-}
-
-/* IE6 */
-
-.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }
-
-.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
-.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }
-
-.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
-.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
-.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
-.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }
-
-.fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame {
- height: expression(this.parentNode.clientHeight + "px");
-}
-
-#fancybox-loading.fancybox-ie6 {
- position: absolute; margin-top: 0;
- top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px');
-}
-
-#fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }
-
-/* IE6, IE7, IE8 */
-
-.fancybox-ie .fancybox-bg { background: transparent !important; }
-
-.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
-.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
-.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
-.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
-.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
-.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
-.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
-.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); } \ No newline at end of file
diff --git a/javascript/libs/jquery/plugins/fancybox/fancybox_loading.gif b/javascript/libs/jquery/plugins/fancybox/fancybox_loading.gif
new file mode 100644
index 0000000..742131f
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/fancybox_loading.gif
Binary files differ
diff --git a/javascript/libs/jquery/plugins/fancybox/fancybox_sprite.png b/javascript/libs/jquery/plugins/fancybox/fancybox_sprite.png
new file mode 100644
index 0000000..753021b
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/fancybox_sprite.png
Binary files differ
diff --git a/javascript/libs/jquery/plugins/fancybox/helpers/fancybox_buttons.png b/javascript/libs/jquery/plugins/fancybox/helpers/fancybox_buttons.png
new file mode 100644
index 0000000..e0e1ea8
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/helpers/fancybox_buttons.png
Binary files differ
diff --git a/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.css b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.css
new file mode 100644
index 0000000..1e83200
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.css
@@ -0,0 +1,85 @@
+#fancybox-buttons {
+ position: fixed;
+ left: 0;
+ width: 100%;
+ z-index: 1005;
+}
+
+#fancybox-buttons.top {
+ top: 10px;
+}
+
+#fancybox-buttons.bottom {
+ bottom: 10px;
+}
+
+#fancybox-buttons ul {
+ display: block;
+ width: 170px;
+ height: 30px;
+ margin: 0 auto;
+ padding: 0;
+ list-style: none;
+ background: #111;
+ -webkit-box-shadow: 0 1px 3px #000,0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05);
+ -moz-box-shadow: 0 1px 3px #000,0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05);
+ background: #111 -webkit-gradient(linear,0% 0%,0% 100%,from(rgba(255,255,255,.2)),color-stop(.5,rgba(255,255,255,.15)),color-stop(.5,rgba(255,255,255,.1)),to(rgba(255,255,255,.15)));
+ background: #111 -moz-linear-gradient(top,rgba(255,255,255,.2) 0%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.15) 100%);
+ border-radius: 3px;
+}
+
+#fancybox-buttons ul li {
+ float: left;
+ margin: 0;
+ padding: 0;
+}
+
+#fancybox-buttons a {
+ display: block;
+ width: 30px;
+ height: 30px;
+ text-indent: -9999px;
+ background-image: url('fancybox_buttons.png');
+ background-repeat: no-repeat;
+ outline: none;
+}
+
+#fancybox-buttons a.btnPrev {
+ width: 32px;
+ background-position: 6px 0;
+}
+
+#fancybox-buttons a.btnNext {
+ background-position: -33px 0;
+ border-right: 1px solid #3e3e3e;
+}
+
+#fancybox-buttons a.btnPlay {
+ background-position: 0 -30px;
+}
+
+#fancybox-buttons a.btnPlayOn {
+ background-position: -30px -30px;
+}
+
+#fancybox-buttons a.btnToggle {
+ background-position: 3px -60px;
+ border-left: 1px solid #111;
+ border-right: 1px solid #3e3e3e;
+ width: 35px
+}
+
+#fancybox-buttons a.btnToggleOn {
+ background-position: -27px -60px;
+}
+
+#fancybox-buttons a.btnClose {
+ border-left: 1px solid #111;
+ width: 38px;
+ background-position: -57px 0px;
+}
+
+#fancybox-buttons a.btnDisabled {
+ opacity : 0.5;
+ cursor: default;
+} \ No newline at end of file
diff --git a/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.js b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.js
new file mode 100644
index 0000000..e116e38
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-buttons.js
@@ -0,0 +1,115 @@
+ /*!
+ * Buttons helper for fancyBox
+ * version: 1.0.2
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage:
+ * $(".fancybox").fancybox({
+ * buttons: {
+ * position : 'top'
+ * }
+ * });
+ *
+ * Options:
+ * tpl - HTML template
+ * position - 'top' or 'bottom'
+ *
+ */
+(function ($) {
+ //Shortcut for fancyBox object
+ var F = $.fancybox;
+
+ //Add helper object
+ F.helpers.buttons = {
+ tpl: '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:jQuery.fancybox.close();"></a></li></ul></div>',
+ list: null,
+ buttons: {},
+
+ update: function () {
+ var toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
+
+ //Size toggle button
+ if (F.current.canShrink) {
+ toggle.addClass('btnToggleOn');
+
+ } else if (!F.current.canExpand) {
+ toggle.addClass('btnDisabled');
+ }
+ },
+
+ beforeLoad: function (opts) {
+ //Remove self if gallery do not have at least two items
+ if (F.group.length < 2) {
+ F.coming.helpers.buttons = false;
+ F.coming.closeBtn = true;
+
+ return;
+ }
+
+ //Increase top margin to give space for buttons
+ F.coming.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
+ },
+
+ onPlayStart: function () {
+ if (this.list) {
+ this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
+ }
+ },
+
+ onPlayEnd: function () {
+ if (this.list) {
+ this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
+ }
+ },
+
+ afterShow: function (opts) {
+ var buttons;
+
+ if (!this.list) {
+ this.list = $(opts.tpl || this.tpl).addClass(opts.position || 'top').appendTo('body');
+
+ this.buttons = {
+ prev : this.list.find('.btnPrev').click( F.prev ),
+ next : this.list.find('.btnNext').click( F.next ),
+ play : this.list.find('.btnPlay').click( F.play ),
+ toggle : this.list.find('.btnToggle').click( F.toggle )
+ }
+ }
+
+ buttons = this.buttons;
+
+ //Prev
+ if (F.current.index > 0 || F.current.loop) {
+ buttons.prev.removeClass('btnDisabled');
+ } else {
+ buttons.prev.addClass('btnDisabled');
+ }
+
+ //Next / Play
+ if (F.current.loop || F.current.index < F.group.length - 1) {
+ buttons.next.removeClass('btnDisabled');
+ buttons.play.removeClass('btnDisabled');
+
+ } else {
+ buttons.next.addClass('btnDisabled');
+ buttons.play.addClass('btnDisabled');
+ }
+
+ this.update();
+ },
+
+ onUpdate: function () {
+ this.update();
+ },
+
+ beforeClose: function () {
+ if (this.list) {
+ this.list.remove();
+ }
+
+ this.list = null;
+ this.buttons = {};
+ }
+ };
+
+}(jQuery)); \ No newline at end of file
diff --git a/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.css b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.css
new file mode 100644
index 0000000..aadfb73
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.css
@@ -0,0 +1,54 @@
+#fancybox-thumbs {
+ position: fixed;
+ left: 0px;
+ width: 100%;
+ overflow: hidden;
+ z-index: 1005;
+}
+
+#fancybox-thumbs.bottom {
+ bottom: 2px;
+}
+
+#fancybox-thumbs.top {
+ top: 2px;
+}
+
+#fancybox-thumbs ul {
+ position: relative;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+#fancybox-thumbs ul li {
+ float: left;
+ padding: 1px;
+ opacity: 0.5;
+}
+
+#fancybox-thumbs ul li.active {
+ opacity: 0.75;
+ padding: 0;
+ border: 1px solid #fff;
+}
+
+#fancybox-thumbs ul li:hover {
+ opacity: 1;
+}
+
+#fancybox-thumbs ul li a {
+ display: block;
+ position: relative;
+ overflow: hidden;
+ border: 1px solid #222;
+ background: #111;
+ outline: none;
+}
+
+#fancybox-thumbs ul li img {
+ display: block;
+ position: relative;
+ border: 0;
+ padding: 0;
+} \ No newline at end of file
diff --git a/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.js b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.js
new file mode 100644
index 0000000..04a97db
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/helpers/jquery.fancybox-thumbs.js
@@ -0,0 +1,157 @@
+ /*!
+ * Thumbnail helper for fancyBox
+ * version: 1.0.3
+ * @requires fancyBox v2.0 or later
+ *
+ * Usage:
+ * $(".fancybox").fancybox({
+ * thumbs: {
+ * width : 50,
+ * height : 50
+ * }
+ * });
+ *
+ * Options:
+ * width - thumbnail width
+ * height - thumbnail height
+ * source - function to obtain the URL of the thumbnail image
+ * position - 'top' or 'bottom'
+ *
+ */
+(function ($) {
+ //Shortcut for fancyBox object
+ var F = $.fancybox;
+
+ //Add helper object
+ F.helpers.thumbs = {
+ wrap: null,
+ list: null,
+ width: 0,
+
+ //Default function to obtain the URL of the thumbnail image
+ source: function (el) {
+ var img;
+
+ if ($.type(el) === 'string') {
+ return el;
+ }
+
+ img = $(el).find('img');
+
+ return img.length ? img.attr('src') : el.href;
+ },
+
+ init: function (opts) {
+ var that = this,
+ list,
+ thumbWidth = opts.width || 50,
+ thumbHeight = opts.height || 50,
+ thumbSource = opts.source || this.source;
+
+ //Build list structure
+ list = '';
+
+ for (var n = 0; n < F.group.length; n++) {
+ list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
+ }
+
+ this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position || 'bottom').appendTo('body');
+ this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
+
+ //Load each thumbnail
+ $.each(F.group, function (i) {
+ $("<img />").load(function () {
+ var width = this.width,
+ height = this.height,
+ widthRatio, heightRatio, parent;
+
+ if (!that.list || !width || !height) {
+ return;
+ }
+
+ //Calculate thumbnail width/height and center it
+ widthRatio = width / thumbWidth;
+ heightRatio = height / thumbHeight;
+ parent = that.list.children().eq(i).find('a');
+
+ if (widthRatio >= 1 && heightRatio >= 1) {
+ if (widthRatio > heightRatio) {
+ width = Math.floor(width / heightRatio);
+ height = thumbHeight;
+
+ } else {
+ width = thumbWidth;
+ height = Math.floor(height / widthRatio);
+ }
+ }
+
+ $(this).css({
+ width: width,
+ height: height,
+ top: Math.floor(thumbHeight / 2 - height / 2),
+ left: Math.floor(thumbWidth / 2 - width / 2)
+ });
+
+ parent.width(thumbWidth).height(thumbHeight);
+
+ $(this).hide().appendTo(parent).fadeIn(300);
+
+ }).attr('src', thumbSource( F.group[ i ] ));
+ });
+
+ //Set initial width
+ this.width = this.list.children().eq(0).outerWidth();
+
+ this.list.width(this.width * (F.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (F.current.index * this.width + this.width * 0.5)));
+ },
+
+ //Center list
+ update: function (opts) {
+ if (this.list) {
+ this.list.stop(true).animate({
+ 'left': Math.floor($(window).width() * 0.5 - (F.current.index * this.width + this.width * 0.5))
+ }, 150);
+ }
+ },
+
+ beforeLoad: function (opts) {
+ //Remove self if gallery do not have at least two items
+ if (F.group.length < 2) {
+ F.coming.helpers.thumbs = false;
+
+ return;
+ }
+
+ //Increase bottom margin to give space for thumbs
+ F.coming.margin[ opts.position === 'top' ? 0 : 2 ] = opts.height + 30;
+ },
+
+ afterShow: function (opts) {
+ //Check if exists and create or update list
+ if (this.list) {
+ this.update(opts);
+
+ } else {
+ this.init(opts);
+ }
+
+ //Set active element
+ this.list.children().removeClass('active').eq(F.current.index).addClass('active');
+ },
+
+ onUpdate: function () {
+ this.update();
+ },
+
+ beforeClose: function () {
+ if (this.wrap) {
+ this.wrap.remove();
+ }
+
+ this.wrap = null;
+ this.list = null;
+ this.width = 0;
+ }
+ }
+
+}(jQuery)); \ No newline at end of file
diff --git a/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.css b/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.css
new file mode 100644
index 0000000..fa9ab43
--- /dev/null
+++ b/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.css
@@ -0,0 +1,222 @@
+/*! fancyBox v2.0.5 fancyapps.com | fancyapps.com/fancybox/#license */
+.fancybox-tmp iframe, .fancybox-tmp object {
+ vertical-align: top;
+ padding: 0;
+ margin: 0;
+}
+
+.fancybox-wrap {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1002;
+}
+
+.fancybox-outer {
+ position: relative;
+ padding: 0;
+ margin: 0;
+ background: #f9f9f9;
+ color: #444;
+ text-shadow: none;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.fancybox-opened {
+ z-index: 1003;
+}
+
+.fancybox-opened .fancybox-outer {
+ -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+ -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
+}
+
+.fancybox-inner {
+ width: 100%;
+ height: 100%;
+ padding: 0;
+ margin: 0;
+ position: relative;
+ outline: none;
+ overflow: hidden;
+}
+
+.fancybox-error {
+ color: #444;
+ font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+ margin: 0;
+ padding: 10px;
+}
+
+.fancybox-image, .fancybox-iframe {
+ display: block;
+ width: 100%;
+ height: 100%;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ vertical-align: top;
+}
+
+.fancybox-image {
+ max-width: 100%;
+ max-height: 100%;
+}
+
+#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
+ background-image: url('fancybox_sprite.png');
+}
+
+#fancybox-loading {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ margin-top: -22px;
+ margin-left: -22px;
+ background-position: 0 -108px;
+ opacity: 0.8;
+ cursor: pointer;
+ z-index: 1010;
+}
+
+#fancybox-loading div {
+ width: 44px;
+ height: 44px;
+ background: url('fancybox_loading.gif') center center no-repeat;
+}
+
+.fancybox-close {
+ position: absolute;
+ top: -18px;
+ right: -18px;
+ width: 36px;
+ height: 36px;
+ cursor: pointer;
+ z-index: 1004;
+}
+
+.fancybox-nav {
+ position: absolute;
+ top: 0;
+ width: 40%;
+ height: 100%;
+ cursor: pointer;
+ background: transparent url('blank.gif'); /* helps IE */
+ z-index: 1003;
+}
+
+.fancybox-prev {
+ left: 0;
+}
+
+.fancybox-next {
+ right: 0;
+}
+
+.fancybox-nav span {
+ position: absolute;
+ top: 50%;
+ width: 36px;
+ height: 36px;
+ margin-top: -18px;
+ cursor: pointer;
+ z-index: 1003;
+ visibility: hidden;
+}
+
+.fancybox-prev span {
+ left: 20px;
+ background-position: 0 -36px;
+}
+
+.fancybox-next span {
+ right: 20px;
+ background-position: 0 -72px;
+}
+
+.fancybox-nav:hover span {
+ visibility: visible;
+}
+
+.fancybox-tmp {
+ position: absolute;
+ top: -9999px;
+ left: -9999px;
+ padding: 0;
+ overflow: visible;
+ visibility: hidden;
+}
+
+/* Overlay helper */
+
+#fancybox-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ overflow: hidden;
+ display: none;
+ z-index: 1001;
+ background: #000;
+}
+
+/* Title helper */
+
+.fancybox-title {
+ visibility: hidden;
+ font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
+ position: relative;
+ text-shadow: none;
+ z-index: 1005;
+}
+
+.fancybox-opened .fancybox-title {
+ visibility: visible;
+}
+
+.fancybox-title-float-wrap {
+ position: absolute;
+ bottom: 0;
+ right: 50%;
+ margin-bottom: -35px;
+ z-index: 1003;
+ text-align: center;
+}
+
+.fancybox-title-float-wrap .child {
+ display: inline-block;
+ margin-right: -100%;
+ padding: 2px 20px;
+ background: transparent; /* Fallback for web browsers that doesn't support RGBa */
+ background: rgba(0, 0, 0, 0.8);
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ border-radius: 15px;
+ text-shadow: 0 1px 2px #222;
+ color: #FFF;
+ font-weight: bold;
+ line-height: 24px;
+ white-space: nowrap;
+}
+
+.fancybox-title-outside-wrap {
+ position: relative;
+ margin-top: 10px;
+ color: #fff;
+}
+
+.fancybox-title-inside-wrap {
+ margin-top: 10px;
+}
+
+.fancybox-title-over-wrap {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ color: #fff;
+ padding: 10px;
+ background: #000;
+ background: rgba(0, 0, 0, .8);
+} \ No newline at end of file
diff --git a/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.js b/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.js
index be77275..435f8a0 100644
--- a/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.js
+++ b/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.js
@@ -1,1156 +1,1456 @@
-/*
- * FancyBox - jQuery Plugin
- * Simple and fancy lightbox alternative
- *
- * Examples and documentation at: http://fancybox.net
- *
- * Copyright (c) 2008 - 2010 Janis Skarnelis
- * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
- *
- * Version: 1.3.4 (11/11/2010)
- * Requires: jQuery v1.3+
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
-
-;(function($) {
- var tmp, loading, overlay, wrap, outer, content, close, title, nav_left, nav_right,
-
- selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [],
-
- ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i,
-
- loadingTimer, loadingFrame = 1,
-
- titleHeight = 0, titleStr = '', start_pos, final_pos, busy = false, fx = $.extend($('<div/>')[0], { prop: 0 }),
-
- isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,
-
- /*
- * Private methods
- */
-
- _abort = function() {
- loading.hide();
-
- imgPreloader.onerror = imgPreloader.onload = null;
-
- if (ajaxLoader) {
- ajaxLoader.abort();
- }
-
- tmp.empty();
- },
-
- _error = function() {
- if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) {
- loading.hide();
- busy = false;
- return;
- }
-
- selectedOpts.titleShow = false;
-
- selectedOpts.width = 'auto';
- selectedOpts.height = 'auto';
-
- tmp.html( '<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>' );
-
- _process_inline();
- },
-
- _start = function() {
- var obj = selectedArray[ selectedIndex ],
- href,
- type,
- title,
- str,
- emb,
- ret;
-
- _abort();
-
- selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox')));
-
- ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts);
-
- if (ret === false) {
- busy = false;
- return;
- } else if (typeof ret == 'object') {
- selectedOpts = $.extend(selectedOpts, ret);
- }
-
- title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || '';
-
- if (obj.nodeName && !selectedOpts.orig) {
- selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);
- }
-
- if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) {
- title = selectedOpts.orig.attr('alt');
- }
-
- href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null;
-
- if ((/^(?:javascript)/i).test(href) || href == '#') {
- href = null;
- }
-
- if (selectedOpts.type) {
- type = selectedOpts.type;
-
- if (!href) {
- href = selectedOpts.content;
- }
-
- } else if (selectedOpts.content) {
- type = 'html';
-
- } else if (href) {
- if (href.match(imgRegExp)) {
- type = 'image';
-
- } else if (href.match(swfRegExp)) {
- type = 'swf';
-
- } else if ($(obj).hasClass("iframe")) {
- type = 'iframe';
-
- } else if (href.indexOf("#") === 0) {
- type = 'inline';
-
- } else {
- type = 'ajax';
- }
- }
-
- if (!type) {
- _error();
- return;
- }
-
- if (type == 'inline') {
- obj = href.substr(href.indexOf("#"));
- type = $(obj).length > 0 ? 'inline' : 'ajax';
- }
-
- selectedOpts.type = type;
- selectedOpts.href = href;
- selectedOpts.title = title;
-
- if (selectedOpts.autoDimensions) {
- if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') {
- selectedOpts.width = 'auto';
- selectedOpts.height = 'auto';
- } else {
- selectedOpts.autoDimensions = false;
- }
- }
-
- if (selectedOpts.modal) {
- selectedOpts.overlayShow = true;
- selectedOpts.hideOnOverlayClick = false;
- selectedOpts.hideOnContentClick = false;
- selectedOpts.enableEscapeButton = false;
- selectedOpts.showCloseButton = false;
- }
-
- selectedOpts.padding = parseInt(selectedOpts.padding, 10);
- selectedOpts.margin = parseInt(selectedOpts.margin, 10);
-
- tmp.css('padding', (selectedOpts.padding + selectedOpts.margin));
-
- $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() {
- $(this).replaceWith(content.children());
- });
-
- switch (type) {
- case 'html' :
- tmp.html( selectedOpts.content );
- _process_inline();
- break;
-
- case 'inline' :
- if ( $(obj).parent().is('#fancybox-content') === true) {
- busy = false;
- return;
- }
-
- $('<div class="fancybox-inline-tmp" />')
- .hide()
- .insertBefore( $(obj) )
- .bind('fancybox-cleanup', function() {
- $(this).replaceWith(content.children());
- }).bind('fancybox-cancel', function() {
- $(this).replaceWith(tmp.children());
- });
-
- $(obj).appendTo(tmp);
-
- _process_inline();
- break;
-
- case 'image':
- busy = false;
-
- $.fancybox.showActivity();
-
- imgPreloader = new Image();
-
- imgPreloader.onerror = function() {
- _error();
- };
-
- imgPreloader.onload = function() {
- busy = true;
-
- imgPreloader.onerror = imgPreloader.onload = null;
-
- _process_image();
- };
-
- imgPreloader.src = href;
- break;
-
- case 'swf':
- selectedOpts.scrolling = 'no';
-
- str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"><param name="movie" value="' + href + '"></param>';
- emb = '';
-
- $.each(selectedOpts.swf, function(name, val) {
- str += '<param name="' + name + '" value="' + val + '"></param>';
- emb += ' ' + name + '="' + val + '"';
- });
-
- str += '<embed src="' + href + '" type="application/x-shockwave-flash" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"' + emb + '></embed></object>';
-
- tmp.html(str);
-
- _process_inline();
- break;
-
- case 'ajax':
- busy = false;
-
- $.fancybox.showActivity();
-
- selectedOpts.ajax.win = selectedOpts.ajax.success;
-
- ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, {
- url : href,
- data : selectedOpts.ajax.data || {},
- error : function(XMLHttpRequest, textStatus, errorThrown) {
- if ( XMLHttpRequest.status > 0 ) {
- _error();
- }
- },
- success : function(data, textStatus, XMLHttpRequest) {
- var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader;
- if (o.status == 200) {
- if ( typeof selectedOpts.ajax.win == 'function' ) {
- ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest);
-
- if (ret === false) {
- loading.hide();
- return;
- } else if (typeof ret == 'string' || typeof ret == 'object') {
- data = ret;
- }
- }
-
- tmp.html( data );
- _process_inline();
- }
- }
- }));
-
- break;
-
- case 'iframe':
- _show();
- break;
- }
- },
-
- _process_inline = function() {
- var
- w = selectedOpts.width,
- h = selectedOpts.height;
-
- if (w.toString().indexOf('%') > -1) {
- w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px';
-
- } else {
- w = w == 'auto' ? 'auto' : w + 'px';
- }
-
- if (h.toString().indexOf('%') > -1) {
- h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px';
-
- } else {
- h = h == 'auto' ? 'auto' : h + 'px';
- }
-
- tmp.wrapInner('<div style="width:' + w + ';height:' + h + ';overflow: ' + (selectedOpts.scrolling == 'auto' ? 'auto' : (selectedOpts.scrolling == 'yes' ? 'scroll' : 'hidden')) + ';position:relative;"></div>');
-
- selectedOpts.width = tmp.width();
- selectedOpts.height = tmp.height();
-
- _show();
- },
-
- _process_image = function() {
- selectedOpts.width = imgPreloader.width;
- selectedOpts.height = imgPreloader.height;
-
- $("<img />").attr({
- 'id' : 'fancybox-img',
- 'src' : imgPreloader.src,
- 'alt' : selectedOpts.title
- }).appendTo( tmp );
-
- _show();
- },
-
- _show = function() {
- var pos, equal;
-
- loading.hide();
-
- if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
- $.event.trigger('fancybox-cancel');
-
- busy = false;
- return;
- }
-
- busy = true;
-
- $(content.add( overlay )).unbind();
-
- $(window).unbind("resize.fb scroll.fb");
- $(document).unbind('keydown.fb');
-
- if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') {
- wrap.css('height', wrap.height());
- }
-
- currentArray = selectedArray;
- currentIndex = selectedIndex;
- currentOpts = selectedOpts;
-
- if (currentOpts.overlayShow) {
- overlay.css({
- 'background-color' : currentOpts.overlayColor,
- 'opacity' : currentOpts.overlayOpacity,
- 'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto',
- 'height' : $(document).height()
- });
-
- if (!overlay.is(':visible')) {
- if (isIE6) {
- $('select:not(#fancybox-tmp select)').filter(function() {
- return this.style.visibility !== 'hidden';
- }).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() {
- this.style.visibility = 'inherit';
- });
- }
-
- overlay.show();
- }
- } else {
- overlay.hide();
- }
-
- final_pos = _get_zoom_to();
-
- _process_title();
-
- if (wrap.is(":visible")) {
- $( close.add( nav_left ).add( nav_right ) ).hide();
-
- pos = wrap.position(),
-
- start_pos = {
- top : pos.top,
- left : pos.left,
- width : wrap.width(),
- height : wrap.height()
- };
-
- equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height);
-
- content.fadeTo(currentOpts.changeFade, 0.3, function() {
- var finish_resizing = function() {
- content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish);
- };
-
- $.event.trigger('fancybox-change');
-
- content
- .empty()
- .removeAttr('filter')
- .css({
- 'border-width' : currentOpts.padding,
- 'width' : final_pos.width - currentOpts.padding * 2,
- 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
- });
-
- if (equal) {
- finish_resizing();
-
- } else {
- fx.prop = 0;
-
- $(fx).animate({prop: 1}, {
- duration : currentOpts.changeSpeed,
- easing : currentOpts.easingChange,
- step : _draw,
- complete : finish_resizing
- });
- }
- });
-
- return;
- }
-
- wrap.removeAttr("style");
-
- content.css('border-width', currentOpts.padding);
-
- if (currentOpts.transitionIn == 'elastic') {
- start_pos = _get_zoom_from();
-
- content.html( tmp.contents() );
-
- wrap.show();
-
- if (currentOpts.opacity) {
- final_pos.opacity = 0;
- }
-
- fx.prop = 0;
-
- $(fx).animate({prop: 1}, {
- duration : currentOpts.speedIn,
- easing : currentOpts.easingIn,
- step : _draw,
- complete : _finish
- });
-
- return;
- }
-
- if (currentOpts.titlePosition == 'inside' && titleHeight > 0) {
- title.show();
- }
-
- content
- .css({
- 'width' : final_pos.width - currentOpts.padding * 2,
- 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2
- })
- .html( tmp.contents() );
-
- wrap
- .css(final_pos)
- .fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish );
- },
-
- _format_title = function(title) {
- if (title && title.length) {
- if (currentOpts.titlePosition == 'float') {
- return '<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">' + title + '</td><td id="fancybox-title-float-right"></td></tr></table>';
- }
-
- return '<div id="fancybox-title-' + currentOpts.titlePosition + '">' + title + '</div>';
- }
-
- return false;
- },
-
- _process_title = function() {
- titleStr = currentOpts.title || '';
- titleHeight = 0;
-
- title
- .empty()
- .removeAttr('style')
- .removeClass();
-
- if (currentOpts.titleShow === false) {
- title.hide();
- return;
- }
-
- titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr);
-
- if (!titleStr || titleStr === '') {
- title.hide();
- return;
- }
-
- title
- .addClass('fancybox-title-' + currentOpts.titlePosition)
- .html( titleStr )
- .appendTo( 'body' )
- .show();
-
- switch (currentOpts.titlePosition) {
- case 'inside':
- title
- .css({
- 'width' : final_pos.width - (currentOpts.padding * 2),
- 'marginLeft' : currentOpts.padding,
- 'marginRight' : currentOpts.padding
- });
-
- titleHeight = title.outerHeight(true);
-
- title.appendTo( outer );
-
- final_pos.height += titleHeight;
- break;
-
- case 'over':
- title
- .css({
- 'marginLeft' : currentOpts.padding,
- 'width' : final_pos.width - (currentOpts.padding * 2),
- 'bottom' : currentOpts.padding
- })
- .appendTo( outer );
- break;
-
- case 'float':
- title
- .css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1)
- .appendTo( wrap );
- break;
-
- default:
- title
- .css({
- 'width' : final_pos.width - (currentOpts.padding * 2),
- 'paddingLeft' : currentOpts.padding,
- 'paddingRight' : currentOpts.padding
- })
- .appendTo( wrap );
- break;
- }
-
- title.hide();
- },
-
- _set_navigation = function() {
- if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) {
- $(document).bind('keydown.fb', function(e) {
- if (e.keyCode == 27 && currentOpts.enableEscapeButton) {
- e.preventDefault();
- $.fancybox.close();
-
- } else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') {
- e.preventDefault();
- $.fancybox[ e.keyCode == 37 ? 'prev' : 'next']();
- }
- });
- }
-
- if (!currentOpts.showNavArrows) {
- nav_left.hide();
- nav_right.hide();
- return;
- }
-
- if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) {
- nav_left.show();
- }
-
- if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) {
- nav_right.show();
- }
- },
-
- _finish = function () {
- if (!$.support.opacity) {
- content.get(0).style.removeAttribute('filter');
- wrap.get(0).style.removeAttribute('filter');
- }
-
- if (selectedOpts.autoDimensions) {
- content.css('height', 'auto');
- }
-
- wrap.css('height', 'auto');
-
- if (titleStr && titleStr.length) {
- title.show();
- }
-
- if (currentOpts.showCloseButton) {
- close.show();
- }
-
- _set_navigation();
-
- if (currentOpts.hideOnContentClick) {
- content.bind('click', $.fancybox.close);
- }
-
- if (currentOpts.hideOnOverlayClick) {
- overlay.bind('click', $.fancybox.close);
- }
-
- $(window).bind("resize.fb", $.fancybox.resize);
-
- if (currentOpts.centerOnScroll) {
- $(window).bind("scroll.fb", $.fancybox.center);
- }
-
- if (currentOpts.type == 'iframe') {
- $('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" ' + ($.browser.msie ? 'allowtransparency="true""' : '') + ' scrolling="' + selectedOpts.scrolling + '" src="' + currentOpts.href + '"></iframe>').appendTo(content);
- }
-
- wrap.show();
-
- busy = false;
-
- $.fancybox.center();
-
- currentOpts.onComplete(currentArray, currentIndex, currentOpts);
-
- _preload_images();
- },
-
- _preload_images = function() {
- var href,
- objNext;
-
- if ((currentArray.length -1) > currentIndex) {
- href = currentArray[ currentIndex + 1 ].href;
-
- if (typeof href !== 'undefined' && href.match(imgRegExp)) {
- objNext = new Image();
- objNext.src = href;
- }
- }
-
- if (currentIndex > 0) {
- href = currentArray[ currentIndex - 1 ].href;
-
- if (typeof href !== 'undefined' && href.match(imgRegExp)) {
- objNext = new Image();
- objNext.src = href;
- }
- }
- },
-
- _draw = function(pos) {
- var dim = {
- width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10),
- height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10),
-
- top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10),
- left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10)
- };
-
- if (typeof final_pos.opacity !== 'undefined') {
- dim.opacity = pos < 0.5 ? 0.5 : pos;
- }
-
- wrap.css(dim);
-
- content.css({
- 'width' : dim.width - currentOpts.padding * 2,
- 'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2
- });
- },
-
- _get_viewport = function() {
- return [
- $(window).width() - (currentOpts.margin * 2),
- $(window).height() - (currentOpts.margin * 2),
- $(document).scrollLeft() + currentOpts.margin,
- $(document).scrollTop() + currentOpts.margin
- ];
- },
-
- _get_zoom_to = function () {
- var view = _get_viewport(),
- to = {},
- resize = currentOpts.autoScale,
- double_padding = currentOpts.padding * 2,
- ratio;
-
- if (currentOpts.width.toString().indexOf('%') > -1) {
- to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10);
- } else {
- to.width = currentOpts.width + double_padding;
- }
-
- if (currentOpts.height.toString().indexOf('%') > -1) {
- to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10);
- } else {
- to.height = currentOpts.height + double_padding;
- }
-
- if (resize && (to.width > view[0] || to.height > view[1])) {
- if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {
- ratio = (currentOpts.width ) / (currentOpts.height );
-
- if ((to.width ) > view[0]) {
- to.width = view[0];
- to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10);
- }
-
- if ((to.height) > view[1]) {
- to.height = view[1];
- to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10);
- }
-
- } else {
- to.width = Math.min(to.width, view[0]);
- to.height = Math.min(to.height, view[1]);
- }
- }
-
- to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10);
- to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10);
-
- return to;
- },
-
- _get_obj_pos = function(obj) {
- var pos = obj.offset();
-
- pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0;
- pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0;
-
- pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0;
- pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0;
-
- pos.width = obj.width();
- pos.height = obj.height();
-
- return pos;
- },
-
- _get_zoom_from = function() {
- var orig = selectedOpts.orig ? $(selectedOpts.orig) : false,
- from = {},
- pos,
- view;
-
- if (orig && orig.length) {
- pos = _get_obj_pos(orig);
-
- from = {
- width : pos.width + (currentOpts.padding * 2),
- height : pos.height + (currentOpts.padding * 2),
- top : pos.top - currentOpts.padding - 20,
- left : pos.left - currentOpts.padding - 20
- };
-
- } else {
- view = _get_viewport();
-
- from = {
- width : currentOpts.padding * 2,
- height : currentOpts.padding * 2,
- top : parseInt(view[3] + view[1] * 0.5, 10),
- left : parseInt(view[2] + view[0] * 0.5, 10)
- };
- }
-
- return from;
- },
-
- _animate_loading = function() {
- if (!loading.is(':visible')){
- clearInterval(loadingTimer);
- return;
- }
-
- $('div', loading).css('top', (loadingFrame * -40) + 'px');
-
- loadingFrame = (loadingFrame + 1) % 12;
- };
-
- /*
- * Public methods
- */
-
- $.fn.fancybox = function(options) {
- if (!$(this).length) {
- return this;
- }
-
- $(this)
- .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))
- .unbind('click.fb')
- .bind('click.fb', function(e) {
- e.preventDefault();
-
- if (busy) {
- return;
- }
-
- busy = true;
-
- $(this).blur();
-
- selectedArray = [];
- selectedIndex = 0;
-
- var rel = $(this).attr('rel') || '';
-
- if (!rel || rel == '' || rel === 'nofollow') {
- selectedArray.push(this);
-
- } else {
- selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]");
- selectedIndex = selectedArray.index( this );
- }
-
- _start();
-
- return;
- });
-
- return this;
- };
-
- $.fancybox = function(obj) {
- var opts;
-
- if (busy) {
- return;
- }
-
- busy = true;
- opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {};
-
- selectedArray = [];
- selectedIndex = parseInt(opts.index, 10) || 0;
-
- if ($.isArray(obj)) {
- for (var i = 0, j = obj.length; i < j; i++) {
- if (typeof obj[i] == 'object') {
- $(obj[i]).data('fancybox', $.extend({}, opts, obj[i]));
- } else {
- obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts));
- }
- }
-
- selectedArray = jQuery.merge(selectedArray, obj);
-
- } else {
- if (typeof obj == 'object') {
- $(obj).data('fancybox', $.extend({}, opts, obj));
- } else {
- obj = $({}).data('fancybox', $.extend({content : obj}, opts));
- }
-
- selectedArray.push(obj);
- }
-
- if (selectedIndex > selectedArray.length || selectedIndex < 0) {
- selectedIndex = 0;
- }
-
- _start();
- };
-
- $.fancybox.showActivity = function() {
- clearInterval(loadingTimer);
-
- loading.show();
- loadingTimer = setInterval(_animate_loading, 66);
- };
-
- $.fancybox.hideActivity = function() {
- loading.hide();
- };
-
- $.fancybox.next = function() {
- return $.fancybox.pos( currentIndex + 1);
- };
-
- $.fancybox.prev = function() {
- return $.fancybox.pos( currentIndex - 1);
- };
-
- $.fancybox.pos = function(pos) {
- if (busy) {
- return;
- }
-
- pos = parseInt(pos);
-
- selectedArray = currentArray;
-
- if (pos > -1 && pos < currentArray.length) {
- selectedIndex = pos;
- _start();
-
- } else if (currentOpts.cyclic && currentArray.length > 1) {
- selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1;
- _start();
- }
-
- return;
- };
-
- $.fancybox.cancel = function() {
- if (busy) {
- return;
- }
-
- busy = true;
-
- $.event.trigger('fancybox-cancel');
-
- _abort();
-
- selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts);
-
- busy = false;
- };
-
- // Note: within an iframe use - parent.$.fancybox.close();
- $.fancybox.close = function() {
- if (busy || wrap.is(':hidden')) {
- return;
- }
-
- busy = true;
-
- if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) {
- busy = false;
- return;
- }
-
- _abort();
-
- $(close.add( nav_left ).add( nav_right )).hide();
-
- $(content.add( overlay )).unbind();
-
- $(window).unbind("resize.fb scroll.fb");
- $(document).unbind('keydown.fb');
-
- content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank');
-
- if (currentOpts.titlePosition !== 'inside') {
- title.empty();
- }
-
- wrap.stop();
-
- function _cleanup() {
- overlay.fadeOut('fast');
-
- title.empty().hide();
- wrap.hide();
-
- $.event.trigger('fancybox-cleanup');
-
- content.empty();
-
- currentOpts.onClosed(currentArray, currentIndex, currentOpts);
-
- currentArray = selectedOpts = [];
- currentIndex = selectedIndex = 0;
- currentOpts = selectedOpts = {};
-
- busy = false;
- }
-
- if (currentOpts.transitionOut == 'elastic') {
- start_pos = _get_zoom_from();
-
- var pos = wrap.position();
-
- final_pos = {
- top : pos.top ,
- left : pos.left,
- width : wrap.width(),
- height : wrap.height()
- };
-
- if (currentOpts.opacity) {
- final_pos.opacity = 1;
- }
-
- title.empty().hide();
-
- fx.prop = 1;
-
- $(fx).animate({ prop: 0 }, {
- duration : currentOpts.speedOut,
- easing : currentOpts.easingOut,
- step : _draw,
- complete : _cleanup
- });
-
- } else {
- wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup);
- }
- };
-
- $.fancybox.resize = function() {
- if (overlay.is(':visible')) {
- overlay.css('height', $(document).height());
- }
-
- $.fancybox.center(true);
- };
-
- $.fancybox.center = function() {
- var view, align;
-
- if (busy) {
- return;
- }
-
- align = arguments[0] === true ? 1 : 0;
- view = _get_viewport();
-
- if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) {
- return;
- }
-
- wrap
- .stop()
- .animate({
- 'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)),
- 'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding))
- }, typeof arguments[0] == 'number' ? arguments[0] : 200);
- };
-
- $.fancybox.init = function() {
- if ($("#fancybox-wrap").length) {
- return;
- }
-
- $('body').append(
- tmp = $('<div id="fancybox-tmp"></div>'),
- loading = $('<div id="fancybox-loading"><div></div></div>'),
- overlay = $('<div id="fancybox-overlay"></div>'),
- wrap = $('<div id="fancybox-wrap"></div>')
- );
-
- outer = $('<div id="fancybox-outer"></div>')
- .append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>')
- .appendTo( wrap );
-
- outer.append(
- content = $('<div id="fancybox-content"></div>'),
- close = $('<a id="fancybox-close"></a>'),
- title = $('<div id="fancybox-title"></div>'),
-
- nav_left = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),
- nav_right = $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')
- );
-
- close.click($.fancybox.close);
- loading.click($.fancybox.cancel);
-
- nav_left.click(function(e) {
- e.preventDefault();
- $.fancybox.prev();
- });
-
- nav_right.click(function(e) {
- e.preventDefault();
- $.fancybox.next();
- });
-
- if ($.fn.mousewheel) {
- wrap.bind('mousewheel.fb', function(e, delta) {
- if (busy) {
- e.preventDefault();
-
- } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) {
- e.preventDefault();
- $.fancybox[ delta > 0 ? 'prev' : 'next']();
- }
- });
- }
-
- if (!$.support.opacity) {
- wrap.addClass('fancybox-ie');
- }
-
- if (isIE6) {
- loading.addClass('fancybox-ie6');
- wrap.addClass('fancybox-ie6');
-
- $('<iframe id="fancybox-hide-sel-frame" src="' + (/^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank' ) + '" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(outer);
- }
- };
-
- $.fn.fancybox.defaults = {
- padding : 10,
- margin : 40,
- opacity : false,
- modal : false,
- cyclic : false,
- scrolling : 'auto', // 'auto', 'yes' or 'no'
-
- width : 560,
- height : 340,
-
- autoScale : true,
- autoDimensions : true,
- centerOnScroll : false,
-
- ajax : {},
- swf : { wmode: 'transparent' },
-
- hideOnOverlayClick : true,
- hideOnContentClick : false,
-
- overlayShow : true,
- overlayOpacity : 0.7,
- overlayColor : '#777',
-
- titleShow : true,
- titlePosition : 'float', // 'float', 'outside', 'inside' or 'over'
- titleFormat : null,
- titleFromAlt : false,
-
- transitionIn : 'fade', // 'elastic', 'fade' or 'none'
- transitionOut : 'fade', // 'elastic', 'fade' or 'none'
-
- speedIn : 300,
- speedOut : 300,
-
- changeSpeed : 300,
- changeFade : 'fast',
-
- easingIn : 'swing',
- easingOut : 'swing',
-
- showCloseButton : true,
- showNavArrows : true,
- enableEscapeButton : true,
- enableKeyboardNav : true,
-
- onStart : function(){},
- onCancel : function(){},
- onComplete : function(){},
- onCleanup : function(){},
- onClosed : function(){},
- onError : function(){}
- };
-
- $(document).ready(function() {
- $.fancybox.init();
- });
-
-})(jQuery); \ No newline at end of file
+ /*!
+ * fancyBox - jQuery Plugin
+ * version: 2.0.5 (02/03/2012)
+ * @requires jQuery v1.6 or later
+ *
+ * Examples at http://fancyapps.com/fancybox/
+ * License: www.fancyapps.com/fancybox/#license
+ *
+ * Copyright 2012 Janis Skarnelis - janis@fancyapps.com
+ *
+ */
+(function (window, document, undefined) {
+ "use strict";
+
+ var $ = window.jQuery,
+ W = $(window),
+ D = $(document),
+ F = $.fancybox = function () {
+ F.open.apply( this, arguments );
+ },
+ didResize = false,
+ resizeTimer = null,
+ isMobile = document.createTouch !== undefined,
+ isString = function(str) {
+ return $.type(str) === "string";
+ };
+
+ $.extend(F, {
+ // The current version of fancyBox
+ version: '2.0.5',
+
+ defaults: {
+ padding: 15,
+ margin: 20,
+
+ width: 800,
+ height: 600,
+ minWidth: 100,
+ minHeight: 100,
+ maxWidth: 9999,
+ maxHeight: 9999,
+
+ autoSize: true,
+ autoResize: !isMobile,
+ autoCenter : !isMobile,
+ fitToView: true,
+ aspectRatio: false,
+ topRatio: 0.5,
+
+ fixed: !($.browser.msie && $.browser.version <= 6) && !isMobile,
+ scrolling: 'auto', // 'auto', 'yes' or 'no'
+ wrapCSS: 'fancybox-default',
+
+ arrows: true,
+ closeBtn: true,
+ closeClick: false,
+ nextClick : false,
+ mouseWheel: true,
+ autoPlay: false,
+ playSpeed: 3000,
+ preload : 3,
+
+ modal: false,
+ loop: true,
+ ajax: { dataType: 'html', headers: { 'X-fancyBox': true } },
+ keys: {
+ next: [13, 32, 34, 39, 40], // enter, space, page down, right arrow, down arrow
+ prev: [8, 33, 37, 38], // backspace, page up, left arrow, up arrow
+ close: [27] // escape key
+ },
+
+ // Override some properties
+ index: 0,
+ type: null,
+ href: null,
+ content: null,
+ title: null,
+
+ // HTML templates
+ tpl: {
+ wrap: '<div class="fancybox-wrap"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div>',
+ image: '<img class="fancybox-image" src="{href}" alt="" />',
+ iframe: '<iframe class="fancybox-iframe" name="fancybox-frame{rnd}" frameborder="0" hspace="0"' + ($.browser.msie ? ' allowtransparency="true"' : '') + '></iframe>',
+ swf: '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="wmode" value="transparent" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{href}" /><embed src="{href}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="100%" height="100%" wmode="transparent"></embed></object>',
+ error: '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
+ closeBtn: '<div title="Close" class="fancybox-item fancybox-close"></div>',
+ next: '<a title="Next" class="fancybox-nav fancybox-next"><span></span></a>',
+ prev: '<a title="Previous" class="fancybox-nav fancybox-prev"><span></span></a>'
+ },
+
+ // Properties for each animation type
+ // Opening fancyBox
+ openEffect: 'fade', // 'elastic', 'fade' or 'none'
+ openSpeed: 250,
+ openEasing: 'swing',
+ openOpacity: true,
+ openMethod: 'zoomIn',
+
+ // Closing fancyBox
+ closeEffect: 'fade', // 'elastic', 'fade' or 'none'
+ closeSpeed: 250,
+ closeEasing: 'swing',
+ closeOpacity: true,
+ closeMethod: 'zoomOut',
+
+ // Changing next gallery item
+ nextEffect: 'elastic', // 'elastic', 'fade' or 'none'
+ nextSpeed: 300,
+ nextEasing: 'swing',
+ nextMethod: 'changeIn',
+
+ // Changing previous gallery item
+ prevEffect: 'elastic', // 'elastic', 'fade' or 'none'
+ prevSpeed: 300,
+ prevEasing: 'swing',
+ prevMethod: 'changeOut',
+
+ // Enabled helpers
+ helpers: {
+ overlay: {
+ speedIn: 0,
+ speedOut: 300,
+ opacity: 0.8,
+ css: {
+ cursor: 'pointer'
+ },
+ closeClick: true
+ },
+ title: {
+ type: 'float' // 'float', 'inside', 'outside' or 'over'
+ }
+ },
+
+ // Callbacks
+ onCancel: $.noop, // If canceling
+ beforeLoad: $.noop, // Before loading
+ afterLoad: $.noop, // After loading
+ beforeShow: $.noop, // Before changing in current item
+ afterShow: $.noop, // After opening
+ beforeClose: $.noop, // Before closing
+ afterClose: $.noop // After closing
+ },
+
+ //Current state
+ group: {}, // Selected group
+ opts: {}, // Group options
+ coming: null, // Element being loaded
+ current: null, // Currently loaded element
+ isOpen: false, // Is currently open
+ isOpened: false, // Have been fully opened at least once
+ wrap: null,
+ outer: null,
+ inner: null,
+
+ player: {
+ timer: null,
+ isActive: false
+ },
+
+ // Loaders
+ ajaxLoad: null,
+ imgPreload: null,
+
+ // Some collections
+ transitions: {},
+ helpers: {},
+
+ /*
+ * Static methods
+ */
+
+ open: function (group, opts) {
+ //Kill existing instances
+ F.close(true);
+
+ //Normalize group
+ if (group && !$.isArray(group)) {
+ group = group instanceof $ ? $(group).get() : [group];
+ }
+
+ F.isActive = true;
+
+ //Extend the defaults
+ F.opts = $.extend(true, {}, F.defaults, opts);
+
+ //All options are merged recursive except keys
+ if ($.isPlainObject(opts) && opts.keys !== undefined) {
+ F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;
+ }
+
+ F.group = group;
+
+ F._start(F.opts.index || 0);
+ },
+
+ cancel: function () {
+ if (F.coming && false === F.trigger('onCancel')) {
+ return;
+ }
+
+ F.coming = null;
+
+ F.hideLoading();
+
+ if (F.ajaxLoad) {
+ F.ajaxLoad.abort();
+ }
+
+ F.ajaxLoad = null;
+
+ if (F.imgPreload) {
+ F.imgPreload.onload = F.imgPreload.onabort = F.imgPreload.onerror = null;
+ }
+ },
+
+ close: function (a) {
+ F.cancel();
+
+ if (!F.current || false === F.trigger('beforeClose')) {
+ return;
+ }
+
+ F.unbindEvents();
+
+ //If forced or is still opening then remove immediately
+ if (!F.isOpen || (a && a[0] === true)) {
+ $(".fancybox-wrap").stop().trigger('onReset').remove();
+
+ F._afterZoomOut();
+
+ } else {
+ F.isOpen = F.isOpened = false;
+
+ $(".fancybox-item, .fancybox-nav").remove();
+
+ F.wrap.stop(true).removeClass('fancybox-opened');
+ F.inner.css('overflow', 'hidden');
+
+ F.transitions[F.current.closeMethod]();
+ }
+ },
+
+ // Start/stop slideshow
+ play: function (a) {
+ var clear = function () {
+ clearTimeout(F.player.timer);
+ },
+ set = function () {
+ clear();
+
+ if (F.current && F.player.isActive) {
+ F.player.timer = setTimeout(F.next, F.current.playSpeed);
+ }
+ },
+ stop = function () {
+ clear();
+
+ $('body').unbind('.player');
+
+ F.player.isActive = false;
+
+ F.trigger('onPlayEnd');
+ },
+ start = function () {
+ if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
+ F.player.isActive = true;
+
+ $('body').bind({
+ 'afterShow.player onUpdate.player': set,
+ 'onCancel.player beforeClose.player': stop,
+ 'beforeLoad.player': clear
+ });
+
+ set();
+
+ F.trigger('onPlayStart');
+ }
+ };
+
+ if (F.player.isActive || (a && a[0] === false)) {
+ stop();
+ } else {
+ start();
+ }
+ },
+
+ next: function () {
+ if (F.current) {
+ F.jumpto(F.current.index + 1);
+ }
+ },
+
+ prev: function () {
+ if (F.current) {
+ F.jumpto(F.current.index - 1);
+ }
+ },
+
+ jumpto: function (index) {
+ if (!F.current) {
+ return;
+ }
+
+ index = parseInt(index, 10);
+
+ if (F.group.length > 1 && F.current.loop) {
+ if (index >= F.group.length) {
+ index = 0;
+
+ } else if (index < 0) {
+ index = F.group.length - 1;
+ }
+ }
+
+ if (F.group[index] !== undefined) {
+ F.cancel();
+
+ F._start(index);
+ }
+ },
+
+ reposition: function (a, b) {
+ if (F.isOpen) {
+ if (b && b.type === 'scroll') {
+ F.wrap.stop().animate(F._getPosition(a), 200);
+ } else {
+ F.wrap.css(F._getPosition(a));
+ }
+ }
+ },
+
+ update: function (e) {
+ if (F.isOpen) {
+ // It's a very bad idea to attach handlers to the window scroll event, run this code after a delay
+ if (!didResize) {
+ resizeTimer = setTimeout(function () {
+ var current = F.current;
+
+ if (didResize) {
+ didResize = false;
+
+ if (current) {
+ if (!e || (e && (e.type === 'orientationchange' || (current.autoResize && e.type === 'resize')))) {
+ if (current.autoSize) {
+ F.inner.height('auto');
+ current.height = F.inner.height();
+ }
+
+ F._setDimension();
+
+ if (current.canGrow) {
+ F.inner.height('auto');
+ }
+ }
+
+ if (current.autoCenter) {
+ F.reposition(null, e);
+ }
+
+ F.trigger('onUpdate');
+ }
+ }
+ }, 100);
+ }
+
+ didResize = true;
+ }
+ },
+
+ toggle: function () {
+ if (F.isOpen) {
+ F.current.fitToView = !F.current.fitToView;
+
+ F.update();
+ }
+ },
+
+ hideLoading: function () {
+ D.unbind('keypress.fb');
+
+ $("#fancybox-loading").remove();
+ },
+
+ showLoading: function () {
+ F.hideLoading();
+
+ //If user will press the escape-button, the request will be canceled
+ D.bind('keypress.fb', function(e) {
+ if (e.keyCode == 27) {
+ e.preventDefault();
+ F.cancel();
+ }
+ });
+
+ $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
+ },
+
+ getViewport: function () {
+ return {
+ x: W.scrollLeft(),
+ y: W.scrollTop(),
+ w: W.width(),
+ h: W.height()
+ };
+ },
+
+ // Unbind the keyboard / clicking actions
+ unbindEvents: function () {
+ if (F.wrap) {
+ F.wrap.unbind('.fb');
+ }
+
+ D.unbind('.fb');
+ W.unbind('.fb');
+ },
+
+ bindEvents: function () {
+ var current = F.current,
+ keys = current.keys;
+
+ if (!current) {
+ return;
+ }
+
+ W.bind('resize.fb, orientationchange.fb', F.update);
+
+ if (!current.fixed && current.autoCenter) {
+ W.bind("scroll.fb", F.update);
+ }
+
+ if (keys) {
+ D.bind('keydown.fb', function (e) {
+ var code;
+
+ // Ignore key combinations and key events within form elements
+ if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && $.inArray(e.target.tagName.toLowerCase(), ['input', 'textarea', 'select', 'button']) < 0) {
+ code = e.keyCode;
+
+ if ($.inArray(code, keys.close) > -1) {
+ F.close();
+ e.preventDefault();
+
+ } else if ($.inArray(code, keys.next) > -1) {
+ F.next();
+ e.preventDefault();
+
+ } else if ($.inArray(code, keys.prev) > -1) {
+ F.prev();
+ e.preventDefault();
+ }
+ }
+ });
+ }
+
+ if ($.fn.mousewheel && current.mouseWheel && F.group.length > 1) {
+ F.wrap.bind('mousewheel.fb', function (e, delta) {
+ var target = e.target || null;
+
+ if (delta !== 0 && (!target || target.clientHeight === 0 || (target.scrollHeight === target.clientHeight && target.scrollWidth === target.clientWidth))) {
+ e.preventDefault();
+
+ F[delta > 0 ? 'prev' : 'next']();
+ }
+ });
+ }
+ },
+
+ trigger: function (event) {
+ var ret, obj = F[ $.inArray(event, ['onCancel', 'beforeLoad', 'afterLoad']) > -1 ? 'coming' : 'current' ];
+
+ if (!obj) {
+ return;
+ }
+
+ if ($.isFunction( obj[event] )) {
+ ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));
+ }
+
+ if (ret === false) {
+ return false;
+ }
+
+ if (obj.helpers) {
+ $.each(obj.helpers, function (helper, opts) {
+ if (opts && $.isPlainObject(F.helpers[helper]) && $.isFunction(F.helpers[helper][event])) {
+ F.helpers[helper][event](opts, obj);
+ }
+ });
+ }
+
+ $.event.trigger(event + '.fb');
+ },
+
+ isImage: function (str) {
+ return str && str.toString().match(/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i);
+ },
+
+ isSWF: function (str) {
+ return str && str.toString().match(/\.(swf)(.*)?$/i);
+ },
+
+ _start: function (index) {
+ var coming = {},
+ element = F.group[index] || null,
+ isDom,
+ href,
+ type,
+ rez,
+ hrefParts;
+
+ if (element && (element.nodeType || element instanceof $)) {
+ isDom = true;
+
+ if ($.metadata) {
+ coming = $(element).metadata();
+ }
+ }
+
+ coming = $.extend(true, {}, F.opts, {index : index, element : element}, ($.isPlainObject(element) ? element : coming));
+
+ // Re-check overridable options
+ $.each(['href', 'title', 'content', 'type'], function(i,v) {
+ coming[v] = F.opts[ v ] || (isDom && $(element).attr( v )) || coming[ v ] || null;
+ });
+
+ // Convert margin property to array - top, right, bottom, left
+ if (typeof coming.margin === 'number') {
+ coming.margin = [coming.margin, coming.margin, coming.margin, coming.margin];
+ }
+
+ // 'modal' propery is just a shortcut
+ if (coming.modal) {
+ $.extend(true, coming, {
+ closeBtn : false,
+ closeClick: false,
+ nextClick : false,
+ arrows : false,
+ mouseWheel : false,
+ keys : null,
+ helpers: {
+ overlay : {
+ css: {
+ cursor : 'auto'
+ },
+ closeClick : false
+ }
+ }
+ });
+ }
+
+ //Give a chance for callback or helpers to update coming item (type, title, etc)
+ F.coming = coming;
+
+ if (false === F.trigger('beforeLoad')) {
+ F.coming = null;
+ return;
+ }
+
+ type = coming.type;
+ href = coming.href || element;
+
+ ///Check if content type is set, if not, try to get
+ if (!type) {
+ if (isDom) {
+ rez = $(element).data('fancybox-type');
+
+ if (!rez && element.className) {
+ rez = element.className.match(/fancybox\.(\w+)/);
+ type = rez ? rez[1] : null;
+ }
+ }
+
+ if (!type && isString(href)) {
+ if (F.isImage(href)) {
+ type = 'image';
+
+ } else if (F.isSWF(href)) {
+ type = 'swf';
+
+ } else if (href.match(/^#/)) {
+ type = 'inline';
+ }
+ }
+
+ // ...if not - display element itself
+ if (!type) {
+ type = isDom ? 'inline' : 'html';
+ }
+
+ coming.type = type;
+ }
+
+ // Check before try to load; 'inline' and 'html' types need content, others - href
+ if (type === 'inline' || type === 'html') {
+ if (!coming.content) {
+ if (type === 'inline') {
+ coming.content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7
+
+ } else {
+ coming.content = element;
+ }
+ }
+
+ if (!coming.content || !coming.content.length) {
+ type = null;
+ }
+
+ } else if (!href) {
+ type = null;
+ }
+
+ /*
+ Add reference to the group, so it`s possible to access from callbacks, example:
+
+ afterLoad : function() {
+ this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
+ }
+
+ */
+
+ hrefParts = href.split(/\s+/, 2);
+
+ coming.group = F.group;
+ coming.isDom = isDom;
+ coming.href = hrefParts.shift();
+ coming.selector = hrefParts.shift();
+
+ if (type === 'image') {
+ F._loadImage();
+
+ } else if (type === 'ajax') {
+ F._loadAjax();
+
+ } else if (type) {
+ F._afterLoad();
+
+ } else {
+ F._error( 'type' );
+ }
+ },
+
+ _error: function ( type ) {
+ F.hideLoading();
+
+ $.extend(F.coming, {
+ type : 'html',
+ autoSize : true,
+ minHeight : 0,
+ hasError : type,
+ content : F.coming.tpl.error
+ });
+
+ F._afterLoad();
+ },
+
+ _loadImage: function () {
+ // Reset preload image so it is later possible to check "complete" property
+ F.imgPreload = new Image();
+
+ F.imgPreload.onload = function () {
+ this.onload = this.onerror = null;
+
+ F.coming.width = this.width;
+ F.coming.height = this.height;
+
+ F._afterLoad();
+ };
+
+ F.imgPreload.onerror = function () {
+ this.onload = this.onerror = null;
+
+ F._error( 'image' );
+ };
+
+ F.imgPreload.src = F.coming.href;
+
+ if (!F.imgPreload.width) {
+ F.showLoading();
+ }
+ },
+
+ _loadAjax: function () {
+ F.showLoading();
+
+ F.ajaxLoad = $.ajax($.extend({}, F.coming.ajax, {
+ url: F.coming.href,
+ error: function (jqXHR, textStatus) {
+ if (F.coming && textStatus !== 'abort') {
+ F._error( 'ajax', jqXHR );
+
+ } else {
+ F.hideLoading();
+ }
+ },
+ success: function (data, textStatus) {
+ if (textStatus === 'success') {
+ F.coming.content = data;
+
+ F._afterLoad();
+ }
+ }
+ }));
+ },
+
+ _preloadImages: function() {
+ var group = F.group,
+ current = F.current,
+ len = group.length,
+ item,
+ href,
+ i,
+ cnt = Math.min(current.preload, len - 1);
+
+ if (!current.preload || group.length < 2) {
+ return;
+ }
+
+ for (i = 1; i <= cnt; i += 1) {
+ item = group[ (current.index + i ) % len ];
+ href = $( item ).attr('href') || item;
+
+ if (item.type === 'image' || F.isImage(href)) {
+ new Image().src = href;
+ }
+ }
+ },
+
+ _afterLoad: function () {
+ F.hideLoading();
+
+ if (!F.coming || false === F.trigger('afterLoad', F.current)) {
+ F.coming = false;
+
+ return;
+ }
+
+ if (F.isOpened) {
+ $(".fancybox-item").remove();
+
+ F.wrap.stop(true).removeClass('fancybox-opened');
+ F.inner.css('overflow', 'hidden');
+
+ F.transitions[F.current.prevMethod]();
+
+ } else {
+ $(".fancybox-wrap").stop().trigger('onReset').remove();
+
+ F.trigger('afterClose');
+ }
+
+ F.unbindEvents();
+
+ F.isOpen = false;
+ F.current = F.coming;
+
+ //Build the neccessary markup
+ F.wrap = $(F.current.tpl.wrap).addClass('fancybox-' + (isMobile ? 'mobile' : 'desktop') + ' fancybox-tmp ' + F.current.wrapCSS).appendTo('body');
+ F.outer = $('.fancybox-outer', F.wrap).css('padding', F.current.padding + 'px');
+ F.inner = $('.fancybox-inner', F.wrap);
+
+ F._setContent();
+ },
+
+ _setContent: function () {
+ var current = F.current, content = current.content, type = current.type, loadingBay;
+
+ switch (type) {
+ case 'inline':
+ case 'ajax':
+ case 'html':
+ if (current.selector) {
+ content = $("<div>").html(content).find(current.selector);
+
+ } else if (content instanceof $) {
+ content = content.show().detach();
+
+ if (content.parent().hasClass('fancybox-inner')) {
+ content.parents('.fancybox-wrap').trigger('onReset').remove();
+ }
+
+ $(F.wrap).bind('onReset', function () {
+ content.appendTo('body').hide();
+ });
+ }
+
+ if (current.autoSize) {
+ loadingBay = $('<div class="fancybox-tmp ' + F.current.wrapCSS + '"></div>').appendTo('body').append(content);
+ current.width = loadingBay.width();
+ current.height = loadingBay.height();
+
+ // Re-check to fix 1px bug in some browsers
+ loadingBay.width( F.current.width );
+
+ if (loadingBay.height() > current.height) {
+ loadingBay.width(current.width + 1);
+
+ current.width = loadingBay.width();
+ current.height = loadingBay.height();
+ }
+
+ content = loadingBay.contents().detach();
+
+ loadingBay.remove();
+ }
+
+ break;
+
+ case 'image':
+ content = current.tpl.image.replace('{href}', current.href);
+
+ current.aspectRatio = true;
+ break;
+
+ case 'swf':
+ content = current.tpl.swf.replace(/\{width\}/g, current.width).replace(/\{height\}/g, current.height).replace(/\{href\}/g, current.href);
+ break;
+ }
+
+ if (type === 'iframe') {
+ content = $(current.tpl.iframe.replace('{rnd}', new Date().getTime()) ).attr('scrolling', current.scrolling);
+
+ current.scrolling = 'auto';
+
+ // Set auto height for iframes
+ if (current.autoSize) {
+ content.width( current.width );
+
+ F.showLoading();
+
+ content.data('ready', false).appendTo(F.inner).bind({
+ onCancel : function() {
+ $(this).unbind();
+
+ F._afterZoomOut();
+ },
+ load : function() {
+ var iframe = $(this), height;
+
+ try {
+ if (this.contentWindow.document.location) {
+ height = iframe.contents().find('body').height() + 12;
+
+ iframe.height( height );
+ }
+
+ } catch (e) {
+ current.autoSize = false;
+ }
+
+ if (iframe.data('ready') === false) {
+ F.hideLoading();
+
+ if (height) {
+ F.current.height = height;
+ }
+
+ F._beforeShow();
+
+ iframe.data('ready', true);
+
+ } else if (height) {
+ F.update();
+ }
+ }
+
+ }).attr('src', current.href);
+
+ return;
+ }
+
+ content.attr('src', current.href);
+
+ } else if (type === 'image' || type === 'swf') {
+ current.autoSize = false;
+ current.scrolling = 'visible';
+ }
+
+ F.inner.append(content);
+
+ F._beforeShow();
+ },
+
+ _beforeShow : function() {
+ F.coming = null;
+
+ //Give a chance for helpers or callbacks to update elements
+ F.trigger('beforeShow');
+
+ //Set initial dimensions and hide
+ F._setDimension();
+
+ F.wrap.hide().removeClass('fancybox-tmp');
+
+ F.bindEvents();
+ F._preloadImages();
+
+ F.transitions[ F.isOpened ? F.current.nextMethod : F.current.openMethod ]();
+ },
+
+ _setDimension: function () {
+ var wrap = F.wrap,
+ outer = F.outer,
+ inner = F.inner,
+ current = F.current,
+ viewport = F.getViewport(),
+ margin = current.margin,
+ padding2 = current.padding * 2,
+ width = current.width,
+ height = current.height,
+ maxWidth = current.maxWidth,
+ maxHeight = current.maxHeight,
+ minWidth = current.minWidth,
+ minHeight = current.minHeight,
+ ratio,
+ height_,
+ space;
+
+ viewport.w -= (margin[1] + margin[3]);
+ viewport.h -= (margin[0] + margin[2]);
+
+ if (width.toString().indexOf('%') > -1) {
+ width = (((viewport.w - padding2) * parseFloat(width)) / 100);
+ }
+
+ if (height.toString().indexOf('%') > -1) {
+ height = (((viewport.h - padding2) * parseFloat(height)) / 100);
+ }
+
+ ratio = width / height;
+
+ width += padding2;
+ height += padding2;
+
+ if (current.fitToView) {
+ maxWidth = Math.min(viewport.w, maxWidth);
+ maxHeight = Math.min(viewport.h, maxHeight);
+ }
+
+ if (current.aspectRatio) {
+ if (width > maxWidth) {
+ width = maxWidth;
+ height = ((width - padding2) / ratio) + padding2;
+ }
+
+ if (height > maxHeight) {
+ height = maxHeight;
+ width = ((height - padding2) * ratio) + padding2;
+ }
+
+ if (width < minWidth) {
+ width = minWidth;
+ height = ((width - padding2) / ratio) + padding2;
+ }
+
+ if (height < minHeight) {
+ height = minHeight;
+ width = ((height - padding2) * ratio) + padding2;
+ }
+
+ } else {
+ width = Math.max(minWidth, Math.min(width, maxWidth));
+ height = Math.max(minHeight, Math.min(height, maxHeight));
+ }
+
+ width = Math.round(width);
+ height = Math.round(height);
+
+ //Reset dimensions
+ $(wrap.add(outer).add(inner)).width('auto').height('auto');
+
+ inner.width(width - padding2).height(height - padding2);
+ wrap.width(width);
+
+ height_ = wrap.height(); // Real wrap height
+
+ //Fit wrapper inside
+ if (width > maxWidth || height_ > maxHeight) {
+ while ((width > maxWidth || height_ > maxHeight) && width > minWidth && height_ > minHeight) {
+ height = height - 10;
+
+ if (current.aspectRatio) {
+ width = Math.round(((height - padding2) * ratio) + padding2);
+
+ if (width < minWidth) {
+ width = minWidth;
+ height = ((width - padding2) / ratio) + padding2;
+ }
+
+ } else {
+ width = width - 10;
+ }
+
+ inner.width(width - padding2).height(height - padding2);
+ wrap.width(width);
+
+ height_ = wrap.height();
+ }
+ }
+
+ current.dim = {
+ width: width,
+ height: height_
+ };
+
+ current.canGrow = current.autoSize && height > minHeight && height < maxHeight;
+ current.canShrink = false;
+ current.canExpand = false;
+
+ if ((width - padding2) < current.width || (height - padding2) < current.height) {
+ current.canExpand = true;
+
+ } else if ((width > viewport.w || height_ > viewport.h) && width > minWidth && height > minHeight) {
+ current.canShrink = true;
+ }
+
+ space = height_ - padding2;
+
+ F.innerSpace = space - inner.height();
+ F.outerSpace = space - outer.height();
+ },
+
+ _getPosition: function (a) {
+ var current = F.current,
+ viewport = F.getViewport(),
+ margin = current.margin,
+ width = F.wrap.width() + margin[1] + margin[3],
+ height = F.wrap.height() + margin[0] + margin[2],
+ rez = {
+ position: 'absolute',
+ top: margin[0] + viewport.y,
+ left: margin[3] + viewport.x
+ };
+
+ if (current.autoCenter && current.fixed && (!a || a[0] === false) && height <= viewport.h && width <= viewport.w) {
+ rez = {
+ position: 'fixed',
+ top: margin[0],
+ left: margin[3]
+ };
+ }
+
+ rez.top = Math.ceil(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))) + 'px';
+ rez.left = Math.ceil(Math.max(rez.left, rez.left + ((viewport.w - width) * 0.5))) + 'px';
+
+ return rez;
+ },
+
+ _afterZoomIn: function () {
+ var current = F.current, scrolling = current ? current.scrolling : 'no';
+
+ if (!current) {
+ return;
+ }
+
+ F.isOpen = F.isOpened = true;
+
+ F.wrap.addClass('fancybox-opened').css('overflow', 'visible');
+
+ F.update();
+
+ F.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));
+
+ //Assign a click event
+ if (current.closeClick || current.nextClick) {
+ //This is not the perfect solution but arrows have to be next to content so their height will match
+ // and I do not want another wrapper around content
+ F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
+ if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
+ F[ current.closeClick ? 'close' : 'next' ]();
+ }
+ });
+ }
+
+ //Create a close button
+ if (current.closeBtn) {
+ $(current.tpl.closeBtn).appendTo(F.outer).bind('click.fb', F.close);
+ }
+
+ //Create navigation arrows
+ if (current.arrows && F.group.length > 1) {
+ if (current.loop || current.index > 0) {
+ $(current.tpl.prev).appendTo(F.inner).bind('click.fb', F.prev);
+ }
+
+ if (current.loop || current.index < F.group.length - 1) {
+ $(current.tpl.next).appendTo(F.inner).bind('click.fb', F.next);
+ }
+ }
+
+ F.trigger('afterShow');
+
+ if (F.opts.autoPlay && !F.player.isActive) {
+ F.opts.autoPlay = false;
+
+ F.play();
+ }
+ },
+
+ _afterZoomOut: function () {
+ F.trigger('afterClose');
+
+ F.wrap.trigger('onReset').remove();
+
+ $.extend(F, {
+ group: {},
+ opts: {},
+ current: null,
+ isActive: false,
+ isOpened: false,
+ isOpen: false,
+ wrap: null,
+ outer: null,
+ inner: null
+ });
+ }
+ });
+
+ /*
+ * Default transitions
+ */
+
+ F.transitions = {
+ getOrigPosition: function () {
+ var current = F.current,
+ element = current.element,
+ padding = current.padding,
+ orig = $(current.orig),
+ pos = {},
+ width = 50,
+ height = 50,
+ viewport;
+
+ if (!orig.length && current.isDom && $(element).is(':visible')) {
+ orig = $(element).find('img:first');
+
+ if (!orig.length) {
+ orig = $(element);
+ }
+ }
+
+ if (orig.length) {
+ pos = orig.offset();
+
+ if (orig.is('img')) {
+ width = orig.outerWidth();
+ height = orig.outerHeight();
+ }
+
+ } else {
+ viewport = F.getViewport();
+
+ pos.top = viewport.y + (viewport.h - height) * 0.5;
+ pos.left = viewport.x + (viewport.w - width) * 0.5;
+ }
+
+ pos = {
+ top: Math.ceil(pos.top - padding) + 'px',
+ left: Math.ceil(pos.left - padding) + 'px',
+ width: Math.ceil(width + padding * 2) + 'px',
+ height: Math.ceil(height + padding * 2) + 'px'
+ };
+
+ return pos;
+ },
+
+ step: function (now, fx) {
+ var ratio, innerValue, outerValue;
+
+ if (fx.prop === 'width' || fx.prop === 'height') {
+ innerValue = outerValue = Math.ceil(now - (F.current.padding * 2));
+
+ if (fx.prop === 'height') {
+ ratio = (now - fx.start) / (fx.end - fx.start);
+
+ if (fx.start > fx.end) {
+ ratio = 1 - ratio;
+ }
+
+ innerValue -= F.innerSpace * ratio;
+ outerValue -= F.outerSpace * ratio;
+ }
+
+ F.inner[fx.prop](innerValue);
+ F.outer[fx.prop](outerValue);
+ }
+ },
+
+ zoomIn: function () {
+ var wrap = F.wrap,
+ current = F.current,
+ startPos,
+ endPos,
+ dim = current.dim;
+
+ if (current.openEffect === 'elastic') {
+ endPos = $.extend({}, dim, F._getPosition(true));
+
+ //Remove "position" property
+ delete endPos.position;
+
+ startPos = this.getOrigPosition();
+
+ if (current.openOpacity) {
+ startPos.opacity = 0;
+ endPos.opacity = 1;
+ }
+
+ F.outer.add(F.inner).width('auto').height('auto');
+
+ wrap.css(startPos).show();
+
+ wrap.animate(endPos, {
+ duration: current.openSpeed,
+ easing: current.openEasing,
+ step: this.step,
+ complete: F._afterZoomIn
+ });
+
+ } else {
+ wrap.css($.extend({}, dim, F._getPosition()));
+
+ if (current.openEffect === 'fade') {
+ wrap.fadeIn(current.openSpeed, F._afterZoomIn);
+
+ } else {
+ wrap.show();
+ F._afterZoomIn();
+ }
+ }
+ },
+
+ zoomOut: function () {
+ var wrap = F.wrap,
+ current = F.current,
+ endPos;
+
+ if (current.closeEffect === 'elastic') {
+ if (wrap.css('position') === 'fixed') {
+ wrap.css(F._getPosition(true));
+ }
+
+ endPos = this.getOrigPosition();
+
+ if (current.closeOpacity) {
+ endPos.opacity = 0;
+ }
+
+ wrap.animate(endPos, {
+ duration: current.closeSpeed,
+ easing: current.closeEasing,
+ step: this.step,
+ complete: F._afterZoomOut
+ });
+
+ } else {
+ wrap.fadeOut(current.closeEffect === 'fade' ? current.closeSpeed : 0, F._afterZoomOut);
+ }
+ },
+
+ changeIn: function () {
+ var wrap = F.wrap,
+ current = F.current,
+ startPos;
+
+ if (current.nextEffect === 'elastic') {
+ startPos = F._getPosition(true);
+ startPos.opacity = 0;
+ startPos.top = (parseInt(startPos.top, 10) - 200) + 'px';
+
+ wrap.css(startPos).show().animate({
+ opacity: 1,
+ top: '+=200px'
+ }, {
+ duration: current.nextSpeed,
+ easing: current.nextEasing,
+ complete: F._afterZoomIn
+ });
+
+ } else {
+ wrap.css(F._getPosition());
+
+ if (current.nextEffect === 'fade') {
+ wrap.hide().fadeIn(current.nextSpeed, F._afterZoomIn);
+
+ } else {
+ wrap.show();
+ F._afterZoomIn();
+ }
+ }
+ },
+
+ changeOut: function () {
+ var wrap = F.wrap,
+ current = F.current,
+ cleanUp = function () {
+ $(this).trigger('onReset').remove();
+ };
+
+ wrap.removeClass('fancybox-opened');
+
+ if (current.prevEffect === 'elastic') {
+ wrap.animate({
+ 'opacity': 0,
+ top: '+=200px'
+ }, {
+ duration: current.prevSpeed,
+ easing: current.prevEasing,
+ complete: cleanUp
+ });
+
+ } else {
+ wrap.fadeOut(current.prevEffect === 'fade' ? current.prevSpeed : 0, cleanUp);
+ }
+ }
+ };
+
+ /*
+ * Overlay helper
+ */
+
+ F.helpers.overlay = {
+ overlay: null,
+
+ update: function () {
+ var width, scrollWidth, offsetWidth;
+
+ //Reset width/height so it will not mess
+ this.overlay.width(0).height(0);
+
+ if ($.browser.msie) {
+ scrollWidth = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
+ offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
+
+ width = scrollWidth < offsetWidth ? W.width() : scrollWidth;
+
+ } else {
+ width = D.width();
+ }
+
+ this.overlay.width(width).height(D.height());
+ },
+
+ beforeShow: function (opts) {
+ if (this.overlay) {
+ return;
+ }
+
+ opts = $.extend(true, {
+ speedIn : 'fast',
+ closeClick : true,
+ opacity : 1,
+ css : {
+ background: 'black'
+ }
+ }, opts);
+
+ this.overlay = $('<div id="fancybox-overlay"></div>').css(opts.css).appendTo('body');
+
+ this.update();
+
+ if (opts.closeClick) {
+ this.overlay.bind('click.fb', F.close);
+ }
+
+ W.bind("resize.fb", $.proxy(this.update, this));
+
+ this.overlay.fadeTo(opts.speedIn, opts.opacity);
+ },
+
+ onUpdate: function () {
+ //Update as content may change document dimensions
+ this.update();
+ },
+
+ afterClose: function (opts) {
+ if (this.overlay) {
+ this.overlay.fadeOut(opts.speedOut || 0, function () {
+ $(this).remove();
+ });
+ }
+
+ this.overlay = null;
+ }
+ };
+
+ /*
+ * Title helper
+ */
+
+ F.helpers.title = {
+ beforeShow: function (opts) {
+ var title, text = F.current.title;
+
+ if (text) {
+ title = $('<div class="fancybox-title fancybox-title-' + opts.type + '-wrap">' + text + '</div>').appendTo('body');
+
+ if (opts.type === 'float') {
+ //This helps for some browsers
+ title.width(title.width());
+
+ title.wrapInner('<span class="child"></span>');
+
+ //Increase bottom margin so this title will also fit into viewport
+ F.current.margin[2] += Math.abs(parseInt(title.css('margin-bottom'), 10));
+ }
+
+ title.appendTo(opts.type === 'over' ? F.inner : (opts.type === 'outside' ? F.wrap : F.outer));
+ }
+ }
+ };
+
+ // jQuery plugin initialization
+ $.fn.fancybox = function (options) {
+ var that = $(this),
+ selector = this.selector || '',
+ index,
+ run = function(e) {
+ var what = this, idx = index, relType, relVal;
+
+ if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {
+ e.preventDefault();
+
+ relType = options.groupAttr || 'data-fancybox-group';
+ relVal = $(what).attr(relType);
+
+ if (!relVal) {
+ relType = 'rel';
+ relVal = what[ relType ];
+ }
+
+ if (relVal && relVal !== '' && relVal !== 'nofollow') {
+ what = selector.length ? $(selector) : that;
+ what = what.filter('[' + relType + '="' + relVal + '"]');
+ idx = what.index(this);
+ }
+
+ options.index = idx;
+
+ F.open(what, options);
+ }
+ };
+
+ options = options || {};
+ index = options.index || 0;
+
+ if (selector) {
+ D.undelegate(selector, 'click.fb-start').delegate(selector, 'click.fb-start', run);
+
+ } else {
+ that.unbind('click.fb-start').bind('click.fb-start', run);
+ }
+
+ return this;
+ };
+
+}(window, document)); \ No newline at end of file
diff --git a/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.pack.js b/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.pack.js
index 1373ed0..4b73736 100644
--- a/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.pack.js
+++ b/javascript/libs/jquery/plugins/fancybox/jquery.fancybox.pack.js
@@ -1,46 +1,35 @@
-/*
- * FancyBox - jQuery Plugin
- * Simple and fancy lightbox alternative
- *
- * Examples and documentation at: http://fancybox.net
- *
- * Copyright (c) 2008 - 2010 Janis Skarnelis
- * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
- *
- * Version: 1.3.4 (11/11/2010)
- * Requires: jQuery v1.3+
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
-
-;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("<div/>")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
-F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)||
-c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=
-false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel",
-function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("<img />").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+e.width+'" height="'+e.height+'"><param name="movie" value="'+c+
-'"></param>';P="";b.each(e.swf,function(x,H){C+='<param name="'+x+'" value="'+H+'"></param>';P+=" "+x+'="'+H+'"'});C+='<embed src="'+c+'" type="application/x-shockwave-flash" width="'+e.width+'" height="'+e.height+'"'+P+"></embed></object>";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win==
-"function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('<div style="width:'+a+";height:"+c+
-";overflow: "+(e.scrolling=="auto"?"auto":e.scrolling=="yes"?"scroll":"hidden")+';position:relative;"></div>');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor,
-opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length?
-d.titlePosition=="float"?'<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">'+s+'</td><td id="fancybox-title-float-right"></td></tr></table>':'<div id="fancybox-title-'+d.titlePosition+'">'+s+"</div>":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding});
-y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height==
-i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents());
-f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode==
-37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto");
-s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" '+(b.browser.msie?'allowtransparency="true""':"")+' scrolling="'+e.scrolling+'" src="'+d.href+'"></iframe>').appendTo(j);
-f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c);
-j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type==
-"image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"),
-10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)};
-b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k=
-0,C=a.length;k<C;k++)if(typeof a[k]=="object")b(a[k]).data("fancybox",b.extend({},g,a[k]));else a[k]=b({}).data("fancybox",b.extend({content:a[k]},g));o=jQuery.merge(o,a)}else{if(typeof a=="object")b(a).data("fancybox",b.extend({},g,a));else a=b({}).data("fancybox",b.extend({content:a},g));o.push(a)}if(q>o.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+
-1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a<l.length){q=a;I()}else if(d.cyclic&&l.length>1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h=
-true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1;
-b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5-
-d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('<div id="fancybox-tmp"></div>'),t=b('<div id="fancybox-loading"><div></div></div>'),u=b('<div id="fancybox-overlay"></div>'),f=b('<div id="fancybox-wrap"></div>'));D=b('<div id="fancybox-outer"></div>').append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>').appendTo(f);
-D.append(j=b('<div id="fancybox-content"></div>'),E=b('<a id="fancybox-close"></a>'),n=b('<div id="fancybox-title"></div>'),z=b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),A=b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()});
-b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('<iframe id="fancybox-hide-sel-frame" src="'+(/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank")+'" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(D)}}};
-b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",
-easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery); \ No newline at end of file
+/*! fancyBox v2.0.5 fancyapps.com | fancyapps.com/fancybox/#license */
+(function(t,n,s){var d=t.jQuery,l=d(t),m=d(n),a=d.fancybox=function(){a.open.apply(this,arguments)},q=!1,r=n.createTouch!==s;d.extend(a,{version:"2.0.5",defaults:{padding:15,margin:20,width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,autoSize:!0,autoResize:!r,autoCenter:!r,fitToView:!0,aspectRatio:!1,topRatio:0.5,fixed:!(d.browser.msie&&6>=d.browser.version)&&!r,scrolling:"auto",wrapCSS:"fancybox-default",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,
+playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},keys:{next:[13,32,34,39,40],prev:[8,33,37,38],close:[27]},tpl:{wrap:'<div class="fancybox-wrap"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe class="fancybox-iframe" name="fancybox-frame{rnd}" frameborder="0" hspace="0"'+(d.browser.msie?' allowtransparency="true"':"")+"></iframe>",swf:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="wmode" value="transparent" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{href}" /><embed src="{href}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="100%" height="100%" wmode="transparent"></embed></object>',
+error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<div title="Close" class="fancybox-item fancybox-close"></div>',next:'<a title="Next" class="fancybox-nav fancybox-next"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",
+nextEffect:"elastic",nextSpeed:300,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:300,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:{speedIn:0,speedOut:300,opacity:0.8,css:{cursor:"pointer"},closeClick:!0},title:{type:"float"}}},group:{},opts:{},coming:null,current:null,isOpen:!1,isOpened:!1,wrap:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(b,c){a.close(!0);b&&!d.isArray(b)&&(b=
+b instanceof d?d(b).get():[b]);a.isActive=!0;a.opts=d.extend(!0,{},a.defaults,c);d.isPlainObject(c)&&c.keys!==s&&(a.opts.keys=c.keys?d.extend({},a.defaults.keys,c.keys):!1);a.group=b;a._start(a.opts.index||0)},cancel:function(){a.coming&&!1===a.trigger("onCancel")||(a.coming=null,a.hideLoading(),a.ajaxLoad&&a.ajaxLoad.abort(),a.ajaxLoad=null,a.imgPreload&&(a.imgPreload.onload=a.imgPreload.onabort=a.imgPreload.onerror=null))},close:function(b){a.cancel();a.current&&!1!==a.trigger("beforeClose")&&(a.unbindEvents(),
+!a.isOpen||b&&!0===b[0]?(d(".fancybox-wrap").stop().trigger("onReset").remove(),a._afterZoomOut()):(a.isOpen=a.isOpened=!1,d(".fancybox-item, .fancybox-nav").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.closeMethod]()))},play:function(b){var c=function(){clearTimeout(a.player.timer)},f=function(){c();a.current&&a.player.isActive&&(a.player.timer=setTimeout(a.next,a.current.playSpeed))},e=function(){c();d("body").unbind(".player");
+a.player.isActive=!1;a.trigger("onPlayEnd")};if(a.player.isActive||b&&!1===b[0])e();else if(a.current&&(a.current.loop||a.current.index<a.group.length-1))a.player.isActive=!0,d("body").bind({"afterShow.player onUpdate.player":f,"onCancel.player beforeClose.player":e,"beforeLoad.player":c}),f(),a.trigger("onPlayStart")},next:function(){a.current&&a.jumpto(a.current.index+1)},prev:function(){a.current&&a.jumpto(a.current.index-1)},jumpto:function(b){a.current&&(b=parseInt(b,10),1<a.group.length&&a.current.loop&&
+(b>=a.group.length?b=0:0>b&&(b=a.group.length-1)),a.group[b]!==s&&(a.cancel(),a._start(b)))},reposition:function(b,c){a.isOpen&&(c&&"scroll"===c.type?a.wrap.stop().animate(a._getPosition(b),200):a.wrap.css(a._getPosition(b)))},update:function(b){a.isOpen&&(q||setTimeout(function(){var c=a.current;if(q&&(q=!1,c)){if(!b||b&&("orientationchange"===b.type||c.autoResize&&"resize"===b.type))c.autoSize&&(a.inner.height("auto"),c.height=a.inner.height()),a._setDimension(),c.canGrow&&a.inner.height("auto");
+c.autoCenter&&a.reposition(null,b);a.trigger("onUpdate")}},100),q=!0)},toggle:function(){a.isOpen&&(a.current.fitToView=!a.current.fitToView,a.update())},hideLoading:function(){m.unbind("keypress.fb");d("#fancybox-loading").remove()},showLoading:function(){a.hideLoading();m.bind("keypress.fb",function(b){27==b.keyCode&&(b.preventDefault(),a.cancel())});d('<div id="fancybox-loading"><div></div></div>').click(a.cancel).appendTo("body")},getViewport:function(){return{x:l.scrollLeft(),y:l.scrollTop(),
+w:l.width(),h:l.height()}},unbindEvents:function(){a.wrap&&a.wrap.unbind(".fb");m.unbind(".fb");l.unbind(".fb")},bindEvents:function(){var b=a.current,c=b.keys;b&&(l.bind("resize.fb, orientationchange.fb",a.update),!b.fixed&&b.autoCenter&&l.bind("scroll.fb",a.update),c&&m.bind("keydown.fb",function(b){var e;!b.ctrlKey&&!b.altKey&&!b.shiftKey&&!b.metaKey&&0>d.inArray(b.target.tagName.toLowerCase(),["input","textarea","select","button"])&&(e=b.keyCode,-1<d.inArray(e,c.close)?(a.close(),b.preventDefault()):
+-1<d.inArray(e,c.next)?(a.next(),b.preventDefault()):-1<d.inArray(e,c.prev)&&(a.prev(),b.preventDefault()))}),d.fn.mousewheel&&b.mouseWheel&&1<a.group.length&&a.wrap.bind("mousewheel.fb",function(b,c){var d=b.target||null;if(0!==c&&(!d||0===d.clientHeight||d.scrollHeight===d.clientHeight&&d.scrollWidth===d.clientWidth))b.preventDefault(),a[0<c?"prev":"next"]()}))},trigger:function(b){var c,f=a[-1<d.inArray(b,["onCancel","beforeLoad","afterLoad"])?"coming":"current"];if(f){d.isFunction(f[b])&&(c=f[b].apply(f,
+Array.prototype.slice.call(arguments,1)));if(!1===c)return!1;f.helpers&&d.each(f.helpers,function(c,g){if(g&&d.isPlainObject(a.helpers[c])&&d.isFunction(a.helpers[c][b]))a.helpers[c][b](g,f)});d.event.trigger(b+".fb")}},isImage:function(a){return a&&a.toString().match(/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i)},isSWF:function(a){return a&&a.toString().match(/\.(swf)(.*)?$/i)},_start:function(b){var c={},f=a.group[b]||null,e,g,k;if(f&&(f.nodeType||f instanceof d))e=!0,d.metadata&&(c=d(f).metadata());c=d.extend(!0,
+{},a.opts,{index:b,element:f},d.isPlainObject(f)?f:c);d.each(["href","title","content","type"],function(b,g){c[g]=a.opts[g]||e&&d(f).attr(g)||c[g]||null});"number"===typeof c.margin&&(c.margin=[c.margin,c.margin,c.margin,c.margin]);c.modal&&d.extend(!0,c,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{css:{cursor:"auto"},closeClick:!1}}});a.coming=c;if(!1===a.trigger("beforeLoad"))a.coming=null;else{b=c.type;g=c.href||f;b||(e&&(k=d(f).data("fancybox-type"),
+!k&&f.className&&(b=(k=f.className.match(/fancybox\.(\w+)/))?k[1]:null)),!b&&"string"===d.type(g)&&(a.isImage(g)?b="image":a.isSWF(g)?b="swf":g.match(/^#/)&&(b="inline")),b||(b=e?"inline":"html"),c.type=b);if("inline"===b||"html"===b){if(c.content||(c.content="inline"===b?d("string"===d.type(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):f),!c.content||!c.content.length)b=null}else g||(b=null);g=g.split(/\s+/,2);c.group=a.group;c.isDom=e;c.href=g.shift();c.selector=g.shift();"image"===b?a._loadImage():"ajax"===
+b?a._loadAjax():b?a._afterLoad():a._error("type")}},_error:function(b){a.hideLoading();d.extend(a.coming,{type:"html",autoSize:!0,minHeight:0,hasError:b,content:a.coming.tpl.error});a._afterLoad()},_loadImage:function(){a.imgPreload=new Image;a.imgPreload.onload=function(){this.onload=this.onerror=null;a.coming.width=this.width;a.coming.height=this.height;a._afterLoad()};a.imgPreload.onerror=function(){this.onload=this.onerror=null;a._error("image")};a.imgPreload.src=a.coming.href;a.imgPreload.width||
+a.showLoading()},_loadAjax:function(){a.showLoading();a.ajaxLoad=d.ajax(d.extend({},a.coming.ajax,{url:a.coming.href,error:function(b,c){a.coming&&"abort"!==c?a._error("ajax",b):a.hideLoading()},success:function(b,c){"success"===c&&(a.coming.content=b,a._afterLoad())}}))},_preloadImages:function(){var b=a.group,c=a.current,f=b.length,e,g,k,h=Math.min(c.preload,f-1);if(c.preload&&!(2>b.length))for(k=1;k<=h;k+=1)if(e=b[(c.index+k)%f],g=d(e).attr("href")||e,"image"===e.type||a.isImage(g))(new Image).src=
+g},_afterLoad:function(){a.hideLoading();!a.coming||!1===a.trigger("afterLoad",a.current)?a.coming=!1:(a.isOpened?(d(".fancybox-item").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.prevMethod]()):(d(".fancybox-wrap").stop().trigger("onReset").remove(),a.trigger("afterClose")),a.unbindEvents(),a.isOpen=!1,a.current=a.coming,a.wrap=d(a.current.tpl.wrap).addClass("fancybox-"+(r?"mobile":"desktop")+" fancybox-tmp "+a.current.wrapCSS).appendTo("body"),
+a.outer=d(".fancybox-outer",a.wrap).css("padding",a.current.padding+"px"),a.inner=d(".fancybox-inner",a.wrap),a._setContent())},_setContent:function(){var b=a.current,c=b.content,f=b.type,e;switch(f){case "inline":case "ajax":case "html":b.selector?c=d("<div>").html(c).find(b.selector):c instanceof d&&(c=c.show().detach(),c.parent().hasClass("fancybox-inner")&&c.parents(".fancybox-wrap").trigger("onReset").remove(),d(a.wrap).bind("onReset",function(){c.appendTo("body").hide()}));b.autoSize&&(e=d('<div class="fancybox-tmp '+
+a.current.wrapCSS+'"></div>').appendTo("body").append(c),b.width=e.width(),b.height=e.height(),e.width(a.current.width),e.height()>b.height&&(e.width(b.width+1),b.width=e.width(),b.height=e.height()),c=e.contents().detach(),e.remove());break;case "image":c=b.tpl.image.replace("{href}",b.href);b.aspectRatio=!0;break;case "swf":c=b.tpl.swf.replace(/\{width\}/g,b.width).replace(/\{height\}/g,b.height).replace(/\{href\}/g,b.href)}if("iframe"===f){c=d(b.tpl.iframe.replace("{rnd}",(new Date).getTime())).attr("scrolling",
+b.scrolling);b.scrolling="auto";if(b.autoSize){c.width(b.width);a.showLoading();c.data("ready",!1).appendTo(a.inner).bind({onCancel:function(){d(this).unbind();a._afterZoomOut()},load:function(){var c=d(this),f;try{this.contentWindow.document.location&&(f=c.contents().find("body").height()+12,c.height(f))}catch(e){b.autoSize=!1}!1===c.data("ready")?(a.hideLoading(),f&&(a.current.height=f),a._beforeShow(),c.data("ready",!0)):f&&a.update()}}).attr("src",b.href);return}c.attr("src",b.href)}else if("image"===
+f||"swf"===f)b.autoSize=!1,b.scrolling="visible";a.inner.append(c);a._beforeShow()},_beforeShow:function(){a.coming=null;a.trigger("beforeShow");a._setDimension();a.wrap.hide().removeClass("fancybox-tmp");a.bindEvents();a._preloadImages();a.transitions[a.isOpened?a.current.nextMethod:a.current.openMethod]()},_setDimension:function(){var b=a.wrap,c=a.outer,f=a.inner,e=a.current,g=a.getViewport(),k=e.margin,h=2*e.padding,i=e.width,j=e.height,l=e.maxWidth,o=e.maxHeight,m=e.minWidth,n=e.minHeight,p;g.w-=
+k[1]+k[3];g.h-=k[0]+k[2];-1<i.toString().indexOf("%")&&(i=(g.w-h)*parseFloat(i)/100);-1<j.toString().indexOf("%")&&(j=(g.h-h)*parseFloat(j)/100);k=i/j;i+=h;j+=h;e.fitToView&&(l=Math.min(g.w,l),o=Math.min(g.h,o));e.aspectRatio?(i>l&&(i=l,j=(i-h)/k+h),j>o&&(j=o,i=(j-h)*k+h),i<m&&(i=m,j=(i-h)/k+h),j<n&&(j=n,i=(j-h)*k+h)):(i=Math.max(m,Math.min(i,l)),j=Math.max(n,Math.min(j,o)));i=Math.round(i);j=Math.round(j);d(b.add(c).add(f)).width("auto").height("auto");f.width(i-h).height(j-h);b.width(i);p=b.height();
+if(i>l||p>o)for(;(i>l||p>o)&&i>m&&p>n;)j-=10,e.aspectRatio?(i=Math.round((j-h)*k+h),i<m&&(i=m,j=(i-h)/k+h)):i-=10,f.width(i-h).height(j-h),b.width(i),p=b.height();e.dim={width:i,height:p};e.canGrow=e.autoSize&&j>n&&j<o;e.canShrink=!1;e.canExpand=!1;if(i-h<e.width||j-h<e.height)e.canExpand=!0;else if((i>g.w||p>g.h)&&i>m&&j>n)e.canShrink=!0;b=p-h;a.innerSpace=b-f.height();a.outerSpace=b-c.height()},_getPosition:function(b){var c=a.current,f=a.getViewport(),d=c.margin,g=a.wrap.width()+d[1]+d[3],k=a.wrap.height()+
+d[0]+d[2],h={position:"absolute",top:d[0]+f.y,left:d[3]+f.x};if(c.autoCenter&&c.fixed&&(!b||!1===b[0])&&k<=f.h&&g<=f.w)h={position:"fixed",top:d[0],left:d[3]};h.top=Math.ceil(Math.max(h.top,h.top+(f.h-k)*c.topRatio))+"px";h.left=Math.ceil(Math.max(h.left,h.left+0.5*(f.w-g)))+"px";return h},_afterZoomIn:function(){var b=a.current,c=b?b.scrolling:"no";b&&(a.isOpen=a.isOpened=!0,a.wrap.addClass("fancybox-opened").css("overflow","visible"),a.update(),a.inner.css("overflow","yes"===c?"scroll":"no"===c?
+"hidden":c),(b.closeClick||b.nextClick)&&a.inner.css("cursor","pointer").bind("click.fb",function(c){if(!d(c.target).is("a")&&!d(c.target).parent().is("a"))a[b.closeClick?"close":"next"]()}),b.closeBtn&&d(b.tpl.closeBtn).appendTo(a.outer).bind("click.fb",a.close),b.arrows&&1<a.group.length&&((b.loop||0<b.index)&&d(b.tpl.prev).appendTo(a.inner).bind("click.fb",a.prev),(b.loop||b.index<a.group.length-1)&&d(b.tpl.next).appendTo(a.inner).bind("click.fb",a.next)),a.trigger("afterShow"),a.opts.autoPlay&&
+!a.player.isActive&&(a.opts.autoPlay=!1,a.play()))},_afterZoomOut:function(){a.trigger("afterClose");a.wrap.trigger("onReset").remove();d.extend(a,{group:{},opts:{},current:null,isActive:!1,isOpened:!1,isOpen:!1,wrap:null,outer:null,inner:null})}});a.transitions={getOrigPosition:function(){var b=a.current,c=b.element,f=b.padding,e=d(b.orig),g={},k=50,h=50;!e.length&&b.isDom&&d(c).is(":visible")&&(e=d(c).find("img:first"),e.length||(e=d(c)));e.length?(g=e.offset(),e.is("img")&&(k=e.outerWidth(),h=
+e.outerHeight())):(b=a.getViewport(),g.top=b.y+0.5*(b.h-h),g.left=b.x+0.5*(b.w-k));return g={top:Math.ceil(g.top-f)+"px",left:Math.ceil(g.left-f)+"px",width:Math.ceil(k+2*f)+"px",height:Math.ceil(h+2*f)+"px"}},step:function(b,c){var d,e,g;if("width"===c.prop||"height"===c.prop)e=g=Math.ceil(b-2*a.current.padding),"height"===c.prop&&(d=(b-c.start)/(c.end-c.start),c.start>c.end&&(d=1-d),e-=a.innerSpace*d,g-=a.outerSpace*d),a.inner[c.prop](e),a.outer[c.prop](g)},zoomIn:function(){var b=a.wrap,c=a.current,
+f,e;f=c.dim;"elastic"===c.openEffect?(e=d.extend({},f,a._getPosition(!0)),delete e.position,f=this.getOrigPosition(),c.openOpacity&&(f.opacity=0,e.opacity=1),a.outer.add(a.inner).width("auto").height("auto"),b.css(f).show(),b.animate(e,{duration:c.openSpeed,easing:c.openEasing,step:this.step,complete:a._afterZoomIn})):(b.css(d.extend({},f,a._getPosition())),"fade"===c.openEffect?b.fadeIn(c.openSpeed,a._afterZoomIn):(b.show(),a._afterZoomIn()))},zoomOut:function(){var b=a.wrap,c=a.current,d;"elastic"===
+c.closeEffect?("fixed"===b.css("position")&&b.css(a._getPosition(!0)),d=this.getOrigPosition(),c.closeOpacity&&(d.opacity=0),b.animate(d,{duration:c.closeSpeed,easing:c.closeEasing,step:this.step,complete:a._afterZoomOut})):b.fadeOut("fade"===c.closeEffect?c.closeSpeed:0,a._afterZoomOut)},changeIn:function(){var b=a.wrap,c=a.current,d;"elastic"===c.nextEffect?(d=a._getPosition(!0),d.opacity=0,d.top=parseInt(d.top,10)-200+"px",b.css(d).show().animate({opacity:1,top:"+=200px"},{duration:c.nextSpeed,
+easing:c.nextEasing,complete:a._afterZoomIn})):(b.css(a._getPosition()),"fade"===c.nextEffect?b.hide().fadeIn(c.nextSpeed,a._afterZoomIn):(b.show(),a._afterZoomIn()))},changeOut:function(){var b=a.wrap,c=a.current,f=function(){d(this).trigger("onReset").remove()};b.removeClass("fancybox-opened");"elastic"===c.prevEffect?b.animate({opacity:0,top:"+=200px"},{duration:c.prevSpeed,easing:c.prevEasing,complete:f}):b.fadeOut("fade"===c.prevEffect?c.prevSpeed:0,f)}};a.helpers.overlay={overlay:null,update:function(){var a,
+c;this.overlay.width(0).height(0);d.browser.msie?(a=Math.max(n.documentElement.scrollWidth,n.body.scrollWidth),c=Math.max(n.documentElement.offsetWidth,n.body.offsetWidth),a=a<c?l.width():a):a=m.width();this.overlay.width(a).height(m.height())},beforeShow:function(b){this.overlay||(b=d.extend(!0,{speedIn:"fast",closeClick:!0,opacity:1,css:{background:"black"}},b),this.overlay=d('<div id="fancybox-overlay"></div>').css(b.css).appendTo("body"),this.update(),b.closeClick&&this.overlay.bind("click.fb",
+a.close),l.bind("resize.fb",d.proxy(this.update,this)),this.overlay.fadeTo(b.speedIn,b.opacity))},onUpdate:function(){this.update()},afterClose:function(a){this.overlay&&this.overlay.fadeOut(a.speedOut||0,function(){d(this).remove()});this.overlay=null}};a.helpers.title={beforeShow:function(b){var c;if(c=a.current.title)c=d('<div class="fancybox-title fancybox-title-'+b.type+'-wrap">'+c+"</div>").appendTo("body"),"float"===b.type&&(c.width(c.width()),c.wrapInner('<span class="child"></span>'),a.current.margin[2]+=
+Math.abs(parseInt(c.css("margin-bottom"),10))),c.appendTo("over"===b.type?a.inner:"outside"===b.type?a.wrap:a.outer)}};d.fn.fancybox=function(b){var c=d(this),f=this.selector||"",e,g=function(g){var h=this,i=e,j;!g.ctrlKey&&!g.altKey&&!g.shiftKey&&!g.metaKey&&(g.preventDefault(),g=b.groupAttr||"data-fancybox-group",j=d(h).attr(g),j||(g="rel",j=h[g]),j&&""!==j&&"nofollow"!==j&&(h=f.length?d(f):c,h=h.filter("["+g+'="'+j+'"]'),i=h.index(this)),b.index=i,a.open(h,b))},b=b||{};e=b.index||0;f?m.undelegate(f,
+"click.fb-start").delegate(f,"click.fb-start",g):c.unbind("click.fb-start").bind("click.fb-start",g);return this}})(window,document); \ No newline at end of file