Initial import.
9
prototype/js/DD_belatedPNG.js
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* DD_belatedPNG 0.0.6a ~ Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
|
||||
* Author: Drew Diller
|
||||
* Email: drew.diller@gmail.com
|
||||
* MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
|
||||
**/
|
||||
|
||||
/* JS packer: Dean Edwards, http://dean.edwards.name/packer/ */
|
||||
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4 o={p:\'o\',1q:9(){7(m.1c&&!m.1c[3.p]){m.1c.1R(3.p,\'1S:1T-1U-1V:1W\')}7(1r.K){1r.K(\'1X\',9(){o=1Y})}},1s:9(){4 a=m.D(\'6\');m.1t.10.M(a,m.1t.10.10);4 b=a.1d;b.11(3.p+\'\\\\:*\',\'{1e:1u(#1v#1Z)}\');b.11(3.p+\'\\\\:E\',\'F:1f;\');b.11(\'1w.\'+3.p+\'1x\',\'F:1f; z-20:-1; 12:-21; 1y:1z;\');3.1d=b},1A:9(){4 a=1B.22;7(1B.23.1g(\'24\')!=-1){a.N.25=\'\';o.13.t(a)}},O:9(a){4 b=3;1C(9(){b.N.P=\'\';b.N.G=\'\';o.13.t(b)},1)},26:9(a){4 b=a.1h(\',\');u(4 i=0;i<b.27;i++){3.1d.11(b[i],\'1e:28(o.1i.t(3))\')}},1i:9(b){3.6.1e=\'1D\';7(3.Q==\'29\'||3.Q==\'2a\'||3.Q==\'2b\'){1E}4 c=3;4 d=o;3.1F=b;7(3.Q==\'2c\'){4 e=3.14;3.15=3.16;3.17=3.1G;3.q=m.D(\'2d\');4 f={\'P\':n,\'2e\':n,\'2f\':n,\'2g\':n,\'2h\':n,\'2i\':n,\'15\':n,\'17\':n,\'S\':n};u(4 s 18 f){3.q.6[s]=e[s]}3.U.6.1H=1;3.q.6.G=\'1u(\'+3.I+\')\';3.q.6.1I=\'2j-19\';3.q.6.1J=\'1j 1j\';3.q.6.F=\'1f\';3.q.6.1k=3.1K;3.q.6.12=3.1L+\'8\';3.U.M(3.q,3);o.1i.t(3.q,n);3.6.1y=\'1z\';1E}3.x=m.D(\'1w\');3.x.2k=d.p+\'1x\';3.x.K(\'2l\',9(){d.1a.t(c)});m.1b.M(3.x,m.1b.10);3.y=m.D(d.p+\':E\');3.V=m.D(d.p+\':2m\');3.C=m.D(d.p+\':E\');3.J=[3.y,3.C];u(4 r=0;r<2;r++){3.J[r].2n=1M}3.U.M(3.C,3);3.y.2o(3.V);3.U.M(3.y,3);4 g={\'2p\':\'1a\',\'2q\':\'1a\'};7(3.Q==\'A\'){4 i={\'2r\':\'O\',\'2s\':\'O\',\'2t\':\'O\',\'2u\':\'O\'};u(4 a 18 i){g[a]=i[a]}}u(4 h 18 g){3.K(\'2v\'+h,9(){d[g[h]].t(c)})}3.K(\'2w\',d.1A);1C(9(){d.13.t(c)},1)},13:9(){4 b=3.14;7(b.G){3.C.6.S=b.S;3.y.6.S=b.S;4 c=9(a){a.6.1H=1;7(a.14.F==\'2x\'){a.6.F=\'2y\'}};c(3);c(3.U);4 d=b.G;d=d.1h(\'"\')[1]}7(3.I){4 d=3.I}7(b.G||3.I){3.x.I=d;3.V.I=d;3.V.2z=\'2A\'}3.C.2B=(b.P!=\'1N\');3.C.2C=b.P;3.N.G=\'1D\';3.N.P=\'1N\'},1a:9(){4 e=3.14;4 f={\'W\':3.16+1,\'H\':3.1G+1,\'w\':3.x.15,\'h\':3.x.17,\'L\':3.1K,\'T\':3.1L,\'1l\':3.2D,\'1O\':3.2E};4 g=(f.L+f.1l==1)?1:0;7(f.W>=m.1b.16){f.W=m.1b.16-1}u(4 r=0;r<2;r++){3.J[r].6.15=f.W+\'8\';3.J[r].6.17=f.H+\'8\';3.J[r].6.1k=(f.L+f.1l-1)+\'8\';3.J[r].6.12=(f.T+f.1O-1)+\'8\'}4 h={\'X\':0,\'Y\':0};4 i=9(a,b){4 c=n;2F(b){Z\'1k\':Z\'12\':h[a]=0;1m;Z\'1j\':h[a]=.5;1m;Z\'2G\':Z\'2H\':h[a]=1;1m;1v:7(b.1g(\'%\')!=-1){h[a]=1P(b)*.2I}1Q{c=1M}}4 d=(a==\'X\');h[a]=2J.2K(c?((f[d?\'W\':\'H\']*h[a])-(f[d?\'w\':\'h\']*h[a])):1P(b));7(h[a]==0){h[a]=1}};u(4 b 18 h){i(b,e[\'1J\'+b])}3.V.F=(h.X/f.W)+\',\'+(h.Y/f.H);4 j=e.1I;4 k={\'T\':1,\'R\':f.W+g,\'B\':f.H,\'L\':1+g};4 l={\'X\':{\'1n\':\'L\',\'1o\':\'R\',\'d\':\'W\'},\'Y\':{\'1n\':\'T\',\'1o\':\'B\',\'d\':\'H\'}};7(j!=\'19\'){4 c={\'T\':(h.Y),\'R\':(h.X+f.w),\'B\':(h.Y+f.h),\'L\':(h.X)};7(j.1g(\'19-\')!=-1){4 v=j.1h(\'19-\')[1].2L();c[l[v].1n]=1;c[l[v].1o]=f[l[v].d]}7(c.B>f.H){c.B=f.H}3.y.6.1p=\'E(\'+c.T+\'8 \'+(c.R+g)+\'8 \'+c.B+\'8 \'+(c.L+g)+\'8)\'}1Q{3.y.6.1p=\'E(\'+k.T+\'8 \'+k.R+\'8 \'+k.B+\'8 \'+k.L+\'8)\'}7(3.1F){k.R++;k.B++}3.C.6.1p=\'E(\'+k.T+\'8 \'+k.R+\'8 \'+k.B+\'8 \'+k.L+\'8)\'}};o.1q();o.1s();',62,172,'|||this|var||style|if|px|function|||||||||||||document|true|DD_belatedPNG|ns|borderRect|||call|for|||bgSizeFinder|imgRect||||colorRect|createElement|rect|position|backgroundImage||src|rects|attachEvent||insertBefore|runtimeStyle|handlePseudoHover|backgroundColor|nodeName||zIndex||parentNode|imgFill||||case|firstChild|addRule|top|updateVmlFill|currentStyle|width|clientWidth|height|in|repeat|updateVmlDimensions|body|namespaces|styleSheet|behavior|absolute|search|split|fixPng|center|left|bLW|break|b1|b2|clip|createVmlNameSpace|window|createVmlStyleSheet|documentElement|url|default|img|_sizeFinder|visibility|hidden|interceptPropertyChanges|event|setTimeout|none|return|isImg|clientHeight|zoom|backgroundRepeat|backgroundPosition|offsetLeft|offsetTop|false|transparent|bTW|parseInt|else|add|urn|schemas|microsoft|com|vml|onbeforeunload|null|VML|index|10000px|srcElement|propertyName|background|cssText|fix|length|expression|BODY|TD|TR|IMG|div|borderStyle|borderWidth|borderColor|display|verticalAlign|no|className|onload|fill|stroked|appendChild|resize|move|mouseleave|mouseenter|focus|blur|on|onpropertychange|static|relative|type|tile|filled|fillColor|clientLeft|clientTop|switch|right|bottom|01|Math|ceil|toUpperCase'.split('|'),0,{}))
|
||||
99
prototype/js/colortip-1.0-jquery.css
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
.colorTip{
|
||||
/* This class is assigned to the color tip span by jQuery */
|
||||
|
||||
display:none;
|
||||
position:absolute;
|
||||
left:50%;
|
||||
top:-30px;
|
||||
padding:6px;
|
||||
|
||||
background-color:white;
|
||||
font-family:Arial,Helvetica,sans-serif;
|
||||
font-size:11px;
|
||||
font-style:normal;
|
||||
line-height:1;
|
||||
text-decoration:none;
|
||||
text-align:center;
|
||||
text-shadow:0 0 1px white;
|
||||
white-space:nowrap;
|
||||
|
||||
-moz-border-radius:4px;
|
||||
-webkit-border-radius:4px;
|
||||
border-radius:4px;
|
||||
}
|
||||
|
||||
.pointyTip,.pointyTipShadow{
|
||||
/* Setting a thick transparent border on a 0x0 div to create a triangle */
|
||||
border:6px solid transparent;
|
||||
bottom:-12px;
|
||||
height:0;
|
||||
left:50%;
|
||||
margin-left:-6px;
|
||||
position:absolute;
|
||||
width:0;
|
||||
}
|
||||
|
||||
.pointyTipShadow{
|
||||
/* The shadow tip is 1px larger, so it acts as a border to the tip */
|
||||
border-width:7px;
|
||||
bottom:-14px;
|
||||
margin-left:-7px;
|
||||
}
|
||||
|
||||
.colorTipContainer{
|
||||
position:relative;
|
||||
text-decoration:none !important;
|
||||
}
|
||||
|
||||
|
||||
/* 6 Available Color Themes */
|
||||
|
||||
.white .pointyTip{ border-top-color:white;}
|
||||
.white .pointyTipShadow{ border-top-color:#ddd;}
|
||||
.white .colorTip{
|
||||
background-color:white;
|
||||
border:1px solid #DDDDDD;
|
||||
color:#555555;
|
||||
}
|
||||
|
||||
.yellow .pointyTip{ border-top-color:#f9f2ba;}
|
||||
.yellow .pointyTipShadow{ border-top-color:#e9d315;}
|
||||
.yellow .colorTip{
|
||||
background-color:#f9f2ba;
|
||||
border:1px solid #e9d315;
|
||||
color:#5b5316;
|
||||
}
|
||||
|
||||
.blue .pointyTip{ border-top-color:#d9f1fb;}
|
||||
.blue .pointyTipShadow{ border-top-color:#7fcdee;}
|
||||
.blue .colorTip{
|
||||
background-color:#d9f1fb;
|
||||
border:1px solid #7fcdee;
|
||||
color:#1b475a;
|
||||
}
|
||||
|
||||
.green .pointyTip{ border-top-color:#f2fdf1;}
|
||||
.green .pointyTipShadow{ border-top-color:#b6e184;}
|
||||
.green .colorTip{
|
||||
background-color:#f2fdf1;
|
||||
border:1px solid #b6e184;
|
||||
color:#558221;
|
||||
}
|
||||
|
||||
.red .pointyTip{ border-top-color:#bb3b1d;}
|
||||
.red .pointyTipShadow{ border-top-color:#8f2a0f;}
|
||||
.red .colorTip{
|
||||
background-color:#bb3b1d;
|
||||
border:1px solid #8f2a0f;
|
||||
color:#fcfcfc;
|
||||
text-shadow:none;
|
||||
}
|
||||
|
||||
.black .pointyTip{ border-top-color:#333;}
|
||||
.black .pointyTipShadow{ border-top-color:#111;}
|
||||
.black .colorTip{
|
||||
background-color:#333;
|
||||
border:1px solid #111;
|
||||
color:#fcfcfc;
|
||||
text-shadow:none;
|
||||
}
|
||||
142
prototype/js/colortip-1.0-jquery.js
vendored
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
(function($){
|
||||
$.fn.colorTip = function(settings){
|
||||
|
||||
var defaultSettings = {
|
||||
color : 'yellow',
|
||||
timeout : 500
|
||||
}
|
||||
|
||||
var supportedColors = ['red','green','blue','white','yellow','black'];
|
||||
|
||||
/* Combining the default settings object with the supplied one */
|
||||
settings = $.extend(defaultSettings,settings);
|
||||
|
||||
/*
|
||||
* Looping through all the elements and returning them afterwards.
|
||||
* This will add chainability to the plugin.
|
||||
*/
|
||||
|
||||
return this.each(function(){
|
||||
|
||||
var elem = $(this);
|
||||
|
||||
// If the title attribute is empty, continue with the next element
|
||||
if(!elem.attr('title')) return true;
|
||||
|
||||
// Creating new eventScheduler and Tip objects for this element.
|
||||
// (See the class definition at the bottom).
|
||||
|
||||
var scheduleEvent = new eventScheduler();
|
||||
var tip = new Tip(elem.attr('title'));
|
||||
|
||||
// Adding the tooltip markup to the element and
|
||||
// applying a special class:
|
||||
|
||||
elem.append(tip.generate()).addClass('colorTipContainer');
|
||||
|
||||
// Checking to see whether a supported color has been
|
||||
// set as a classname on the element.
|
||||
|
||||
var hasClass = false;
|
||||
for(var i=0;i<supportedColors.length;i++)
|
||||
{
|
||||
if(elem.hasClass(supportedColors[i])){
|
||||
hasClass = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If it has been set, it will override the default color
|
||||
|
||||
if(!hasClass){
|
||||
elem.addClass(settings.color);
|
||||
}
|
||||
|
||||
// On mouseenter, show the tip, on mouseleave set the
|
||||
// tip to be hidden in half a second.
|
||||
|
||||
elem.hover(function(){
|
||||
|
||||
tip.show();
|
||||
|
||||
// If the user moves away and hovers over the tip again,
|
||||
// clear the previously set event:
|
||||
|
||||
scheduleEvent.clear();
|
||||
|
||||
},function(){
|
||||
|
||||
// Schedule event actualy sets a timeout (as you can
|
||||
// see from the class definition below).
|
||||
|
||||
scheduleEvent.set(function(){
|
||||
tip.hide();
|
||||
},settings.timeout);
|
||||
|
||||
});
|
||||
|
||||
// Removing the title attribute, so the regular OS titles are
|
||||
// not shown along with the tooltips.
|
||||
|
||||
elem.removeAttr('title');
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/ Event Scheduler Class Definition
|
||||
*/
|
||||
|
||||
function eventScheduler(){}
|
||||
|
||||
eventScheduler.prototype = {
|
||||
set : function (func,timeout){
|
||||
|
||||
// The set method takes a function and a time period (ms) as
|
||||
// parameters, and sets a timeout
|
||||
|
||||
this.timer = setTimeout(func,timeout);
|
||||
},
|
||||
clear: function(){
|
||||
|
||||
// The clear method clears the timeout
|
||||
|
||||
clearTimeout(this.timer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/ Tip Class Definition
|
||||
*/
|
||||
|
||||
function Tip(txt){
|
||||
this.content = txt;
|
||||
this.shown = false;
|
||||
}
|
||||
|
||||
Tip.prototype = {
|
||||
generate: function(){
|
||||
|
||||
// The generate method returns either a previously generated element
|
||||
// stored in the tip variable, or generates it and saves it in tip for
|
||||
// later use, after which returns it.
|
||||
|
||||
return this.tip || (this.tip = $('<span class="colorTip">'+this.content+
|
||||
'<span class="pointyTipShadow"></span><span class="pointyTip"></span></span>'));
|
||||
},
|
||||
show: function(){
|
||||
if(this.shown) return;
|
||||
|
||||
// Center the tip and start a fadeIn animation
|
||||
this.tip.css('margin-left',-this.tip.outerWidth()/2).fadeIn('fast');
|
||||
this.shown = true;
|
||||
},
|
||||
hide: function(){
|
||||
this.tip.fadeOut();
|
||||
this.shown = false;
|
||||
}
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
BIN
prototype/js/fancyzoom/images-global/zoom/closebox.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/spacer.gif
Normal file
|
After Width: | Height: | Size: 43 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-caption-fill.png
Normal file
|
After Width: | Height: | Size: 134 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-caption-l.png
Normal file
|
After Width: | Height: | Size: 310 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-caption-r.png
Normal file
|
After Width: | Height: | Size: 290 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow1.png
Normal file
|
After Width: | Height: | Size: 310 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow2.png
Normal file
|
After Width: | Height: | Size: 164 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow3.png
Normal file
|
After Width: | Height: | Size: 368 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow4.png
Normal file
|
After Width: | Height: | Size: 178 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow5.png
Normal file
|
After Width: | Height: | Size: 180 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow6.png
Normal file
|
After Width: | Height: | Size: 428 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow7.png
Normal file
|
After Width: | Height: | Size: 186 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-shadow8.png
Normal file
|
After Width: | Height: | Size: 426 B |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-1.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-10.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-11.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-12.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-2.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-3.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-4.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-5.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-6.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-7.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-8.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
prototype/js/fancyzoom/images-global/zoom/zoom-spin-9.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
761
prototype/js/fancyzoom/js-global/FancyZoom.js
vendored
Normal file
|
|
@ -0,0 +1,761 @@
|
|||
// FancyZoom.js - v1.1 - http://www.fancyzoom.com
|
||||
//
|
||||
// Copyright (c) 2008 Cabel Sasser / Panic Inc
|
||||
// All rights reserved.
|
||||
//
|
||||
// Requires: FancyZoomHTML.js
|
||||
// Instructions: Include JS files in page, call setupZoom() in onLoad. That's it!
|
||||
// Any <a href> links to images will be updated to zoom inline.
|
||||
// Add rel="nozoom" to your <a href> to disable zooming for an image.
|
||||
//
|
||||
// Redistribution and use of this effect in source form, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// * USE OF SOURCE ON COMMERCIAL (FOR-PROFIT) WEBSITE REQUIRES ONE-TIME LICENSE FEE PER DOMAIN.
|
||||
// Reasonably priced! Visit www.fancyzoom.com for licensing instructions. Thanks!
|
||||
//
|
||||
// * Non-commercial (personal) website use is permitted without license/payment!
|
||||
//
|
||||
// * Redistribution of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
// * Redistribution of source code and derived works cannot be sold without specific
|
||||
// written prior permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
var includeCaption = true; // Turn on the "caption" feature, and write out the caption HTML
|
||||
var zoomTime = 5; // Milliseconds between frames of zoom animation
|
||||
var zoomSteps = 15; // Number of zoom animation frames
|
||||
var includeFade = 1; // Set to 1 to fade the image in / out as it zooms
|
||||
var minBorder = 90; // Amount of padding between large, scaled down images, and the window edges
|
||||
var shadowSettings = '0px 5px 25px rgba(0, 0, 0, '; // Blur, radius, color of shadow for compatible browsers
|
||||
|
||||
var zoomImagesURI = 'js/fancyzoom/images-global/zoom/'; // Location of the zoom and shadow images
|
||||
|
||||
// Init. Do not add anything below this line, unless it's something awesome.
|
||||
|
||||
var myWidth = 0, myHeight = 0, myScroll = 0; myScrollWidth = 0; myScrollHeight = 0;
|
||||
var zoomOpen = false, preloadFrame = 1, preloadActive = false, preloadTime = 0, imgPreload = new Image();
|
||||
var preloadAnimTimer = 0;
|
||||
|
||||
var zoomActive = new Array(); var zoomTimer = new Array();
|
||||
var zoomOrigW = new Array(); var zoomOrigH = new Array();
|
||||
var zoomOrigX = new Array(); var zoomOrigY = new Array();
|
||||
|
||||
var zoomID = "ZoomBox";
|
||||
var theID = "ZoomImage";
|
||||
var zoomCaption = "ZoomCaption";
|
||||
var zoomCaptionDiv = "ZoomCapDiv";
|
||||
|
||||
if (navigator.userAgent.indexOf("MSIE") != -1) {
|
||||
var browserIsIE = true;
|
||||
}
|
||||
|
||||
// Zoom: Setup The Page! Called in your <body>'s onLoad handler.
|
||||
|
||||
function setupZoom() {
|
||||
prepZooms();
|
||||
insertZoomHTML();
|
||||
zoomdiv = document.getElementById(zoomID);
|
||||
zoomimg = document.getElementById(theID);
|
||||
}
|
||||
|
||||
// Zoom: Inject Javascript functions into hrefs pointing to images, one by one!
|
||||
// Skip any href that contains a rel="nozoom" tag.
|
||||
// This is done at page load time via an onLoad() handler.
|
||||
|
||||
function prepZooms() {
|
||||
if (! document.getElementsByTagName) {
|
||||
return;
|
||||
}
|
||||
var links = document.getElementsByTagName("a");
|
||||
for (i = 0; i < links.length; i++) {
|
||||
if (links[i].getAttribute("href")) {
|
||||
if (links[i].getAttribute("href").search(/(.*)\.(jpg|jpeg|gif|png|bmp|tif|tiff)/gi) != -1) {
|
||||
if (links[i].getAttribute("rel") != "nozoom") {
|
||||
links[i].onclick = function (event) { return zoomClick(this, event); };
|
||||
links[i].onmouseover = function () { zoomPreload(this); };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Zoom: Load an image into an image object. When done loading, function sets preloadActive to false,
|
||||
// so other bits know that they can proceed with the zoom.
|
||||
// Preloaded image is stored in imgPreload and swapped out in the zoom function.
|
||||
|
||||
function zoomPreload(from) {
|
||||
|
||||
var theimage = from.getAttribute("href");
|
||||
|
||||
// Only preload if we have to, i.e. the image isn't this image already
|
||||
|
||||
if (imgPreload.src.indexOf(from.getAttribute("href").substr(from.getAttribute("href").lastIndexOf("/"))) == -1) {
|
||||
preloadActive = true;
|
||||
imgPreload = new Image();
|
||||
|
||||
// Set a function to fire when the preload is complete, setting flags along the way.
|
||||
|
||||
imgPreload.onload = function() {
|
||||
preloadActive = false;
|
||||
}
|
||||
|
||||
// Load it!
|
||||
imgPreload.src = theimage;
|
||||
}
|
||||
}
|
||||
|
||||
// Zoom: Start the preloading animation cycle.
|
||||
|
||||
function preloadAnimStart() {
|
||||
preloadTime = new Date();
|
||||
document.getElementById("ZoomSpin").style.left = (myWidth / 2) + 'px';
|
||||
document.getElementById("ZoomSpin").style.top = ((myHeight / 2) + myScroll) + 'px';
|
||||
document.getElementById("ZoomSpin").style.visibility = "visible";
|
||||
preloadFrame = 1;
|
||||
document.getElementById("SpinImage").src = zoomImagesURI+'zoom-spin-'+preloadFrame+'.png';
|
||||
preloadAnimTimer = setInterval("preloadAnim()", 100);
|
||||
}
|
||||
|
||||
// Zoom: Display and ANIMATE the jibber-jabber widget. Once preloadActive is false, bail and zoom it up!
|
||||
|
||||
function preloadAnim(from) {
|
||||
if (preloadActive != false) {
|
||||
document.getElementById("SpinImage").src = zoomImagesURI+'zoom-spin-'+preloadFrame+'.png';
|
||||
preloadFrame++;
|
||||
if (preloadFrame > 12) preloadFrame = 1;
|
||||
} else {
|
||||
document.getElementById("ZoomSpin").style.visibility = "hidden";
|
||||
clearInterval(preloadAnimTimer);
|
||||
preloadAnimTimer = 0;
|
||||
zoomIn(preloadFrom);
|
||||
}
|
||||
}
|
||||
|
||||
// ZOOM CLICK: We got a click! Should we do the zoom? Or wait for the preload to complete?
|
||||
// todo?: Double check that imgPreload src = clicked src
|
||||
|
||||
function zoomClick(from, evt) {
|
||||
|
||||
var shift = getShift(evt);
|
||||
|
||||
// Check for Command / Alt key. If pressed, pass them through -- don't zoom!
|
||||
if (! evt && window.event && (window.event.metaKey || window.event.altKey)) {
|
||||
return true;
|
||||
} else if (evt && (evt.metaKey|| evt.altKey)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get browser dimensions
|
||||
getSize();
|
||||
|
||||
// If preloading still, wait, and display the spinner.
|
||||
if (preloadActive == true) {
|
||||
// But only display the spinner if it's not already being displayed!
|
||||
if (preloadAnimTimer == 0) {
|
||||
preloadFrom = from;
|
||||
preloadAnimStart();
|
||||
}
|
||||
} else {
|
||||
// Otherwise, we're loaded: do the zoom!
|
||||
zoomIn(from, shift);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
// Zoom: Move an element in to endH endW, using zoomHost as a starting point.
|
||||
// "from" is an object reference to the href that spawned the zoom.
|
||||
|
||||
function zoomIn(from, shift) {
|
||||
|
||||
zoomimg.src = from.getAttribute("href");
|
||||
|
||||
// Determine the zoom settings from where we came from, the element in the <a>.
|
||||
// If there's no element in the <a>, or we can't get the width, make stuff up
|
||||
|
||||
if (from.childNodes[0].width) {
|
||||
startW = from.childNodes[0].width;
|
||||
startH = from.childNodes[0].height;
|
||||
startPos = findElementPos(from.childNodes[0]);
|
||||
} else {
|
||||
startW = 50;
|
||||
startH = 12;
|
||||
startPos = findElementPos(from);
|
||||
}
|
||||
|
||||
hostX = startPos[0];
|
||||
hostY = startPos[1];
|
||||
|
||||
// Make up for a scrolled containing div.
|
||||
// TODO: This HAS to move into findElementPos.
|
||||
|
||||
if (document.getElementById('scroller')) {
|
||||
hostX = hostX - document.getElementById('scroller').scrollLeft;
|
||||
}
|
||||
|
||||
// Determine the target zoom settings from the preloaded image object
|
||||
|
||||
endW = imgPreload.width;
|
||||
endH = imgPreload.height;
|
||||
|
||||
// Start! But only if we're not zooming already!
|
||||
|
||||
if (zoomActive[theID] != true) {
|
||||
|
||||
// Clear everything out just in case something is already open
|
||||
|
||||
if (document.getElementById("ShadowBox")) {
|
||||
document.getElementById("ShadowBox").style.visibility = "hidden";
|
||||
} else if (! browserIsIE) {
|
||||
|
||||
// Wipe timer if shadow is fading in still
|
||||
if (fadeActive["ZoomImage"]) {
|
||||
clearInterval(fadeTimer["ZoomImage"]);
|
||||
fadeActive["ZoomImage"] = false;
|
||||
fadeTimer["ZoomImage"] = false;
|
||||
}
|
||||
|
||||
document.getElementById("ZoomImage").style.webkitBoxShadow = shadowSettings + '0.0)';
|
||||
}
|
||||
|
||||
document.getElementById("ZoomClose").style.visibility = "hidden";
|
||||
|
||||
// Setup the CAPTION, if existing. Hide it first, set the text.
|
||||
|
||||
if (includeCaption) {
|
||||
document.getElementById(zoomCaptionDiv).style.visibility = "hidden";
|
||||
if (from.getAttribute('title') && includeCaption) {
|
||||
// Yes, there's a caption, set it up
|
||||
document.getElementById(zoomCaption).innerHTML = from.getAttribute('title');
|
||||
} else {
|
||||
document.getElementById(zoomCaption).innerHTML = "";
|
||||
}
|
||||
}
|
||||
|
||||
// Store original position in an array for future zoomOut.
|
||||
|
||||
zoomOrigW[theID] = startW;
|
||||
zoomOrigH[theID] = startH;
|
||||
zoomOrigX[theID] = hostX;
|
||||
zoomOrigY[theID] = hostY;
|
||||
|
||||
// Now set the starting dimensions
|
||||
|
||||
zoomimg.style.width = startW + 'px';
|
||||
zoomimg.style.height = startH + 'px';
|
||||
zoomdiv.style.left = hostX + 'px';
|
||||
zoomdiv.style.top = hostY + 'px';
|
||||
|
||||
// Show the zooming image container, make it invisible
|
||||
|
||||
if (includeFade == 1) {
|
||||
setOpacity(0, zoomID);
|
||||
}
|
||||
zoomdiv.style.visibility = "visible";
|
||||
|
||||
// If it's too big to fit in the window, shrink the width and height to fit (with ratio).
|
||||
|
||||
sizeRatio = endW / endH;
|
||||
if (endW > myWidth - minBorder) {
|
||||
endW = myWidth - minBorder;
|
||||
endH = endW / sizeRatio;
|
||||
}
|
||||
if (endH > myHeight - minBorder) {
|
||||
endH = myHeight - minBorder;
|
||||
endW = endH * sizeRatio;
|
||||
}
|
||||
|
||||
zoomChangeX = ((myWidth / 2) - (endW / 2) - hostX);
|
||||
zoomChangeY = (((myHeight / 2) - (endH / 2) - hostY) + myScroll);
|
||||
zoomChangeW = (endW - startW);
|
||||
zoomChangeH = (endH - startH);
|
||||
|
||||
// Shift key?
|
||||
|
||||
if (shift) {
|
||||
tempSteps = zoomSteps * 7;
|
||||
} else {
|
||||
tempSteps = zoomSteps;
|
||||
}
|
||||
|
||||
// Setup Zoom
|
||||
|
||||
zoomCurrent = 0;
|
||||
|
||||
// Setup Fade with Zoom, If Requested
|
||||
|
||||
if (includeFade == 1) {
|
||||
fadeCurrent = 0;
|
||||
fadeAmount = (0 - 100) / tempSteps;
|
||||
} else {
|
||||
fadeAmount = 0;
|
||||
}
|
||||
|
||||
// Do It!
|
||||
|
||||
zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+hostX+", "+zoomChangeX+", "+hostY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDoneIn(zoomID)')", zoomTime);
|
||||
zoomActive[theID] = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Zoom it back out.
|
||||
|
||||
function zoomOut(from, evt) {
|
||||
|
||||
// Get shift key status.
|
||||
// IE events don't seem to get passed through the function, so grab it from the window.
|
||||
|
||||
if (getShift(evt)) {
|
||||
tempSteps = zoomSteps * 7;
|
||||
} else {
|
||||
tempSteps = zoomSteps;
|
||||
}
|
||||
|
||||
// Check to see if something is happening/open
|
||||
|
||||
if (zoomActive[theID] != true) {
|
||||
|
||||
// First, get rid of the shadow if necessary.
|
||||
|
||||
if (document.getElementById("ShadowBox")) {
|
||||
document.getElementById("ShadowBox").style.visibility = "hidden";
|
||||
} else if (! browserIsIE) {
|
||||
|
||||
// Wipe timer if shadow is fading in still
|
||||
if (fadeActive["ZoomImage"]) {
|
||||
clearInterval(fadeTimer["ZoomImage"]);
|
||||
fadeActive["ZoomImage"] = false;
|
||||
fadeTimer["ZoomImage"] = false;
|
||||
}
|
||||
|
||||
document.getElementById("ZoomImage").style.webkitBoxShadow = shadowSettings + '0.0)';
|
||||
}
|
||||
|
||||
// ..and the close box...
|
||||
|
||||
document.getElementById("ZoomClose").style.visibility = "hidden";
|
||||
|
||||
// ...and the caption if necessary!
|
||||
|
||||
if (includeCaption && document.getElementById(zoomCaption).innerHTML != "") {
|
||||
// fadeElementSetup(zoomCaptionDiv, 100, 0, 5, 1);
|
||||
document.getElementById(zoomCaptionDiv).style.visibility = "hidden";
|
||||
}
|
||||
|
||||
// Now, figure out where we came from, to get back there
|
||||
|
||||
startX = parseInt(zoomdiv.style.left);
|
||||
startY = parseInt(zoomdiv.style.top);
|
||||
startW = zoomimg.width;
|
||||
startH = zoomimg.height;
|
||||
zoomChangeX = zoomOrigX[theID] - startX;
|
||||
zoomChangeY = zoomOrigY[theID] - startY;
|
||||
zoomChangeW = zoomOrigW[theID] - startW;
|
||||
zoomChangeH = zoomOrigH[theID] - startH;
|
||||
|
||||
// Setup Zoom
|
||||
|
||||
zoomCurrent = 0;
|
||||
|
||||
// Setup Fade with Zoom, If Requested
|
||||
|
||||
if (includeFade == 1) {
|
||||
fadeCurrent = 0;
|
||||
fadeAmount = (100 - 0) / tempSteps;
|
||||
} else {
|
||||
fadeAmount = 0;
|
||||
}
|
||||
|
||||
// Do It!
|
||||
|
||||
zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+startX+", "+zoomChangeX+", "+startY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDone(zoomID, theID)')", zoomTime);
|
||||
zoomActive[theID] = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Finished Zooming In
|
||||
|
||||
function zoomDoneIn(zoomdiv, theID) {
|
||||
|
||||
// Note that it's open
|
||||
|
||||
zoomOpen = true;
|
||||
zoomdiv = document.getElementById(zoomdiv);
|
||||
|
||||
// Position the table shadow behind the zoomed in image, and display it
|
||||
|
||||
if (document.getElementById("ShadowBox")) {
|
||||
|
||||
setOpacity(0, "ShadowBox");
|
||||
shadowdiv = document.getElementById("ShadowBox");
|
||||
|
||||
shadowLeft = parseInt(zoomdiv.style.left) - 13;
|
||||
shadowTop = parseInt(zoomdiv.style.top) - 8;
|
||||
shadowWidth = zoomdiv.offsetWidth + 26;
|
||||
shadowHeight = zoomdiv.offsetHeight + 26;
|
||||
|
||||
shadowdiv.style.width = shadowWidth + 'px';
|
||||
shadowdiv.style.height = shadowHeight + 'px';
|
||||
shadowdiv.style.left = shadowLeft + 'px';
|
||||
shadowdiv.style.top = shadowTop + 'px';
|
||||
|
||||
document.getElementById("ShadowBox").style.visibility = "visible";
|
||||
fadeElementSetup("ShadowBox", 0, 100, 5);
|
||||
|
||||
} else if (! browserIsIE) {
|
||||
// Or, do a fade of the modern shadow
|
||||
fadeElementSetup("ZoomImage", 0, .8, 5, 0, "shadow");
|
||||
}
|
||||
|
||||
// Position and display the CAPTION, if existing
|
||||
|
||||
if (includeCaption && document.getElementById(zoomCaption).innerHTML != "") {
|
||||
// setOpacity(0, zoomCaptionDiv);
|
||||
zoomcapd = document.getElementById(zoomCaptionDiv);
|
||||
zoomcapd.style.top = parseInt(zoomdiv.style.top) + (zoomdiv.offsetHeight + 15) + 'px';
|
||||
zoomcapd.style.left = (myWidth / 2) - (zoomcapd.offsetWidth / 2) + 'px';
|
||||
zoomcapd.style.visibility = "visible";
|
||||
// fadeElementSetup(zoomCaptionDiv, 0, 100, 5);
|
||||
}
|
||||
|
||||
// Display Close Box (fade it if it's not IE)
|
||||
|
||||
if (!browserIsIE) setOpacity(0, "ZoomClose");
|
||||
document.getElementById("ZoomClose").style.visibility = "visible";
|
||||
if (!browserIsIE) fadeElementSetup("ZoomClose", 0, 100, 5);
|
||||
|
||||
// Get keypresses
|
||||
document.onkeypress = getKey;
|
||||
|
||||
}
|
||||
|
||||
// Finished Zooming Out
|
||||
|
||||
function zoomDone(zoomdiv, theID) {
|
||||
|
||||
// No longer open
|
||||
|
||||
zoomOpen = false;
|
||||
|
||||
// Clear stuff out, clean up
|
||||
|
||||
zoomOrigH[theID] = "";
|
||||
zoomOrigW[theID] = "";
|
||||
document.getElementById(zoomdiv).style.visibility = "hidden";
|
||||
zoomActive[theID] == false;
|
||||
|
||||
// Stop getting keypresses
|
||||
|
||||
document.onkeypress = null;
|
||||
|
||||
}
|
||||
|
||||
// Actually zoom the element
|
||||
|
||||
function zoomElement(zoomdiv, theID, zoomCurrent, zoomStartW, zoomChangeW, zoomStartH, zoomChangeH, zoomStartX, zoomChangeX, zoomStartY, zoomChangeY, zoomSteps, includeFade, fadeAmount, execWhenDone) {
|
||||
|
||||
// console.log("Zooming Step #"+zoomCurrent+ " of "+zoomSteps+" (zoom " + zoomStartW + "/" + zoomChangeW + ") (zoom " + zoomStartH + "/" + zoomChangeH + ") (zoom " + zoomStartX + "/" + zoomChangeX + ") (zoom " + zoomStartY + "/" + zoomChangeY + ") Fade: "+fadeAmount);
|
||||
|
||||
// Test if we're done, or if we continue
|
||||
|
||||
if (zoomCurrent == (zoomSteps + 1)) {
|
||||
zoomActive[theID] = false;
|
||||
clearInterval(zoomTimer[theID]);
|
||||
|
||||
if (execWhenDone != "") {
|
||||
eval(execWhenDone);
|
||||
}
|
||||
} else {
|
||||
|
||||
// Do the Fade!
|
||||
|
||||
if (includeFade == 1) {
|
||||
if (fadeAmount < 0) {
|
||||
setOpacity(Math.abs(zoomCurrent * fadeAmount), zoomdiv);
|
||||
} else {
|
||||
setOpacity(100 - (zoomCurrent * fadeAmount), zoomdiv);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate this step's difference, and move it!
|
||||
|
||||
moveW = cubicInOut(zoomCurrent, zoomStartW, zoomChangeW, zoomSteps);
|
||||
moveH = cubicInOut(zoomCurrent, zoomStartH, zoomChangeH, zoomSteps);
|
||||
moveX = cubicInOut(zoomCurrent, zoomStartX, zoomChangeX, zoomSteps);
|
||||
moveY = cubicInOut(zoomCurrent, zoomStartY, zoomChangeY, zoomSteps);
|
||||
|
||||
document.getElementById(zoomdiv).style.left = moveX + 'px';
|
||||
document.getElementById(zoomdiv).style.top = moveY + 'px';
|
||||
zoomimg.style.width = moveW + 'px';
|
||||
zoomimg.style.height = moveH + 'px';
|
||||
|
||||
zoomCurrent++;
|
||||
|
||||
clearInterval(zoomTimer[theID]);
|
||||
zoomTimer[theID] = setInterval("zoomElement('"+zoomdiv+"', '"+theID+"', "+zoomCurrent+", "+zoomStartW+", "+zoomChangeW+", "+zoomStartH+", "+zoomChangeH+", "+zoomStartX+", "+zoomChangeX+", "+zoomStartY+", "+zoomChangeY+", "+zoomSteps+", "+includeFade+", "+fadeAmount+", '"+execWhenDone+"')", zoomTime);
|
||||
}
|
||||
}
|
||||
|
||||
// Zoom Utility: Get Key Press when image is open, and act accordingly
|
||||
|
||||
function getKey(evt) {
|
||||
if (! evt) {
|
||||
theKey = event.keyCode;
|
||||
} else {
|
||||
theKey = evt.keyCode;
|
||||
}
|
||||
|
||||
if (theKey == 27) { // ESC
|
||||
zoomOut(this, evt);
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
//
|
||||
// FADE Functions
|
||||
//
|
||||
|
||||
function fadeOut(elem) {
|
||||
if (elem.id) {
|
||||
fadeElementSetup(elem.id, 100, 0, 10);
|
||||
}
|
||||
}
|
||||
|
||||
function fadeIn(elem) {
|
||||
if (elem.id) {
|
||||
fadeElementSetup(elem.id, 0, 100, 10);
|
||||
}
|
||||
}
|
||||
|
||||
// Fade: Initialize the fade function
|
||||
|
||||
var fadeActive = new Array();
|
||||
var fadeQueue = new Array();
|
||||
var fadeTimer = new Array();
|
||||
var fadeClose = new Array();
|
||||
var fadeMode = new Array();
|
||||
|
||||
function fadeElementSetup(theID, fdStart, fdEnd, fdSteps, fdClose, fdMode) {
|
||||
|
||||
// alert("Fading: "+theID+" Steps: "+fdSteps+" Mode: "+fdMode);
|
||||
|
||||
if (fadeActive[theID] == true) {
|
||||
// Already animating, queue up this command
|
||||
fadeQueue[theID] = new Array(theID, fdStart, fdEnd, fdSteps);
|
||||
} else {
|
||||
fadeSteps = fdSteps;
|
||||
fadeCurrent = 0;
|
||||
fadeAmount = (fdStart - fdEnd) / fadeSteps;
|
||||
fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15);
|
||||
fadeActive[theID] = true;
|
||||
fadeMode[theID] = fdMode;
|
||||
|
||||
if (fdClose == 1) {
|
||||
fadeClose[theID] = true;
|
||||
} else {
|
||||
fadeClose[theID] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fade: Do the fade. This function will call itself, modifying the parameters, so
|
||||
// many instances can run concurrently. Can fade using opacity, or fade using a box-shadow.
|
||||
|
||||
function fadeElement(theID, fadeCurrent, fadeAmount, fadeSteps) {
|
||||
|
||||
if (fadeCurrent == fadeSteps) {
|
||||
|
||||
// We're done, so clear.
|
||||
|
||||
clearInterval(fadeTimer[theID]);
|
||||
fadeActive[theID] = false;
|
||||
fadeTimer[theID] = false;
|
||||
|
||||
// Should we close it once the fade is complete?
|
||||
|
||||
if (fadeClose[theID] == true) {
|
||||
document.getElementById(theID).style.visibility = "hidden";
|
||||
}
|
||||
|
||||
// Hang on.. did a command queue while we were working? If so, make it happen now
|
||||
|
||||
if (fadeQueue[theID] && fadeQueue[theID] != false) {
|
||||
fadeElementSetup(fadeQueue[theID][0], fadeQueue[theID][1], fadeQueue[theID][2], fadeQueue[theID][3]);
|
||||
fadeQueue[theID] = false;
|
||||
}
|
||||
} else {
|
||||
|
||||
fadeCurrent++;
|
||||
|
||||
// Now actually do the fade adjustment.
|
||||
|
||||
if (fadeMode[theID] == "shadow") {
|
||||
|
||||
// Do a special fade on the webkit-box-shadow of the object
|
||||
|
||||
if (fadeAmount < 0) {
|
||||
document.getElementById(theID).style.webkitBoxShadow = shadowSettings + (Math.abs(fadeCurrent * fadeAmount)) + ')';
|
||||
} else {
|
||||
document.getElementById(theID).style.webkitBoxShadow = shadowSettings + (100 - (fadeCurrent * fadeAmount)) + ')';
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// Set the opacity depending on if we're adding or subtracting (pos or neg)
|
||||
|
||||
if (fadeAmount < 0) {
|
||||
setOpacity(Math.abs(fadeCurrent * fadeAmount), theID);
|
||||
} else {
|
||||
setOpacity(100 - (fadeCurrent * fadeAmount), theID);
|
||||
}
|
||||
}
|
||||
|
||||
// Keep going, and send myself the updated variables
|
||||
clearInterval(fadeTimer[theID]);
|
||||
fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15);
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
//
|
||||
// UTILITY functions
|
||||
//
|
||||
|
||||
// Utility: Set the opacity, compatible with a number of browsers. Value from 0 to 100.
|
||||
|
||||
function setOpacity(opacity, theID) {
|
||||
|
||||
var object = document.getElementById(theID).style;
|
||||
|
||||
// If it's 100, set it to 99 for Firefox.
|
||||
|
||||
if (navigator.userAgent.indexOf("Firefox") != -1) {
|
||||
if (opacity == 100) { opacity = 99.9999; } // This is majorly awkward
|
||||
}
|
||||
|
||||
// Multi-browser opacity setting
|
||||
|
||||
object.filter = "alpha(opacity=" + opacity + ")"; // IE/Win
|
||||
object.opacity = (opacity / 100); // Safari 1.2, Firefox+Mozilla
|
||||
|
||||
}
|
||||
|
||||
// Utility: Math functions for animation calucations - From http://www.robertpenner.com/easing/
|
||||
//
|
||||
// t = time, b = begin, c = change, d = duration
|
||||
// time = current frame, begin is fixed, change is basically finish - begin, duration is fixed (frames),
|
||||
|
||||
function linear(t, b, c, d)
|
||||
{
|
||||
return c*t/d + b;
|
||||
}
|
||||
|
||||
function sineInOut(t, b, c, d)
|
||||
{
|
||||
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
|
||||
}
|
||||
|
||||
function cubicIn(t, b, c, d) {
|
||||
return c*(t/=d)*t*t + b;
|
||||
}
|
||||
|
||||
function cubicOut(t, b, c, d) {
|
||||
return c*((t=t/d-1)*t*t + 1) + b;
|
||||
}
|
||||
|
||||
function cubicInOut(t, b, c, d)
|
||||
{
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t + b;
|
||||
return c/2*((t-=2)*t*t + 2) + b;
|
||||
}
|
||||
|
||||
function bounceOut(t, b, c, d)
|
||||
{
|
||||
if ((t/=d) < (1/2.75)){
|
||||
return c*(7.5625*t*t) + b;
|
||||
} else if (t < (2/2.75)){
|
||||
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
||||
} else if (t < (2.5/2.75)){
|
||||
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
||||
} else {
|
||||
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Utility: Get the size of the window, and set myWidth and myHeight
|
||||
// Credit to quirksmode.org
|
||||
|
||||
function getSize() {
|
||||
|
||||
// Window Size
|
||||
|
||||
if (self.innerHeight) { // Everyone but IE
|
||||
myWidth = window.innerWidth;
|
||||
myHeight = window.innerHeight;
|
||||
myScroll = window.pageYOffset;
|
||||
} else if (document.documentElement && document.documentElement.clientHeight) { // IE6 Strict
|
||||
myWidth = document.documentElement.clientWidth;
|
||||
myHeight = document.documentElement.clientHeight;
|
||||
myScroll = document.documentElement.scrollTop;
|
||||
} else if (document.body) { // Other IE, such as IE7
|
||||
myWidth = document.body.clientWidth;
|
||||
myHeight = document.body.clientHeight;
|
||||
myScroll = document.body.scrollTop;
|
||||
}
|
||||
|
||||
// Page size w/offscreen areas
|
||||
|
||||
if (window.innerHeight && window.scrollMaxY) {
|
||||
myScrollWidth = document.body.scrollWidth;
|
||||
myScrollHeight = window.innerHeight + window.scrollMaxY;
|
||||
} else if (document.body.scrollHeight > document.body.offsetHeight) { // All but Explorer Mac
|
||||
myScrollWidth = document.body.scrollWidth;
|
||||
myScrollHeight = document.body.scrollHeight;
|
||||
} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
|
||||
myScrollWidth = document.body.offsetWidth;
|
||||
myScrollHeight = document.body.offsetHeight;
|
||||
}
|
||||
}
|
||||
|
||||
// Utility: Get Shift Key Status
|
||||
// IE events don't seem to get passed through the function, so grab it from the window.
|
||||
|
||||
function getShift(evt) {
|
||||
var shift = false;
|
||||
if (! evt && window.event) {
|
||||
shift = window.event.shiftKey;
|
||||
} else if (evt) {
|
||||
shift = evt.shiftKey;
|
||||
if (shift) evt.stopPropagation(); // Prevents Firefox from doing shifty things
|
||||
}
|
||||
return shift;
|
||||
}
|
||||
|
||||
// Utility: Find the Y position of an element on a page. Return Y and X as an array
|
||||
|
||||
function findElementPos(elemFind)
|
||||
{
|
||||
var elemX = 0;
|
||||
var elemY = 0;
|
||||
do {
|
||||
elemX += elemFind.offsetLeft;
|
||||
elemY += elemFind.offsetTop;
|
||||
} while ( elemFind = elemFind.offsetParent )
|
||||
|
||||
return Array(elemX, elemY);
|
||||
}
|
||||
318
prototype/js/fancyzoom/js-global/FancyZoomHTML.js
vendored
Normal file
|
|
@ -0,0 +1,318 @@
|
|||
// FancyZoomHTML.js - v1.0
|
||||
// Used to draw necessary HTML elements for FancyZoom
|
||||
//
|
||||
// Copyright (c) 2008 Cabel Sasser / Panic Inc
|
||||
// All rights reserved.
|
||||
|
||||
function insertZoomHTML() {
|
||||
|
||||
// All of this junk creates the three <div>'s used to hold the closebox, image, and zoom shadow.
|
||||
|
||||
var inBody = document.getElementsByTagName("body").item(0);
|
||||
|
||||
// WAIT SPINNER
|
||||
|
||||
var inSpinbox = document.createElement("div");
|
||||
inSpinbox.setAttribute('id', 'ZoomSpin');
|
||||
inSpinbox.style.position = 'absolute';
|
||||
inSpinbox.style.left = '10px';
|
||||
inSpinbox.style.top = '10px';
|
||||
inSpinbox.style.visibility = 'hidden';
|
||||
inSpinbox.style.zIndex = '525';
|
||||
inBody.insertBefore(inSpinbox, inBody.firstChild);
|
||||
|
||||
var inSpinImage = document.createElement("img");
|
||||
inSpinImage.setAttribute('id', 'SpinImage');
|
||||
inSpinImage.setAttribute('src', zoomImagesURI+'zoom-spin-1.png');
|
||||
inSpinbox.appendChild(inSpinImage);
|
||||
|
||||
// ZOOM IMAGE
|
||||
//
|
||||
// <div id="ZoomBox">
|
||||
// <a href="javascript:zoomOut();"><img src="/images/spacer.gif" id="ZoomImage" border="0"></a> <!-- THE IMAGE -->
|
||||
// <div id="ZoomClose">
|
||||
// <a href="javascript:zoomOut();"><img src="/images/closebox.png" width="30" height="30" border="0"></a>
|
||||
// </div>
|
||||
// </div>
|
||||
|
||||
var inZoombox = document.createElement("div");
|
||||
inZoombox.setAttribute('id', 'ZoomBox');
|
||||
|
||||
inZoombox.style.position = 'absolute';
|
||||
inZoombox.style.left = '10px';
|
||||
inZoombox.style.top = '10px';
|
||||
inZoombox.style.visibility = 'hidden';
|
||||
inZoombox.style.zIndex = '499';
|
||||
|
||||
inBody.insertBefore(inZoombox, inSpinbox.nextSibling);
|
||||
|
||||
var inImage1 = document.createElement("img");
|
||||
inImage1.onclick = function (event) { zoomOut(this, event); return false; };
|
||||
inImage1.setAttribute('src',zoomImagesURI+'spacer.gif');
|
||||
inImage1.setAttribute('id','ZoomImage');
|
||||
inImage1.setAttribute('border', '0');
|
||||
// inImage1.setAttribute('onMouseOver', 'zoomMouseOver();')
|
||||
// inImage1.setAttribute('onMouseOut', 'zoomMouseOut();')
|
||||
|
||||
// This must be set first, so we can later test it using webkitBoxShadow.
|
||||
inImage1.setAttribute('style', '-webkit-box-shadow: '+shadowSettings+'0.0)');
|
||||
inImage1.style.display = 'block';
|
||||
inImage1.style.width = '10px';
|
||||
inImage1.style.height = '10px';
|
||||
inImage1.style.cursor = 'pointer'; // -webkit-zoom-out?
|
||||
inZoombox.appendChild(inImage1);
|
||||
|
||||
var inClosebox = document.createElement("div");
|
||||
inClosebox.setAttribute('id', 'ZoomClose');
|
||||
inClosebox.style.position = 'absolute';
|
||||
|
||||
// In MSIE, we need to put the close box inside the image.
|
||||
// It's 2008 and I'm having to do a browser detect? Sigh.
|
||||
if (browserIsIE) {
|
||||
inClosebox.style.left = '-1px';
|
||||
inClosebox.style.top = '0px';
|
||||
} else {
|
||||
inClosebox.style.left = '-15px';
|
||||
inClosebox.style.top = '-15px';
|
||||
}
|
||||
|
||||
inClosebox.style.visibility = 'hidden';
|
||||
inZoombox.appendChild(inClosebox);
|
||||
|
||||
var inImage2 = document.createElement("img");
|
||||
inImage2.onclick = function (event) { zoomOut(this, event); return false; };
|
||||
inImage2.setAttribute('src',zoomImagesURI+'closebox.png');
|
||||
inImage2.setAttribute('width','30');
|
||||
inImage2.setAttribute('height','30');
|
||||
inImage2.setAttribute('border','0');
|
||||
inImage2.style.cursor = 'pointer';
|
||||
inClosebox.appendChild(inImage2);
|
||||
|
||||
// SHADOW
|
||||
// Only draw the table-based shadow if the programatic webkitBoxShadow fails!
|
||||
// Also, don't draw it if we're IE -- it wouldn't look quite right anyway.
|
||||
|
||||
if (! document.getElementById('ZoomImage').style.webkitBoxShadow && ! browserIsIE) {
|
||||
|
||||
// SHADOW BASE
|
||||
|
||||
var inFixedBox = document.createElement("div");
|
||||
inFixedBox.setAttribute('id', 'ShadowBox');
|
||||
inFixedBox.style.position = 'absolute';
|
||||
inFixedBox.style.left = '50px';
|
||||
inFixedBox.style.top = '50px';
|
||||
inFixedBox.style.width = '100px';
|
||||
inFixedBox.style.height = '100px';
|
||||
inFixedBox.style.visibility = 'hidden';
|
||||
inFixedBox.style.zIndex = '498';
|
||||
inBody.insertBefore(inFixedBox, inZoombox.nextSibling);
|
||||
|
||||
// SHADOW
|
||||
// Now, the shadow table. Skip if not compatible, or irrevelant with -box-shadow.
|
||||
|
||||
// <div id="ShadowBox"><table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0"> X
|
||||
// <tr height="25">
|
||||
// <td width="27"><img src="/images/zoom-shadow1.png" width="27" height="25"></td>
|
||||
// <td background="/images/zoom-shadow2.png"> </td>
|
||||
// <td width="27"><img src="/images/zoom-shadow3.png" width="27" height="25"></td>
|
||||
// </tr>
|
||||
|
||||
var inShadowTable = document.createElement("table");
|
||||
inShadowTable.setAttribute('border', '0');
|
||||
inShadowTable.setAttribute('width', '100%');
|
||||
inShadowTable.setAttribute('height', '100%');
|
||||
inShadowTable.setAttribute('cellpadding', '0');
|
||||
inShadowTable.setAttribute('cellspacing', '0');
|
||||
inFixedBox.appendChild(inShadowTable);
|
||||
|
||||
var inShadowTbody = document.createElement("tbody"); // Needed for IE (for HTML4).
|
||||
inShadowTable.appendChild(inShadowTbody);
|
||||
|
||||
var inRow1 = document.createElement("tr");
|
||||
inRow1.style.height = '25px';
|
||||
inShadowTbody.appendChild(inRow1);
|
||||
|
||||
var inCol1 = document.createElement("td");
|
||||
inCol1.style.width = '27px';
|
||||
inRow1.appendChild(inCol1);
|
||||
var inShadowImg1 = document.createElement("img");
|
||||
inShadowImg1.setAttribute('src', zoomImagesURI+'zoom-shadow1.png');
|
||||
inShadowImg1.setAttribute('width', '27');
|
||||
inShadowImg1.setAttribute('height', '25');
|
||||
inShadowImg1.style.display = 'block';
|
||||
inCol1.appendChild(inShadowImg1);
|
||||
|
||||
var inCol2 = document.createElement("td");
|
||||
inCol2.setAttribute('background', zoomImagesURI+'zoom-shadow2.png');
|
||||
inRow1.appendChild(inCol2);
|
||||
// inCol2.innerHTML = '<img src=';
|
||||
var inSpacer1 = document.createElement("img");
|
||||
inSpacer1.setAttribute('src',zoomImagesURI+'spacer.gif');
|
||||
inSpacer1.setAttribute('height', '1');
|
||||
inSpacer1.setAttribute('width', '1');
|
||||
inSpacer1.style.display = 'block';
|
||||
inCol2.appendChild(inSpacer1);
|
||||
|
||||
var inCol3 = document.createElement("td");
|
||||
inCol3.style.width = '27px';
|
||||
inRow1.appendChild(inCol3);
|
||||
var inShadowImg3 = document.createElement("img");
|
||||
inShadowImg3.setAttribute('src', zoomImagesURI+'zoom-shadow3.png');
|
||||
inShadowImg3.setAttribute('width', '27');
|
||||
inShadowImg3.setAttribute('height', '25');
|
||||
inShadowImg3.style.display = 'block';
|
||||
inCol3.appendChild(inShadowImg3);
|
||||
|
||||
// <tr>
|
||||
// <td background="/images/zoom-shadow4.png"> </td>
|
||||
// <td bgcolor="#ffffff"> </td>
|
||||
// <td background="/images/zoom-shadow5.png"> </td>
|
||||
// </tr>
|
||||
|
||||
inRow2 = document.createElement("tr");
|
||||
inShadowTbody.appendChild(inRow2);
|
||||
|
||||
var inCol4 = document.createElement("td");
|
||||
inCol4.setAttribute('background', zoomImagesURI+'zoom-shadow4.png');
|
||||
inRow2.appendChild(inCol4);
|
||||
// inCol4.innerHTML = ' ';
|
||||
var inSpacer2 = document.createElement("img");
|
||||
inSpacer2.setAttribute('src',zoomImagesURI+'spacer.gif');
|
||||
inSpacer2.setAttribute('height', '1');
|
||||
inSpacer2.setAttribute('width', '1');
|
||||
inSpacer2.style.display = 'block';
|
||||
inCol4.appendChild(inSpacer2);
|
||||
|
||||
var inCol5 = document.createElement("td");
|
||||
inCol5.setAttribute('bgcolor', '#ffffff');
|
||||
inRow2.appendChild(inCol5);
|
||||
// inCol5.innerHTML = ' ';
|
||||
var inSpacer3 = document.createElement("img");
|
||||
inSpacer3.setAttribute('src',zoomImagesURI+'spacer.gif');
|
||||
inSpacer3.setAttribute('height', '1');
|
||||
inSpacer3.setAttribute('width', '1');
|
||||
inSpacer3.style.display = 'block';
|
||||
inCol5.appendChild(inSpacer3);
|
||||
|
||||
var inCol6 = document.createElement("td");
|
||||
inCol6.setAttribute('background', zoomImagesURI+'zoom-shadow5.png');
|
||||
inRow2.appendChild(inCol6);
|
||||
// inCol6.innerHTML = ' ';
|
||||
var inSpacer4 = document.createElement("img");
|
||||
inSpacer4.setAttribute('src',zoomImagesURI+'spacer.gif');
|
||||
inSpacer4.setAttribute('height', '1');
|
||||
inSpacer4.setAttribute('width', '1');
|
||||
inSpacer4.style.display = 'block';
|
||||
inCol6.appendChild(inSpacer4);
|
||||
|
||||
// <tr height="26">
|
||||
// <td width="27"><img src="/images/zoom-shadow6.png" width="27" height="26"</td>
|
||||
// <td background="/images/zoom-shadow7.png"> </td>
|
||||
// <td width="27"><img src="/images/zoom-shadow8.png" width="27" height="26"></td>
|
||||
// </tr>
|
||||
// </table>
|
||||
|
||||
var inRow3 = document.createElement("tr");
|
||||
inRow3.style.height = '26px';
|
||||
inShadowTbody.appendChild(inRow3);
|
||||
|
||||
var inCol7 = document.createElement("td");
|
||||
inCol7.style.width = '27px';
|
||||
inRow3.appendChild(inCol7);
|
||||
var inShadowImg7 = document.createElement("img");
|
||||
inShadowImg7.setAttribute('src', zoomImagesURI+'zoom-shadow6.png');
|
||||
inShadowImg7.setAttribute('width', '27');
|
||||
inShadowImg7.setAttribute('height', '26');
|
||||
inShadowImg7.style.display = 'block';
|
||||
inCol7.appendChild(inShadowImg7);
|
||||
|
||||
var inCol8 = document.createElement("td");
|
||||
inCol8.setAttribute('background', zoomImagesURI+'zoom-shadow7.png');
|
||||
inRow3.appendChild(inCol8);
|
||||
// inCol8.innerHTML = ' ';
|
||||
var inSpacer5 = document.createElement("img");
|
||||
inSpacer5.setAttribute('src',zoomImagesURI+'spacer.gif');
|
||||
inSpacer5.setAttribute('height', '1');
|
||||
inSpacer5.setAttribute('width', '1');
|
||||
inSpacer5.style.display = 'block';
|
||||
inCol8.appendChild(inSpacer5);
|
||||
|
||||
var inCol9 = document.createElement("td");
|
||||
inCol9.style.width = '27px';
|
||||
inRow3.appendChild(inCol9);
|
||||
var inShadowImg9 = document.createElement("img");
|
||||
inShadowImg9.setAttribute('src', zoomImagesURI+'zoom-shadow8.png');
|
||||
inShadowImg9.setAttribute('width', '27');
|
||||
inShadowImg9.setAttribute('height', '26');
|
||||
inShadowImg9.style.display = 'block';
|
||||
inCol9.appendChild(inShadowImg9);
|
||||
}
|
||||
|
||||
if (includeCaption) {
|
||||
|
||||
// CAPTION
|
||||
//
|
||||
// <div id="ZoomCapDiv" style="margin-left: 13px; margin-right: 13px;">
|
||||
// <table border="1" cellpadding="0" cellspacing="0">
|
||||
// <tr height="26">
|
||||
// <td><img src="zoom-caption-l.png" width="13" height="26"></td>
|
||||
// <td rowspan="3" background="zoom-caption-fill.png"><div id="ZoomCaption"></div></td>
|
||||
// <td><img src="zoom-caption-r.png" width="13" height="26"></td>
|
||||
// </tr>
|
||||
// </table>
|
||||
// </div>
|
||||
|
||||
var inCapDiv = document.createElement("div");
|
||||
inCapDiv.setAttribute('id', 'ZoomCapDiv');
|
||||
inCapDiv.style.position = 'absolute';
|
||||
inCapDiv.style.visibility = 'hidden';
|
||||
inCapDiv.style.marginLeft = 'auto';
|
||||
inCapDiv.style.marginRight = 'auto';
|
||||
inCapDiv.style.zIndex = '501';
|
||||
|
||||
inBody.insertBefore(inCapDiv, inZoombox.nextSibling);
|
||||
|
||||
var inCapTable = document.createElement("table");
|
||||
inCapTable.setAttribute('border', '0');
|
||||
inCapTable.setAttribute('cellPadding', '0'); // Wow. These honestly need to
|
||||
inCapTable.setAttribute('cellSpacing', '0'); // be intercapped to work in IE. WTF?
|
||||
inCapDiv.appendChild(inCapTable);
|
||||
|
||||
var inTbody = document.createElement("tbody"); // Needed for IE (for HTML4).
|
||||
inCapTable.appendChild(inTbody);
|
||||
|
||||
var inCapRow1 = document.createElement("tr");
|
||||
inTbody.appendChild(inCapRow1);
|
||||
|
||||
var inCapCol1 = document.createElement("td");
|
||||
inCapCol1.setAttribute('align', 'right');
|
||||
inCapRow1.appendChild(inCapCol1);
|
||||
var inCapImg1 = document.createElement("img");
|
||||
inCapImg1.setAttribute('src', zoomImagesURI+'zoom-caption-l.png');
|
||||
inCapImg1.setAttribute('width', '13');
|
||||
inCapImg1.setAttribute('height', '26');
|
||||
inCapImg1.style.display = 'block';
|
||||
inCapCol1.appendChild(inCapImg1);
|
||||
|
||||
var inCapCol2 = document.createElement("td");
|
||||
inCapCol2.setAttribute('background', zoomImagesURI+'zoom-caption-fill.png');
|
||||
inCapCol2.setAttribute('id', 'ZoomCaption');
|
||||
inCapCol2.setAttribute('valign', 'middle');
|
||||
inCapCol2.style.fontSize = '14px';
|
||||
inCapCol2.style.fontFamily = 'Helvetica';
|
||||
inCapCol2.style.fontWeight = 'bold';
|
||||
inCapCol2.style.color = '#ffffff';
|
||||
inCapCol2.style.textShadow = '0px 2px 4px #000000';
|
||||
inCapCol2.style.whiteSpace = 'nowrap';
|
||||
inCapRow1.appendChild(inCapCol2);
|
||||
|
||||
var inCapCol3 = document.createElement("td");
|
||||
inCapRow1.appendChild(inCapCol3);
|
||||
var inCapImg2 = document.createElement("img");
|
||||
inCapImg2.setAttribute('src', zoomImagesURI+'zoom-caption-r.png');
|
||||
inCapImg2.setAttribute('width', '13');
|
||||
inCapImg2.setAttribute('height', '26');
|
||||
inCapImg2.style.display = 'block';
|
||||
inCapCol3.appendChild(inCapImg2);
|
||||
}
|
||||
}
|
||||
21
prototype/js/galleria/LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License
|
||||
|
||||
Copyright (c) 2010 Aino http://aino.se
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
78
prototype/js/galleria/README.rst
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
========
|
||||
Galleria
|
||||
========
|
||||
A JavaScript image gallery for the fastidious.
|
||||
|
||||
**Update 28/4 - 2010** - We're currently working on releasing Galleria 1.2, along with some comprehensive documentation. Stay tuned!
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
Creates thumbnails on the fly
|
||||
-----------------------------
|
||||
Galleria can create, scale and crop images on the fly, making your gallery layout flexible towards any existing design.
|
||||
|
||||
Degrades gracefully
|
||||
-------------------
|
||||
Galleria can use almost any exiting markup to fetch gallery data. If the client does not meet the necessary requirements, the gallery will degrade to it's initial state.
|
||||
|
||||
Themed galleries
|
||||
----------------
|
||||
Galleria uses a convenient Theme API that makes gallery styling and customization a breeze.
|
||||
|
||||
Flickr fetcher included
|
||||
-----------------------------
|
||||
Use a custom feed from your Flickr account or any other external feed to display images on your web site.
|
||||
|
||||
Built for performance
|
||||
-----------------------------
|
||||
Galleria is built to perform at it's best regardless of browser environment using clever interpolation methods and jQuery's appraised animations.
|
||||
|
||||
|
||||
Basic Usage
|
||||
=====
|
||||
Include jQuery and Galleria on your web page.
|
||||
|
||||
Use the Galleria.loadTheme() to load a Galleria theme::
|
||||
|
||||
<script>
|
||||
Galleria.loadTheme('/js/galleria/themes/classic/galleria.classic.js');
|
||||
</script>
|
||||
|
||||
You can also load it using the ``src`` attribute::
|
||||
|
||||
<script src="/js/galleria/themes/classic/galleria.classic.js"></script>
|
||||
|
||||
Add images
|
||||
----------
|
||||
There are several ways of adding image data to your gallery, but the simplets way is probably to add some HTML.
|
||||
|
||||
Just put the images inside any container on the site::
|
||||
|
||||
<div id="gallery>
|
||||
<img src="/img/pic1.jpg" alt="My description" title="My title">
|
||||
<img src="/img/pic2.jpg" alt="Another text" title="Another title">
|
||||
</div>
|
||||
|
||||
If you want separate thumbnails, just add them as a link::
|
||||
|
||||
<div id="gallery>
|
||||
<a href="/img/large1.jpg"><img src="/img/thumb1.jpg" alt="My description" title="My title"></a>
|
||||
<a href="/img/large2.jpg"><img src="/img/thumb2.jpg" alt="Another text" title="Another title"></a>
|
||||
</div>
|
||||
|
||||
You can also define the images as a JSON array. See the "getting started" doc for more info.
|
||||
|
||||
Galleria also provides plugins to fetch image data from other sources like Flickr & SlideShowPro.
|
||||
|
||||
Activate Galleria
|
||||
-----------------
|
||||
When DOM is ready, you can run Galleria::
|
||||
|
||||
<script>
|
||||
$('#gallery').galleria();
|
||||
</script>
|
||||
|
||||
The galleria function takes two arguments, *theme* and *options*. If no theme is specified, the last theme loaded is used. The options argument is an object with Galleria options that you can use. See the options documentation for a complete list.
|
||||
|
||||
If you run into problems, try passing ``debug: true`` as an option or set ``Galleria.debug = true`` to trace errors. Good luck!
|
||||
35
prototype/js/galleria/demos/classic-01.html
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Classic Theme Demo 01</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<script src="../src/plugins/galleria.flickr.js"></script>
|
||||
<style>
|
||||
html,body{background:#111}
|
||||
#galleria{width:700px;margin:20px auto}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria"></div>
|
||||
|
||||
<script>
|
||||
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/classic/galleria.classic.js');
|
||||
|
||||
// intiialize flickr plugin
|
||||
var flickr = new Galleria.Flickr('fddd7bc223fe37295faace93a4f2d8fc');
|
||||
|
||||
// inject a photset into galleria
|
||||
flickr.getSet('72057594078378762', {
|
||||
size: 'medium'
|
||||
}, function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source:data
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
40
prototype/js/galleria/demos/classic-02.html
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Classic Theme Demo 02</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<style>
|
||||
html,body{background:#111}
|
||||
#galleria{width:900px;margin:20px auto}
|
||||
a{color:#aaa;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria">
|
||||
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/75/2010_Opening_Ceremony_-_Sweden_entering.jpg/800px-2010_Opening_Ceremony_-_Sweden_entering.jpg">
|
||||
<p>The athletes from <strong>Sweden</strong> entering the stadium at the opening ceremonies of the 2010 Winter Olympics</p>
|
||||
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Swedish_Lion.jpg/792px-Swedish_Lion.jpg">
|
||||
<p>The swedish <em>Lion</em></p>
|
||||
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Svenska_Grammofonstudion%2C_Gothenburg_Sweden%2C_Fender.jpg/800px-Svenska_Grammofonstudion%2C_Gothenburg_Sweden%2C_Fender.jpg">
|
||||
<p><a href="http://www.svenskagrammofonstudion.com/">Svenska Grammofonstudion</a>, Gothenburg Sweden</p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/classic/galleria.classic.js');
|
||||
|
||||
// run galleria and add some options
|
||||
$('#galleria').galleria({
|
||||
image_crop: true,
|
||||
transition: 'fade',
|
||||
data_config: function(img) {
|
||||
return {
|
||||
description: $(img).next('p').html()
|
||||
};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
41
prototype/js/galleria/demos/classic-03.html
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Classic Theme Demo 03</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<script src="../src/themes/classic/galleria.classic.js"></script>
|
||||
<style>
|
||||
html,body{background:#111}
|
||||
#galleria{width:700px;margin:20px auto}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria">
|
||||
<img src="http://galleria.aino.se/media/i/demo/01.jpg" title="A test image" alt="A lorem caption">
|
||||
<img src="http://galleria.aino.se/media/i/demo/02.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/03.jpg" longdesc="http://aino.se" alt="Click this image to visit Aino">
|
||||
<img src="http://galleria.aino.se/media/i/demo/04.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/05.jpg">
|
||||
|
||||
<img src="http://galleria.aino.se/media/i/demo/06.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/07.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/08.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/09.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/10.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/11.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/12.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/13.jpg">
|
||||
<img src="http://galleria.aino.se/media/i/demo/14.jpg">
|
||||
|
||||
</div>
|
||||
<script>
|
||||
// Classic theme is now loaded using <script> instead
|
||||
// You can still use loadTheme if you like, either works.
|
||||
$('#galleria').galleria({
|
||||
image_crop: true,
|
||||
transition: 'fade'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
35
prototype/js/galleria/demos/classic-04.html
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Classic Theme Demo 04</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<script src="../src/plugins/galleria.ssp.js"></script>
|
||||
<style>
|
||||
html,body{background:#111}
|
||||
#galleria{width:700px;margin:20px auto}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria"></div>
|
||||
|
||||
<script>
|
||||
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/classic/galleria.classic.js');
|
||||
|
||||
// initialize slieshowpro plugin and add the XML
|
||||
var xml = 'http://www.elmrin.se/ssp_director/index.php?/site/data/6/0/804_556_0_80_1_80_60_0_50_1_50_50_1';
|
||||
var ssp = new Galleria.SSP(xml);
|
||||
|
||||
// inject an album into galleria
|
||||
ssp.getAlbum(0, function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source:data,
|
||||
thumb_crop: false
|
||||
});
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
37
prototype/js/galleria/demos/fullscreen-01.html
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Fullscreen Theme Demo 01</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<script src="../src/plugins/galleria.flickr.js"></script>
|
||||
<style>
|
||||
/* any custom CSS will override the theme. Here I will enlarge the thumbnails: */
|
||||
.galleria-thumbnails .galleria-image{width:90px;height:60px;}
|
||||
.galleria-thumbnails-list{height:60px;}
|
||||
.galleria-thumb-nav-left,
|
||||
.galleria-thumb-nav-right{height:55px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria"></div>
|
||||
<script>
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/fullscreen/galleria.fullscreen.js');
|
||||
|
||||
// initialize flickr plugin
|
||||
var flickr = new Galleria.Flickr('fddd7bc223fe37295faace93a4f2d8fc');
|
||||
|
||||
// search for photos tagged 'cigarette' and apply galleria
|
||||
flickr.getTags('cigarette', {
|
||||
size: 'big'
|
||||
}, function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source:data,
|
||||
carousel_steps: 3 // will advance the carousel 3 steps when clicking the arrow
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
38
prototype/js/galleria/demos/fullscreen-02.html
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Fullscreen Theme Demo 02</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<script src="../src/plugins/galleria.flickr.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria"></div>
|
||||
<script>
|
||||
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/fullscreen/galleria.fullscreen.js');
|
||||
|
||||
// initialize flickr plugin
|
||||
var flickr = new Galleria.Flickr('fddd7bc223fe37295faace93a4f2d8fc');
|
||||
|
||||
// search for photos tagged 'lomo', edit options and apply galleria
|
||||
flickr.setOptions({
|
||||
max: 20,
|
||||
sort: 'relevance',
|
||||
size: 'big'
|
||||
}).getTags('lomo', function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source: data,
|
||||
image_crop: false,
|
||||
frame_color: '#000',
|
||||
transition: 'slide',
|
||||
hide_dock: false,
|
||||
extend: function() {
|
||||
this.$('info,counter').hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
35
prototype/js/galleria/demos/fullscreen-03.html
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Fullscreen Theme Demo 03</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<script src="../src/plugins/galleria.flickr.js"></script>
|
||||
<!-- including the history plugin below will enable the backbutton and permalinks -->
|
||||
<script src="../src/plugins/galleria.history.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria"></div>
|
||||
<script>
|
||||
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/fullscreen/galleria.fullscreen.js');
|
||||
|
||||
// initialize flickr plugin
|
||||
var flickr = new Galleria.Flickr('fddd7bc223fe37295faace93a4f2d8fc');
|
||||
|
||||
// search for 'black white', edit options and apply galleria
|
||||
flickr.search('black white', {
|
||||
sort: 'date-posted-desc',
|
||||
max: 40,
|
||||
size: 'big'
|
||||
}, function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source: data,
|
||||
frame: false,
|
||||
thumbnails: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
30
prototype/js/galleria/demos/lightbox-01.html
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<title>Galleria Lightbox Theme Demo 03</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<script src="../src/plugins/galleria.flickr.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="galleria"></div>
|
||||
<script>
|
||||
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/lightbox/galleria.lightbox.js');
|
||||
|
||||
// Flickr init
|
||||
var flickr = new Galleria.Flickr('fddd7bc223fe37295faace93a4f2d8fc');
|
||||
|
||||
// Get my photostream
|
||||
flickr.setOptions({
|
||||
size: 'medium'
|
||||
}).getUser('davidhellsing', function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source: data,
|
||||
debug: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
71
prototype/js/galleria/demos/lightbox-02.html
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Galleria Lightbox Theme Demo 02</title>
|
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
|
||||
<script src="../src/galleria.js"></script>
|
||||
<style>
|
||||
html{background:#eeeef0;}
|
||||
body{width:500px;margin: 20px auto;padding:20px;background:#fff;font-family:georgia,serif;line-height:1.4;color:#222;}
|
||||
.float{float:left;margin-right:20px;margin-bottom:10px;}
|
||||
a img{border:none;}
|
||||
.caption{font-size:11px;color:#777;font-style:italic;margin:0;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<h2>Using galleria lightbox with content</h2>
|
||||
<p>
|
||||
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Royal%2C_Gothenburg.jpg/800px-Royal%2C_Gothenburg.jpg">
|
||||
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Royal%2C_Gothenburg.jpg/120px-Royal%2C_Gothenburg.jpg" class="float">
|
||||
</a>
|
||||
You can easilly create a lightbox gallery from linked images inside content. Just pass <code>keep_source: true</code> to galleria, and it will
|
||||
keep the content but still activate galleria on the images within the content block. It will add the linked image as image and the link as thumbnail per default. Try clicking the image to the left in this paragraph.
|
||||
</p>
|
||||
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Aalabodarna_Sweden.JPG/500px-Aalabodarna_Sweden.JPG"></p>
|
||||
<p>If you have bigger images inside the source area, galleria will include that as well as a clickable image.
|
||||
This makes it possible to add a lightbox gallery to any content that has images inside it, linked or not.</p>
|
||||
<p>
|
||||
<div class="float">
|
||||
<a href="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/G%C3%A4llivare%2C_Sweden.JPG/800px-G%C3%A4llivare%2C_Sweden.JPG">
|
||||
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/G%C3%A4llivare%2C_Sweden.JPG/120px-G%C3%A4llivare%2C_Sweden.JPG">
|
||||
<p class="caption">A <em>sample</em> caption</p>
|
||||
</a>
|
||||
</div>
|
||||
You can of course add captions anywhere close to the image and include it in galleria using the <code>data_config</code> option.
|
||||
</p>
|
||||
<div style="clear:both"></div>
|
||||
<h2>A mini-gallery anywhere</h2>
|
||||
<p>If you don't pass <code>thumbnails: false</code> you can collect the images and let galleria create a mini-gallery with thumbnails like the one below.
|
||||
<div id="galleria"></div>
|
||||
<h2>Code for this gallery:</h2>
|
||||
<pre><code>Galleria.loadTheme('../src/themes/lightbox/galleria.lightbox.js');
|
||||
$('#galleria').galleria({
|
||||
data_source: '#content',
|
||||
keep_source: true,
|
||||
data_config: function(img) {
|
||||
return {
|
||||
description: $(img).next('.caption').html()
|
||||
}
|
||||
}
|
||||
});</code></pre>
|
||||
<p><a href="/">← back to galleria</a></p>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
// Load theme
|
||||
Galleria.loadTheme('../src/themes/lightbox/galleria.lightbox.js');
|
||||
|
||||
$('#galleria').galleria({
|
||||
data_source: '#content',
|
||||
keep_source: true,
|
||||
data_config: function(img) {
|
||||
return {
|
||||
description: $(img).next('.caption').html()
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
82
prototype/js/galleria/docs/DOM.rst
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
.. _dom:
|
||||
|
||||
===
|
||||
DOM
|
||||
===
|
||||
|
||||
Galleria builds a rich DOM structure for each Gallery. You can access them in the Theme API using ``this.get( ID )`` or ``this.$( IDs )``. Read more about DOM manipulation in the Theme API.
|
||||
|
||||
List of elements
|
||||
================
|
||||
Here is a list of each element in the default Galleria DOM and their layout::
|
||||
|
||||
container
|
||||
stage
|
||||
images
|
||||
loader
|
||||
counter
|
||||
image-nav
|
||||
image-nav-right
|
||||
image-nav-left
|
||||
thumbnails-container
|
||||
thumb-nav-left
|
||||
thumbnails-list
|
||||
thumbnails
|
||||
thumb-nav-right
|
||||
info
|
||||
info-link
|
||||
info-text
|
||||
info-title
|
||||
info-description
|
||||
info-author
|
||||
info-close
|
||||
|
||||
|
||||
HTML structure
|
||||
==============
|
||||
|
||||
The HTML structure is built with a ``galleria-`` prefix to all classes to ensure CSS encapsulation. The class ``.carousel`` is added to ``thumbnails-container`` if a carousel is present. The ``.disabled`` class is added to ``thumb-nav-left`` and ``thumb-nav-right`` if you are at the end/start of the carousel.
|
||||
|
||||
This presentation of the Galleria HTML structure is good to have when building CSS for your custom theme::
|
||||
|
||||
<div class="galleria-container">
|
||||
<div class="galleria-stage">
|
||||
<div class="galleria-images">
|
||||
<div class="galleria-image">
|
||||
<img>
|
||||
</div>
|
||||
<div class="galleria-image">
|
||||
<img>
|
||||
</div>
|
||||
</div>
|
||||
<div class="galleria-loader"></div>
|
||||
<div class="galleria-counter">
|
||||
<span class="current"></span>
|
||||
<span class="total"></span>
|
||||
</div>
|
||||
<div class="galleria-image-nav">
|
||||
<div class="galleria-image-right-nav"></div>
|
||||
<div class="galleria-image-left-nav"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="galleria-thumbnails-container [ carousel ]">
|
||||
<div class="galleria-thumb-nav-left [ disabled ]"></div>
|
||||
<div class="galleria-thumbnails-list">
|
||||
<div class="galleria-thumbnails">
|
||||
<div class="galleria-image">
|
||||
<img>
|
||||
</div>
|
||||
[...]
|
||||
</div>
|
||||
</div>
|
||||
<div class="galleria-thumb-nav-right [ disabled ]"></div>
|
||||
</div>
|
||||
<div class="galleria-info">
|
||||
<div class="galleria-info-link"></div>
|
||||
<div class="galleria-info-text">
|
||||
<div class="galleria-info-title"></div>
|
||||
<div class="galleria-info-description"></div>
|
||||
<div class="galleria-info-author"></div>
|
||||
<div class="galleria-info-close"></div>
|
||||
</div>
|
||||
</div>
|
||||
130
prototype/js/galleria/docs/flickr.rst
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
.. _flickr:
|
||||
|
||||
======
|
||||
Flickr Plugin
|
||||
======
|
||||
|
||||
Galleria comes with a flickr plugin that can be used to fetch images from flickr and display them in your Galleria gallery.
|
||||
|
||||
Example usage
|
||||
=============
|
||||
|
||||
**note:** You must include the flickr plugin script at ``src/plugins/galleria.flickr.js`` to use this plugin.
|
||||
|
||||
The following code searches flickr for the string 'butterfly', fetches 40 images in the 'Medium' format and sorts them after "interestingness" (default). When the data is ready, you can pass it into the Galleria constructor like this::
|
||||
|
||||
var api_key = 'abc123' // you must have a flickr API key
|
||||
var flickr = new Galleria.Flickr(api_key); // initialize the plugin
|
||||
|
||||
flickr.search('butterfly', function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source: data
|
||||
});
|
||||
});
|
||||
|
||||
You can set options using ``.setOptions()`` or as a second argument to the call::
|
||||
|
||||
flickr.setOptions({
|
||||
max: 60,
|
||||
size: 'medium',
|
||||
sort: 'date-posted-desc'
|
||||
});
|
||||
|
||||
flickr.getSet('72057594078378762', function(data) {
|
||||
$('#galleria').galleria({
|
||||
source: data
|
||||
});
|
||||
});
|
||||
|
||||
Public methods
|
||||
==============
|
||||
|
||||
.setOptions( options )
|
||||
----------------------
|
||||
|
||||
| returns **Galleria.Flickr**
|
||||
|
||||
Modifies the default options for ``Galleria.Flickr``. **options** is an Object with your custom options that will override the defaults.
|
||||
|
||||
.search(search_string, options, callback)
|
||||
----------------------
|
||||
|
||||
| returns **Galleria.Flickr**
|
||||
|
||||
A helper function for searching Flickr and converting the data to a Galleria-friendly data object.
|
||||
|
||||
- **search_string** (String) the term you want to search for.
|
||||
- **options** (Object) is the search options object passed to flickr (optional).
|
||||
- **callback(data)** (Function) gets called when the data is ready. The first argument is the Galleria-friendly image data object.
|
||||
|
||||
.getTags(tags, [options,] callback)
|
||||
----------------------
|
||||
|
||||
| returns **Galleria.Flickr**
|
||||
|
||||
A helper function for searching Flickr for tags and converting the data to a Galleria-friendly data object.
|
||||
|
||||
- **tags** (String) a comma-separated string with tags to search for, ex: 'purple,white'.
|
||||
- **options** (Object) is the search options object passed to flickr (optional).
|
||||
- **callback(data)** (Function) gets called when the data is ready. The first argument is the Galleria-friendly image data object.
|
||||
|
||||
.getUser(username, [options,] callback)
|
||||
----------------------
|
||||
|
||||
| returns **Galleria.Flickr**
|
||||
|
||||
Get all pictures from a user's photostream. The username is the same name as in your flickr URL, f.ex if my URL is flickr.com/photos/johndoe/, the user name is 'johndoe'.
|
||||
|
||||
- **user** (String) The username as displayed in your Flickr URL, ex: 'johndoe'.
|
||||
- **options** (Object) is the search options object passed to flickr (optional).
|
||||
- **callback(data)** (Function) gets called when the data is ready. The first argument is the Galleria-friendly image data object.
|
||||
|
||||
.getSet(set_id, [options,] callback)
|
||||
----------------------
|
||||
|
||||
| returns **Galleria.Flickr**
|
||||
|
||||
Get all pictures from a specific photoset.
|
||||
|
||||
- **set_id** (String) The ID of the photoset (you can grab it from the URL)
|
||||
- **options** (Object) is the search options object passed to flickr (optional).
|
||||
- **callback(data)** (Function) gets called when the data is ready. The first argument is the Galleria-friendly image data object.
|
||||
|
||||
.getGallery(gallery_id, [options,] callback)
|
||||
----------------------
|
||||
|
||||
| returns **Galleria.Flickr**
|
||||
|
||||
Get all pictures from a specific gallery.
|
||||
|
||||
- **gallery_id** (String) The ID of the gallery (you can grab it from the URL)
|
||||
- **options** (Object) is the search options object passed to flickr (optional).
|
||||
- **callback(data)** (Function) gets called when the data is ready. The first argument is the Galleria-friendly image data object.
|
||||
|
||||
|
||||
Options
|
||||
=======
|
||||
|
||||
max
|
||||
---
|
||||
|
||||
| type: **Number**
|
||||
| default: **30**
|
||||
|
||||
Sets the amount of images that will be fetched (max 100)
|
||||
|
||||
size
|
||||
------------
|
||||
|
||||
| type: **String**
|
||||
| default: **'medium'**
|
||||
|
||||
This options defines what size the plugin will fetch from flickr. Possible values are 'small', 'medium','big' and 'original'. Note that the 'big' size (1024px wide) is only available if the original size exceeds 1280px wide. If not, 'big' will return the biggest size available. 'original' will always return the biggest image available, but this can slow down performance significantly.
|
||||
|
||||
sort
|
||||
------------
|
||||
|
||||
| type: **String**
|
||||
| default: **'interestingness-desc'**
|
||||
|
||||
How to sort the images. Available options are: date-posted-asc, date-posted-desc, date-taken-asc, date-taken-desc, interestingness-desc, interestingness-asc, and relevance.
|
||||
95
prototype/js/galleria/docs/getting-started.rst
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
.. _getting_started:
|
||||
|
||||
===============
|
||||
Getting started
|
||||
===============
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
* Get the latest and greatest version of Galleria and jQuery
|
||||
* Place the galleria src folder in your project.
|
||||
|
||||
Usage
|
||||
=====
|
||||
Include jQuery and Galleria on your web page.
|
||||
|
||||
Use the Galleria.loadTheme() to load a Galleria theme::
|
||||
|
||||
<script>
|
||||
Galleria.loadTheme('/js/galleria/themes/classic/galleria.classic.js');
|
||||
</script>
|
||||
|
||||
Add images
|
||||
----------
|
||||
There are several ways of adding image data to your gallery, but the simplets way is probably to add some HTML.
|
||||
|
||||
Just put the images inside any container on the site::
|
||||
|
||||
<div id="gallery>
|
||||
<img src="/img/pic1.jpg" alt="My description" title="My title">
|
||||
<img src="/img/pic2.jpg" alt="Another text" title="Another title">
|
||||
</div>
|
||||
|
||||
If you want separate thumbnails, just add them as a link::
|
||||
|
||||
<div id="gallery>
|
||||
<a href="/img/large1.jpg"><img src="/img/thumb1.jpg" alt="My description" title="My title"></a>
|
||||
<a href="/img/large2.jpg"><img src="/img/thumb2.jpg" alt="Another text" title="Another title"></a>
|
||||
</div>
|
||||
|
||||
You can also define the images as a JSON array:
|
||||
|
||||
var data = [
|
||||
{
|
||||
image: 'img1.jpg'
|
||||
thumb: 'thumb1.jpg'
|
||||
title: 'my first image',
|
||||
description: 'Lorem ipsum caption'
|
||||
link: 'http://domain.com'
|
||||
},
|
||||
{
|
||||
image: 'img2.jpg'
|
||||
thumb: 'thumb2.jpg'
|
||||
title: 'my second image',
|
||||
description: 'Another caption'
|
||||
link: '/path/to/destination.html'
|
||||
}
|
||||
];
|
||||
|
||||
$('#container').galleria({
|
||||
data_source: data
|
||||
});
|
||||
|
||||
Galleria also provides plugins to fetch image data from other sources like Flickr & SlideShowPro.
|
||||
|
||||
Activate Galleria
|
||||
-----------------
|
||||
When DOM is ready, you can run Galleria::
|
||||
|
||||
<script>
|
||||
$('#gallery').galleria();
|
||||
</script>
|
||||
|
||||
The galleria function takes two arguments, *theme* and *options*. If no theme is specified, the last theme loaded is used. The options argument is an object with Galleria options that you can use. See the options documentation for a complete list.
|
||||
|
||||
If you run into problems, try passing ``debug: true`` as an option or set ``Galleria.debug = true`` to trace errors.
|
||||
|
||||
More examples
|
||||
-------------
|
||||
With extra options::
|
||||
|
||||
<script>
|
||||
// use theme 'classic' and crop images:
|
||||
$('#gallery').galleria('classic', {
|
||||
image_crop: true
|
||||
});
|
||||
// use the last loaded theme and a fading transition:
|
||||
$('#gallery').galleria({
|
||||
transition: 'fade'
|
||||
});
|
||||
</script>
|
||||
|
||||
Customize
|
||||
---------
|
||||
The gallery is ready to use. If you wish to add alternative sources of image data or fetch HTML captions, read the Customize gallery data section.
|
||||
18
prototype/js/galleria/docs/history.rst
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
.. _history:
|
||||
|
||||
======
|
||||
History Plugin
|
||||
======
|
||||
|
||||
Galleria comes with a history plugin that can be used to make permalinks of images.
|
||||
This is useful if you have one large gallery, f.ex a fullscreen theme, but it's usefulness is limited if you have more than one gallery on a page.
|
||||
The History plugin is a fork of the great jQuery Address Plugin by Rostislav Hristov, adjusted fo fit Galleria.
|
||||
|
||||
Example usage
|
||||
=============
|
||||
|
||||
**note:** You must include the history plugin script at ``src/plugins/galleria.history.js`` to use this plugin.
|
||||
|
||||
There is no need for any further initialization. As long as you include the plugin, Galleria will recognize this and automatically add permalinks to all images in the gallery.
|
||||
|
||||
It works in all supported browsers by adding #/[index] to the URL.
|
||||
15
prototype/js/galleria/docs/index.rst
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
.. _index:
|
||||
|
||||
======================
|
||||
Galleria Documentation
|
||||
======================
|
||||
|
||||
.. rubric:: Everything you need to know about Galleria.
|
||||
|
||||
Contents
|
||||
========
|
||||
|
||||
* :ref:`getting_started`
|
||||
* :ref:`options`
|
||||
* :ref:`flickr`
|
||||
* :ref:`dom`
|
||||
419
prototype/js/galleria/docs/options.rst
Normal file
|
|
@ -0,0 +1,419 @@
|
|||
.. _options:
|
||||
|
||||
=======
|
||||
Options
|
||||
=======
|
||||
|
||||
Galleria options are defined using a flat object during initialization.::
|
||||
|
||||
$('#galleria').galleria({
|
||||
preload: 3,
|
||||
transition: 'fade',
|
||||
image_crop: true
|
||||
});
|
||||
|
||||
**Note:** You can define your own options and set defaults for each theme using the Theme builder API.
|
||||
|
||||
Table of contents (in alphabetical order)
|
||||
=================
|
||||
|
||||
- autoplay
|
||||
- carousel
|
||||
- carousel_follow
|
||||
- carousel_speed
|
||||
- carousel_steps
|
||||
- data_config
|
||||
- data_image_selector
|
||||
- data_type
|
||||
- data_source
|
||||
- debug
|
||||
- extend
|
||||
- image_crop
|
||||
- image_margin
|
||||
- keep_source
|
||||
- max_scale_ratio
|
||||
- on_image
|
||||
- popup_links
|
||||
- preload
|
||||
- queue
|
||||
- thumb_crop
|
||||
- thumb_margin
|
||||
- thumb_quality
|
||||
- thumbnails
|
||||
- transition
|
||||
- transition_speed
|
||||
|
||||
|
||||
List of options
|
||||
===============
|
||||
|
||||
autoplay
|
||||
--------
|
||||
|
||||
| type: **Boolean** or **Number**
|
||||
| default: **false**
|
||||
|
||||
If ``true``, this will start playing the slideshow with 3 seconds interval (default).
|
||||
If you set this to any number, f.ex 4000, it will start playing with that interval (in milliseconds)
|
||||
|
||||
*****
|
||||
|
||||
carousel
|
||||
--------
|
||||
|
||||
| type: **Boolean**
|
||||
| default: **true**
|
||||
|
||||
If ``true``, this will activate the carousel when needed. ``false`` will force it to not appear t all.
|
||||
|
||||
*****
|
||||
|
||||
carousel_follow
|
||||
---------------
|
||||
|
||||
| type: **Boolean**
|
||||
| default: **true**
|
||||
|
||||
Defines if the the carousel should follow the active image.
|
||||
|
||||
*****
|
||||
|
||||
carousel_speed
|
||||
---------------
|
||||
|
||||
| type: **Number**
|
||||
| default: **200**
|
||||
|
||||
The slide speed of the carousel in milliseconds.
|
||||
|
||||
*****
|
||||
|
||||
carousel_steps
|
||||
---------------
|
||||
|
||||
| type: **Number** or **String**
|
||||
| default: **'auto'**
|
||||
|
||||
The number of "steps" the carousel will slide when navigating between available thumbnails.
|
||||
``'auto'`` will move the carousel as many steps as there are visible thumbnails.
|
||||
|
||||
*****
|
||||
|
||||
data_config
|
||||
---------------
|
||||
|
||||
| type: **Function**
|
||||
| default: **undefined**
|
||||
|
||||
This function configures how the data should be extracted from the source. It should return an object that will blend in with the default extractions.
|
||||
|
||||
Default extractions from the image_target element:
|
||||
..................................................
|
||||
|
||||
- **image:** the ``src`` attribute OR parent ``<a>`` tag's ``href`` attribute (if exists and links to an image)
|
||||
- **thumb:** the ``src`` attribute
|
||||
- **title:** the ``title`` attribute
|
||||
- **description:** the ``alt`` attribute
|
||||
- **link:** the ``longdsesc`` attribute
|
||||
|
||||
Example on how to alter the extraction logic:
|
||||
..............................................
|
||||
|
||||
::
|
||||
|
||||
<div id="galleria">
|
||||
<img src="myimg.jpg" rel="John Doe">
|
||||
<span class="desc">My picture</span>
|
||||
</div>
|
||||
<script>
|
||||
$('#galleria').galleria({
|
||||
data_config: function(img) {
|
||||
// img is now the image element
|
||||
// the function should return an object with the new data
|
||||
return {
|
||||
description: $(img).next('.desc'), // sets description to "My picture"
|
||||
author: $(img).attr('rel') // sets author to "John Doe"
|
||||
};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
*****
|
||||
|
||||
data_image_selector
|
||||
---------------
|
||||
|
||||
| type: **String**
|
||||
| default: **'img'**
|
||||
|
||||
The selector Galleria should look for in the HTML source. Defaults to <code>'img'</code> and there is rarely any reason to change this.
|
||||
|
||||
*****
|
||||
|
||||
data_source
|
||||
------------
|
||||
|
||||
| type: **String** or **Array**
|
||||
| default: *jQuery target*
|
||||
|
||||
This is where Galleria finds the data depending on data_type. It defaults to the target selector, which is the same element that was used in the jQuery plugin.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
// Galleria will look for images in '#galleria':
|
||||
$('#galleria').galleria();
|
||||
|
||||
// Galleria will look for images in '#images'
|
||||
// but use '#galleria' as gallery container:
|
||||
$('#galleria').galleria({data_source: '#images'});
|
||||
|
||||
*****
|
||||
|
||||
data_type
|
||||
---------------
|
||||
|
||||
| type: **String**
|
||||
| default: **'auto'**
|
||||
|
||||
|
||||
The dataType Galleria will use to extract data. Available options are 'json', 'html' or 'auto' (default). There is rarely any reason to change this from auto, but you might encounter a situation where you'd like to force a certain data type.
|
||||
|
||||
- **'auto'** means that it will try to detect dataType automatially.
|
||||
- **'json'** will force Galleria to treat the source parameter as a JSON data String or Array
|
||||
- **'html'** will force Galleria to treat the source parameter as a selector in the DOM where the image data is found.
|
||||
|
||||
Example:
|
||||
.........
|
||||
|
||||
::
|
||||
|
||||
// Galleria will use some custom image data:
|
||||
var data = [{
|
||||
image: 'myimg.jpg'
|
||||
}, {
|
||||
image: 'myimg2.jpg'
|
||||
}];
|
||||
$('#galleria').galleria({data_source: data});
|
||||
|
||||
*****
|
||||
|
||||
debug
|
||||
------------
|
||||
|
||||
| type: **Boolean**
|
||||
| default: *false*
|
||||
|
||||
Setting this to ``true`` will throw errors when something is not right. You can also set this globally using ``Galleria.debug = true``.
|
||||
|
||||
*****
|
||||
|
||||
extend
|
||||
------
|
||||
|
||||
| type: **Function**
|
||||
| default: **undefined**
|
||||
|
||||
This function is used to extend the init function of the theme. Use this to quickly add minor customizations to the theme. The first argument is the options object, and the scope is always the Galleria gallery, just like the theme's init() function.
|
||||
|
||||
Example on how to add a play link by extending the theme:
|
||||
..........................................................
|
||||
|
||||
::
|
||||
|
||||
<script>
|
||||
$('#galleria').galleria('classic', {
|
||||
extend: function(options) {
|
||||
$('<a>').text('play').click(this.proxy(function() {
|
||||
this.play(5000);
|
||||
})).appendTo('body');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
*****
|
||||
|
||||
height
|
||||
------------
|
||||
|
||||
| type: **Number** or **String**
|
||||
| default: *undefined*
|
||||
|
||||
This will set a height to the gallery, unless you sepcified one in the CSS.
|
||||
If you set this to 'undefined' or leave it as it is and no CSS height is set, Galleria will automatically add a 16/9 ratio comapred to the width as a fallback.
|
||||
|
||||
*****
|
||||
|
||||
image_crop
|
||||
----------
|
||||
|
||||
| type: **Boolean**
|
||||
| default: **false**
|
||||
|
||||
Defines how the images will be cropped.
|
||||
|
||||
- **true** means that all images will be scaled to fill the stage, centered and cropped.
|
||||
- **false** will scale down so the entire image fits.
|
||||
|
||||
*****
|
||||
|
||||
image_margin
|
||||
----------
|
||||
|
||||
| type: **Number**
|
||||
| default: **0**
|
||||
|
||||
Sets a margin between the image and stage.
|
||||
|
||||
*****
|
||||
|
||||
keep_source
|
||||
----------
|
||||
|
||||
| type: **Boolean**
|
||||
| default: **false**
|
||||
|
||||
This sets if the source HTML should be left intact. Setting this to ``true`` will also create clickable images of each image inside the source.
|
||||
Useful for building custom thumbnails and still have galleria control the gallery.
|
||||
|
||||
*****
|
||||
|
||||
max_scale_ratio
|
||||
----------
|
||||
|
||||
| type: **Number**
|
||||
| default: **undefined**
|
||||
|
||||
Sets the maximum scale ratio for images. F.ex, if you don't want Galleria to upscale any images, set this to 1. undefined will allow any scaling of the images.
|
||||
|
||||
*****
|
||||
|
||||
on_image(image, thumbnail)
|
||||
----------
|
||||
|
||||
| type: **Function**
|
||||
| default: **undefined**
|
||||
|
||||
Helper event function that triggers when an image is loaded and about to enter the stage.
|
||||
This function simplifies the process of adding extra functionality when showing an image without using the extend method och manipulating the theme.
|
||||
|
||||
**image** is the main image and **thumbnail** is the active thumbnail.
|
||||
|
||||
*****
|
||||
|
||||
popup_links
|
||||
----------
|
||||
|
||||
| type: **Boolean**
|
||||
| default: **false**
|
||||
|
||||
Setting this to **true** will open any image links in a new window.
|
||||
|
||||
*****
|
||||
|
||||
preload
|
||||
--------
|
||||
|
||||
| type: **String** or **Number**
|
||||
| default: **2**
|
||||
|
||||
Defines how many images Galleria should preload in advance. Please note that this only applies when you are using separate thumbnail files. Galleria always cache all preloaded images.
|
||||
|
||||
- **2** preloads the next 2 images in line
|
||||
- **'all'** forces Galleria to start preloading all images. This may slow down client.
|
||||
- **0** will not preload any images
|
||||
|
||||
*****
|
||||
|
||||
queue
|
||||
-----
|
||||
|
||||
| type: **Boolean**
|
||||
| default: **true**
|
||||
|
||||
Galleria queues all activation clicks (next/prev & thumbnails). You can see this effect when f.ex clicking "next" many times. If you don't want Galleria to queue, set this to **false**.
|
||||
|
||||
*****
|
||||
|
||||
show
|
||||
-----
|
||||
|
||||
| type: **Number**
|
||||
| default: **0**
|
||||
|
||||
This defines what image index to show at first. If you use the history plugin, a permalink will override this number.
|
||||
|
||||
*****
|
||||
|
||||
thumb_crop
|
||||
----------
|
||||
|
||||
| type: **Boolean**
|
||||
| default: **true**
|
||||
|
||||
Same as **image_crop** but for thumbnails.
|
||||
|
||||
*****
|
||||
|
||||
thumb_margin
|
||||
------------
|
||||
|
||||
| type: **Number**
|
||||
| default: **0**
|
||||
|
||||
Same as **image_margin** but for thumbnails.
|
||||
|
||||
*****
|
||||
|
||||
thumb_quality
|
||||
-------------
|
||||
| type: **Boolean** or **String**
|
||||
| default: **true**
|
||||
|
||||
Defines if and how IE should use bicubic image rendering for thumbnails.
|
||||
|
||||
- **'auto'** uses high quality if image scaling is moderate.
|
||||
- **false** will not use high quality (better performance).
|
||||
- **true** will force high quality renedring (can slow down performance)
|
||||
|
||||
*****
|
||||
|
||||
thumbnails
|
||||
----------
|
||||
|
||||
| type: **Boolean** or **String**
|
||||
| default: **true**
|
||||
|
||||
Sets the creation of thumbnails. If false, Galleria will not create thumbnails.
|
||||
If you set this to 'empty', Galleria will create empty spans with the className ``img`` instead of thumbnails.
|
||||
|
||||
*****
|
||||
|
||||
transition
|
||||
----------
|
||||
|
||||
| type: **Function** or **String**
|
||||
| default: **'fade'**
|
||||
|
||||
The transition that is used when displaying the images. There are some built-in transitions in Galleria, but you can also create your own using our Transitions API
|
||||
|
||||
Built-in transitions
|
||||
....................
|
||||
|
||||
- **'fade'** fade betweens images
|
||||
- **'flash'** fades into background color between images
|
||||
- **'slide'** slides the images using the Galleria easing depending on image position
|
||||
- **'fadeslide'** fade between images and slide slightly at the same time
|
||||
|
||||
*****
|
||||
|
||||
transition_speed
|
||||
----------------
|
||||
|
||||
| type: **Number**
|
||||
| default: **400**
|
||||
|
||||
The milliseconds used when applying the transition.
|
||||
|
||||
33
prototype/js/galleria/docs/slideshowpro.rst
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
.. _slideshowpro:
|
||||
|
||||
======
|
||||
SlideShowPro Plugin
|
||||
======
|
||||
|
||||
Galleria comes with a SSP plugin that can be used to fetch images from a SlideShowPro gallery and display them in your Galleria gallery.
|
||||
|
||||
Example usage
|
||||
=============
|
||||
|
||||
**note:** You must include the SSP plugin script at ``src/plugins/galleria.ssp.js`` to use this plugin.
|
||||
|
||||
The plugin is very simple, just call the Galleria.SSP constructor with the XML file location and the plugin will return a formated galleria data object using YQL::
|
||||
|
||||
var xml_file = 'http://domain.com/gallery.xml'
|
||||
var ssp = new Galleria.SSP(xml_file); // initialize the plugin
|
||||
|
||||
ssp.getAlbum(0, function(data) {
|
||||
$('#galleria').galleria({
|
||||
data_source: data
|
||||
});
|
||||
});
|
||||
|
||||
Public methods
|
||||
==============
|
||||
|
||||
.getAlbum( album_index, callback )
|
||||
----------------------
|
||||
|
||||
| returns **Galleria.SSP**
|
||||
|
||||
Grabs album data from the XML. If you have more than one album you can change the index. 0 is the first album. The callback has one argument - the converted Galleria data object. See example above for usage.
|
||||
383
prototype/js/galleria/docs/theme_api.rst
Normal file
|
|
@ -0,0 +1,383 @@
|
|||
.. _theme API:
|
||||
|
||||
======
|
||||
Theme API
|
||||
======
|
||||
|
||||
Galleria comes with a theme builder API that you can use to create custom themes easily.
|
||||
|
||||
The theme is created by adding a theme object to the Galleria namespace and define a init function that contains all theme specific logic.
|
||||
|
||||
A sample theme
|
||||
==============
|
||||
|
||||
A simple theme can be created using ``Galleria.theme.create()`` like this::
|
||||
|
||||
Galleria.theme.create({
|
||||
name: 'my theme',
|
||||
author: 'John Doe, http://example.com',
|
||||
version: 1,
|
||||
css: 'galleria.my_theme.css',
|
||||
defaults: {
|
||||
transition: 'fade',
|
||||
imagecrop: true,
|
||||
my_color: 'yellow'
|
||||
},
|
||||
init: function(options) {
|
||||
this.$('container').css('background-color', options.my_color);
|
||||
this.bind(Galleria.LOADSTART, function(e) {
|
||||
if (!e.cached) {
|
||||
this.$('loader').show();
|
||||
}
|
||||
});
|
||||
this.bind(Galleria.LOADFINISH, function(e) {
|
||||
this.$('loader').hide();
|
||||
});
|
||||
this.show(0);
|
||||
}
|
||||
});
|
||||
|
||||
After the theme is created you can use the theme when calling Galleria. The ``Galleria.theme.create`` function takes one argument – the theme object.
|
||||
|
||||
The theme object explained:
|
||||
---------------------------
|
||||
|
||||
- **name** (String) is the name of the theme, f.ex 'classic'
|
||||
- **author** (String) is the name of the author
|
||||
- **version** (Number) is the current theme version
|
||||
- **css** (String) is the CSS file used. The CSS file must be in the same folder as the theme js file
|
||||
- **defaults** (Object) sets the default and/or custom options for the theme.
|
||||
- **init** (Function) contains all theme-specific logic. The function takes one argument, options, and the this keyword is the gallery instance. The function gets called after the data is fetched and the gallery is fully prepared to run.
|
||||
|
||||
The ``init`` function in your theme has access to a number of helpers, functions and events that you can use to customize your theme logic.
|
||||
|
||||
Events
|
||||
======
|
||||
|
||||
You can bind functions to the Galleria events to build custom themes. All callbacks contains an event object as a function argument. The event object is similar to jQuery's event model, except that it adds event.scope that refers to the current gallery scope of each event. Some events will add even further properties to the event object, specified here.
|
||||
|
||||
Use ``.bind()`` to listen to the Galleria events. In the callback, the this keyword inside the callback always refers to the same gallery scope. Example::
|
||||
|
||||
this.bind(Galleria.THUMBNAIL, function(e) {
|
||||
Galleria.log(this); // the gallery scope
|
||||
Galleria.log(e) // the event object
|
||||
});
|
||||
|
||||
this.bind(Galleria.LOADSTART, function(e) {
|
||||
if ( !e.cached ) {
|
||||
Galleria.log(e.target + ' is not cached. Begin preload...');
|
||||
}
|
||||
});
|
||||
|
||||
Galleria.THUMBNAIL
|
||||
------------------
|
||||
|
||||
Triggers when a thumbnail is loaded and displayed in Galleria. Adds the following properties to the event object:
|
||||
|
||||
- **thumbTarget** (HTML element) The thumbnail IMG element
|
||||
- **thumbOrder** (int) the index of the thumbnail, starting at 0
|
||||
|
||||
Galleria.LOADSTART
|
||||
------------------
|
||||
|
||||
Triggers every time Galleria begins loading an image. Adds the following properties to the event object:
|
||||
|
||||
- **cached** (boolean) is true if the image is cached (no loading required).
|
||||
- **imageTarget** (HTML element) The ``IMG`` element of the currently displayed image before transition.
|
||||
- **thumbTarget** (HTML element) The ``IMG`` element of the active thumbnail.
|
||||
|
||||
Galleria.LOADFINISH
|
||||
-------------------
|
||||
|
||||
Triggers every time Galleria has finnished loading an image. Adds the following properties to the event object:
|
||||
|
||||
- **cached** (boolean) is true if the image is cached (no loading required).
|
||||
- **imageTarget** (HTML element) The ``IMG`` element of the now active displayed image after transition.
|
||||
- **thumbTarget** (HTML element) The ``IMG`` element of the active thumbnail.
|
||||
|
||||
Public methods
|
||||
==============
|
||||
|
||||
.bind( type, callback )
|
||||
-----------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Binds a callback function to a Galleria event. The callback function contains the event object as the only argument.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
this.bind(Galleria.THUMBNAIL, function(e) {
|
||||
Galleria.log(e.thumbTarget); // the Image element of the loaded thumbnail
|
||||
});
|
||||
|
||||
.trigger( type )
|
||||
-----------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Manually triggers a Galleria event.
|
||||
|
||||
.setCSS( cssText )
|
||||
------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Creates a global ``<style>`` element, inserts any css text into it and appends it to the ``<head>`` tag. Useful to build themed styles without using an external CSS file.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
var cssText = '.galleria-image{width:40px;height:40px}';
|
||||
this.setCSS(cssText);
|
||||
|
||||
.proxy( fn [, scope ] )
|
||||
-----------------------
|
||||
|
||||
| returns **Function**
|
||||
|
||||
A proxy function that brings the Galleria scope to any callback. Using this proxy, the ``this`` keyword stays as a reference to the current Galleria scope during jQuery callbacks (or any other function).
|
||||
|
||||
The second argument specifies another scope (optional).
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
this.$('container').click(this.proxy(function(e) {
|
||||
Galleria.log(e) // the jQuery event object
|
||||
Galleria.log(this) // the Galleria scope (not the target)
|
||||
}));
|
||||
|
||||
.next()
|
||||
-------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Helper method for showing the next image in line. If you are at the last image, it will show the first image instead.
|
||||
|
||||
.prev()
|
||||
-------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Helper method for showing the previous image in line. If you are at the first image, it will show the last image instead.
|
||||
|
||||
.play( [interval] )
|
||||
-------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Starts the slideshow. interval can be a custom amount of milliseconds to pause between images. If no interval is specified, the default value is 3000 (3 seconds).
|
||||
|
||||
Note that if the slideshow is playing, Galleria will force-preload the next image in line regardless of preload settings.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
// creates a play link and appends it to the container
|
||||
$('<a>').text('play').bind('click', this.proxy(function() {
|
||||
this.play(2000);
|
||||
})).appendTo(this.get('container'));
|
||||
|
||||
.pause()
|
||||
--------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Pauses the slideshow if playing. After pausing, you can resume the slideshow by calling ``.play()`` again (no need to re-state interval)
|
||||
|
||||
.attachKeyboard( map )
|
||||
--------------------
|
||||
| returns **Galleria**
|
||||
|
||||
This helper method attaches keyboaard events to Galleria. The map object contains a map of functions to execute when a certain keyCode is pressed.
|
||||
|
||||
You can use a number of helper keywords to identify common keys. The keywords are **up**, **down**, **left**, **right**, **return**, **escape** and **backspace**.
|
||||
|
||||
Example: attaching some keyboard action to galleria
|
||||
...................................................
|
||||
|
||||
::
|
||||
|
||||
this.attachKeyboard({
|
||||
left: this.prev, // applies the native prev() function
|
||||
right: this.next,
|
||||
up: function() {
|
||||
// custom up action
|
||||
Galleria.log('up pressed');
|
||||
},
|
||||
13: function() {
|
||||
// start playing when return (keyCode 13) is pressed:
|
||||
this.play(3000);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
.detachKeyboard()
|
||||
--------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Removes the keyboard events attached using ``.attachKeyboard()``. Useful when building lightboxes or overlays.
|
||||
|
||||
.show( index, [rewind] )
|
||||
------------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Shows an image. The ``index`` specifies what image to show, and ``rewind`` is a boolean that will be sent to the transition. If rewind is true, some transitions such as sliders will animate "backwards". You can call ``this.show(0)`` in the theme function if you like galleria to show the first image at init.
|
||||
|
||||
.get( elemId )
|
||||
--------------
|
||||
|
||||
returns **HTML Element**
|
||||
|
||||
Grabs the element from the Galleria DOM structure.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
var stage = this.get('stage');
|
||||
// stage is now the div.galleria-stage element
|
||||
|
||||
|
||||
.getData( [ index ] )
|
||||
---------------------
|
||||
|
||||
| returns **Object**
|
||||
|
||||
Grabs the data object for a specific index. If no index specified it returns the currently active data object.
|
||||
|
||||
.$( elemIDs )
|
||||
-------------
|
||||
|
||||
| returns **jQuery**
|
||||
|
||||
Fetches elements from the Galleria DOM structure and returns a jQuery object with all elements, very useful for theme development. You can specify a single element ID or multiple elements in a comma-separated list.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
this.$('images,thumbnails').click(function(e) {
|
||||
Galleria.log('images or thumbnails clicked');
|
||||
});
|
||||
|
||||
|
||||
.addElement( elemID )
|
||||
---------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Creates a new element into the Galleria DOM and becomes instantly available using ``.$()`` or ``.get()``
|
||||
|
||||
.appendChild( parentID, childID )
|
||||
---------------------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Appends an element to another in the Galleria DOM structure using element IDs.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
// creates a new element with the id 'mystuff':
|
||||
this.addElement('mystuff');
|
||||
|
||||
// appends the element to the container
|
||||
this.appendChild('container','mystuff');
|
||||
|
||||
.toggleQuality( imageElement )
|
||||
------------------------------
|
||||
|
||||
| returns **Galleria**
|
||||
|
||||
Toggles the image interpolation mode for IE7+. If mode is ``bicubic``, it sets it to nearest neighbour and vice versa. Bicubic offers a higher quality when scaling images, but slower interactions.
|
||||
|
||||
Example:
|
||||
........
|
||||
|
||||
::
|
||||
|
||||
this.bind(Galleria.LOADFINISH, function(e) {
|
||||
$(e.imageTarget).click(this.proxy(function(ev) {
|
||||
this.toggleQuality( ev.target );
|
||||
}));
|
||||
});
|
||||
|
||||
|
||||
Static methods
|
||||
==============
|
||||
|
||||
Galleria.log( msg )
|
||||
-------------------
|
||||
|
||||
| returns **null**
|
||||
|
||||
A wrapper for logging in a cross-browser manner. Will trigger the console if available, otherwise it finds other options (postError or alert).
|
||||
|
||||
Static variables
|
||||
==============
|
||||
|
||||
Galleria.IE7
|
||||
------------
|
||||
|
||||
| type **Boolean**
|
||||
|
||||
Returns true if IE7 is detected using object detection.
|
||||
|
||||
Galleria.IE6
|
||||
------------
|
||||
|
||||
| type **Boolean**
|
||||
|
||||
Returns true if IE6 is detected using object detection.
|
||||
|
||||
Galleria.WEBKIT
|
||||
---------------
|
||||
|
||||
| type **Boolean**
|
||||
|
||||
Returns true if the webkit engine (safari & chrome) is detected using browser sniffing.
|
||||
|
||||
Galleria.CHROME
|
||||
---------------
|
||||
|
||||
| type **Boolean**
|
||||
|
||||
Returns true if Chrome is detected using browser sniffing.
|
||||
|
||||
Galleria.SAFARI
|
||||
---------------
|
||||
|
||||
| type **Boolean**
|
||||
|
||||
Returns true if Safari is detected using browser sniffing.
|
||||
|
||||
Galleria.MAC
|
||||
------------
|
||||
|
||||
| type **Boolean**
|
||||
|
||||
Returns true if Apple OS is detected using browser sniffing.
|
||||
|
||||
Galleria.QUIRK
|
||||
--------------
|
||||
|
||||
| type **Boolean**
|
||||
|
||||
Returns true if IE / Quirks Mode is detected using object detection.
|
||||
1254
prototype/js/galleria/src/galleria.js
vendored
Normal file
155
prototype/js/galleria/src/plugins/galleria.flickr.js
vendored
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
/*!
|
||||
* Galleria Flickr Plugin v 1.1
|
||||
* http://galleria.aino.se
|
||||
*
|
||||
* Copyright 2010, Aino
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
|
||||
var G = window.Galleria;
|
||||
if (typeof G == 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
var F = G.Flickr = function(api_key) {
|
||||
if (!api_key) {
|
||||
G.raise('No API key found');
|
||||
}
|
||||
this.callback = function(){};
|
||||
this.api_key = api_key;
|
||||
this.options = {
|
||||
max: 40,
|
||||
size: 'big',
|
||||
sort: 'interestingness-desc'
|
||||
}
|
||||
}
|
||||
|
||||
F.prototype = {
|
||||
search: function(str) {
|
||||
this._set(arguments);
|
||||
return this._find({
|
||||
text: str
|
||||
});
|
||||
},
|
||||
getTags: function(str) {
|
||||
this._set(arguments);
|
||||
return this._find({
|
||||
tags: str
|
||||
});
|
||||
},
|
||||
getUser: function(username) {
|
||||
var args = arguments;
|
||||
return this._call({
|
||||
method: 'flickr.urls.lookupUser',
|
||||
url: 'flickr.com/photos/'+username
|
||||
}, function(data) {
|
||||
this._set(args);
|
||||
this._find({
|
||||
user_id: data.user.id,
|
||||
method: 'flickr.people.getPublicPhotos'
|
||||
});
|
||||
});
|
||||
},
|
||||
getSet: function(photoset_id) {
|
||||
this._set(arguments);
|
||||
return this._find({
|
||||
photoset_id: photoset_id,
|
||||
method: 'flickr.photosets.getPhotos'
|
||||
});
|
||||
},
|
||||
getGallery: function(gallery_id) {
|
||||
this._set(arguments);
|
||||
return this._find({
|
||||
gallery_id: gallery_id,
|
||||
method: 'flickr.galleries.getPhotos'
|
||||
});
|
||||
},
|
||||
setOptions: function(options) {
|
||||
jQuery.extend(this.options, options);
|
||||
return this;
|
||||
},
|
||||
_set: function(args) {
|
||||
args = Array.prototype.slice.call(args);
|
||||
this.callback = args[2] || args[1];
|
||||
if (typeof args[1] == 'object') {
|
||||
this.setOptions(args[1]);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
_call: function(params, callback) {
|
||||
var url = 'http://api.flickr.com/services/rest/?';
|
||||
var scope = this;
|
||||
params = jQuery.extend({
|
||||
format : 'json',
|
||||
jsoncallback : '?',
|
||||
api_key: this.api_key
|
||||
}, params);
|
||||
jQuery.each(params, function(key, value) {
|
||||
url += '&'+ key + '=' +value;
|
||||
});
|
||||
jQuery.getJSON(url, function(data) {
|
||||
if (data.stat == 'ok') {
|
||||
callback.call(scope, data);
|
||||
} else {
|
||||
G.raise(data.code.toString() + ' ' + data.stat + ': ' + data.message);
|
||||
}
|
||||
});
|
||||
return scope;
|
||||
},
|
||||
_find: function(params) {
|
||||
params = jQuery.extend({
|
||||
method: 'flickr.photos.search',
|
||||
extras: 'url_t, url_m, url_o, url_s, url_l',
|
||||
sort: this.options.sort
|
||||
}, params);
|
||||
|
||||
return this._call(params, function(data) {
|
||||
var obj = { length: 0 };
|
||||
var photos = data.photos ? data.photos.photo : data.photoset.photo;
|
||||
var len = Math.min(this.options.max, photos.length);
|
||||
|
||||
for (var i=0; i<len; i++) {
|
||||
var photo = photos[i],
|
||||
img = photo.url_m;
|
||||
switch(this.options.size) {
|
||||
case 'small':
|
||||
img = photo.url_s;
|
||||
break;
|
||||
case 'big':
|
||||
if (photo.url_l) {
|
||||
img = photo.url_l;
|
||||
} else if (parseInt(photo.width_o) > 1280) {
|
||||
img = 'http://farm'+photo['farm']+'.static.flickr.com/'+photo['server']+
|
||||
'/'+photo['id']+'_' + photo['secret'] + '_b.jpg';
|
||||
|
||||
} else if(photo.url_o) {
|
||||
img = photo.url_o;
|
||||
}
|
||||
break;
|
||||
case 'original':
|
||||
if(photo.url_o) {
|
||||
img = photo.url_o;
|
||||
}
|
||||
break;
|
||||
}
|
||||
var item = {
|
||||
thumb: photos[i].url_t,
|
||||
image: img,
|
||||
title: photos[i].title
|
||||
};
|
||||
Array.prototype.push.call(obj, item);
|
||||
}
|
||||
this.callback.call(this, obj);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Static
|
||||
F.getFeed = function(type, params) {
|
||||
|
||||
}
|
||||
|
||||
})();
|
||||
602
prototype/js/galleria/src/plugins/galleria.history.js
vendored
Normal file
|
|
@ -0,0 +1,602 @@
|
|||
/*!
|
||||
* Galleria History Plugin v 1.0
|
||||
* http://galleria.aino.se
|
||||
*
|
||||
* Original Copyright (c) 2009-2010 Rostislav Hristov
|
||||
* Modified by Aino (c) 2010
|
||||
*
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
var G = window.Galleria;
|
||||
if (typeof G == 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
G.History = (function () {
|
||||
|
||||
var _trigger = function(name) {
|
||||
$(G.History).trigger(
|
||||
$.extend($.Event(name),
|
||||
(function() {
|
||||
var parameters = {},
|
||||
parameterNames = G.History.parameterNames();
|
||||
for (var i = 0, l = parameterNames.length; i < l; i++) {
|
||||
parameters[parameterNames[i]] = G.History.parameter(parameterNames[i]);
|
||||
}
|
||||
return {
|
||||
value: G.History.value(),
|
||||
path: G.History.path(),
|
||||
pathNames: G.History.pathNames(),
|
||||
parameterNames: parameterNames,
|
||||
parameters: parameters,
|
||||
queryString: G.History.queryString()
|
||||
};
|
||||
}).call(G.History)
|
||||
)
|
||||
);
|
||||
},
|
||||
_bind = function(value, data, fn) {
|
||||
fn = fn || function(){};
|
||||
$(G.History).bind(value, data, fn);
|
||||
return G.History;
|
||||
},
|
||||
_hash = function() {
|
||||
var index = _l.href.indexOf('#');
|
||||
return index != -1 ? _ec(_dc(_crawl(_l.href.substr(index + 1), FALSE))) : '';
|
||||
},
|
||||
_window = function() {
|
||||
try {
|
||||
return top.document !== undefined ? top : window;
|
||||
} catch (e) {
|
||||
return window;
|
||||
}
|
||||
},
|
||||
_js = function() {
|
||||
return 'javascript';
|
||||
},
|
||||
_strict = function(value, force) {
|
||||
if (_opts.strict) {
|
||||
value = force ? (value.substr(0, 1) != '/' ? '/' + value : value) : (value == '' ? '/' : value);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
_local = function(value, direction) {
|
||||
return (_msie && _l.protocol == 'file:') ?
|
||||
(direction ? _value.replace(/\?/, '%3F') : _value.replace(/%253F/, '?')) : value;
|
||||
},
|
||||
_crawl = function(value, direction) {
|
||||
if (_opts.crawlable && direction) {
|
||||
return (value != '' ? '!' : '') + value;
|
||||
}
|
||||
return value.replace(/^\!/, '');
|
||||
},
|
||||
_cssint = function(el, value) {
|
||||
return parseInt(el.css(value), 10);
|
||||
},
|
||||
_search = function(el) {
|
||||
var url, s;
|
||||
for (var i = 0, l = el.childNodes.length; i < l; i++) {
|
||||
if (el.childNodes[i].src) {
|
||||
url = String(el.childNodes[i].src);
|
||||
}
|
||||
s = _search(el.childNodes[i]);
|
||||
if (s) {
|
||||
url = s;
|
||||
}
|
||||
}
|
||||
return url;
|
||||
},
|
||||
_listen = function() {
|
||||
if (!_silent) {
|
||||
var hash = _hash(),
|
||||
diff = _value != hash;
|
||||
if (_safari && _version < 523) {
|
||||
if (_length != _h.length) {
|
||||
_length = _h.length;
|
||||
if (typeof _stack[_length - 1] != UNDEFINED) {
|
||||
_value = _stack[_length - 1];
|
||||
}
|
||||
_update(FALSE);
|
||||
}
|
||||
} else if (_msie && _version < 7 && diff) {
|
||||
_l.reload();
|
||||
} else if (diff) {
|
||||
_value = hash;
|
||||
_update(FALSE);
|
||||
}
|
||||
}
|
||||
},
|
||||
_update = function(internal) {
|
||||
_trigger(CHANGE);
|
||||
_trigger(internal ? INTERNAL_CHANGE : EXTERNAL_CHANGE);
|
||||
_st(_track, 10);
|
||||
},
|
||||
_track = function() {
|
||||
var value = (_l.pathname + (/\/$/.test(_l.pathname) ? '' : '/') +
|
||||
(G.History ? G.History.value() : '')).replace(/\/\//, '/').replace(/^\/$/, ''),
|
||||
fn = _t[_opts.tracker];
|
||||
if (typeof fn == FUNCTION) {
|
||||
fn(value);
|
||||
} else if (typeof urchinTracker == FUNCTION) {
|
||||
urchinTracker(value);
|
||||
} else if (typeof pageTracker != UNDEFINED && typeof pageTracker._trackPageview == FUNCTION) {
|
||||
pageTracker._trackPageview(value);
|
||||
} else if (typeof _gaq != UNDEFINED && typeof _gaq.push == FUNCTION) {
|
||||
_gaq.push(['_trackPageview', value]);
|
||||
}
|
||||
},
|
||||
_html = function() {
|
||||
var doc = _frame.contentWindow.document;
|
||||
doc.open();
|
||||
doc.write('<html><head><title>' + _d.title + '</title><script>var ' + ID + ' = "' + _hash() + '";</' + 'script></head></html>');
|
||||
doc.close();
|
||||
},
|
||||
_load = function() {
|
||||
if (!_loaded) {
|
||||
_loaded = TRUE;
|
||||
var body = $('body').ajaxComplete(function() {
|
||||
_unescape.call(this);
|
||||
}).trigger('ajaxComplete');
|
||||
if (_opts.wrap) {
|
||||
var wrap = $('body > *')
|
||||
.wrapAll('<div style="padding:' +
|
||||
(_cssint(body, 'marginTop') + _cssint(body, 'paddingTop')) + 'px ' +
|
||||
(_cssint(body, 'marginRight') + _cssint(body, 'paddingRight')) + 'px ' +
|
||||
(_cssint(body, 'marginBottom') + _cssint(body, 'paddingBottom')) + 'px ' +
|
||||
(_cssint(body, 'marginLeft') + _cssint(body, 'paddingLeft')) + 'px;" />')
|
||||
.parent()
|
||||
.wrap('<div id="' + ID + '" style="height:100%; overflow:auto;' +
|
||||
(_safari ? (window.statusbar.visible && !/chrome/i.test(_agent) ? '' : ' resize:both;') : '') + '" />');
|
||||
$('html, body')
|
||||
.css({
|
||||
height: '100%',
|
||||
margin: 0,
|
||||
padding: 0,
|
||||
overflow: 'hidden'
|
||||
});
|
||||
if (_safari) {
|
||||
$('<style type="text/css" />')
|
||||
.appendTo('head')
|
||||
.text('#' + ID + '::-webkit-resizer { background-color: #fff; }');
|
||||
}
|
||||
}
|
||||
if (_msie && _version < 8) {
|
||||
var frameset = _d.getElementsByTagName('frameset')[0];
|
||||
_frame = _d.createElement((frameset ? '' : 'i') + 'frame');
|
||||
if (frameset) {
|
||||
frameset.insertAdjacentElement('beforeEnd', _frame);
|
||||
frameset[frameset.cols ? 'cols' : 'rows'] += ',0';
|
||||
_frame.src = _js() + ':' + FALSE;
|
||||
_frame.noResize = TRUE;
|
||||
_frame.frameBorder = _frame.frameSpacing = 0;
|
||||
} else {
|
||||
_frame.src = _js() + ':' + FALSE;
|
||||
_frame.style.display = 'none';
|
||||
_d.body.insertAdjacentElement('afterBegin', _frame);
|
||||
}
|
||||
_st(function() {
|
||||
$(_frame).bind('load', function() {
|
||||
var win = _frame.contentWindow;
|
||||
var src = win.location.href;
|
||||
_value = (typeof win[ID] != UNDEFINED ? win[ID] : '');
|
||||
if (_value != _hash()) {
|
||||
_update(FALSE);
|
||||
_l.hash = _local(_crawl(_value, TRUE), TRUE);
|
||||
}
|
||||
});
|
||||
if (typeof _frame.contentWindow[ID] == UNDEFINED) {
|
||||
_html();
|
||||
}
|
||||
}, 50);
|
||||
} else if (_safari) {
|
||||
if (_version < 418) {
|
||||
$(_d.body).append('<form id="' + ID + '" style="position:absolute;top:-9999px;" method="get"></form>');
|
||||
_form = _d.getElementById(ID);
|
||||
}
|
||||
if (typeof _l[ID] == UNDEFINED) {
|
||||
_l[ID] = {};
|
||||
}
|
||||
if (typeof _l[ID][_l.pathname] != UNDEFINED) {
|
||||
_stack = _l[ID][_l.pathname].split(',');
|
||||
}
|
||||
}
|
||||
|
||||
_st(function() {
|
||||
_trigger('init');
|
||||
_update(FALSE);
|
||||
}, 1);
|
||||
|
||||
if ((_msie && _version > 7) || (!_msie && ('on' + HASH_CHANGE) in _t)) {
|
||||
if (_t.addEventListener) {
|
||||
_t.addEventListener(HASH_CHANGE, _listen, false);
|
||||
} else if (_t.attachEvent) {
|
||||
_t.attachEvent('on' + HASH_CHANGE, _listen);
|
||||
}
|
||||
} else {
|
||||
_si(_listen, 50);
|
||||
}
|
||||
|
||||
//$('a').filter('[rel*=address:]').address();
|
||||
}
|
||||
},
|
||||
_unload = function() {
|
||||
if (_t.removeEventListener) {
|
||||
_t.removeEventListener(HASH_CHANGE, _listen, false);
|
||||
} else if (_t.detachEvent) {
|
||||
_t.detachEvent('on' + HASH_CHANGE, _listen);
|
||||
}
|
||||
},
|
||||
_unescape = function() {
|
||||
var base = _l.pathname.replace(/\/$/, ''),
|
||||
fragment = '_escaped_fragment_';
|
||||
if ($('body').html().indexOf(fragment) != -1) {
|
||||
$('a[href]:not([href^=http])', this).each(function() {
|
||||
var href = $(this).attr('href').replace(new RegExp(base + '/?$'), '');
|
||||
if (href == '' || href.indexOf(fragment) != -1) {
|
||||
$(this).attr('href', '#' + decodeURIComponent(href.replace(new RegExp('/(.*)\\?' + fragment + '=(.*)$'), '!$2')));
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
ID = 'jQueryAddress',
|
||||
FUNCTION = 'function',
|
||||
UNDEFINED = 'undefined',
|
||||
HASH_CHANGE = 'hashchange',
|
||||
INIT = 'init',
|
||||
CHANGE = 'change',
|
||||
INTERNAL_CHANGE = 'internalChange',
|
||||
EXTERNAL_CHANGE = 'externalChange',
|
||||
TRUE = true,
|
||||
FALSE = false,
|
||||
_opts = {
|
||||
autoUpdate: TRUE,
|
||||
crawlable: FALSE,
|
||||
history: TRUE,
|
||||
strict: TRUE,
|
||||
wrap: FALSE
|
||||
},
|
||||
_browser = $.browser,
|
||||
_version = parseFloat($.browser.version),
|
||||
_mozilla = _browser.mozilla,
|
||||
_msie = _browser.msie,
|
||||
_opera = _browser.opera,
|
||||
_safari = _browser.safari,
|
||||
_supported = FALSE,
|
||||
_t = _window(),
|
||||
_d = _t.document,
|
||||
_h = _t.history,
|
||||
_l = _t.location,
|
||||
_si = setInterval,
|
||||
_st = setTimeout,
|
||||
_dc = decodeURI,
|
||||
_ec = encodeURI,
|
||||
_agent = navigator.userAgent,
|
||||
_frame,
|
||||
_form,
|
||||
_url = _search(document),
|
||||
_qi = _url ? _url.indexOf('?') : -1,
|
||||
_title = _d.title,
|
||||
_length = _h.length,
|
||||
_silent = FALSE,
|
||||
_loaded = FALSE,
|
||||
_justset = TRUE,
|
||||
_juststart = TRUE,
|
||||
_updating = FALSE,
|
||||
_stack = [],
|
||||
_listeners = {},
|
||||
_value = _hash();
|
||||
|
||||
if (_msie) {
|
||||
_version = parseFloat(_agent.substr(_agent.indexOf('MSIE') + 4));
|
||||
if (_d.documentMode && _d.documentMode != _version) {
|
||||
_version = _d.documentMode != 8 ? 7 : 8;
|
||||
}
|
||||
$(document).bind('propertychange', function() {
|
||||
if (_d.title != _title && _d.title.indexOf('#' + _hash()) != -1) {
|
||||
_d.title = _title;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_supported =
|
||||
(_mozilla && _version >= 1) ||
|
||||
(_msie && _version >= 6) ||
|
||||
(_opera && _version >= 9.5) ||
|
||||
(_safari && _version >= 312);
|
||||
|
||||
if (_supported) {
|
||||
|
||||
for (var i = 1; i < _length; i++) {
|
||||
_stack.push('');
|
||||
}
|
||||
|
||||
_stack.push(_value);
|
||||
|
||||
if (_msie && _l.hash != _value) {
|
||||
_l.hash = '#' + _local(_crawl(_value, TRUE), TRUE);
|
||||
}
|
||||
|
||||
if (_opera) {
|
||||
history.navigationMode = 'compatible';
|
||||
}
|
||||
|
||||
if (_url && _qi != -1) {
|
||||
var param, params = _url.substr(_qi + 1).split('&');
|
||||
for (i = 0; i < params.length; i++) {
|
||||
param = params[i].split('=');
|
||||
if (/^(autoUpdate|crawlable|history|strict|wrap)$/.test(param[0])) {
|
||||
_opts[param[0]] = (isNaN(param[1]) ? /^(true|yes)$/i.test(param[1]) : (parseInt(param[1], 10) !== 0));
|
||||
}
|
||||
if (/^tracker$/.test(param[0])) {
|
||||
_opts[param[0]] = param[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (document.readyState == 'complete') {
|
||||
_load();
|
||||
}
|
||||
$(_load);
|
||||
$(window).bind('unload', _unload);
|
||||
|
||||
} else if ((!_supported && _hash() != '') ||
|
||||
(_safari && _version < 418 && _hash() != '' && _l.search != '')) {
|
||||
_d.open();
|
||||
_d.write('<html><head><meta http-equiv="refresh" content="0;url=' +
|
||||
encodeURI(_l.href.substr(0, _l.href.indexOf('#'))) + '" /></head></html>');
|
||||
_d.close();
|
||||
} else {
|
||||
_track();
|
||||
}
|
||||
|
||||
return {
|
||||
bind: function(type, data, fn) {
|
||||
return _bind(type, data, fn);
|
||||
},
|
||||
init: function(fn) {
|
||||
return _bind(INIT, fn);
|
||||
},
|
||||
change: function(fn) {
|
||||
return _bind(CHANGE, fn);
|
||||
},
|
||||
internalChange: function(fn) {
|
||||
return _bind(INTERNAL_CHANGE, fn);
|
||||
},
|
||||
externalChange: function(fn) {
|
||||
return _bind(EXTERNAL_CHANGE, fn);
|
||||
},
|
||||
baseURL: function() {
|
||||
var url = _l.href;
|
||||
if (url.indexOf('#') != -1) {
|
||||
url = url.substr(0, url.indexOf('#'));
|
||||
}
|
||||
if (/\/$/.test(url)) {
|
||||
url = url.substr(0, url.length - 1);
|
||||
}
|
||||
return url;
|
||||
},
|
||||
autoUpdate: function(value) {
|
||||
if (value !== undefined) {
|
||||
_opts.autoUpdate = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.autoUpdate;
|
||||
},
|
||||
crawlable: function(value) {
|
||||
if (value !== undefined) {
|
||||
_opts.crawlable = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.crawlable;
|
||||
},
|
||||
history: function(value) {
|
||||
if (value !== undefined) {
|
||||
_opts.history = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.history;
|
||||
},
|
||||
strict: function(value) {
|
||||
if (value !== undefined) {
|
||||
_opts.strict = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.strict;
|
||||
},
|
||||
tracker: function(value) {
|
||||
if (value !== undefined) {
|
||||
_opts.tracker = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.tracker;
|
||||
},
|
||||
wrap: function(value) {
|
||||
if (value !== undefined) {
|
||||
_opts.wrap = value;
|
||||
return this;
|
||||
}
|
||||
return _opts.wrap;
|
||||
},
|
||||
update: function() {
|
||||
_updating = TRUE;
|
||||
this.value(_value);
|
||||
_updating = FALSE;
|
||||
return this;
|
||||
},
|
||||
title: function(value) {
|
||||
if (value !== undefined) {
|
||||
value = _dc(value);
|
||||
_st(function() {
|
||||
_title = _d.title = value;
|
||||
if (_juststart && _frame && _frame.contentWindow && _frame.contentWindow.document) {
|
||||
_frame.contentWindow.document.title = value;
|
||||
_juststart = FALSE;
|
||||
}
|
||||
if (!_justset && _mozilla) {
|
||||
_l.replace(_l.href.indexOf('#') != -1 ? _l.href : _l.href + '#');
|
||||
}
|
||||
_justset = FALSE;
|
||||
}, 50);
|
||||
return this;
|
||||
}
|
||||
return _d.title;
|
||||
},
|
||||
value: function(value) {
|
||||
if (value !== undefined) {
|
||||
value = _ec(_dc(_strict(value, TRUE)));
|
||||
if (value == '/') {
|
||||
value = '';
|
||||
}
|
||||
if (_value == value && !_updating) {
|
||||
return;
|
||||
}
|
||||
_justset = TRUE;
|
||||
_value = value;
|
||||
if (_opts.autoUpdate || _updating) {
|
||||
_silent = TRUE;
|
||||
_update(TRUE);
|
||||
_stack[_h.length] = _value;
|
||||
if (_safari) {
|
||||
if (_opts.history) {
|
||||
_l[ID][_l.pathname] = _stack.toString();
|
||||
_length = _h.length + 1;
|
||||
if (_version < 418) {
|
||||
if (_l.search == '') {
|
||||
_form.action = '#' + _crawl(_value, TRUE);
|
||||
_form.submit();
|
||||
}
|
||||
} else if (_version < 523 || _value == '') {
|
||||
var evt = _d.createEvent('MouseEvents');
|
||||
evt.initEvent('click', TRUE, TRUE);
|
||||
var anchor = _d.createElement('a');
|
||||
anchor.href = '#' + _crawl(_value, TRUE);
|
||||
anchor.dispatchEvent(evt);
|
||||
} else {
|
||||
_l.hash = '#' + _crawl(_value, TRUE);
|
||||
}
|
||||
} else {
|
||||
_l.replace('#' + _crawl(_value, TRUE));
|
||||
}
|
||||
} else if (_value != _hash()) {
|
||||
if (_opts.history) {
|
||||
_l.hash = '#' + _local(_crawl(_value, TRUE), TRUE);
|
||||
} else {
|
||||
_l.replace('#' + _crawl(_value, TRUE));
|
||||
}
|
||||
}
|
||||
if ((_msie && _version < 8) && _opts.history) {
|
||||
_st(_html, 50);
|
||||
}
|
||||
if (_safari) {
|
||||
_st(function(){ _silent = FALSE; }, 1);
|
||||
} else {
|
||||
_silent = FALSE;
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
if (!_supported) {
|
||||
return null;
|
||||
}
|
||||
return _dc(_strict(_local(_value, FALSE), FALSE));
|
||||
},
|
||||
path: function(value) {
|
||||
if (value !== undefined) {
|
||||
var qs = this.queryString(),
|
||||
hash = this.hash();
|
||||
this.value(value + (qs ? '?' + qs : '') + (hash ? '#' + hash : ''));
|
||||
return this;
|
||||
}
|
||||
return this.value().split('#')[0].split('?')[0];
|
||||
},
|
||||
queryString: function(value) {
|
||||
if (value !== undefined) {
|
||||
var hash = this.hash();
|
||||
this.value(this.path() + (value ? '?' + value : '') + (hash ? '#' + hash : ''));
|
||||
return this;
|
||||
}
|
||||
var arr = this.value().split('?');
|
||||
return arr.slice(1, arr.length).join('?').split('#')[0];
|
||||
},
|
||||
parameter: function(name, value, append) {
|
||||
var i, params;
|
||||
if (value !== undefined) {
|
||||
var names = this.parameterNames();
|
||||
params = [];
|
||||
for (i = 0; i < names.length; i++) {
|
||||
var n = names[i],
|
||||
v = this.parameter(n);
|
||||
if (typeof v == 'string') {
|
||||
v = [v];
|
||||
}
|
||||
if (n == name) {
|
||||
v = (value === null || value === '') ? [] :
|
||||
(append ? v.concat([value]) : [value]);
|
||||
}
|
||||
for (var j = 0; j < v.length; j++) {
|
||||
params.push(n + '=' + v[j]);
|
||||
}
|
||||
}
|
||||
if ($.inArray(name, names) == -1 && value !== null && value !== '') {
|
||||
params.push(name + '=' + value);
|
||||
}
|
||||
this.queryString(params.join('&'));
|
||||
return this;
|
||||
}
|
||||
value = this.queryString();
|
||||
if (value) {
|
||||
params = value.split('&');
|
||||
var r = [];
|
||||
for (i = 0; i < params.length; i++) {
|
||||
var p = params[i].split('=');
|
||||
if (p[0] == name) {
|
||||
r.push(p[1]);
|
||||
}
|
||||
}
|
||||
if (r.length !== 0) {
|
||||
return r.length != 1 ? r : r[0];
|
||||
}
|
||||
}
|
||||
},
|
||||
pathNames: function() {
|
||||
var path = this.path(),
|
||||
names = path.replace(/\/{2,9}/g, '/').split('/');
|
||||
if (path.substr(0, 1) == '/' || path.length === 0) {
|
||||
names.splice(0, 1);
|
||||
}
|
||||
if (path.substr(path.length - 1, 1) == '/') {
|
||||
names.splice(names.length - 1, 1);
|
||||
}
|
||||
return names;
|
||||
},
|
||||
parameterNames: function() {
|
||||
var qs = this.queryString(),
|
||||
names = [];
|
||||
if (qs && qs.indexOf('=') != -1) {
|
||||
var params = qs.split('&');
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var name = params[i].split('=')[0];
|
||||
if ($.inArray(name, names) == -1) {
|
||||
names.push(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
return names;
|
||||
},
|
||||
hash: function(value) {
|
||||
if (value !== undefined) {
|
||||
this.value(this.value().split('#')[0] + (value ? '#' + value : ''));
|
||||
return this;
|
||||
}
|
||||
var arr = this.value().split('#');
|
||||
return arr.slice(1, arr.length).join('#');
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
}(jQuery));
|
||||
93
prototype/js/galleria/src/plugins/galleria.ssp.js
vendored
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
/*!
|
||||
* Galleria SlideShowPro Plugin v 1.1
|
||||
* http://galleria.aino.se
|
||||
*
|
||||
* Copyright 2010, Aino
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
|
||||
var G = window.Galleria;
|
||||
if (typeof G == 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
var S = G.SSP = function(url) {
|
||||
var query = "select * from xml where url='" + url + "' limit 1";
|
||||
var encodedQuery = encodeURIComponent(query.toLowerCase());
|
||||
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodedQuery + '&format=json&callback=?';
|
||||
var scope = this;
|
||||
|
||||
if (url.substr(0,7) == 'http://') {
|
||||
var a = document.createElement('a');
|
||||
a.href = url;
|
||||
this.domain = a.protocol+'//'+a.hostname;
|
||||
this.path = url.substring(0,(url.lastIndexOf("/")) + 1);
|
||||
}
|
||||
|
||||
$.getJSON(yql, function(data) {
|
||||
scope.data = data;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
S.prototype = {
|
||||
data: null,
|
||||
domain: '',
|
||||
path:'',
|
||||
getAlbum: function(index, callback) {
|
||||
this.ready(function() {
|
||||
var data = this.parseData(index);
|
||||
callback.call(this, data);
|
||||
});
|
||||
return this;
|
||||
},
|
||||
getAbsoluteUrl: function(path) {
|
||||
if (path.substr(0,7) != 'http://') {
|
||||
if (path.substr(0,1) != '/') {
|
||||
path = this.path + path;
|
||||
} else {
|
||||
path = this.domain + path;
|
||||
}
|
||||
}
|
||||
return path;
|
||||
},
|
||||
parseData: function(index) {
|
||||
var albums = this.data.query.results.gallery.album;
|
||||
var album = albums[index] || albums;
|
||||
var path = album.lgPath || '';
|
||||
var thumbPath = album.tnPath || path;
|
||||
|
||||
var arr = [];
|
||||
var scope = this;
|
||||
|
||||
G.prototype.loop(album.img, function(img) {
|
||||
var obj = {
|
||||
image: scope.getAbsoluteUrl(path+img.src),
|
||||
thumb: scope.getAbsoluteUrl(thumbPath+img.src),
|
||||
title: img.title
|
||||
};
|
||||
if (img.caption) {
|
||||
obj.description = img.caption
|
||||
}
|
||||
if (img.link) {
|
||||
obj.link = img.link;
|
||||
}
|
||||
arr.push(obj);
|
||||
});
|
||||
return arr;
|
||||
},
|
||||
ready: function(callback) {
|
||||
var scope = this;
|
||||
G.prototype.wait(function() {
|
||||
return !!scope.data;
|
||||
}, function() {
|
||||
callback.call(scope);
|
||||
}, function() {
|
||||
G.raise('YQL not available.')
|
||||
}, 10000);
|
||||
}
|
||||
}
|
||||
|
||||
})();
|
||||
BIN
prototype/js/galleria/src/themes/classic/classic-loader.gif
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
prototype/js/galleria/src/themes/classic/classic-map.png
Normal file
|
After Width: | Height: | Size: 657 B |
|
|
@ -0,0 +1,38 @@
|
|||
.galleria-container{height:400px;position:relative;overflow:hidden;background:#0F0F0F;}
|
||||
.galleria-container img{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;}
|
||||
.galleria-stage{position:absolute;top:10px;bottom:50px;left:10px;right:10px;overflow:hidden;}
|
||||
.galleria-thumbnails-container{height:40px;bottom:0;position:absolute;left:10px;right:10px;z-index:2;}
|
||||
.galleria-carousel .galleria-thumbnails-list{margin-left:30px;margin-right:30px;}
|
||||
.galleria-thumbnails .galleria-image{height:30px;width:50px;background:#000;margin:0 5px 0 0;border:1px solid #000;;float:left;cursor:pointer;}
|
||||
.galleria-counter{position:absolute;bottom:10px;left:10px;text-align:right;color:#fff;font:normal 11px/1 arial,sans-serif;z-index:2;}
|
||||
.galleria-loader{background:#000;width:20px;height:20px;position:absolute;top:10px;right:10px;z-index:2;display:none;background:url(classic-loader.gif) no-repeat 2px 2px;}
|
||||
.galleria-info{width:50%;top:15px;left:15px;z-index:2;position:absolute;}
|
||||
.galleria-info-text{background-color:rgba(0,0,0,.9);*background-color:#000;padding: 12px;display:none;}
|
||||
.galleria-info-title{font:bold 12px/1.1 arial,sans-serif;margin:0;color:#fff;}
|
||||
.galleria-info-description{font:italic 12px/1.4 georgia,serif;margin:0;color:#bbb;}
|
||||
.galleria-info-title+.galleria-info-description{margin-top:7px;}
|
||||
.galleria-info-close{width:9px;height:9px;position:absolute;top:5px;right:5px;background-position:-753px -11px;opacity:.5;cursor:pointer;display:none;}
|
||||
.galleria-info-link{background-position:-669px -5px;opacity:.8;position:absolute;width:20px;height:20px;cursor:pointer;background-color:#000;}
|
||||
.galleria-info-link:hover,
|
||||
.galleria-info-close:hover{opacity:.5;}
|
||||
.galleria-image-nav{position:absolute;top:50%;margin-top:-15px;width:100%;height:31px;left:0;}
|
||||
.galleria-image-nav-left,
|
||||
.galleria-image-nav-right{opacity:.7;cursor:pointer;width:16px;height:31px;position:absolute;left:10px;z-index:2;}
|
||||
.galleria-image-nav-right{left:auto;right:10px;background-position:-300px 0;z-index:2;}
|
||||
.galleria-image-nav-left:hover,
|
||||
.galleria-image-nav-right:hover{opacity:.5;}
|
||||
.galleria-thumb-nav-left,
|
||||
.galleria-thumb-nav-right{cursor:pointer;display:none;background-position:-495px 0;border-right:1px solid #333;position:absolute;left:0;top:0;height:30px;width:23px;z-index:3;opacity:.8;}
|
||||
.galleria-thumb-nav-right{background-position:-578px 0;border-left:1px solid #333;border-right:none;right:0;left:auto;}
|
||||
.galleria-thumbnails-container .disabled,
|
||||
.galleria-thumbnails-container .disabled:hover{opacity:.2;cursor:default;}
|
||||
.galleria-thumb-nav-left:hover,
|
||||
.galleria-thumb-nav-right:hover{opacity:1;background-color:#111;}
|
||||
.galleria-carousel .galleria-thumb-nav-left,
|
||||
.galleria-carousel .galleria-thumb-nav-right{display:block;}
|
||||
.galleria-thumb-nav-left,
|
||||
.galleria-thumb-nav-right,
|
||||
.galleria-info-link,
|
||||
.galleria-info-close,
|
||||
.galleria-image-nav-left,
|
||||
.galleria-image-nav-right{background-image:url(classic-map.png);background-repeat:no-repeat;}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
.galleria-container{height:400px;position:relative;overflow:hidden;background:#0F0F0F;}
|
||||
.galleria-container img{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;}
|
||||
.galleria-stage{position:absolute;top:10px;bottom:50px;left:10px;right:10px;overflow:hidden;}
|
||||
.galleria-thumbnails-container{height:40px;bottom:0;position:absolute;left:10px;right:10px;z-index:2;}
|
||||
.galleria-carousel .galleria-thumbnails-list{margin-left:30px;margin-right:30px;}
|
||||
.galleria-thumbnails .galleria-image{height:30px;width:50px;background:#000;margin:0 5px 0 0;border:1px solid #000;;float:left;cursor:pointer;}
|
||||
.galleria-counter{position:absolute;bottom:10px;left:10px;text-align:right;color:#fff;font:normal 11px/1 arial,sans-serif;z-index:2;}
|
||||
.galleria-loader{background:#000;width:20px;height:20px;position:absolute;top:10px;right:10px;z-index:2;display:none;background:url(classic-loader.gif) no-repeat 2px 2px;}
|
||||
.galleria-info{width:50%;top:15px;left:15px;z-index:2;position:absolute;}
|
||||
.galleria-info-text{background-color:rgba(0,0,0,.9);*background-color:#000;padding: 12px;display:none;}
|
||||
.galleria-info-title{font:bold 12px/1.1 arial,sans-serif;margin:0;color:#fff;}
|
||||
.galleria-info-description{font:italic 12px/1.4 georgia,serif;margin:0;color:#bbb;}
|
||||
.galleria-info-title+.galleria-info-description{margin-top:7px;}
|
||||
.galleria-info-close{width:9px;height:9px;position:absolute;top:5px;right:5px;background-position:-753px -11px;opacity:.5;cursor:pointer;display:none;}
|
||||
.galleria-info-link{background-position:-669px -5px;opacity:.8;position:absolute;width:20px;height:20px;cursor:pointer;background-color:#000;}
|
||||
.galleria-info-link:hover,
|
||||
.galleria-info-close:hover{opacity:.5;}
|
||||
.galleria-image-nav{position:absolute;top:50%;margin-top:-15px;width:100%;height:31px;left:0;}
|
||||
.galleria-image-nav-left,
|
||||
.galleria-image-nav-right{opacity:.7;cursor:pointer;width:16px;height:31px;position:absolute;left:10px;z-index:2;}
|
||||
.galleria-image-nav-right{left:auto;right:10px;background-position:-300px 0;z-index:2;}
|
||||
.galleria-image-nav-left:hover,
|
||||
.galleria-image-nav-right:hover{opacity:.5;}
|
||||
.galleria-thumb-nav-left,
|
||||
.galleria-thumb-nav-right{cursor:pointer;display:none;background-position:-495px 0;border-right:1px solid #333;position:absolute;left:0;top:0;height:30px;width:23px;z-index:3;opacity:.8;}
|
||||
.galleria-thumb-nav-right{background-position:-578px 0;border-left:1px solid #333;border-right:none;right:0;left:auto;}
|
||||
.galleria-thumbnails-container .disabled,
|
||||
.galleria-thumbnails-container .disabled:hover{opacity:.2;cursor:default;}
|
||||
.galleria-thumb-nav-left:hover,
|
||||
.galleria-thumb-nav-right:hover{opacity:1;background-color:#111;}
|
||||
.galleria-carousel .galleria-thumb-nav-left,
|
||||
.galleria-carousel .galleria-thumb-nav-right{display:block;}
|
||||
.galleria-thumb-nav-left,
|
||||
.galleria-thumb-nav-right,
|
||||
.galleria-info-link,
|
||||
.galleria-info-close,
|
||||
.galleria-image-nav-left,
|
||||
.galleria-image-nav-right{background-image:url(classic-map.png);background-repeat:no-repeat;}
|
||||
50
prototype/js/galleria/src/themes/classic/galleria.classic.js
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
Galleria.themes.create({
|
||||
name: 'classic',
|
||||
author: 'Galleria',
|
||||
version: '1.1',
|
||||
css: 'galleria.classic.css',
|
||||
defaults: {
|
||||
transition: 'slide'
|
||||
},
|
||||
init: function(options) {
|
||||
|
||||
this.$('loader').show().fadeTo(200, .4);
|
||||
this.$('counter').show().fadeTo(200, .4);
|
||||
|
||||
this.$('thumbnails').children().hover(function() {
|
||||
$(this).not('.active').fadeTo(200, 1);
|
||||
}, function() {
|
||||
$(this).not('.active').fadeTo(400, .4);
|
||||
}).not('.active').css('opacity',.4);
|
||||
|
||||
this.$('container').hover(this.proxy(function() {
|
||||
this.$('image-nav-left,image-nav-right,counter').fadeIn(200);
|
||||
}), this.proxy(function() {
|
||||
this.$('image-nav-left,image-nav-right,counter').fadeOut(500);
|
||||
}));
|
||||
|
||||
this.$('image-nav-left,image-nav-right,counter').hide();
|
||||
|
||||
var elms = this.$('info-link,info-close,info-text').click(function() {
|
||||
elms.toggle();
|
||||
});
|
||||
|
||||
this.bind(Galleria.LOADSTART, function(e) {
|
||||
if (!e.cached) {
|
||||
this.$('loader').show().fadeTo(200, .4);
|
||||
}
|
||||
if (this.hasInfo()) {
|
||||
this.$('info').show();
|
||||
} else {
|
||||
this.$('info').hide();
|
||||
}
|
||||
$(e.thumbTarget).parent().addClass('active').css('opacity',1)
|
||||
.siblings('.active').removeClass('active').fadeTo(400,.4);
|
||||
});
|
||||
|
||||
this.bind(Galleria.LOADFINISH, function(e) {
|
||||
this.$('loader').fadeOut(200);
|
||||
$(e.thumbTarget).css('opacity',1)
|
||||
});
|
||||
}
|
||||
});
|
||||
BIN
prototype/js/galleria/src/themes/fullscreen/b.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
prototype/js/galleria/src/themes/fullscreen/fix.gif
Normal file
|
After Width: | Height: | Size: 43 B |
|
|
@ -0,0 +1,27 @@
|
|||
html,body{height:100%;margin:0;padding:0;overflow:hidden;}
|
||||
.galleria-container{height:100%;overflow:hidden;}
|
||||
.galleria-container img{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none}
|
||||
.galleria-stage{height:100%;width:100%;position:absolute;}
|
||||
.galleria-thumbnails-container{position:absolute;bottom:0;z-index:5;left:10px;right:10px;padding-top:45px;*background:url(fix.gif);}
|
||||
.galleria-thumbnails-list{height:35px;border:10px solid #fff;border-width: 10px 0;background:#fff;}
|
||||
.galleria-carousel .galleria-thumbnails-list{border-left-width:25px;border-right-width:25px;}
|
||||
.galleria-thumbnails{background:#fff;overflow:hidden;}
|
||||
.galleria-thumbnails .galleria-image{width:50px;height:35px;float:left;cursor:pointer;margin-right:5px;}
|
||||
.galleria-thumbnails .active{cursor:default;}
|
||||
.galleria-border{border:10px solid #fff;position:absolute;top:0;bottom:0;left:0;right:0;z-index:3;}
|
||||
.galleria-image-nav{width:100%;height:100%;position:absolute;top:0;left:0;z-index:4;}
|
||||
.galleria-image-nav-right,
|
||||
.galleria-image-nav-left{width:150px;right:0;top:0;height:100%;background: url(r.gif) no-repeat 50% 50%;position:absolute;cursor:pointer;}
|
||||
.galleria-image-nav-left{left:0;right:auto;background-image:url(l.gif);}
|
||||
.galleria-loader{width:30px;height:30px;background:#fff url(loader.gif) no-repeat 50% 50%;position:absolute;top:50%;left:50%;margin-top:-15px;margin-left:-15px;z-index:3;}
|
||||
.galleria-info,
|
||||
.galleria-counter{position:absolute;bottom:45px;padding:10px;color:#fff;left:10px;right:10px;z-index:3;font:12px arial,sans-serif;}
|
||||
.galleria-counter{text-align:right;}
|
||||
.galleria-info-text{z-index:4;}
|
||||
.galleria-info-text *{display:inline;font-size:12px;}
|
||||
.galleria-info-title{font-weight:bold;margin-right:8px;}
|
||||
.galleria-thumb-nav-left,
|
||||
.galleria-thumb-nav-right{cursor:pointer;display:none;background:url(p.gif) no-repeat 0 50%;position:absolute;left:10px;top:57px;height:30px;width:12px;z-index:3;opacity:.8;}
|
||||
.galleria-thumb-nav-right{background:url(n.gif) no-repeat 100% 50%;right:10px;left:auto;}
|
||||
.galleria-carousel .galleria-thumb-nav-left,
|
||||
.galleria-carousel .galleria-thumb-nav-right{display:block;}
|
||||
93
prototype/js/galleria/src/themes/fullscreen/galleria.fullscreen.js
vendored
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
Galleria.themes.create({
|
||||
name: 'fullscreen',
|
||||
author: 'Galleria',
|
||||
version: '1.1',
|
||||
css: 'galleria.fullscreen.css',
|
||||
defaults: {
|
||||
transition: 'none',
|
||||
image_crop: true,
|
||||
frame: true,
|
||||
frame_color: '#fff',
|
||||
hide_dock: true
|
||||
},
|
||||
init: function(options) {
|
||||
var speed = Galleria.IE ? 0 : 200;
|
||||
var open = false;
|
||||
|
||||
this.$('thumbnails').children().hover(function() {
|
||||
$(this).not('.active').fadeTo(speed, .4);
|
||||
}, function() {
|
||||
$(this).not('.active').fadeTo(speed, 1);
|
||||
});
|
||||
|
||||
if (options.frame) {
|
||||
this.addElement('border');
|
||||
this.append({stage: 'border'});
|
||||
} else {
|
||||
options.frame_color = 'transparent';
|
||||
}
|
||||
|
||||
this.$('thumbnails-list, border').css('border-color', options.frame_color);
|
||||
this.$('thumbnails, thumbnails-list, stage').css('background', options.frame_color);
|
||||
|
||||
$(window).bind('resize', this.proxy(function() {
|
||||
var w = $(window).width();
|
||||
var h = $(window).height();
|
||||
this.rescale(w,h);
|
||||
}));
|
||||
|
||||
if (options.hide_dock && options.thumbnails) {
|
||||
var ic = this.$('info,counter').css({
|
||||
opacity: .7,
|
||||
bottom: 10
|
||||
});
|
||||
var tc = this.$('thumbnails-container');
|
||||
var b = this.$('thumbnails').find('.galleria-image').css('height').replace('px','');
|
||||
b = (parseInt(b) + 10) * -1;
|
||||
tc.hover(function(e) {
|
||||
ic.css('bottom',10).animate({bottom: b*-1+10, opacity:1},{queue:false, duration:200});
|
||||
$(e.currentTarget).animate({bottom: 0}, {queue:false, duration: 200});
|
||||
open = true;
|
||||
}, function(e) {
|
||||
ic.animate({bottom: 10, opacity:.7},{queue:false, duration:400});
|
||||
$(e.currentTarget).animate({bottom: b}, {queue:false, duration: 400});
|
||||
open = false;
|
||||
}).css('bottom', b);
|
||||
}
|
||||
if (!options.thumbnails) {
|
||||
this.$('info,counter').css('bottom',10);
|
||||
}
|
||||
|
||||
this.$('image-nav-left, image-nav-right').css('opacity',0.01).hover(function() {
|
||||
$(this).animate({opacity:1},100);
|
||||
}, function() {
|
||||
$(this).animate({opacity:0});
|
||||
});
|
||||
|
||||
this.bind(Galleria.LOADSTART, function(e) {
|
||||
if (!e.cached) {
|
||||
this.$('loader').show().fadeTo(100, 1);
|
||||
}
|
||||
$(e.thumbTarget).parent().addClass('active').css('opacity',.5).siblings('.active').removeClass('active').css('opacity',1);
|
||||
});
|
||||
|
||||
this.bind(Galleria.LOADFINISH, function(e) {
|
||||
this.$('loader').fadeOut(300);
|
||||
});
|
||||
|
||||
this.attachKeyboard({
|
||||
left: this.prev,
|
||||
right: this.next,
|
||||
up: function(e) {
|
||||
if (!open) {
|
||||
tc.trigger('mouseover');
|
||||
}
|
||||
e.preventDefault();
|
||||
},
|
||||
down: function(e) {
|
||||
tc.trigger('mouseout');
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
BIN
prototype/js/galleria/src/themes/fullscreen/i.png
Normal file
|
After Width: | Height: | Size: 179 B |
BIN
prototype/js/galleria/src/themes/fullscreen/l.gif
Normal file
|
After Width: | Height: | Size: 82 B |
BIN
prototype/js/galleria/src/themes/fullscreen/loader.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
prototype/js/galleria/src/themes/fullscreen/n.gif
Normal file
|
After Width: | Height: | Size: 61 B |
BIN
prototype/js/galleria/src/themes/fullscreen/p.gif
Normal file
|
After Width: | Height: | Size: 61 B |
BIN
prototype/js/galleria/src/themes/fullscreen/r.gif
Normal file
|
After Width: | Height: | Size: 82 B |
BIN
prototype/js/galleria/src/themes/lightbox/close.png
Normal file
|
After Width: | Height: | Size: 459 B |
|
|
@ -0,0 +1,22 @@
|
|||
.galleria-overlay{background:#000;opacity:.9;width:100%;height:100%;position:fixed;top:0;left:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter: alpha(opacity=80);}
|
||||
.galleria-popup,
|
||||
.galleria-container{width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden;}
|
||||
.galleria-stage{position:absolute;top:20px;bottom:40px;left:50px;right:50px;overflow:visible;}
|
||||
.galleria-thumbnails{overflow:hidden;}
|
||||
.galleria-thumbnails .galleria-image{width:100px;height:60px;float:left;cursor:pointer;margin: 0 1px 1px 0;}
|
||||
.galleria-images img{border:10px solid #fff;-moz-border-radius: 3px;}
|
||||
.galleria-image-nav{height:300px;position:absolute;top:50%;margin-top:-150px;z-index:1;width:100%;display:none;}
|
||||
.galleria-image-nav-left,
|
||||
.galleria-image-nav-right{cursor:pointer;width:50px;height:300px;left:-45px;background:url(p.png) no-repeat 50% 50%;position:absolute;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter: alpha(opacity=80);}
|
||||
.galleria-image-nav-right{right:-45px;left:auto;background-image:url(n.png);}
|
||||
.galleria-square{width:400px;height:400px;position:absolute;background:#fff;}
|
||||
.galleria-info{position:absolute;padding:10px;z-index:2;color:#fff;margin-top:10px;text-align:center;left:10px;right:10px;}
|
||||
.galleria-info {font:12px/1.4 arial,sans-serif;text-align:center;}
|
||||
.galleria-info-description{margin-right:8px;font-weight:bold;}
|
||||
.galleria-counter{opacity:.4;position:absolute;top:-10px;left:-30px;z-index:2;color:#bbb;font:12px/1.4 arial,sans-serif;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter: alpha(opacity=40);}
|
||||
.galleria-counter span{color:#fff;}
|
||||
.galleria-info-text *{display:inline;}
|
||||
.galleria-loader{position:absolute;height:48px;width:48px;background:#fff url(loader.gif) no-repeat 50% 50%;top:50%;left:50%;margin-left:-24px;margin-top:-24px;opacity:.6;z-index:2;display:none;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";filter: alpha(opacity=60);}
|
||||
.galleria-close{position:absolute;top:10px;right:10px;color:#fff;font:12px/1.4 arial,sans-serif;z-index:2;text-indent:-10000px;width:20px;height:20px;background:url(close.png) no-repeat;opacity:.5;cursor:pointer;}
|
||||
.galleria-close:hover{opacity:1;}
|
||||
.galleria-square{-moz-border-radius: 3px;}
|
||||
142
prototype/js/galleria/src/themes/lightbox/galleria.lightbox.js
vendored
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
Galleria.transitions.add('lightbox', function(params, complete) {
|
||||
var sq = this.$('square');
|
||||
var anim = function() {
|
||||
var img = $(params.next).show().css('visibility','hidden');
|
||||
var w = params.next.width + 20;
|
||||
var h = params.next.height + 20;
|
||||
sq.show().animate({
|
||||
width: w,
|
||||
height: h,
|
||||
top: params.next.style.top,
|
||||
left: params.next.style.left
|
||||
},{
|
||||
easing: 'swing',
|
||||
duration: params.speed,
|
||||
complete: function() {
|
||||
complete();
|
||||
img.hide().css('visibility','visible').fadeIn(params.speed, function() {
|
||||
sq.hide();
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
if (params.prev) {
|
||||
$(params.prev).hide();
|
||||
}
|
||||
anim();
|
||||
});
|
||||
|
||||
Galleria.themes.create({
|
||||
name: 'lightbox',
|
||||
author: 'Galleria',
|
||||
version: '1.0',
|
||||
css: 'galleria.lightbox.css',
|
||||
defaults: {
|
||||
carousel: false,
|
||||
transition: 'lightbox',
|
||||
transition_speed: 200,
|
||||
image_margin: 10,
|
||||
max_scale_ratio: 1,
|
||||
thumb_quality: true,
|
||||
opacity: .8,
|
||||
show: false,
|
||||
height: 'auto'
|
||||
},
|
||||
init: function(options) {
|
||||
var showing = false;
|
||||
var anim = options.transition == 'lightbox';
|
||||
var resize = this.proxy(function() {
|
||||
this.rescale();
|
||||
var img = this.controls.getActive().image;
|
||||
if (img) {
|
||||
var t;
|
||||
if (anim) {
|
||||
this.$('square').css({
|
||||
width: img.width,
|
||||
height: img.height,
|
||||
left: img.style.left,
|
||||
top: img.style.top
|
||||
});
|
||||
}
|
||||
window.clearTimeout(t);
|
||||
this.$('info').hide();
|
||||
t = window.setTimeout(this.proxy(function() {
|
||||
var d = this.getDimensions(img);
|
||||
this.$('info').fadeIn(this.options.transition_speed).css({
|
||||
bottom: d.top - 8
|
||||
});
|
||||
}), 200);
|
||||
}
|
||||
});
|
||||
var re = function(elem) {
|
||||
return elem.className.replace(/.*\-(right|left)/,'$1');
|
||||
};
|
||||
var close = this.proxy(function() {
|
||||
showing = false;
|
||||
this.$('popup,close,square').hide();
|
||||
this.$('overlay').fadeOut(options.transition_speed);
|
||||
this.detachKeyboard();
|
||||
$(window).unbind('resize', resize);
|
||||
$(this.controls.getActive().image).css('visibility','hidden');
|
||||
this.setActive(null);
|
||||
});
|
||||
|
||||
this.addElement('overlay','popup','square','close');
|
||||
this.$('overlay').css('opacity', options.opacity);
|
||||
this.append({
|
||||
'images': 'square',
|
||||
'popup': 'container',
|
||||
'target': 'thumbnails-container',
|
||||
'container' : 'close'
|
||||
});
|
||||
|
||||
this.$('overlay,popup').hide().appendTo('body');
|
||||
|
||||
this.$('square').css({
|
||||
top: this.stageHeight/2 - 200,
|
||||
left: this.stageWidth/2 - 200
|
||||
}).hide();
|
||||
|
||||
this.$('close').text('close').bind('click',close).hide();
|
||||
this.$('image-nav').show();
|
||||
this.$('image-nav-right,image-nav-left').css('opacity',1).hover(function() {
|
||||
var o = { opacity: 0.7 };
|
||||
o[re(this)] = -47;
|
||||
$(this).animate(o, 200);
|
||||
}, function() {
|
||||
var o = { opacity: 1 };
|
||||
o[re(this)] = -45;
|
||||
$(this).animate(o, 200);
|
||||
});
|
||||
|
||||
this.bind(Galleria.LOADSTART, function(e) {
|
||||
if (!showing) {
|
||||
showing = true;
|
||||
this.$('overlay,popup,close').show();
|
||||
if (anim) {
|
||||
this.$('square').show();
|
||||
}
|
||||
$(window).bind('resize',resize);
|
||||
resize();
|
||||
this.attachKeyboard({
|
||||
left: this.prev,
|
||||
right: this.next,
|
||||
backspace: close,
|
||||
escape: close
|
||||
});
|
||||
}
|
||||
this.$('info').hide();
|
||||
if (!e.cached) {
|
||||
this.$('loader').show();
|
||||
}
|
||||
});
|
||||
this.bind(Galleria.LOADFINISH, function(e) {
|
||||
var d = this.getDimensions(e.imageTarget);
|
||||
var i = this.$('info');
|
||||
this.$('loader').hide();
|
||||
window.setTimeout(function() {
|
||||
i.css('bottom', d.top - 8).fadeIn(options.transition_speed);
|
||||
}, anim ? options.transition_speed : 1);
|
||||
});
|
||||
}
|
||||
});
|
||||
BIN
prototype/js/galleria/src/themes/lightbox/loader.gif
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
prototype/js/galleria/src/themes/lightbox/n.png
Normal file
|
After Width: | Height: | Size: 323 B |
BIN
prototype/js/galleria/src/themes/lightbox/p.png
Normal file
|
After Width: | Height: | Size: 326 B |
39
prototype/js/gallery.js
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
/**
|
||||
* @author Christopher Wallace
|
||||
*/
|
||||
|
||||
jQuery(window).load(function(){
|
||||
|
||||
// Lazy Load images below the fold
|
||||
jQuery(".content img.thumbnail").lazyload();
|
||||
|
||||
// The magic sliding panels
|
||||
jQuery('.entry-content a span.slide-title').css({
|
||||
opacity : '0.0'
|
||||
}).parent('a').append('<span class="cover-up"></span>');
|
||||
jQuery('.entry-content a').mouseover(function(e){
|
||||
jQuery(this).find('img.thumbnail').stop().animate({
|
||||
marginTop : '-25px'
|
||||
}, 100).parent('a').find('span.slide-title').stop().fadeTo("slow",1.0);
|
||||
});
|
||||
jQuery('.entry-content a').mouseout(function(e){
|
||||
jQuery(this).find('img.thumbnail').stop().animate({
|
||||
marginTop : '0'
|
||||
}, 100).parent('a').find('span.slide-title').stop().fadeTo("slow",0.0);
|
||||
});
|
||||
|
||||
// Comment Author URL hover effect
|
||||
jQuery('.comment-author a.url').mouseover(function(e){
|
||||
var url = jQuery(this).attr('href');
|
||||
jQuery(this).parent('span').append('<span class="hover-url">'+url+'</span>');
|
||||
})
|
||||
jQuery('.comment-author a.url').mouseout(function(e){
|
||||
jQuery(this).parent('span').find('.hover-url').remove();
|
||||
})
|
||||
|
||||
jQuery('#footer .widgetcontainer:nth-child(3n+1)').addClass('reset');
|
||||
jQuery('.ie6 #footer .widgetcontainer:nth-child(3n+1),.ie7 #footer .widgetcontainer:nth-child(3n+1)').css({
|
||||
clear : 'left'
|
||||
});
|
||||
|
||||
});
|
||||
1
prototype/js/hoverIntent.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode}catch(e){p=this}}if(p==this){return false}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.mouseover(handleHover).mouseout(handleHover)}})(jQuery);
|
||||
154
prototype/js/jquery-1.4.2.min.js
vendored
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
/*!
|
||||
* jQuery JavaScript Library v1.4.2
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2010, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2010, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Sat Feb 13 22:33:48 2010 -0500
|
||||
*/
|
||||
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
|
||||
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
|
||||
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
|
||||
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
|
||||
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
|
||||
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
|
||||
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
|
||||
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
|
||||
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
|
||||
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
|
||||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
|
||||
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
|
||||
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
|
||||
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
|
||||
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
|
||||
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
|
||||
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
|
||||
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
|
||||
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
|
||||
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
|
||||
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
|
||||
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
|
||||
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
|
||||
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
|
||||
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
|
||||
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
|
||||
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
|
||||
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
|
||||
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
|
||||
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
|
||||
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
|
||||
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
|
||||
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
|
||||
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
|
||||
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
|
||||
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
|
||||
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
|
||||
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
|
||||
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
|
||||
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
|
||||
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
|
||||
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
|
||||
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
|
||||
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
|
||||
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
|
||||
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
|
||||
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
|
||||
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
|
||||
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
|
||||
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
|
||||
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
|
||||
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
|
||||
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
|
||||
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
|
||||
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
|
||||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
|
||||
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
|
||||
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
|
||||
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
|
||||
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
|
||||
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
|
||||
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
|
||||
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
|
||||
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
|
||||
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
|
||||
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
|
||||
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
|
||||
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
|
||||
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
|
||||
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
|
||||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
|
||||
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
|
||||
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
|
||||
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
|
||||
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
|
||||
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
|
||||
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
|
||||
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
|
||||
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
|
||||
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
|
||||
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
|
||||
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
|
||||
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
|
||||
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
|
||||
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
|
||||
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
|
||||
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
|
||||
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
|
||||
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
|
||||
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
|
||||
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
|
||||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
|
||||
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
|
||||
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
|
||||
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
|
||||
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
|
||||
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
|
||||
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
|
||||
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
|
||||
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
|
||||
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
|
||||
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
|
||||
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
|
||||
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
|
||||
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
|
||||
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
|
||||
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
|
||||
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
|
||||
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
|
||||
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
|
||||
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
|
||||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
|
||||
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
|
||||
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
|
||||
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
|
||||
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
|
||||
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
|
||||
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
|
||||
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
|
||||
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
|
||||
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
|
||||
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
|
||||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
|
||||
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
|
||||
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
|
||||
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
|
||||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
|
||||
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
|
||||
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
|
||||
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
|
||||
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
|
||||
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
|
||||
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
|
||||
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
|
||||
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
|
||||
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
|
||||
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
|
||||
1
prototype/js/jquery.lazyload.pack.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(5($){$.J.L=5(r){8 1={d:0,A:0,b:"h",v:"N",3:4};6(r){$.D(1,r)}8 m=9;6("h"==1.b){$(1.3).p("h",5(b){8 C=0;m.t(5(){6(!$.k(9,1)&&!$.l(9,1)){$(9).z("o")}j{6(C++>1.A){g B}}});8 w=$.M(m,5(f){g!f.e});m=$(w)})}g 9.t(5(){8 2=9;$(2).c("s",$(2).c("i"));6("h"!=1.b||$.k(2,1)||$.l(2,1)){6(1.u){$(2).c("i",1.u)}j{$(2).K("i")}2.e=B}j{2.e=x}$(2).T("o",5(){6(!9.e){$("<V />").p("X",5(){$(2).Y().c("i",$(2).c("s"))[1.v](1.Z);2.e=x}).c("i",$(2).c("s"))}});6("h"!=1.b){$(2).p(1.b,5(b){6(!2.e){$(2).z("o")}})}})};$.k=5(f,1){6(1.3===E||1.3===4){8 7=$(4).F()+$(4).O()}j{8 7=$(1.3).n().G+$(1.3).F()}g 7<=$(f).n().G-1.d};$.l=5(f,1){6(1.3===E||1.3===4){8 7=$(4).I()+$(4).U()}j{8 7=$(1.3).n().q+$(1.3).I()}g 7<=$(f).n().q-1.d};$.D($.P[\':\'],{"Q-H-7":"$.k(a, {d : 0, 3: 4})","R-H-7":"!$.k(a, {d : 0, 3: 4})","S-y-7":"$.l(a, {d : 0, 3: 4})","q-y-7":"!$.l(a, {d : 0, 3: 4})"})})(W);',62,62,'|settings|self|container|window|function|if|fold|var|this||event|attr|threshold|loaded|element|return|scroll|src|else|belowthefold|rightoffold|elements|offset|appear|bind|left|options|original|each|placeholder|effect|temp|true|of|trigger|failurelimit|false|counter|extend|undefined|height|top|the|width|fn|removeAttr|lazyload|grep|show|scrollTop|expr|below|above|right|one|scrollLeft|img|jQuery|load|hide|effectspeed'.split('|'),0,{}))
|
||||
1
prototype/js/superfish.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
(function(b){b.fn.superfish=function(k){var g=b.fn.superfish,j=g.c,f=b(['<span class="',j.arrowClass,'"> »</span>'].join("")),i=function(){var c=b(this),l=d(c);clearTimeout(l.sfTimer);c.showSuperfishUl().siblings().hideSuperfishUl()},e=function(){var c=b(this),m=d(c),l=g.op;clearTimeout(m.sfTimer);m.sfTimer=setTimeout(function(){l.retainPath=(b.inArray(c[0],l.$path)>-1);c.hideSuperfishUl();if(l.$path.length&&c.parents(["li.",l.hoverClass].join("")).length<1){i.call(l.$path)}},l.delay)},d=function(c){var l=c.parents(["ul.",j.menuClass,":first"].join(""))[0];g.op=g.o[l.serial];return l},h=function(c){c.addClass(j.anchorClass).append(f.clone())};return this.each(function(){var c=this.serial=g.o.length;var m=b.extend({},g.defaults,k);m.$path=b("li."+m.pathClass,this).slice(0,m.pathLevels).each(function(){b(this).addClass([m.hoverClass,j.bcClass].join(" ")).filter("li:has(ul)").removeClass(m.pathClass)});g.o[c]=g.op=m;b("li:has(ul)",this)[(b.fn.hoverIntent&&!m.disableHI)?"hoverIntent":"hover"](i,e).each(function(){if(m.autoArrows){h(b(">a:first-child",this))}}).not("."+j.bcClass).hideSuperfishUl();var l=b("a",this);l.each(function(n){var o=l.eq(n).parents("li");l.eq(n).focus(function(){i.call(o)}).blur(function(){e.call(o)})});m.onInit.call(this)}).each(function(){var c=[j.menuClass];if(g.op.dropShadows&&!(b.browser.msie&&b.browser.version<7)){c.push(j.shadowClass)}b(this).addClass(c.join(" "))})};var a=b.fn.superfish;a.o=[];a.op={};a.IE7fix=function(){var c=a.op;if(b.browser.msie&&b.browser.version>6&&c.dropShadows&&c.animation.opacity!=undefined){this.toggleClass(a.c.shadowClass+"-off")}};a.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};a.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};b.fn.extend({hideSuperfishUl:function(){var e=a.op,d=(e.retainPath===true)?e.$path:"";e.retainPath=false;var c=b(["li.",e.hoverClass].join(""),this).add(this).not(d).removeClass(e.hoverClass).find(">ul").hide().css("visibility","hidden");e.onHide.call(c);return this},showSuperfishUl:function(){var e=a.op,d=a.c.shadowClass+"-off",c=this.addClass(e.hoverClass).find(">ul:hidden").css("visibility","visible");a.IE7fix.call(c);e.onBeforeShow.call(c);c.animate(e.animation,e.speed,function(){a.IE7fix.call(c);e.onShow.call(c)});return this}})})(jQuery);
|
||||
1
prototype/js/supersubs.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
(function(a){a.fn.supersubs=function(b){var c=a.extend({},a.fn.supersubs.defaults,b);return this.each(function(){var d=a(this);var e=a.meta?a.extend({},c,d.data()):c;var f=a('<li id="menu-fontsize">—</li>').css({padding:0,position:"absolute",top:"-999em",width:"auto"}).appendTo(d).width();a("#menu-fontsize").remove();$ULs=d.find("ul");$ULs.each(function(l){var k=$ULs.eq(l);var j=k.children();var g=j.children("a");var m=j.css("white-space","nowrap").css("float");var h=k.add(j).add(g).css({"float":"none",width:"auto"}).end().end()[0].clientWidth/f;h+=e.extraWidth;if(h>e.maxWidth){h=e.maxWidth}else{if(h<e.minWidth){h=e.minWidth}}h+="em";k.css("width",h);j.css({"float":m,width:"100%","white-space":"normal"}).each(function(){var n=a(">ul",this);var i=n.css("left")!==undefined?"left":"right";n.css(i,h)})})})};a.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0}})(jQuery);
|
||||
15
prototype/js/thematic-dropdowns.js
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
//jQuery.noConflict();
|
||||
jQuery(document).ready(function(){
|
||||
jQuery("ul.sf-menu").supersubs({
|
||||
minWidth: 12, // minimum width of sub-menus in em units
|
||||
maxWidth: 27, // maximum width of sub-menus in em units
|
||||
extraWidth: 1 // extra width can ensure lines don't sometimes turn over
|
||||
// due to slight rounding differences and font-family
|
||||
}).superfish({
|
||||
delay: 400, // delay on mouseout
|
||||
animation: {opacity:'show',height:'show'}, // fade-in and slide-down animation
|
||||
speed: 'fast', // faster animation speed
|
||||
autoArrows: false, // disable generation of arrow mark-up
|
||||
dropShadows: false // disable drop shadows
|
||||
});
|
||||
});
|
||||