bcms_slideshow 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +30 -0
- data/app/controllers/application_controller.rb +10 -0
- data/app/controllers/cms/tagged_image_slideshows_controller.rb +2 -0
- data/app/helpers/application_helper.rb +3 -0
- data/app/models/tagged_image_slideshow.rb +52 -0
- data/app/views/cms/tagged_image_slideshows/_form.html.erb +19 -0
- data/app/views/cms/tagged_image_slideshows/render.html.erb +29 -0
- data/app/views/layouts/templates/default.html.erb +17 -0
- data/db/migrate/20110206184241_create_tagged_image_slideshows.rb +25 -0
- data/lib/bcms_slideshow.rb +1 -0
- data/lib/bcms_slideshow/routes.rb +7 -0
- data/public/bcms/slideshow/README +1 -0
- data/public/bcms/slideshow/jquery-1.5.min.js +16 -0
- data/public/bcms/slideshow/jquery.cycle.all.latest.js +1331 -0
- data/public/bcms/slideshow/jquery.easing.1.1.1.js +107 -0
- data/public/bcms/slideshow/tagged_slideshow.css +3 -0
- data/rails/init.rb +4 -0
- metadata +98 -0
data/README.textile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
h1. bcms_slideshow
|
2
|
+
|
3
|
+
For now, it creates a slideshow of tagged images and uses the excellent "jQuery cycle":http://jquery.malsup.com/cycle/ plugin, exposing a few relevant options. Soon it'll allow you to create annotated slideshows that include arbitrary HTML as an overlay on the image.
|
4
|
+
|
5
|
+
h2. Installation
|
6
|
+
|
7
|
+
Use the normal module installation process "documented here.":http://guides.browsercms.org/installing_modules.html
|
8
|
+
|
9
|
+
h2. Requirements
|
10
|
+
|
11
|
+
"bcms_thumbnail":http://rubygems.org/gems/bcms_thumbnail >= 1.0.5, which in turn requires "mini_magick":http://http://rubygems.org/gems/mini_magick
|
12
|
+
|
13
|
+
You'll need to install bcms_thumbnail before using this module.
|
14
|
+
|
15
|
+
h2. Known issues
|
16
|
+
|
17
|
+
The jQuery that comes with the current stable browsercms is too old for the Cycle plugin. We include a newer jQuery (1.5), but it conflicts when the Visual Editor is turned on. This means the cycle plugin is essentially broken when the Visual Editor is turned on. If you turn off the Visual Editor, you'll be able to see your slideshow as it's meant to be.
|
18
|
+
|
19
|
+
h2. See also
|
20
|
+
|
21
|
+
"The jQuery cycle effects browser":http://jquery.malsup.com/cycle/browser.html , which gives you an overview of the different slide transition effects.
|
22
|
+
|
23
|
+
h2. License
|
24
|
+
|
25
|
+
LGPL, the same as BrowserCMS.
|
26
|
+
|
27
|
+
h2. Author
|
28
|
+
|
29
|
+
Daniel Collis Puro
|
30
|
+
dan@collispuro.com
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Filters added to this controller apply to all controllers in the application.
|
2
|
+
# Likewise, all the methods added will be available for all controllers.
|
3
|
+
|
4
|
+
class ApplicationController < ActionController::Base
|
5
|
+
helper :all # include all helpers, all the time
|
6
|
+
protect_from_forgery # See ActionController::RequestForgeryProtection for details
|
7
|
+
|
8
|
+
# Scrub sensitive parameters from your log
|
9
|
+
# filter_parameter_logging :password
|
10
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
class TaggedImageSlideshow < ActiveRecord::Base
|
2
|
+
|
3
|
+
acts_as_content_block :taggable => true
|
4
|
+
validates_numericality_of :width, :height, :speed, :timeout, :quality
|
5
|
+
|
6
|
+
IMAGE_ZOOM_OPTIONS = [
|
7
|
+
['Full Width','width'],['Height','height'],['Either','either']
|
8
|
+
]
|
9
|
+
|
10
|
+
IMAGE_ORDER_OPTIONS = [
|
11
|
+
['Image Name','name'],['Image Creation Date','created_at']
|
12
|
+
]
|
13
|
+
|
14
|
+
SPEED_OPTIONS = [
|
15
|
+
['1 second',1000],['1/2 second',500],['1.5 seconds',1500],['2 seconds',2000],['3 seconds',3000],['4 seconds',4000]
|
16
|
+
]
|
17
|
+
|
18
|
+
TIMEOUT_OPTIONS = [
|
19
|
+
['4 seconds',4000],['1 second',1000],['2 seconds',2000],['3 seconds',3000],['5 seconds',5000],['6 seconds',6000],['7 seconds',7000],['8 seconds',8000],['9 seconds',9000],['10 seconds',10000],['15 seconds',15000],['20 seconds',20000],['30 seconds',30000],['1 minute',60000]
|
20
|
+
]
|
21
|
+
|
22
|
+
EFFECT_OPTIONS = [
|
23
|
+
'blindX','blindY','blindZ','cover','curtainX','curtainY','fade','fadeZoom','growX','growY','none','scrollUp','scrollDown','scrollLeft','scrollRight','scrollHorz','scrollVert','shuffle','slideX','slideY','toss','turnUp','turnDown','turnLeft','turnRight','uncover','wipe','zoom'
|
24
|
+
]
|
25
|
+
|
26
|
+
validates_inclusion_of :image_zoom, :in => IMAGE_ZOOM_OPTIONS.collect{|o| o[1]}
|
27
|
+
validates_inclusion_of :image_order, :in => IMAGE_ORDER_OPTIONS.collect{|o| o[1]}
|
28
|
+
validates_inclusion_of :speed, :in => SPEED_OPTIONS.collect{|o| o[1]}
|
29
|
+
validates_inclusion_of :timeout, :in => TIMEOUT_OPTIONS.collect{|o| o[1]}
|
30
|
+
validates_inclusion_of :effect, :in => EFFECT_OPTIONS
|
31
|
+
|
32
|
+
def geometry
|
33
|
+
if self.image_zoom == 'width'
|
34
|
+
"#{width}"
|
35
|
+
elsif self.image_zoom == 'height'
|
36
|
+
"x#{height}"
|
37
|
+
else
|
38
|
+
"#{width}x#{height}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def images
|
43
|
+
tag_ids_to_find = self.tags.collect{|t| t.id}
|
44
|
+
taggings = Tagging.find(:all, :conditions => {:taggable_type => 'AbstractFileBlock', :tag_id => tag_ids_to_find})
|
45
|
+
if taggings.blank?
|
46
|
+
nil
|
47
|
+
else
|
48
|
+
taggings.collect{|t| t.taggable}.reject{|i| i.class != ImageBlock}.uniq.compact.sort_by{|im| im.send(self.image_order)}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="fields">
|
2
|
+
<p>A tagged image slideshow will emit images from the main image content library that're tagged with the tags you enter below.</p>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<%= f.cms_text_field :name %>
|
6
|
+
<%= f.cms_tag_list :instructions => 'Images tagged with the tags you select here will be included in this slideshow.' %>
|
7
|
+
<%= f.cms_drop_down :image_zoom, TaggedImageSlideshow::IMAGE_ZOOM_OPTIONS, :instructions => 'Controls which dimension is most important when scaling.' %>
|
8
|
+
|
9
|
+
<%= f.cms_text_field :width, :instructions => 'In pixels. Defaults to 640' %>
|
10
|
+
<%= f.cms_text_field :height, :instructions => 'In pixels. Defaults to 480' %>
|
11
|
+
<%= f.cms_text_field :quality, :instructions => 'JPG image quality - 0 to 100, where 100 is uncompressed. Default is 85' %>
|
12
|
+
<%= f.cms_drop_down :image_order, TaggedImageSlideshow::IMAGE_ORDER_OPTIONS, :instructions => 'Defaults to image name' %>
|
13
|
+
<%= f.cms_drop_down :speed, TaggedImageSlideshow::SPEED_OPTIONS, :instructions => 'The speed of the slide transition effect in seconds. 1 second is a good choice.' %>
|
14
|
+
|
15
|
+
<%= f.cms_drop_down :timeout, TaggedImageSlideshow::TIMEOUT_OPTIONS, :instructions => 'The amount of time a slide is shown in milliseconds. After this time is reached, the slide transitions to the next one. Defaults to 4000, or 4 seconds.' %>
|
16
|
+
<%= f.cms_check_box :do_not_loop, :instructions => 'Only play the slideshow once.' %>
|
17
|
+
<%= f.cms_check_box :emit_jquery, :label => 'Output jquery javascript library?', :instructions => "Check this to include the jQuery library in the <head> section of this page. If you're already using jQuery and the library is loaded on this page, you don't need to check this.." %>
|
18
|
+
<%= f.cms_drop_down :effect, TaggedImageSlideshow::EFFECT_OPTIONS, :instructions => 'The transition effect. Defaults to "fade". See http://jquery.malsup.com/cycle/browser.html for an overview of the effects' %>
|
19
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%- if @content_block.emit_jquery %>
|
2
|
+
<%- require_javascript_include(['/bcms/slideshow/jquery-1.5.min.js', '/bcms/slideshow/jquery.easing.1.1.1.js', '/bcms/slideshow/jquery.cycle.all.latest.js']) %>
|
3
|
+
<%- else %>
|
4
|
+
<%- require_javascript_include(['/bcms/slideshow/jquery.easing.1.1.1.js', '/bcms/slideshow/jquery.cycle.all.latest.js']) %>
|
5
|
+
<%- end %>
|
6
|
+
<%- require_stylesheet_link(['/bcms/slideshow/tagged_slideshow.css']) %>
|
7
|
+
<div class="tagged-slideshow" id="tagged-slideshow-<%= @content_block.id %>">
|
8
|
+
<%- unless @content_block.images.blank? %>
|
9
|
+
<div class="tagged-slideshow-image-container" id="tagged-slideshow-image-container-<%= @content_block.id %>" style="width: <%= @content_block.width %>px; height: <%= @content_block.height %>px">
|
10
|
+
<%- @content_block.images.each do |im| %>
|
11
|
+
<div class="slideshow-image" style="width: <%= @content_block.width %>px; height: <%= @content_block.height %>px; background-image:url('<%= thumbnail(im, @content_block.geometry, @content_block.quality) %>')" >
|
12
|
+
</div>
|
13
|
+
<%- end %>
|
14
|
+
</div>
|
15
|
+
<%- else %>
|
16
|
+
<h3>None found.</h3>
|
17
|
+
<%- end %>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<%- javascript_tag do %>
|
21
|
+
jQuery(document).ready(function(){
|
22
|
+
jQuery('#tagged-slideshow-image-container-<%= @content_block.id %>').cycle({
|
23
|
+
fx: '<%= @content_block.effect %>',
|
24
|
+
timeout: <%= @content_block.timeout %>,
|
25
|
+
<%= (@content_block.do_not_loop) ? 'nowrap: 1,' : '' %>
|
26
|
+
speed: <%= @content_block.speed %>
|
27
|
+
});
|
28
|
+
});
|
29
|
+
<%- end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
5
|
+
<title><%= page_title %></title>
|
6
|
+
<%= yield :html_head %>
|
7
|
+
</head>
|
8
|
+
<body style="margin: 0; padding: 0; text-align: center;">
|
9
|
+
<%= cms_toolbar %>
|
10
|
+
<div id="wrapper" style="width: 700px; margin: 0 auto; text-align: left; padding: 30px">
|
11
|
+
Breadcrumbs: <%= render_breadcrumbs %>
|
12
|
+
Main Menu: <%= render_menu %>
|
13
|
+
<h1><%= page_title %></h1>
|
14
|
+
<%= container :main %>
|
15
|
+
</div>
|
16
|
+
</body>
|
17
|
+
</html>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class CreateTaggedImageSlideshows < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_content_table :tagged_image_slideshows do |t|
|
4
|
+
t.integer :width, :default => 640
|
5
|
+
t.string :image_zoom, :default => 'width'
|
6
|
+
t.integer :height, :default => 480
|
7
|
+
t.string :image_order, :default => 'name'
|
8
|
+
t.integer :quality, :default => 85
|
9
|
+
t.integer :speed, :default => 1000
|
10
|
+
t.integer :timeout, :default => 4000
|
11
|
+
t.boolean :do_not_loop
|
12
|
+
t.boolean :emit_jquery, :default => false
|
13
|
+
t.string :effect, :default => 'fade'
|
14
|
+
end
|
15
|
+
ContentType.create!(:name => "TaggedImageSlideshow", :group_name => "Slideshow")
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.down
|
19
|
+
ContentType.delete_all(['name = ?', 'TaggedImageSlideshow'])
|
20
|
+
CategoryType.all(:conditions => ['name = ?', 'Slideshow']).each(&:destroy)
|
21
|
+
#If you aren't creating a versioned table, be sure to comment this out.
|
22
|
+
drop_table :tagged_image_slideshow_versions
|
23
|
+
drop_table :tagged_image_slideshows
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'bcms_slideshow/routes'
|
@@ -0,0 +1 @@
|
|
1
|
+
Use this directory to add public files that should copied from the gem into the project.
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*!
|
2
|
+
* jQuery JavaScript Library v1.5
|
3
|
+
* http://jquery.com/
|
4
|
+
*
|
5
|
+
* Copyright 2011, John Resig
|
6
|
+
* Dual licensed under the MIT or GPL Version 2 licenses.
|
7
|
+
* http://jquery.org/license
|
8
|
+
*
|
9
|
+
* Includes Sizzle.js
|
10
|
+
* http://sizzlejs.com/
|
11
|
+
* Copyright 2011, The Dojo Foundation
|
12
|
+
* Released under the MIT, BSD, and GPL Licenses.
|
13
|
+
*
|
14
|
+
* Date: Mon Jan 31 08:31:29 2011 -0500
|
15
|
+
*/
|
16
|
+
(function(a,b){function b$(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function bX(a){if(!bR[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bR[a]=c}return bR[a]}function bW(a,b){var c={};d.each(bV.concat.apply([],bV.slice(0,b)),function(){c[this]=a});return c}function bJ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f=a.converters,g,h=e.length,i,j=e[0],k,l,m,n,o;for(g=1;g<h;g++){k=j,j=e[g];if(j==="*")j=k;else if(k!=="*"&&k!==j){l=k+" "+j,m=f[l]||f["* "+j];if(!m){o=b;for(n in f){i=n.split(" ");if(i[0]===k||i[0]==="*"){o=f[i[1]+" "+j];if(o){n=f[n],n===!0?m=o:o===!0&&(m=n);break}}}}!m&&!o&&d.error("No conversion from "+l.replace(" "," to ")),m!==!0&&(c=m?m(c):o(n(c)))}}return c}function bI(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bH(a,b,c,e){d.isArray(b)&&b.length?d.each(b,function(b,f){c||bp.test(a)?e(a,f):bH(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)}):c||b==null||typeof b!=="object"?e(a,b):d.isArray(b)||d.isEmptyObject(b)?e(a,""):d.each(b,function(b,d){bH(a+"["+b+"]",d,c,e)})}function bG(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bD,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(g[l]?l=b:(c.dataTypes.unshift(l),l=bG(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bG(a,c,d,e,"*",g));return l}function bF(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bz),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bn(a,b,c){var e=b==="width"?bh:bi,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function _(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(q,"`").replace(r,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,p,q=[],r=[],s=d._data(this,u);typeof s==="function"&&(s=s.events);if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(o,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,p=f.handleObj.origHandler.apply(f.elem,arguments);if(p===!1||a.isPropagationStopped()){c=f.level,p===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,b,c){c[0].type=a;return d.event.handle.apply(b,c)}function w(){return!0}function v(){return!1}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");e.type="text/javascript",d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a,c){if(a==null){if(e)return e;e=a={}}c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.then(c.cancel,b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments,c=b.length,e=c<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),f=e.promise(),g;c>1?(g=Array(c),d.each(b,function(a,b){d.when(b).then(function(b){g[a]=arguments.length>1?E.call(arguments,0):b,--c||e.resolveWith(f,g)},e.reject)})):e!==a&&e.resolve(a);return f},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return a.jQuery=a.$=d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option"));if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:b.getElementsByTagName("input")[0].value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,_scriptEval:null,noCloneEvent:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},g.disabled=!0,d.support.optDisabled=!h.disabled,d.support.scriptEval=function(){if(d.support._scriptEval===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();e.type="text/javascript";try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(d.support._scriptEval=!0,delete a[f]):d.support._scriptEval=!1,b.removeChild(e),b=e=f=null}return d.support._scriptEval};try{delete b.test}catch(i){d.support.deleteExpando=!1}b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function j(){d.support.noCloneEvent=!1,b.detachEvent("onclick",j)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var k=c.createDocumentFragment();k.appendChild(b.firstChild),d.support.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var l=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=l("submit"),d.support.changeBubbles=l("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!d.isEmptyObject(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={}),typeof c==="object"&&(f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c)),i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,i=g?b[d.expando]:d.expando;if(!h[i])return;if(c){var j=e?h[i][f]:h[i];if(j){delete j[c];if(!d.isEmptyObject(j))return}}if(e){delete h[i][f];if(!d.isEmptyObject(h[i]))return}var k=h[i][f];d.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},h[i][f]=k):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var g=/[\n\t\r]/g,h=/\s+/,i=/\r/g,j=/^(?:href|src|style)$/,k=/^(?:button|input)$/i,l=/^(?:button|input|object|select|textarea)$/i,m=/^a(?:rea)?$/i,n=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(h);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",i=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(i+=" "+b[j]);f.className=d.trim(i)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(h);for(var e=0,f=this.length;e<f;e++){var i=this[e];if(i.nodeType===1&&i.className)if(a){var j=(" "+i.className+" ").replace(g," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");i.className=d.trim(j)}else i.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,i=d(this),j=b,k=a.split(h);while(f=k[g++])j=e?j:!i.hasClass(f),i[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(g," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,j=c.type==="select-one";if(f<0)return null;for(var k=j?f:0,l=j?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(j)return a;g.push(a)}}return g}if(n.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(i,"")}return b}var o=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){o&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&n.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=j.test(c);if(c==="selected"&&!d.support.optSelected){var n=a.parentNode;n&&(n.selectedIndex,n.parentNode&&n.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&k.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:l.test(a.nodeName)||m.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var o=/\.(.*)$/,p=/^(?:textarea|input|select)$/i,q=/\./g,r=/ /g,s=/[^\w\s.|`]/g,t=function(a){return a.replace(s,"\\$&")},u="events";d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a);if(f===!1)f=v;else if(!f)return;var h,i;f.handler&&(h=f,f=h.handler),f.guid||(f.guid=d.guid++);var j=d._data(c);if(!j)return;var k=j[u],l=j.handle;typeof k==="function"?(l=k.handle,k=k.events):k||(c.nodeType||(j[u]=j=function(){}),j.events=k={}),l||(j.handle=l=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(l.elem,arguments):b}),l.elem=c,e=e.split(" ");var m,n=0,o;while(m=e[n++]){i=h?d.extend({},h):{handler:f,data:g},m.indexOf(".")>-1?(o=m.split("."),m=o.shift(),i.namespace=o.slice(0).sort().join(".")):(o=[],i.namespace=""),i.type=m,i.guid||(i.guid=f.guid);var p=k[m],q=d.event.special[m]||{};if(!p){p=k[m]=[];if(!q.setup||q.setup.call(c,g,o,l)===!1)c.addEventListener?c.addEventListener(m,l,!1):c.attachEvent&&c.attachEvent("on"+m,l)}q.add&&(q.add.call(c,i),i.handler.guid||(i.handler.guid=f.guid)),p.push(i),d.event.global[m]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),w=s&&s[u];if(!s||!w)return;typeof w==="function"&&(s=w,w=w.events),c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in w)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),t).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=w[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete w[h]}if(d.isEmptyObject(w)){var x=s.handle;x&&(x.elem=null),delete s.events,delete s.handle,typeof s==="function"?d.removeData(a,u,!0):d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=e.nodeType?d._data(e,"handle"):(d._data(e,u)||{}).handle;h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(o,""),n=d.nodeName(l,"a")&&m==="click",p=d.event.special[m]||{};if((!p._default||p._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,u),typeof i==="function"&&(i=i.events),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(c){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,c){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="submit"||e==="image")&&d(c).closest("form").length){a.liveFired=b;return C("submit",this,arguments)}}),d.event.add(this,"keypress.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="text"||e==="password")&&d(c).closest("form").length&&a.keyCode===13){a.liveFired=b;return C("submit",this,arguments)}});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(p.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f){a.type="change",a.liveFired=b;return d.event.trigger(a,arguments[1],c)}}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;if(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")return B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")return B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return p.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return p.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var p in a)n[c](p,e,a[p],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=o.exec(h),k="",j&&(k=j[0],h=h.replace(o,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function s(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var j=d[g];if(j){var k=!1;j=j[a];while(j){if(j.sizcache===c){k=d[j.sizset];break}if(j.nodeType===1){f||(j.sizcache=c,j.sizset=g);if(typeof b!=="string"){if(j===b){k=!0;break}}else if(i.filter(b,[j]).length>0){k=j;break}}j=j[a]}d[g]=k}}}function r(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0;[0,0].sort(function(){h=!1;return 0});var i=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var l,m,o,p,q,r,s,u,v=!0,w=i.isXML(d),x=[],y=b;do{a.exec(""),l=a.exec(y);if(l){y=l[3],x.push(l[1]);if(l[2]){p=l[3];break}}}while(l);if(x.length>1&&k.exec(b))if(x.length===2&&j.relative[x[0]])m=t(x[0]+x[1],d);else{m=j.relative[x[0]]?[d]:i(x.shift(),d);while(x.length)b=x.shift(),j.relative[b]&&(b+=x.shift()),m=t(b,m)}else{!g&&x.length>1&&d.nodeType===9&&!w&&j.match.ID.test(x[0])&&!j.match.ID.test(x[x.length-1])&&(q=i.find(x.shift(),d,w),d=q.expr?i.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:n(g)}:i.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),m=q.expr?i.filter(q.expr,q.set):q.set,x.length>0?o=n(m):v=!1;while(x.length)r=x.pop(),s=r,j.relative[r]?s=x.pop():r="",s==null&&(s=d),j.relative[r](o,s,w)}else o=x=[]}o||(o=m),o||i.error(r||b);if(f.call(o)==="[object Array]")if(v)if(d&&d.nodeType===1)for(u=0;o[u]!=null;u++)o[u]&&(o[u]===!0||o[u].nodeType===1&&i.contains(d,o[u]))&&e.push(m[u]);else for(u=0;o[u]!=null;u++)o[u]&&o[u].nodeType===1&&e.push(m[u]);else e.push.apply(e,o);else n(o,e);p&&(i(p,h,e,g),i.uniqueSort(e));return e};i.uniqueSort=function(a){if(p){g=h,a.sort(p);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},i.matches=function(a,b){return i(a,null,null,b)},i.matchesSelector=function(a,b){return i(b,null,null,[a]).length>0},i.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=j.order.length;e<f;e++){var g,h=j.order[e];if(g=j.leftMatch[h].exec(a)){var i=g[1];g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(/\\/g,""),d=j.find[h](g,b,c);if(d!=null){a=a.replace(j.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},i.filter=function(a,c,d,e){var f,g,h=a,k=[],l=c,m=c&&c[0]&&i.isXML(c[0]);while(a&&c.length){for(var n in j.filter)if((f=j.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=j.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;l===k&&(k=[]);if(j.preFilter[n]){f=j.preFilter[n](f,l,d,k,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=l[s])!=null;s++)if(p){o=q(p,f,s,l);var t=e^!!o;d&&o!=null?t?g=!0:l[s]=!1:t&&(k.push(p),g=!0)}if(o!==b){d||(l=k),a=a.replace(j.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)i.error(a);else break;h=a}return l},i.error=function(a){throw"Syntax error, unrecognized expression: "+a};var j=i.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!/\W/.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&i.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!/\W/.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&i.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(/\\/g,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(/\\/g,"")},TAG:function(a,b){return a[1].toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||i.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&i.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(/\\/g,"");!f&&j.attrMap[g]&&(a[1]=j.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(/\\/g,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=i(b[3],null,null,c);else{var g=i.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(j.match.POS.test(b[0])||j.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!i(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.type},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=j.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||i.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,k=g.length;h<k;h++)if(g[h]===a)return!1;return!0}i.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=j.attrHandle[c]?j.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=j.setFilters[e];if(f)return f(a,c,b,d)}}},k=j.match.POS,l=function(a,b){return"\\"+(b-0+1)};for(var m in j.match)j.match[m]=new RegExp(j.match[m].source+/(?![^\[]*\])(?![^\(]*\))/.source),j.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+j.match[m].source.replace(/\\(\d+)/g,l));var n=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(o){n=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var p,q;c.documentElement.compareDocumentPosition?p=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(p=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return q(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return q(e[k],f[k]);return k===c?q(a,f[k],-1):q(e[k],b,1)},q=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),i.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=i.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(j.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},j.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(j.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(j.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=i,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){i=function(b,e,f,g){e=e||c;if(!g&&!i.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return n(e.getElementsByTagName(b),f);if(h[2]&&j.find.CLASS&&e.getElementsByClassName)return n(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return n([e.body],f);if(h&&h[3]){var k=e.getElementById(h[3]);if(!k||!k.parentNode)return n([],f);if(k.id===h[3])return n([k],f)}try{return n(e.querySelectorAll(b),f)}catch(l){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e.getAttribute("id"),o=m||d,p=e.parentNode,q=/^\s*[+~]/.test(b);m?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),q&&p&&(e=e.parentNode);try{if(!q||p)return n(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(r){}finally{m||e.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)i[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(i.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!i.isXML(a))try{if(d||!j.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return i(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;j.order.splice(1,0,"CLASS"),j.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?i.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?i.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains=function(){return!1},i.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var t=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=j.match.PSEUDO.exec(a))e+=c[0],a=a.replace(j.match.PSEUDO,"");a=j.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)i(a,f[g],d);return i.filter(e,d)};d.find=i,d.expr=i.selectors,d.expr[":"]=d.expr.filters,d.unique=i.uniqueSort,d.text=i.getText,d.isXMLDoc=i.isXML,d.contains=i.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!0:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,_)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if(!d.support.noCloneEvent&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");for(h=0;f[h];++h)$(f[h],g[h]);$(a,e)}if(b){Z(a,e);if(c&&"getElementsByTagName"in a){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");if(f.length)for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var ba=/alpha\([^)]*\)/i,bb=/opacity=([^)]*)/,bc=/-([a-z])/ig,bd=/([A-Z])/g,be=/^-?\d+(?:px)?$/i,bf=/^-?\d/,bg={position:"absolute",visibility:"hidden",display:"block"},bh=["Left","Right"],bi=["Top","Bottom"],bj,bk,bl,bm=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bj(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bj)return bj(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bc,bm)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bn(a,b,e):d.swap(a,bg,function(){f=bn(a,b,e)});if(f<=0){f=bj(a,b,b),f==="0px"&&bl&&(f=bl(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!be.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=ba.test(f)?f.replace(ba,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bk=function(a,c,e){var f,g,h;e=e.replace(bd,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bl=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!be.test(d)&&bf.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bj=bk||bl,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bo=/%20/g,bp=/\[\]$/,bq=/\r?\n/g,br=/#.*$/,bs=/^(.*?):\s*(.*?)\r?$/mg,bt=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bu=/^(?:GET|HEAD)$/,bv=/^\/\//,bw=/\?/,bx=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,by=/^(?:select|textarea)/i,bz=/\s+/,bA=/([?&])_=[^&]*/,bB=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,bC=d.fn.load,bD={},bE={};d.fn.extend({load:function(a,b,c){if(typeof a!=="string"&&bC)return bC.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}var g="GET";b&&(d.isFunction(b)?(c=b,b=null):typeof b==="object"&&(b=d.param(b,d.ajaxSettings.traditional),g="POST"));var h=this;d.ajax({url:a,type:g,dataType:"html",data:b,complete:function(a,b,e){e=a.responseText,a.isResolved()&&(a.done(function(a){e=a}),h.html(f?d("<div>").append(e.replace(bx,"")).find(f):e)),c&&h.each(c,[e,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||by.test(this.nodeName)||bt.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bq,"\r\n")}}):{name:b.name,value:c.replace(bq,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,b){d[b]=function(a,c,e,f){d.isFunction(c)&&(f=f||e,e=c,c=null);return d.ajax({type:b,url:a,data:c,success:e,dataType:f})}}),d.extend({getScript:function(a,b){return d.get(a,null,b,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a){d.extend(!0,d.ajaxSettings,a),a.context&&(d.ajaxSettings.context=a.context)},ajaxSettings:{url:location.href,global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bF(bD),ajaxTransport:bF(bE),ajax:function(a,e){function w(a,c,e,l){if(t!==2){t=2,p&&clearTimeout(p),o=b,m=l||"",v.readyState=a?4:0;var n,q,r,s=e?bI(f,v,e):b,u,w;if(a>=200&&a<300||a===304){if(f.ifModified){if(u=v.getResponseHeader("Last-Modified"))d.lastModified[f.url]=u;if(w=v.getResponseHeader("Etag"))d.etag[f.url]=w}if(a===304)c="notmodified",n=!0;else try{q=bJ(f,s),c="success",n=!0}catch(x){c="parsererror",r=x}}else r=c,a&&(c="error",a<0&&(a=0));v.status=a,v.statusText=c,n?i.resolveWith(g,[q,c,v]):i.rejectWith(g,[v,c,r]),v.statusCode(k),k=b,f.global&&h.trigger("ajax"+(n?"Success":"Error"),[v,f,n?q:r]),j.resolveWith(g,[v,c]),f.global&&(h.trigger("ajaxComplete",[v,f]),--d.active||d.event.trigger("ajaxStop"))}}typeof e!=="object"&&(e=a,a=b),e=e||{};var f=d.extend(!0,{},d.ajaxSettings,e),g=(f.context=("context"in e?e:d.ajaxSettings).context)||f,h=g===f?d.event:d(g),i=d.Deferred(),j=d._Deferred(),k=f.statusCode||{},l={},m,n,o,p,q=c.location,r=q.protocol||"http:",s,t=0,u,v={readyState:0,setRequestHeader:function(a,b){t===0&&(l[a.toLowerCase()]=b);return this},getAllResponseHeaders:function(){return t===2?m:null},getResponseHeader:function(a){var b;if(t===2){if(!n){n={};while(b=bs.exec(m))n[b[1].toLowerCase()]=b[2]}b=n[a.toLowerCase()]}return b||null},abort:function(a){a=a||"abort",o&&o.abort(a),w(0,a);return this}};i.promise(v),v.success=v.done,v.error=v.fail,v.complete=j.done,v.statusCode=function(a){if(a){var b;if(t<2)for(b in a)k[b]=[k[b],a[b]];else b=a[v.status],v.then(b,b)}return this},f.url=(""+(a||f.url)).replace(br,"").replace(bv,r+"//"),f.dataTypes=d.trim(f.dataType||"*").toLowerCase().split(bz),f.crossDomain||(s=bB.exec(f.url.toLowerCase()),f.crossDomain=s&&(s[1]!=r||s[2]!=q.hostname||(s[3]||(s[1]==="http:"?80:443))!=(q.port||(r==="http:"?80:443)))),f.data&&f.processData&&typeof f.data!=="string"&&(f.data=d.param(f.data,f.traditional)),bG(bD,f,e,v),f.type=f.type.toUpperCase(),f.hasContent=!bu.test(f.type),f.global&&d.active++===0&&d.event.trigger("ajaxStart");if(!f.hasContent){f.data&&(f.url+=(bw.test(f.url)?"&":"?")+f.data);if(f.cache===!1){var x=d.now(),y=f.url.replace(bA,"$1_="+x);f.url=y+(y===f.url?(bw.test(f.url)?"&":"?")+"_="+x:"")}}if(f.data&&f.hasContent&&f.contentType!==!1||e.contentType)l["content-type"]=f.contentType;f.ifModified&&(d.lastModified[f.url]&&(l["if-modified-since"]=d.lastModified[f.url]),d.etag[f.url]&&(l["if-none-match"]=d.etag[f.url])),l.accept=f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+(f.dataTypes[0]!=="*"?", */*; q=0.01":""):f.accepts["*"];for(u in f.headers)l[u.toLowerCase()]=f.headers[u];if(!f.beforeSend||f.beforeSend.call(g,v,f)!==!1&&t!==2){for(u in {success:1,error:1,complete:1})v[u](f[u]);o=bG(bE,f,e,v);if(o){t=v.readyState=1,f.global&&h.trigger("ajaxSend",[v,f]),f.async&&f.timeout>0&&(p=setTimeout(function(){v.abort("timeout")},f.timeout));try{o.send(l,w)}catch(z){status<2?w(-1,z):d.error(z)}}else w(-1,"No Transport")}else w(0,"abort"),v=!1;return v},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery)d.each(a,function(){f(this.name,this.value)});else for(var g in a)bH(g,a[g],c,f);return e.join("&").replace(bo,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bK=d.now(),bL=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bK++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){e=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bL.test(b.url)||e&&bL.test(b.data))){var f,g=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h=a[g],i=b.url,j=b.data,k="$1"+g+"$2";b.jsonp!==!1&&(i=i.replace(bL,k),b.url===i&&(e&&(j=j.replace(bL,k)),b.data===j&&(i+=(/\?/.test(i)?"&":"?")+b.jsonp+"="+g))),b.url=i,b.data=j,a[g]=function(a){f=[a]},b.complete=[function(){a[g]=h;if(h)f&&d.isFunction(h)&&a[g](f[0]);else try{delete a[g]}catch(b){}},b.complete],b.converters["script json"]=function(){f||d.error(g+" was not called");return f[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript"},contents:{script:/javascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bM=d.now(),bN={},bO,bP;d.ajaxSettings.xhr=a.ActiveXObject?function(){if(a.location.protocol!=="file:")try{return new a.XMLHttpRequest}catch(b){}try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(c){}}:function(){return new a.XMLHttpRequest};try{bP=d.ajaxSettings.xhr()}catch(bQ){}d.support.ajax=!!bP,d.support.cors=bP&&"withCredentials"in bP,bP=b,d.support.ajax&&d.ajaxTransport(function(b){if(!b.crossDomain||d.support.cors){var c;return{send:function(e,f){bO||(bO=1,d(a).bind("unload",function(){d.each(bN,function(a,b){b.onreadystatechange&&b.onreadystatechange(1)})}));var g=b.xhr(),h;b.username?g.open(b.type,b.url,b.async,b.username,b.password):g.open(b.type,b.url,b.async),(!b.crossDomain||b.hasContent)&&!e["x-requested-with"]&&(e["x-requested-with"]="XMLHttpRequest");try{d.each(e,function(a,b){g.setRequestHeader(a,b)})}catch(i){}g.send(b.hasContent&&b.data||null),c=function(a,e){if(c&&(e||g.readyState===4)){c=0,h&&(g.onreadystatechange=d.noop,delete bN[h]);if(e)g.readyState!==4&&g.abort();else{var i=g.status,j,k=g.getAllResponseHeaders(),l={},m=g.responseXML;m&&m.documentElement&&(l.xml=m),l.text=g.responseText;try{j=g.statusText}catch(n){j=""}i=i===0?!b.crossDomain||j?k?304:0:302:i==1223?204:i,f(i,j,l,k)}}},b.async&&g.readyState!==4?(h=bM++,bN[h]=g,g.onreadystatechange=c):c()},abort:function(){c&&c(0,1)}}}});var bR={},bS=/^(?:toggle|show|hide)$/,bT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,bU,bV=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(bW("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",bX(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(bW("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(bW("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=bX(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(bS.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=bT.exec(e),j=f.cur()||0;if(i){var k=parseFloat(i[2]),l=i[3]||"px";l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:bW("show",1),slideUp:bW("hide",1),slideToggle:bW("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(d.css(this.elem,this.prop));return a||0},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||"px",this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!bU&&(bU=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(bU),bU=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var bY=/^t(?:able|d|h)$/i,bZ=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=b$(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!bY.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=bZ.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!bZ.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=b$(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=b$(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}})})(window);
|
@@ -0,0 +1,1331 @@
|
|
1
|
+
/*!
|
2
|
+
* jQuery Cycle Plugin (with Transition Definitions)
|
3
|
+
* Examples and documentation at: http://jquery.malsup.com/cycle/
|
4
|
+
* Copyright (c) 2007-2010 M. Alsup
|
5
|
+
* Version: 2.88 (08-JUN-2010)
|
6
|
+
* Dual licensed under the MIT and GPL licenses.
|
7
|
+
* http://jquery.malsup.com/license.html
|
8
|
+
* Requires: jQuery v1.2.6 or later
|
9
|
+
*/
|
10
|
+
;(function($) {
|
11
|
+
|
12
|
+
var ver = '2.88';
|
13
|
+
|
14
|
+
// if $.support is not defined (pre jQuery 1.3) add what I need
|
15
|
+
if ($.support == undefined) {
|
16
|
+
$.support = {
|
17
|
+
opacity: !($.browser.msie)
|
18
|
+
};
|
19
|
+
}
|
20
|
+
|
21
|
+
function debug(s) {
|
22
|
+
if ($.fn.cycle.debug)
|
23
|
+
log(s);
|
24
|
+
}
|
25
|
+
function log() {
|
26
|
+
if (window.console && window.console.log)
|
27
|
+
window.console.log('[cycle] ' + Array.prototype.join.call(arguments,' '));
|
28
|
+
};
|
29
|
+
|
30
|
+
// the options arg can be...
|
31
|
+
// a number - indicates an immediate transition should occur to the given slide index
|
32
|
+
// a string - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)
|
33
|
+
// an object - properties to control the slideshow
|
34
|
+
//
|
35
|
+
// the arg2 arg can be...
|
36
|
+
// the name of an fx (only used in conjunction with a numeric value for 'options')
|
37
|
+
// the value true (only used in first arg == 'resume') and indicates
|
38
|
+
// that the resume should occur immediately (not wait for next timeout)
|
39
|
+
|
40
|
+
$.fn.cycle = function(options, arg2) {
|
41
|
+
var o = { s: this.selector, c: this.context };
|
42
|
+
|
43
|
+
// in 1.3+ we can fix mistakes with the ready state
|
44
|
+
if (this.length === 0 && options != 'stop') {
|
45
|
+
if (!$.isReady && o.s) {
|
46
|
+
log('DOM not ready, queuing slideshow');
|
47
|
+
$(function() {
|
48
|
+
$(o.s,o.c).cycle(options,arg2);
|
49
|
+
});
|
50
|
+
return this;
|
51
|
+
}
|
52
|
+
// is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
|
53
|
+
log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
|
54
|
+
return this;
|
55
|
+
}
|
56
|
+
|
57
|
+
// iterate the matched nodeset
|
58
|
+
return this.each(function() {
|
59
|
+
var opts = handleArguments(this, options, arg2);
|
60
|
+
if (opts === false)
|
61
|
+
return;
|
62
|
+
|
63
|
+
opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;
|
64
|
+
|
65
|
+
// stop existing slideshow for this container (if there is one)
|
66
|
+
if (this.cycleTimeout)
|
67
|
+
clearTimeout(this.cycleTimeout);
|
68
|
+
this.cycleTimeout = this.cyclePause = 0;
|
69
|
+
|
70
|
+
var $cont = $(this);
|
71
|
+
var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
|
72
|
+
var els = $slides.get();
|
73
|
+
if (els.length < 2) {
|
74
|
+
log('terminating; too few slides: ' + els.length);
|
75
|
+
return;
|
76
|
+
}
|
77
|
+
|
78
|
+
var opts2 = buildOptions($cont, $slides, els, opts, o);
|
79
|
+
if (opts2 === false)
|
80
|
+
return;
|
81
|
+
|
82
|
+
var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.rev);
|
83
|
+
|
84
|
+
// if it's an auto slideshow, kick it off
|
85
|
+
if (startTime) {
|
86
|
+
startTime += (opts2.delay || 0);
|
87
|
+
if (startTime < 10)
|
88
|
+
startTime = 10;
|
89
|
+
debug('first timeout: ' + startTime);
|
90
|
+
this.cycleTimeout = setTimeout(function(){go(els,opts2,0,(!opts2.rev && !opts.backwards))}, startTime);
|
91
|
+
}
|
92
|
+
});
|
93
|
+
};
|
94
|
+
|
95
|
+
// process the args that were passed to the plugin fn
|
96
|
+
function handleArguments(cont, options, arg2) {
|
97
|
+
if (cont.cycleStop == undefined)
|
98
|
+
cont.cycleStop = 0;
|
99
|
+
if (options === undefined || options === null)
|
100
|
+
options = {};
|
101
|
+
if (options.constructor == String) {
|
102
|
+
switch(options) {
|
103
|
+
case 'destroy':
|
104
|
+
case 'stop':
|
105
|
+
var opts = $(cont).data('cycle.opts');
|
106
|
+
if (!opts)
|
107
|
+
return false;
|
108
|
+
cont.cycleStop++; // callbacks look for change
|
109
|
+
if (cont.cycleTimeout)
|
110
|
+
clearTimeout(cont.cycleTimeout);
|
111
|
+
cont.cycleTimeout = 0;
|
112
|
+
$(cont).removeData('cycle.opts');
|
113
|
+
if (options == 'destroy')
|
114
|
+
destroy(opts);
|
115
|
+
return false;
|
116
|
+
case 'toggle':
|
117
|
+
cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
|
118
|
+
checkInstantResume(cont.cyclePause, arg2, cont);
|
119
|
+
return false;
|
120
|
+
case 'pause':
|
121
|
+
cont.cyclePause = 1;
|
122
|
+
return false;
|
123
|
+
case 'resume':
|
124
|
+
cont.cyclePause = 0;
|
125
|
+
checkInstantResume(false, arg2, cont);
|
126
|
+
return false;
|
127
|
+
case 'prev':
|
128
|
+
case 'next':
|
129
|
+
var opts = $(cont).data('cycle.opts');
|
130
|
+
if (!opts) {
|
131
|
+
log('options not found, "prev/next" ignored');
|
132
|
+
return false;
|
133
|
+
}
|
134
|
+
$.fn.cycle[options](opts);
|
135
|
+
return false;
|
136
|
+
default:
|
137
|
+
options = { fx: options };
|
138
|
+
};
|
139
|
+
return options;
|
140
|
+
}
|
141
|
+
else if (options.constructor == Number) {
|
142
|
+
// go to the requested slide
|
143
|
+
var num = options;
|
144
|
+
options = $(cont).data('cycle.opts');
|
145
|
+
if (!options) {
|
146
|
+
log('options not found, can not advance slide');
|
147
|
+
return false;
|
148
|
+
}
|
149
|
+
if (num < 0 || num >= options.elements.length) {
|
150
|
+
log('invalid slide index: ' + num);
|
151
|
+
return false;
|
152
|
+
}
|
153
|
+
options.nextSlide = num;
|
154
|
+
if (cont.cycleTimeout) {
|
155
|
+
clearTimeout(cont.cycleTimeout);
|
156
|
+
cont.cycleTimeout = 0;
|
157
|
+
}
|
158
|
+
if (typeof arg2 == 'string')
|
159
|
+
options.oneTimeFx = arg2;
|
160
|
+
go(options.elements, options, 1, num >= options.currSlide);
|
161
|
+
return false;
|
162
|
+
}
|
163
|
+
return options;
|
164
|
+
|
165
|
+
function checkInstantResume(isPaused, arg2, cont) {
|
166
|
+
if (!isPaused && arg2 === true) { // resume now!
|
167
|
+
var options = $(cont).data('cycle.opts');
|
168
|
+
if (!options) {
|
169
|
+
log('options not found, can not resume');
|
170
|
+
return false;
|
171
|
+
}
|
172
|
+
if (cont.cycleTimeout) {
|
173
|
+
clearTimeout(cont.cycleTimeout);
|
174
|
+
cont.cycleTimeout = 0;
|
175
|
+
}
|
176
|
+
go(options.elements, options, 1, (!opts.rev && !opts.backwards));
|
177
|
+
}
|
178
|
+
}
|
179
|
+
};
|
180
|
+
|
181
|
+
function removeFilter(el, opts) {
|
182
|
+
if (!$.support.opacity && opts.cleartype && el.style.filter) {
|
183
|
+
try { el.style.removeAttribute('filter'); }
|
184
|
+
catch(smother) {} // handle old opera versions
|
185
|
+
}
|
186
|
+
};
|
187
|
+
|
188
|
+
// unbind event handlers
|
189
|
+
function destroy(opts) {
|
190
|
+
if (opts.next)
|
191
|
+
$(opts.next).unbind(opts.prevNextEvent);
|
192
|
+
if (opts.prev)
|
193
|
+
$(opts.prev).unbind(opts.prevNextEvent);
|
194
|
+
|
195
|
+
if (opts.pager || opts.pagerAnchorBuilder)
|
196
|
+
$.each(opts.pagerAnchors || [], function() {
|
197
|
+
this.unbind().remove();
|
198
|
+
});
|
199
|
+
opts.pagerAnchors = null;
|
200
|
+
if (opts.destroy) // callback
|
201
|
+
opts.destroy(opts);
|
202
|
+
};
|
203
|
+
|
204
|
+
// one-time initialization
|
205
|
+
function buildOptions($cont, $slides, els, options, o) {
|
206
|
+
// support metadata plugin (v1.0 and v2.0)
|
207
|
+
var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
|
208
|
+
if (opts.autostop)
|
209
|
+
opts.countdown = opts.autostopCount || els.length;
|
210
|
+
|
211
|
+
var cont = $cont[0];
|
212
|
+
$cont.data('cycle.opts', opts);
|
213
|
+
opts.$cont = $cont;
|
214
|
+
opts.stopCount = cont.cycleStop;
|
215
|
+
opts.elements = els;
|
216
|
+
opts.before = opts.before ? [opts.before] : [];
|
217
|
+
opts.after = opts.after ? [opts.after] : [];
|
218
|
+
opts.after.unshift(function(){ opts.busy=0; });
|
219
|
+
|
220
|
+
// push some after callbacks
|
221
|
+
if (!$.support.opacity && opts.cleartype)
|
222
|
+
opts.after.push(function() { removeFilter(this, opts); });
|
223
|
+
if (opts.continuous)
|
224
|
+
opts.after.push(function() { go(els,opts,0,(!opts.rev && !opts.backwards)); });
|
225
|
+
|
226
|
+
saveOriginalOpts(opts);
|
227
|
+
|
228
|
+
// clearType corrections
|
229
|
+
if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
|
230
|
+
clearTypeFix($slides);
|
231
|
+
|
232
|
+
// container requires non-static position so that slides can be position within
|
233
|
+
if ($cont.css('position') == 'static')
|
234
|
+
$cont.css('position', 'relative');
|
235
|
+
if (opts.width)
|
236
|
+
$cont.width(opts.width);
|
237
|
+
if (opts.height && opts.height != 'auto')
|
238
|
+
$cont.height(opts.height);
|
239
|
+
|
240
|
+
if (opts.startingSlide)
|
241
|
+
opts.startingSlide = parseInt(opts.startingSlide);
|
242
|
+
else if (opts.backwards)
|
243
|
+
opts.startingSlide = els.length - 1;
|
244
|
+
|
245
|
+
// if random, mix up the slide array
|
246
|
+
if (opts.random) {
|
247
|
+
opts.randomMap = [];
|
248
|
+
for (var i = 0; i < els.length; i++)
|
249
|
+
opts.randomMap.push(i);
|
250
|
+
opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
|
251
|
+
opts.randomIndex = 1;
|
252
|
+
opts.startingSlide = opts.randomMap[1];
|
253
|
+
}
|
254
|
+
else if (opts.startingSlide >= els.length)
|
255
|
+
opts.startingSlide = 0; // catch bogus input
|
256
|
+
opts.currSlide = opts.startingSlide || 0;
|
257
|
+
var first = opts.startingSlide;
|
258
|
+
|
259
|
+
// set position and zIndex on all the slides
|
260
|
+
$slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
|
261
|
+
var z;
|
262
|
+
if (opts.backwards)
|
263
|
+
z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
|
264
|
+
else
|
265
|
+
z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
|
266
|
+
$(this).css('z-index', z)
|
267
|
+
});
|
268
|
+
|
269
|
+
// make sure first slide is visible
|
270
|
+
$(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
|
271
|
+
removeFilter(els[first], opts);
|
272
|
+
|
273
|
+
// stretch slides
|
274
|
+
if (opts.fit && opts.width)
|
275
|
+
$slides.width(opts.width);
|
276
|
+
if (opts.fit && opts.height && opts.height != 'auto')
|
277
|
+
$slides.height(opts.height);
|
278
|
+
|
279
|
+
// stretch container
|
280
|
+
var reshape = opts.containerResize && !$cont.innerHeight();
|
281
|
+
if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
|
282
|
+
var maxw = 0, maxh = 0;
|
283
|
+
for(var j=0; j < els.length; j++) {
|
284
|
+
var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
|
285
|
+
if (!w) w = e.offsetWidth || e.width || $e.attr('width')
|
286
|
+
if (!h) h = e.offsetHeight || e.height || $e.attr('height');
|
287
|
+
maxw = w > maxw ? w : maxw;
|
288
|
+
maxh = h > maxh ? h : maxh;
|
289
|
+
}
|
290
|
+
if (maxw > 0 && maxh > 0)
|
291
|
+
$cont.css({width:maxw+'px',height:maxh+'px'});
|
292
|
+
}
|
293
|
+
|
294
|
+
if (opts.pause)
|
295
|
+
$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});
|
296
|
+
|
297
|
+
if (supportMultiTransitions(opts) === false)
|
298
|
+
return false;
|
299
|
+
|
300
|
+
// apparently a lot of people use image slideshows without height/width attributes on the images.
|
301
|
+
// Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
|
302
|
+
var requeue = false;
|
303
|
+
options.requeueAttempts = options.requeueAttempts || 0;
|
304
|
+
$slides.each(function() {
|
305
|
+
// try to get height/width of each slide
|
306
|
+
var $el = $(this);
|
307
|
+
this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
|
308
|
+
this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);
|
309
|
+
|
310
|
+
if ( $el.is('img') ) {
|
311
|
+
// sigh.. sniffing, hacking, shrugging... this crappy hack tries to account for what browsers do when
|
312
|
+
// an image is being downloaded and the markup did not include sizing info (height/width attributes);
|
313
|
+
// there seems to be some "default" sizes used in this situation
|
314
|
+
var loadingIE = ($.browser.msie && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
|
315
|
+
var loadingFF = ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
|
316
|
+
var loadingOp = ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
|
317
|
+
var loadingOther = (this.cycleH == 0 && this.cycleW == 0 && !this.complete);
|
318
|
+
// don't requeue for images that are still loading but have a valid size
|
319
|
+
if (loadingIE || loadingFF || loadingOp || loadingOther) {
|
320
|
+
if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
|
321
|
+
log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
|
322
|
+
setTimeout(function() {$(o.s,o.c).cycle(options)}, opts.requeueTimeout);
|
323
|
+
requeue = true;
|
324
|
+
return false; // break each loop
|
325
|
+
}
|
326
|
+
else {
|
327
|
+
log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
|
328
|
+
}
|
329
|
+
}
|
330
|
+
}
|
331
|
+
return true;
|
332
|
+
});
|
333
|
+
|
334
|
+
if (requeue)
|
335
|
+
return false;
|
336
|
+
|
337
|
+
opts.cssBefore = opts.cssBefore || {};
|
338
|
+
opts.animIn = opts.animIn || {};
|
339
|
+
opts.animOut = opts.animOut || {};
|
340
|
+
|
341
|
+
$slides.not(':eq('+first+')').css(opts.cssBefore);
|
342
|
+
if (opts.cssFirst)
|
343
|
+
$($slides[first]).css(opts.cssFirst);
|
344
|
+
|
345
|
+
if (opts.timeout) {
|
346
|
+
opts.timeout = parseInt(opts.timeout);
|
347
|
+
// ensure that timeout and speed settings are sane
|
348
|
+
if (opts.speed.constructor == String)
|
349
|
+
opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed);
|
350
|
+
if (!opts.sync)
|
351
|
+
opts.speed = opts.speed / 2;
|
352
|
+
|
353
|
+
var buffer = opts.fx == 'shuffle' ? 500 : 250;
|
354
|
+
while((opts.timeout - opts.speed) < buffer) // sanitize timeout
|
355
|
+
opts.timeout += opts.speed;
|
356
|
+
}
|
357
|
+
if (opts.easing)
|
358
|
+
opts.easeIn = opts.easeOut = opts.easing;
|
359
|
+
if (!opts.speedIn)
|
360
|
+
opts.speedIn = opts.speed;
|
361
|
+
if (!opts.speedOut)
|
362
|
+
opts.speedOut = opts.speed;
|
363
|
+
|
364
|
+
opts.slideCount = els.length;
|
365
|
+
opts.currSlide = opts.lastSlide = first;
|
366
|
+
if (opts.random) {
|
367
|
+
if (++opts.randomIndex == els.length)
|
368
|
+
opts.randomIndex = 0;
|
369
|
+
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
370
|
+
}
|
371
|
+
else if (opts.backwards)
|
372
|
+
opts.nextSlide = opts.startingSlide == 0 ? (els.length-1) : opts.startingSlide-1;
|
373
|
+
else
|
374
|
+
opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;
|
375
|
+
|
376
|
+
// run transition init fn
|
377
|
+
if (!opts.multiFx) {
|
378
|
+
var init = $.fn.cycle.transitions[opts.fx];
|
379
|
+
if ($.isFunction(init))
|
380
|
+
init($cont, $slides, opts);
|
381
|
+
else if (opts.fx != 'custom' && !opts.multiFx) {
|
382
|
+
log('unknown transition: ' + opts.fx,'; slideshow terminating');
|
383
|
+
return false;
|
384
|
+
}
|
385
|
+
}
|
386
|
+
|
387
|
+
// fire artificial events
|
388
|
+
var e0 = $slides[first];
|
389
|
+
if (opts.before.length)
|
390
|
+
opts.before[0].apply(e0, [e0, e0, opts, true]);
|
391
|
+
if (opts.after.length > 1)
|
392
|
+
opts.after[1].apply(e0, [e0, e0, opts, true]);
|
393
|
+
|
394
|
+
if (opts.next)
|
395
|
+
$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1)});
|
396
|
+
if (opts.prev)
|
397
|
+
$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1)});
|
398
|
+
if (opts.pager || opts.pagerAnchorBuilder)
|
399
|
+
buildPager(els,opts);
|
400
|
+
|
401
|
+
exposeAddSlide(opts, els);
|
402
|
+
|
403
|
+
return opts;
|
404
|
+
};
|
405
|
+
|
406
|
+
// save off original opts so we can restore after clearing state
|
407
|
+
function saveOriginalOpts(opts) {
|
408
|
+
opts.original = { before: [], after: [] };
|
409
|
+
opts.original.cssBefore = $.extend({}, opts.cssBefore);
|
410
|
+
opts.original.cssAfter = $.extend({}, opts.cssAfter);
|
411
|
+
opts.original.animIn = $.extend({}, opts.animIn);
|
412
|
+
opts.original.animOut = $.extend({}, opts.animOut);
|
413
|
+
$.each(opts.before, function() { opts.original.before.push(this); });
|
414
|
+
$.each(opts.after, function() { opts.original.after.push(this); });
|
415
|
+
};
|
416
|
+
|
417
|
+
function supportMultiTransitions(opts) {
|
418
|
+
var i, tx, txs = $.fn.cycle.transitions;
|
419
|
+
// look for multiple effects
|
420
|
+
if (opts.fx.indexOf(',') > 0) {
|
421
|
+
opts.multiFx = true;
|
422
|
+
opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
|
423
|
+
// discard any bogus effect names
|
424
|
+
for (i=0; i < opts.fxs.length; i++) {
|
425
|
+
var fx = opts.fxs[i];
|
426
|
+
tx = txs[fx];
|
427
|
+
if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
|
428
|
+
log('discarding unknown transition: ',fx);
|
429
|
+
opts.fxs.splice(i,1);
|
430
|
+
i--;
|
431
|
+
}
|
432
|
+
}
|
433
|
+
// if we have an empty list then we threw everything away!
|
434
|
+
if (!opts.fxs.length) {
|
435
|
+
log('No valid transitions named; slideshow terminating.');
|
436
|
+
return false;
|
437
|
+
}
|
438
|
+
}
|
439
|
+
else if (opts.fx == 'all') { // auto-gen the list of transitions
|
440
|
+
opts.multiFx = true;
|
441
|
+
opts.fxs = [];
|
442
|
+
for (p in txs) {
|
443
|
+
tx = txs[p];
|
444
|
+
if (txs.hasOwnProperty(p) && $.isFunction(tx))
|
445
|
+
opts.fxs.push(p);
|
446
|
+
}
|
447
|
+
}
|
448
|
+
if (opts.multiFx && opts.randomizeEffects) {
|
449
|
+
// munge the fxs array to make effect selection random
|
450
|
+
var r1 = Math.floor(Math.random() * 20) + 30;
|
451
|
+
for (i = 0; i < r1; i++) {
|
452
|
+
var r2 = Math.floor(Math.random() * opts.fxs.length);
|
453
|
+
opts.fxs.push(opts.fxs.splice(r2,1)[0]);
|
454
|
+
}
|
455
|
+
debug('randomized fx sequence: ',opts.fxs);
|
456
|
+
}
|
457
|
+
return true;
|
458
|
+
};
|
459
|
+
|
460
|
+
// provide a mechanism for adding slides after the slideshow has started
|
461
|
+
function exposeAddSlide(opts, els) {
|
462
|
+
opts.addSlide = function(newSlide, prepend) {
|
463
|
+
var $s = $(newSlide), s = $s[0];
|
464
|
+
if (!opts.autostopCount)
|
465
|
+
opts.countdown++;
|
466
|
+
els[prepend?'unshift':'push'](s);
|
467
|
+
if (opts.els)
|
468
|
+
opts.els[prepend?'unshift':'push'](s); // shuffle needs this
|
469
|
+
opts.slideCount = els.length;
|
470
|
+
|
471
|
+
$s.css('position','absolute');
|
472
|
+
$s[prepend?'prependTo':'appendTo'](opts.$cont);
|
473
|
+
|
474
|
+
if (prepend) {
|
475
|
+
opts.currSlide++;
|
476
|
+
opts.nextSlide++;
|
477
|
+
}
|
478
|
+
|
479
|
+
if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
|
480
|
+
clearTypeFix($s);
|
481
|
+
|
482
|
+
if (opts.fit && opts.width)
|
483
|
+
$s.width(opts.width);
|
484
|
+
if (opts.fit && opts.height && opts.height != 'auto')
|
485
|
+
$slides.height(opts.height);
|
486
|
+
s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
|
487
|
+
s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();
|
488
|
+
|
489
|
+
$s.css(opts.cssBefore);
|
490
|
+
|
491
|
+
if (opts.pager || opts.pagerAnchorBuilder)
|
492
|
+
$.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);
|
493
|
+
|
494
|
+
if ($.isFunction(opts.onAddSlide))
|
495
|
+
opts.onAddSlide($s);
|
496
|
+
else
|
497
|
+
$s.hide(); // default behavior
|
498
|
+
};
|
499
|
+
}
|
500
|
+
|
501
|
+
// reset internal state; we do this on every pass in order to support multiple effects
|
502
|
+
$.fn.cycle.resetState = function(opts, fx) {
|
503
|
+
fx = fx || opts.fx;
|
504
|
+
opts.before = []; opts.after = [];
|
505
|
+
opts.cssBefore = $.extend({}, opts.original.cssBefore);
|
506
|
+
opts.cssAfter = $.extend({}, opts.original.cssAfter);
|
507
|
+
opts.animIn = $.extend({}, opts.original.animIn);
|
508
|
+
opts.animOut = $.extend({}, opts.original.animOut);
|
509
|
+
opts.fxFn = null;
|
510
|
+
$.each(opts.original.before, function() { opts.before.push(this); });
|
511
|
+
$.each(opts.original.after, function() { opts.after.push(this); });
|
512
|
+
|
513
|
+
// re-init
|
514
|
+
var init = $.fn.cycle.transitions[fx];
|
515
|
+
if ($.isFunction(init))
|
516
|
+
init(opts.$cont, $(opts.elements), opts);
|
517
|
+
};
|
518
|
+
|
519
|
+
// this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
|
520
|
+
function go(els, opts, manual, fwd) {
|
521
|
+
// opts.busy is true if we're in the middle of an animation
|
522
|
+
if (manual && opts.busy && opts.manualTrump) {
|
523
|
+
// let manual transitions requests trump active ones
|
524
|
+
debug('manualTrump in go(), stopping active transition');
|
525
|
+
$(els).stop(true,true);
|
526
|
+
opts.busy = false;
|
527
|
+
}
|
528
|
+
// don't begin another timeout-based transition if there is one active
|
529
|
+
if (opts.busy) {
|
530
|
+
debug('transition active, ignoring new tx request');
|
531
|
+
return;
|
532
|
+
}
|
533
|
+
|
534
|
+
var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];
|
535
|
+
|
536
|
+
// stop cycling if we have an outstanding stop request
|
537
|
+
if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
|
538
|
+
return;
|
539
|
+
|
540
|
+
// check to see if we should stop cycling based on autostop options
|
541
|
+
if (!manual && !p.cyclePause && !opts.bounce &&
|
542
|
+
((opts.autostop && (--opts.countdown <= 0)) ||
|
543
|
+
(opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
|
544
|
+
if (opts.end)
|
545
|
+
opts.end(opts);
|
546
|
+
return;
|
547
|
+
}
|
548
|
+
|
549
|
+
// if slideshow is paused, only transition on a manual trigger
|
550
|
+
var changed = false;
|
551
|
+
if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) {
|
552
|
+
changed = true;
|
553
|
+
var fx = opts.fx;
|
554
|
+
// keep trying to get the slide size if we don't have it yet
|
555
|
+
curr.cycleH = curr.cycleH || $(curr).height();
|
556
|
+
curr.cycleW = curr.cycleW || $(curr).width();
|
557
|
+
next.cycleH = next.cycleH || $(next).height();
|
558
|
+
next.cycleW = next.cycleW || $(next).width();
|
559
|
+
|
560
|
+
// support multiple transition types
|
561
|
+
if (opts.multiFx) {
|
562
|
+
if (opts.lastFx == undefined || ++opts.lastFx >= opts.fxs.length)
|
563
|
+
opts.lastFx = 0;
|
564
|
+
fx = opts.fxs[opts.lastFx];
|
565
|
+
opts.currFx = fx;
|
566
|
+
}
|
567
|
+
|
568
|
+
// one-time fx overrides apply to: $('div').cycle(3,'zoom');
|
569
|
+
if (opts.oneTimeFx) {
|
570
|
+
fx = opts.oneTimeFx;
|
571
|
+
opts.oneTimeFx = null;
|
572
|
+
}
|
573
|
+
|
574
|
+
$.fn.cycle.resetState(opts, fx);
|
575
|
+
|
576
|
+
// run the before callbacks
|
577
|
+
if (opts.before.length)
|
578
|
+
$.each(opts.before, function(i,o) {
|
579
|
+
if (p.cycleStop != opts.stopCount) return;
|
580
|
+
o.apply(next, [curr, next, opts, fwd]);
|
581
|
+
});
|
582
|
+
|
583
|
+
// stage the after callacks
|
584
|
+
var after = function() {
|
585
|
+
$.each(opts.after, function(i,o) {
|
586
|
+
if (p.cycleStop != opts.stopCount) return;
|
587
|
+
o.apply(next, [curr, next, opts, fwd]);
|
588
|
+
});
|
589
|
+
};
|
590
|
+
|
591
|
+
debug('tx firing; currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);
|
592
|
+
|
593
|
+
// get ready to perform the transition
|
594
|
+
opts.busy = 1;
|
595
|
+
if (opts.fxFn) // fx function provided?
|
596
|
+
opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
|
597
|
+
else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
|
598
|
+
$.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);
|
599
|
+
else
|
600
|
+
$.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
|
601
|
+
}
|
602
|
+
|
603
|
+
if (changed || opts.nextSlide == opts.currSlide) {
|
604
|
+
// calculate the next slide
|
605
|
+
opts.lastSlide = opts.currSlide;
|
606
|
+
if (opts.random) {
|
607
|
+
opts.currSlide = opts.nextSlide;
|
608
|
+
if (++opts.randomIndex == els.length)
|
609
|
+
opts.randomIndex = 0;
|
610
|
+
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
611
|
+
if (opts.nextSlide == opts.currSlide)
|
612
|
+
opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
|
613
|
+
}
|
614
|
+
else if (opts.backwards) {
|
615
|
+
var roll = (opts.nextSlide - 1) < 0;
|
616
|
+
if (roll && opts.bounce) {
|
617
|
+
opts.backwards = !opts.backwards;
|
618
|
+
opts.nextSlide = 1;
|
619
|
+
opts.currSlide = 0;
|
620
|
+
}
|
621
|
+
else {
|
622
|
+
opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
|
623
|
+
opts.currSlide = roll ? 0 : opts.nextSlide+1;
|
624
|
+
}
|
625
|
+
}
|
626
|
+
else { // sequence
|
627
|
+
var roll = (opts.nextSlide + 1) == els.length;
|
628
|
+
if (roll && opts.bounce) {
|
629
|
+
opts.backwards = !opts.backwards;
|
630
|
+
opts.nextSlide = els.length-2;
|
631
|
+
opts.currSlide = els.length-1;
|
632
|
+
}
|
633
|
+
else {
|
634
|
+
opts.nextSlide = roll ? 0 : opts.nextSlide+1;
|
635
|
+
opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
|
636
|
+
}
|
637
|
+
}
|
638
|
+
}
|
639
|
+
if (changed && opts.pager)
|
640
|
+
opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);
|
641
|
+
|
642
|
+
// stage the next transition
|
643
|
+
var ms = 0;
|
644
|
+
if (opts.timeout && !opts.continuous)
|
645
|
+
ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
|
646
|
+
else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
|
647
|
+
ms = 10;
|
648
|
+
if (ms > 0)
|
649
|
+
p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, (!opts.rev && !opts.backwards)) }, ms);
|
650
|
+
};
|
651
|
+
|
652
|
+
// invoked after transition
|
653
|
+
$.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
|
654
|
+
$(pager).each(function() {
|
655
|
+
$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
|
656
|
+
});
|
657
|
+
};
|
658
|
+
|
659
|
+
// calculate timeout value for current transition
|
660
|
+
function getTimeout(curr, next, opts, fwd) {
|
661
|
+
if (opts.timeoutFn) {
|
662
|
+
// call user provided calc fn
|
663
|
+
var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
|
664
|
+
while ((t - opts.speed) < 250) // sanitize timeout
|
665
|
+
t += opts.speed;
|
666
|
+
debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
|
667
|
+
if (t !== false)
|
668
|
+
return t;
|
669
|
+
}
|
670
|
+
return opts.timeout;
|
671
|
+
};
|
672
|
+
|
673
|
+
// expose next/prev function, caller must pass in state
|
674
|
+
$.fn.cycle.next = function(opts) { advance(opts, opts.rev?-1:1); };
|
675
|
+
$.fn.cycle.prev = function(opts) { advance(opts, opts.rev?1:-1);};
|
676
|
+
|
677
|
+
// advance slide forward or back
|
678
|
+
function advance(opts, val) {
|
679
|
+
var els = opts.elements;
|
680
|
+
var p = opts.$cont[0], timeout = p.cycleTimeout;
|
681
|
+
if (timeout) {
|
682
|
+
clearTimeout(timeout);
|
683
|
+
p.cycleTimeout = 0;
|
684
|
+
}
|
685
|
+
if (opts.random && val < 0) {
|
686
|
+
// move back to the previously display slide
|
687
|
+
opts.randomIndex--;
|
688
|
+
if (--opts.randomIndex == -2)
|
689
|
+
opts.randomIndex = els.length-2;
|
690
|
+
else if (opts.randomIndex == -1)
|
691
|
+
opts.randomIndex = els.length-1;
|
692
|
+
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
693
|
+
}
|
694
|
+
else if (opts.random) {
|
695
|
+
opts.nextSlide = opts.randomMap[opts.randomIndex];
|
696
|
+
}
|
697
|
+
else {
|
698
|
+
opts.nextSlide = opts.currSlide + val;
|
699
|
+
if (opts.nextSlide < 0) {
|
700
|
+
if (opts.nowrap) return false;
|
701
|
+
opts.nextSlide = els.length - 1;
|
702
|
+
}
|
703
|
+
else if (opts.nextSlide >= els.length) {
|
704
|
+
if (opts.nowrap) return false;
|
705
|
+
opts.nextSlide = 0;
|
706
|
+
}
|
707
|
+
}
|
708
|
+
|
709
|
+
var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
|
710
|
+
if ($.isFunction(cb))
|
711
|
+
cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
|
712
|
+
go(els, opts, 1, val>=0);
|
713
|
+
return false;
|
714
|
+
};
|
715
|
+
|
716
|
+
function buildPager(els, opts) {
|
717
|
+
var $p = $(opts.pager);
|
718
|
+
$.each(els, function(i,o) {
|
719
|
+
$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
|
720
|
+
});
|
721
|
+
opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
|
722
|
+
};
|
723
|
+
|
724
|
+
$.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
|
725
|
+
var a;
|
726
|
+
if ($.isFunction(opts.pagerAnchorBuilder)) {
|
727
|
+
a = opts.pagerAnchorBuilder(i,el);
|
728
|
+
debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
|
729
|
+
}
|
730
|
+
else
|
731
|
+
a = '<a href="#">'+(i+1)+'</a>';
|
732
|
+
|
733
|
+
if (!a)
|
734
|
+
return;
|
735
|
+
var $a = $(a);
|
736
|
+
// don't reparent if anchor is in the dom
|
737
|
+
if ($a.parents('body').length === 0) {
|
738
|
+
var arr = [];
|
739
|
+
if ($p.length > 1) {
|
740
|
+
$p.each(function() {
|
741
|
+
var $clone = $a.clone(true);
|
742
|
+
$(this).append($clone);
|
743
|
+
arr.push($clone[0]);
|
744
|
+
});
|
745
|
+
$a = $(arr);
|
746
|
+
}
|
747
|
+
else {
|
748
|
+
$a.appendTo($p);
|
749
|
+
}
|
750
|
+
}
|
751
|
+
|
752
|
+
opts.pagerAnchors = opts.pagerAnchors || [];
|
753
|
+
opts.pagerAnchors.push($a);
|
754
|
+
$a.bind(opts.pagerEvent, function(e) {
|
755
|
+
e.preventDefault();
|
756
|
+
opts.nextSlide = i;
|
757
|
+
var p = opts.$cont[0], timeout = p.cycleTimeout;
|
758
|
+
if (timeout) {
|
759
|
+
clearTimeout(timeout);
|
760
|
+
p.cycleTimeout = 0;
|
761
|
+
}
|
762
|
+
var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
|
763
|
+
if ($.isFunction(cb))
|
764
|
+
cb(opts.nextSlide, els[opts.nextSlide]);
|
765
|
+
go(els,opts,1,opts.currSlide < i); // trigger the trans
|
766
|
+
// return false; // <== allow bubble
|
767
|
+
});
|
768
|
+
|
769
|
+
if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble)
|
770
|
+
$a.bind('click.cycle', function(){return false;}); // suppress click
|
771
|
+
|
772
|
+
if (opts.pauseOnPagerHover)
|
773
|
+
$a.hover(function() { opts.$cont[0].cyclePause++; }, function() { opts.$cont[0].cyclePause--; } );
|
774
|
+
};
|
775
|
+
|
776
|
+
// helper fn to calculate the number of slides between the current and the next
|
777
|
+
$.fn.cycle.hopsFromLast = function(opts, fwd) {
|
778
|
+
var hops, l = opts.lastSlide, c = opts.currSlide;
|
779
|
+
if (fwd)
|
780
|
+
hops = c > l ? c - l : opts.slideCount - l;
|
781
|
+
else
|
782
|
+
hops = c < l ? l - c : l + opts.slideCount - c;
|
783
|
+
return hops;
|
784
|
+
};
|
785
|
+
|
786
|
+
// fix clearType problems in ie6 by setting an explicit bg color
|
787
|
+
// (otherwise text slides look horrible during a fade transition)
|
788
|
+
function clearTypeFix($slides) {
|
789
|
+
debug('applying clearType background-color hack');
|
790
|
+
function hex(s) {
|
791
|
+
s = parseInt(s).toString(16);
|
792
|
+
return s.length < 2 ? '0'+s : s;
|
793
|
+
};
|
794
|
+
function getBg(e) {
|
795
|
+
for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
|
796
|
+
var v = $.css(e,'background-color');
|
797
|
+
if (v.indexOf('rgb') >= 0 ) {
|
798
|
+
var rgb = v.match(/\d+/g);
|
799
|
+
return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
|
800
|
+
}
|
801
|
+
if (v && v != 'transparent')
|
802
|
+
return v;
|
803
|
+
}
|
804
|
+
return '#ffffff';
|
805
|
+
};
|
806
|
+
$slides.each(function() { $(this).css('background-color', getBg(this)); });
|
807
|
+
};
|
808
|
+
|
809
|
+
// reset common props before the next transition
|
810
|
+
$.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
|
811
|
+
$(opts.elements).not(curr).hide();
|
812
|
+
opts.cssBefore.opacity = 1;
|
813
|
+
opts.cssBefore.display = 'block';
|
814
|
+
if (w !== false && next.cycleW > 0)
|
815
|
+
opts.cssBefore.width = next.cycleW;
|
816
|
+
if (h !== false && next.cycleH > 0)
|
817
|
+
opts.cssBefore.height = next.cycleH;
|
818
|
+
opts.cssAfter = opts.cssAfter || {};
|
819
|
+
opts.cssAfter.display = 'none';
|
820
|
+
$(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
|
821
|
+
$(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
|
822
|
+
};
|
823
|
+
|
824
|
+
// the actual fn for effecting a transition
|
825
|
+
$.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
|
826
|
+
var $l = $(curr), $n = $(next);
|
827
|
+
var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
|
828
|
+
$n.css(opts.cssBefore);
|
829
|
+
if (speedOverride) {
|
830
|
+
if (typeof speedOverride == 'number')
|
831
|
+
speedIn = speedOut = speedOverride;
|
832
|
+
else
|
833
|
+
speedIn = speedOut = 1;
|
834
|
+
easeIn = easeOut = null;
|
835
|
+
}
|
836
|
+
var fn = function() {$n.animate(opts.animIn, speedIn, easeIn, cb)};
|
837
|
+
$l.animate(opts.animOut, speedOut, easeOut, function() {
|
838
|
+
if (opts.cssAfter) $l.css(opts.cssAfter);
|
839
|
+
if (!opts.sync) fn();
|
840
|
+
});
|
841
|
+
if (opts.sync) fn();
|
842
|
+
};
|
843
|
+
|
844
|
+
// transition definitions - only fade is defined here, transition pack defines the rest
|
845
|
+
$.fn.cycle.transitions = {
|
846
|
+
fade: function($cont, $slides, opts) {
|
847
|
+
$slides.not(':eq('+opts.currSlide+')').css('opacity',0);
|
848
|
+
opts.before.push(function(curr,next,opts) {
|
849
|
+
$.fn.cycle.commonReset(curr,next,opts);
|
850
|
+
opts.cssBefore.opacity = 0;
|
851
|
+
});
|
852
|
+
opts.animIn = { opacity: 1 };
|
853
|
+
opts.animOut = { opacity: 0 };
|
854
|
+
opts.cssBefore = { top: 0, left: 0 };
|
855
|
+
}
|
856
|
+
};
|
857
|
+
|
858
|
+
$.fn.cycle.ver = function() { return ver; };
|
859
|
+
|
860
|
+
// override these globally if you like (they are all optional)
|
861
|
+
$.fn.cycle.defaults = {
|
862
|
+
fx: 'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
|
863
|
+
timeout: 4000, // milliseconds between slide transitions (0 to disable auto advance)
|
864
|
+
timeoutFn: null, // callback for determining per-slide timeout value: function(currSlideElement, nextSlideElement, options, forwardFlag)
|
865
|
+
continuous: 0, // true to start next transition immediately after current one completes
|
866
|
+
speed: 1000, // speed of the transition (any valid fx speed value)
|
867
|
+
speedIn: null, // speed of the 'in' transition
|
868
|
+
speedOut: null, // speed of the 'out' transition
|
869
|
+
next: null, // selector for element to use as event trigger for next slide
|
870
|
+
prev: null, // selector for element to use as event trigger for previous slide
|
871
|
+
// prevNextClick: null, // @deprecated; please use onPrevNextEvent instead
|
872
|
+
onPrevNextEvent: null, // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
|
873
|
+
prevNextEvent:'click.cycle',// event which drives the manual transition to the previous or next slide
|
874
|
+
pager: null, // selector for element to use as pager container
|
875
|
+
//pagerClick null, // @deprecated; please use onPagerEvent instead
|
876
|
+
onPagerEvent: null, // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
|
877
|
+
pagerEvent: 'click.cycle', // name of event which drives the pager navigation
|
878
|
+
allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
|
879
|
+
pagerAnchorBuilder: null, // callback fn for building anchor links: function(index, DOMelement)
|
880
|
+
before: null, // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
|
881
|
+
after: null, // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag)
|
882
|
+
end: null, // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
|
883
|
+
easing: null, // easing method for both in and out transitions
|
884
|
+
easeIn: null, // easing for "in" transition
|
885
|
+
easeOut: null, // easing for "out" transition
|
886
|
+
shuffle: null, // coords for shuffle animation, ex: { top:15, left: 200 }
|
887
|
+
animIn: null, // properties that define how the slide animates in
|
888
|
+
animOut: null, // properties that define how the slide animates out
|
889
|
+
cssBefore: null, // properties that define the initial state of the slide before transitioning in
|
890
|
+
cssAfter: null, // properties that defined the state of the slide after transitioning out
|
891
|
+
fxFn: null, // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
|
892
|
+
height: 'auto', // container height
|
893
|
+
startingSlide: 0, // zero-based index of the first slide to be displayed
|
894
|
+
sync: 1, // true if in/out transitions should occur simultaneously
|
895
|
+
random: 0, // true for random, false for sequence (not applicable to shuffle fx)
|
896
|
+
fit: 0, // force slides to fit container
|
897
|
+
containerResize: 1, // resize container to fit largest slide
|
898
|
+
pause: 0, // true to enable "pause on hover"
|
899
|
+
pauseOnPagerHover: 0, // true to pause when hovering over pager link
|
900
|
+
autostop: 0, // true to end slideshow after X transitions (where X == slide count)
|
901
|
+
autostopCount: 0, // number of transitions (optionally used with autostop to define X)
|
902
|
+
delay: 0, // additional delay (in ms) for first transition (hint: can be negative)
|
903
|
+
slideExpr: null, // expression for selecting slides (if something other than all children is required)
|
904
|
+
cleartype: !$.support.opacity, // true if clearType corrections should be applied (for IE)
|
905
|
+
cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
|
906
|
+
nowrap: 0, // true to prevent slideshow from wrapping
|
907
|
+
fastOnEvent: 0, // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
|
908
|
+
randomizeEffects: 1, // valid when multiple effects are used; true to make the effect sequence random
|
909
|
+
rev: 0, // causes animations to transition in reverse
|
910
|
+
manualTrump: true, // causes manual transition to stop an active transition instead of being ignored
|
911
|
+
requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
|
912
|
+
requeueTimeout: 250, // ms delay for requeue
|
913
|
+
activePagerClass: 'activeSlide', // class name used for the active pager link
|
914
|
+
updateActivePagerLink: null, // callback fn invoked to update the active pager link (adds/removes activePagerClass style)
|
915
|
+
backwards: false // true to start slideshow at last slide and move backwards through the stack
|
916
|
+
};
|
917
|
+
|
918
|
+
})(jQuery);
|
919
|
+
|
920
|
+
|
921
|
+
/*!
|
922
|
+
* jQuery Cycle Plugin Transition Definitions
|
923
|
+
* This script is a plugin for the jQuery Cycle Plugin
|
924
|
+
* Examples and documentation at: http://malsup.com/jquery/cycle/
|
925
|
+
* Copyright (c) 2007-2010 M. Alsup
|
926
|
+
* Version: 2.72
|
927
|
+
* Dual licensed under the MIT and GPL licenses:
|
928
|
+
* http://www.opensource.org/licenses/mit-license.php
|
929
|
+
* http://www.gnu.org/licenses/gpl.html
|
930
|
+
*/
|
931
|
+
(function($) {
|
932
|
+
|
933
|
+
//
|
934
|
+
// These functions define one-time slide initialization for the named
|
935
|
+
// transitions. To save file size feel free to remove any of these that you
|
936
|
+
// don't need.
|
937
|
+
//
|
938
|
+
$.fn.cycle.transitions.none = function($cont, $slides, opts) {
|
939
|
+
opts.fxFn = function(curr,next,opts,after){
|
940
|
+
$(next).show();
|
941
|
+
$(curr).hide();
|
942
|
+
after();
|
943
|
+
};
|
944
|
+
}
|
945
|
+
|
946
|
+
// scrollUp/Down/Left/Right
|
947
|
+
$.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) {
|
948
|
+
$cont.css('overflow','hidden');
|
949
|
+
opts.before.push($.fn.cycle.commonReset);
|
950
|
+
var h = $cont.height();
|
951
|
+
opts.cssBefore ={ top: h, left: 0 };
|
952
|
+
opts.cssFirst = { top: 0 };
|
953
|
+
opts.animIn = { top: 0 };
|
954
|
+
opts.animOut = { top: -h };
|
955
|
+
};
|
956
|
+
$.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) {
|
957
|
+
$cont.css('overflow','hidden');
|
958
|
+
opts.before.push($.fn.cycle.commonReset);
|
959
|
+
var h = $cont.height();
|
960
|
+
opts.cssFirst = { top: 0 };
|
961
|
+
opts.cssBefore= { top: -h, left: 0 };
|
962
|
+
opts.animIn = { top: 0 };
|
963
|
+
opts.animOut = { top: h };
|
964
|
+
};
|
965
|
+
$.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) {
|
966
|
+
$cont.css('overflow','hidden');
|
967
|
+
opts.before.push($.fn.cycle.commonReset);
|
968
|
+
var w = $cont.width();
|
969
|
+
opts.cssFirst = { left: 0 };
|
970
|
+
opts.cssBefore= { left: w, top: 0 };
|
971
|
+
opts.animIn = { left: 0 };
|
972
|
+
opts.animOut = { left: 0-w };
|
973
|
+
};
|
974
|
+
$.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) {
|
975
|
+
$cont.css('overflow','hidden');
|
976
|
+
opts.before.push($.fn.cycle.commonReset);
|
977
|
+
var w = $cont.width();
|
978
|
+
opts.cssFirst = { left: 0 };
|
979
|
+
opts.cssBefore= { left: -w, top: 0 };
|
980
|
+
opts.animIn = { left: 0 };
|
981
|
+
opts.animOut = { left: w };
|
982
|
+
};
|
983
|
+
$.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) {
|
984
|
+
$cont.css('overflow','hidden').width();
|
985
|
+
opts.before.push(function(curr, next, opts, fwd) {
|
986
|
+
$.fn.cycle.commonReset(curr,next,opts);
|
987
|
+
opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
|
988
|
+
opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
|
989
|
+
});
|
990
|
+
opts.cssFirst = { left: 0 };
|
991
|
+
opts.cssBefore= { top: 0 };
|
992
|
+
opts.animIn = { left: 0 };
|
993
|
+
opts.animOut = { top: 0 };
|
994
|
+
};
|
995
|
+
$.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) {
|
996
|
+
$cont.css('overflow','hidden');
|
997
|
+
opts.before.push(function(curr, next, opts, fwd) {
|
998
|
+
$.fn.cycle.commonReset(curr,next,opts);
|
999
|
+
opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
|
1000
|
+
opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
|
1001
|
+
});
|
1002
|
+
opts.cssFirst = { top: 0 };
|
1003
|
+
opts.cssBefore= { left: 0 };
|
1004
|
+
opts.animIn = { top: 0 };
|
1005
|
+
opts.animOut = { left: 0 };
|
1006
|
+
};
|
1007
|
+
|
1008
|
+
// slideX/slideY
|
1009
|
+
$.fn.cycle.transitions.slideX = function($cont, $slides, opts) {
|
1010
|
+
opts.before.push(function(curr, next, opts) {
|
1011
|
+
$(opts.elements).not(curr).hide();
|
1012
|
+
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1013
|
+
opts.animIn.width = next.cycleW;
|
1014
|
+
});
|
1015
|
+
opts.cssBefore = { left: 0, top: 0, width: 0 };
|
1016
|
+
opts.animIn = { width: 'show' };
|
1017
|
+
opts.animOut = { width: 0 };
|
1018
|
+
};
|
1019
|
+
$.fn.cycle.transitions.slideY = function($cont, $slides, opts) {
|
1020
|
+
opts.before.push(function(curr, next, opts) {
|
1021
|
+
$(opts.elements).not(curr).hide();
|
1022
|
+
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1023
|
+
opts.animIn.height = next.cycleH;
|
1024
|
+
});
|
1025
|
+
opts.cssBefore = { left: 0, top: 0, height: 0 };
|
1026
|
+
opts.animIn = { height: 'show' };
|
1027
|
+
opts.animOut = { height: 0 };
|
1028
|
+
};
|
1029
|
+
|
1030
|
+
// shuffle
|
1031
|
+
$.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
|
1032
|
+
var i, w = $cont.css('overflow', 'visible').width();
|
1033
|
+
$slides.css({left: 0, top: 0});
|
1034
|
+
opts.before.push(function(curr,next,opts) {
|
1035
|
+
$.fn.cycle.commonReset(curr,next,opts,true,true,true);
|
1036
|
+
});
|
1037
|
+
// only adjust speed once!
|
1038
|
+
if (!opts.speedAdjusted) {
|
1039
|
+
opts.speed = opts.speed / 2; // shuffle has 2 transitions
|
1040
|
+
opts.speedAdjusted = true;
|
1041
|
+
}
|
1042
|
+
opts.random = 0;
|
1043
|
+
opts.shuffle = opts.shuffle || {left:-w, top:15};
|
1044
|
+
opts.els = [];
|
1045
|
+
for (i=0; i < $slides.length; i++)
|
1046
|
+
opts.els.push($slides[i]);
|
1047
|
+
|
1048
|
+
for (i=0; i < opts.currSlide; i++)
|
1049
|
+
opts.els.push(opts.els.shift());
|
1050
|
+
|
1051
|
+
// custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
|
1052
|
+
opts.fxFn = function(curr, next, opts, cb, fwd) {
|
1053
|
+
var $el = fwd ? $(curr) : $(next);
|
1054
|
+
$(next).css(opts.cssBefore);
|
1055
|
+
var count = opts.slideCount;
|
1056
|
+
$el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
|
1057
|
+
var hops = $.fn.cycle.hopsFromLast(opts, fwd);
|
1058
|
+
for (var k=0; k < hops; k++)
|
1059
|
+
fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop());
|
1060
|
+
if (fwd) {
|
1061
|
+
for (var i=0, len=opts.els.length; i < len; i++)
|
1062
|
+
$(opts.els[i]).css('z-index', len-i+count);
|
1063
|
+
}
|
1064
|
+
else {
|
1065
|
+
var z = $(curr).css('z-index');
|
1066
|
+
$el.css('z-index', parseInt(z)+1+count);
|
1067
|
+
}
|
1068
|
+
$el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
|
1069
|
+
$(fwd ? this : curr).hide();
|
1070
|
+
if (cb) cb();
|
1071
|
+
});
|
1072
|
+
});
|
1073
|
+
};
|
1074
|
+
opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
|
1075
|
+
};
|
1076
|
+
|
1077
|
+
// turnUp/Down/Left/Right
|
1078
|
+
$.fn.cycle.transitions.turnUp = function($cont, $slides, opts) {
|
1079
|
+
opts.before.push(function(curr, next, opts) {
|
1080
|
+
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1081
|
+
opts.cssBefore.top = next.cycleH;
|
1082
|
+
opts.animIn.height = next.cycleH;
|
1083
|
+
});
|
1084
|
+
opts.cssFirst = { top: 0 };
|
1085
|
+
opts.cssBefore = { left: 0, height: 0 };
|
1086
|
+
opts.animIn = { top: 0 };
|
1087
|
+
opts.animOut = { height: 0 };
|
1088
|
+
};
|
1089
|
+
$.fn.cycle.transitions.turnDown = function($cont, $slides, opts) {
|
1090
|
+
opts.before.push(function(curr, next, opts) {
|
1091
|
+
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1092
|
+
opts.animIn.height = next.cycleH;
|
1093
|
+
opts.animOut.top = curr.cycleH;
|
1094
|
+
});
|
1095
|
+
opts.cssFirst = { top: 0 };
|
1096
|
+
opts.cssBefore = { left: 0, top: 0, height: 0 };
|
1097
|
+
opts.animOut = { height: 0 };
|
1098
|
+
};
|
1099
|
+
$.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) {
|
1100
|
+
opts.before.push(function(curr, next, opts) {
|
1101
|
+
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1102
|
+
opts.cssBefore.left = next.cycleW;
|
1103
|
+
opts.animIn.width = next.cycleW;
|
1104
|
+
});
|
1105
|
+
opts.cssBefore = { top: 0, width: 0 };
|
1106
|
+
opts.animIn = { left: 0 };
|
1107
|
+
opts.animOut = { width: 0 };
|
1108
|
+
};
|
1109
|
+
$.fn.cycle.transitions.turnRight = function($cont, $slides, opts) {
|
1110
|
+
opts.before.push(function(curr, next, opts) {
|
1111
|
+
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1112
|
+
opts.animIn.width = next.cycleW;
|
1113
|
+
opts.animOut.left = curr.cycleW;
|
1114
|
+
});
|
1115
|
+
opts.cssBefore = { top: 0, left: 0, width: 0 };
|
1116
|
+
opts.animIn = { left: 0 };
|
1117
|
+
opts.animOut = { width: 0 };
|
1118
|
+
};
|
1119
|
+
|
1120
|
+
// zoom
|
1121
|
+
$.fn.cycle.transitions.zoom = function($cont, $slides, opts) {
|
1122
|
+
opts.before.push(function(curr, next, opts) {
|
1123
|
+
$.fn.cycle.commonReset(curr,next,opts,false,false,true);
|
1124
|
+
opts.cssBefore.top = next.cycleH/2;
|
1125
|
+
opts.cssBefore.left = next.cycleW/2;
|
1126
|
+
opts.animIn = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
|
1127
|
+
opts.animOut = { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 };
|
1128
|
+
});
|
1129
|
+
opts.cssFirst = { top:0, left: 0 };
|
1130
|
+
opts.cssBefore = { width: 0, height: 0 };
|
1131
|
+
};
|
1132
|
+
|
1133
|
+
// fadeZoom
|
1134
|
+
$.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) {
|
1135
|
+
opts.before.push(function(curr, next, opts) {
|
1136
|
+
$.fn.cycle.commonReset(curr,next,opts,false,false);
|
1137
|
+
opts.cssBefore.left = next.cycleW/2;
|
1138
|
+
opts.cssBefore.top = next.cycleH/2;
|
1139
|
+
opts.animIn = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
|
1140
|
+
});
|
1141
|
+
opts.cssBefore = { width: 0, height: 0 };
|
1142
|
+
opts.animOut = { opacity: 0 };
|
1143
|
+
};
|
1144
|
+
|
1145
|
+
// blindX
|
1146
|
+
$.fn.cycle.transitions.blindX = function($cont, $slides, opts) {
|
1147
|
+
var w = $cont.css('overflow','hidden').width();
|
1148
|
+
opts.before.push(function(curr, next, opts) {
|
1149
|
+
$.fn.cycle.commonReset(curr,next,opts);
|
1150
|
+
opts.animIn.width = next.cycleW;
|
1151
|
+
opts.animOut.left = curr.cycleW;
|
1152
|
+
});
|
1153
|
+
opts.cssBefore = { left: w, top: 0 };
|
1154
|
+
opts.animIn = { left: 0 };
|
1155
|
+
opts.animOut = { left: w };
|
1156
|
+
};
|
1157
|
+
// blindY
|
1158
|
+
$.fn.cycle.transitions.blindY = function($cont, $slides, opts) {
|
1159
|
+
var h = $cont.css('overflow','hidden').height();
|
1160
|
+
opts.before.push(function(curr, next, opts) {
|
1161
|
+
$.fn.cycle.commonReset(curr,next,opts);
|
1162
|
+
opts.animIn.height = next.cycleH;
|
1163
|
+
opts.animOut.top = curr.cycleH;
|
1164
|
+
});
|
1165
|
+
opts.cssBefore = { top: h, left: 0 };
|
1166
|
+
opts.animIn = { top: 0 };
|
1167
|
+
opts.animOut = { top: h };
|
1168
|
+
};
|
1169
|
+
// blindZ
|
1170
|
+
$.fn.cycle.transitions.blindZ = function($cont, $slides, opts) {
|
1171
|
+
var h = $cont.css('overflow','hidden').height();
|
1172
|
+
var w = $cont.width();
|
1173
|
+
opts.before.push(function(curr, next, opts) {
|
1174
|
+
$.fn.cycle.commonReset(curr,next,opts);
|
1175
|
+
opts.animIn.height = next.cycleH;
|
1176
|
+
opts.animOut.top = curr.cycleH;
|
1177
|
+
});
|
1178
|
+
opts.cssBefore = { top: h, left: w };
|
1179
|
+
opts.animIn = { top: 0, left: 0 };
|
1180
|
+
opts.animOut = { top: h, left: w };
|
1181
|
+
};
|
1182
|
+
|
1183
|
+
// growX - grow horizontally from centered 0 width
|
1184
|
+
$.fn.cycle.transitions.growX = function($cont, $slides, opts) {
|
1185
|
+
opts.before.push(function(curr, next, opts) {
|
1186
|
+
$.fn.cycle.commonReset(curr,next,opts,false,true);
|
1187
|
+
opts.cssBefore.left = this.cycleW/2;
|
1188
|
+
opts.animIn = { left: 0, width: this.cycleW };
|
1189
|
+
opts.animOut = { left: 0 };
|
1190
|
+
});
|
1191
|
+
opts.cssBefore = { width: 0, top: 0 };
|
1192
|
+
};
|
1193
|
+
// growY - grow vertically from centered 0 height
|
1194
|
+
$.fn.cycle.transitions.growY = function($cont, $slides, opts) {
|
1195
|
+
opts.before.push(function(curr, next, opts) {
|
1196
|
+
$.fn.cycle.commonReset(curr,next,opts,true,false);
|
1197
|
+
opts.cssBefore.top = this.cycleH/2;
|
1198
|
+
opts.animIn = { top: 0, height: this.cycleH };
|
1199
|
+
opts.animOut = { top: 0 };
|
1200
|
+
});
|
1201
|
+
opts.cssBefore = { height: 0, left: 0 };
|
1202
|
+
};
|
1203
|
+
|
1204
|
+
// curtainX - squeeze in both edges horizontally
|
1205
|
+
$.fn.cycle.transitions.curtainX = function($cont, $slides, opts) {
|
1206
|
+
opts.before.push(function(curr, next, opts) {
|
1207
|
+
$.fn.cycle.commonReset(curr,next,opts,false,true,true);
|
1208
|
+
opts.cssBefore.left = next.cycleW/2;
|
1209
|
+
opts.animIn = { left: 0, width: this.cycleW };
|
1210
|
+
opts.animOut = { left: curr.cycleW/2, width: 0 };
|
1211
|
+
});
|
1212
|
+
opts.cssBefore = { top: 0, width: 0 };
|
1213
|
+
};
|
1214
|
+
// curtainY - squeeze in both edges vertically
|
1215
|
+
$.fn.cycle.transitions.curtainY = function($cont, $slides, opts) {
|
1216
|
+
opts.before.push(function(curr, next, opts) {
|
1217
|
+
$.fn.cycle.commonReset(curr,next,opts,true,false,true);
|
1218
|
+
opts.cssBefore.top = next.cycleH/2;
|
1219
|
+
opts.animIn = { top: 0, height: next.cycleH };
|
1220
|
+
opts.animOut = { top: curr.cycleH/2, height: 0 };
|
1221
|
+
});
|
1222
|
+
opts.cssBefore = { left: 0, height: 0 };
|
1223
|
+
};
|
1224
|
+
|
1225
|
+
// cover - curr slide covered by next slide
|
1226
|
+
$.fn.cycle.transitions.cover = function($cont, $slides, opts) {
|
1227
|
+
var d = opts.direction || 'left';
|
1228
|
+
var w = $cont.css('overflow','hidden').width();
|
1229
|
+
var h = $cont.height();
|
1230
|
+
opts.before.push(function(curr, next, opts) {
|
1231
|
+
$.fn.cycle.commonReset(curr,next,opts);
|
1232
|
+
if (d == 'right')
|
1233
|
+
opts.cssBefore.left = -w;
|
1234
|
+
else if (d == 'up')
|
1235
|
+
opts.cssBefore.top = h;
|
1236
|
+
else if (d == 'down')
|
1237
|
+
opts.cssBefore.top = -h;
|
1238
|
+
else
|
1239
|
+
opts.cssBefore.left = w;
|
1240
|
+
});
|
1241
|
+
opts.animIn = { left: 0, top: 0};
|
1242
|
+
opts.animOut = { opacity: 1 };
|
1243
|
+
opts.cssBefore = { top: 0, left: 0 };
|
1244
|
+
};
|
1245
|
+
|
1246
|
+
// uncover - curr slide moves off next slide
|
1247
|
+
$.fn.cycle.transitions.uncover = function($cont, $slides, opts) {
|
1248
|
+
var d = opts.direction || 'left';
|
1249
|
+
var w = $cont.css('overflow','hidden').width();
|
1250
|
+
var h = $cont.height();
|
1251
|
+
opts.before.push(function(curr, next, opts) {
|
1252
|
+
$.fn.cycle.commonReset(curr,next,opts,true,true,true);
|
1253
|
+
if (d == 'right')
|
1254
|
+
opts.animOut.left = w;
|
1255
|
+
else if (d == 'up')
|
1256
|
+
opts.animOut.top = -h;
|
1257
|
+
else if (d == 'down')
|
1258
|
+
opts.animOut.top = h;
|
1259
|
+
else
|
1260
|
+
opts.animOut.left = -w;
|
1261
|
+
});
|
1262
|
+
opts.animIn = { left: 0, top: 0 };
|
1263
|
+
opts.animOut = { opacity: 1 };
|
1264
|
+
opts.cssBefore = { top: 0, left: 0 };
|
1265
|
+
};
|
1266
|
+
|
1267
|
+
// toss - move top slide and fade away
|
1268
|
+
$.fn.cycle.transitions.toss = function($cont, $slides, opts) {
|
1269
|
+
var w = $cont.css('overflow','visible').width();
|
1270
|
+
var h = $cont.height();
|
1271
|
+
opts.before.push(function(curr, next, opts) {
|
1272
|
+
$.fn.cycle.commonReset(curr,next,opts,true,true,true);
|
1273
|
+
// provide default toss settings if animOut not provided
|
1274
|
+
if (!opts.animOut.left && !opts.animOut.top)
|
1275
|
+
opts.animOut = { left: w*2, top: -h/2, opacity: 0 };
|
1276
|
+
else
|
1277
|
+
opts.animOut.opacity = 0;
|
1278
|
+
});
|
1279
|
+
opts.cssBefore = { left: 0, top: 0 };
|
1280
|
+
opts.animIn = { left: 0 };
|
1281
|
+
};
|
1282
|
+
|
1283
|
+
// wipe - clip animation
|
1284
|
+
$.fn.cycle.transitions.wipe = function($cont, $slides, opts) {
|
1285
|
+
var w = $cont.css('overflow','hidden').width();
|
1286
|
+
var h = $cont.height();
|
1287
|
+
opts.cssBefore = opts.cssBefore || {};
|
1288
|
+
var clip;
|
1289
|
+
if (opts.clip) {
|
1290
|
+
if (/l2r/.test(opts.clip))
|
1291
|
+
clip = 'rect(0px 0px '+h+'px 0px)';
|
1292
|
+
else if (/r2l/.test(opts.clip))
|
1293
|
+
clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
|
1294
|
+
else if (/t2b/.test(opts.clip))
|
1295
|
+
clip = 'rect(0px '+w+'px 0px 0px)';
|
1296
|
+
else if (/b2t/.test(opts.clip))
|
1297
|
+
clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
|
1298
|
+
else if (/zoom/.test(opts.clip)) {
|
1299
|
+
var top = parseInt(h/2);
|
1300
|
+
var left = parseInt(w/2);
|
1301
|
+
clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
|
1302
|
+
}
|
1303
|
+
}
|
1304
|
+
|
1305
|
+
opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';
|
1306
|
+
|
1307
|
+
var d = opts.cssBefore.clip.match(/(\d+)/g);
|
1308
|
+
var t = parseInt(d[0]), r = parseInt(d[1]), b = parseInt(d[2]), l = parseInt(d[3]);
|
1309
|
+
|
1310
|
+
opts.before.push(function(curr, next, opts) {
|
1311
|
+
if (curr == next) return;
|
1312
|
+
var $curr = $(curr), $next = $(next);
|
1313
|
+
$.fn.cycle.commonReset(curr,next,opts,true,true,false);
|
1314
|
+
opts.cssAfter.display = 'block';
|
1315
|
+
|
1316
|
+
var step = 1, count = parseInt((opts.speedIn / 13)) - 1;
|
1317
|
+
(function f() {
|
1318
|
+
var tt = t ? t - parseInt(step * (t/count)) : 0;
|
1319
|
+
var ll = l ? l - parseInt(step * (l/count)) : 0;
|
1320
|
+
var bb = b < h ? b + parseInt(step * ((h-b)/count || 1)) : h;
|
1321
|
+
var rr = r < w ? r + parseInt(step * ((w-r)/count || 1)) : w;
|
1322
|
+
$next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
|
1323
|
+
(step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
|
1324
|
+
})();
|
1325
|
+
});
|
1326
|
+
opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
|
1327
|
+
opts.animIn = { left: 0 };
|
1328
|
+
opts.animOut = { left: 0 };
|
1329
|
+
};
|
1330
|
+
|
1331
|
+
})(jQuery);
|