diff --git a/Qalbum.py b/Qalbum.py index 83622f6..7c1dd90 100755 --- a/Qalbum.py +++ b/Qalbum.py @@ -27,7 +27,7 @@ from datetime import datetime # (c) ville.q.rantanen@gmail.com -__version__='2.20160906' +__version__='2.20161005' FILECONFIG=".config" FILEDESC="descriptions.csv" @@ -61,12 +61,12 @@ width: Medium images longer axis in pixels MISSINGICON="data:image/png;base64,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" FAVICON="data:image/png;base64,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" # python -c 'print open("icon.png", "rb").read().encode("base64").replace("\n","")' -webfilesearch=re.compile('.*index.html$|gallerystyle.css$|galleryscript.js$|'+FILEDESC+'$|^'+FILEINFO+'$|\..*',re.I) +webfilesearch=re.compile('.*index.html$|'+FILEDESC+'$|^'+FILEINFO+'$|\..*',re.I) imagesearch=re.compile('.*\.jpg$|.*\.jpeg$|.*\.gif$|.*\.png$|.*\.tif$|.*\.svg$|.*\.pdf$',re.I) vectorsearch=re.compile('.*\.svg$|.*\.pdf$',re.I) nonconvertiblesearch=re.compile('.*\.html$|.*\.htm$|.*\.php$',re.I) #gifsearch=re.compile('.*gif$',re.I) -excludepaths=re.compile('_med|_tn|\..*') +excludepaths=re.compile('_med|_tn|.med|.tn|\..*') doublequotes=re.compile('"') singlequotes=re.compile("'") stripquotes=re.compile('^"|"$') @@ -80,9 +80,12 @@ def getheader(path,parent,title=""): '''+title+''' - + - + + + + ''' @@ -184,7 +187,7 @@ def pathscript(path,list): this_str='{ name:"'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'", ' this_str+='size:'+str(len(imglist)+len(pathlist))+', ' if len(imglist)>0: - this_str+='image:"'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'/_tn/tn_'+unicode(imglist[0],encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'.jpg"}' + this_str+='image:"'+unicode(p,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'/.tn/'+unicode(imglist[0],encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'.jpg"}' else: this_str+='image:"" }' elements.append(this_str) @@ -203,7 +206,7 @@ def pathlinks(path,list): nsum=str(len(imglist)) imgstr="" if len(imglist)>0: - imgstr='' + imgstr='' else: imgstr='' pathstr+=''+imgstr+''+unicode(nice,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+' ('+nsum+')'; @@ -248,7 +251,7 @@ def imagelinks(path,list): except: desc=doublequotes.sub('',filter(lambda x: x in string.printable, descriptions[n]).encode('ascii', 'xmlcharrefreplace')) - strout+='
'+unicode(nice,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'
' + strout+='
'+unicode(nice,encoding="utf8").encode('ascii', 'xmlcharrefreplace')+'
' n+=1 strout+='' return strout @@ -276,12 +279,12 @@ def filelinks(path,list): return strout def cleanthumbs(path): - ''' clears _med and _tn for unused thumbs ''' + ''' clears .med and .tn for unused thumbs ''' print('clearing unused thumbs...') - if os.path.exists(os.path.join(path,'_tn')): - clearfolder(path,os.path.join(path,'_tn'),re.compile("(^tn_)(.*)(.jpg)")) - if os.path.exists(os.path.join(path,'_med')): - clearfolder(path,os.path.join(path,'_med'),re.compile("(^med_)(.*)(.jpg)")) + if os.path.exists(os.path.join(path,'.tn')): + clearfolder(path,os.path.join(path,'.tn'),re.compile("(.*)(.jpg)")) + if os.path.exists(os.path.join(path,'.med')): + clearfolder(path,os.path.join(path,'.med'),re.compile("(.*)(.jpg)")) return def clearfolder(path,tnpath,regex): @@ -290,7 +293,7 @@ def clearfolder(path,tnpath,regex): for i in list: f=regex.match(i) try: - if not os.path.exists(os.path.join(path,f.group(2))): + if not os.path.exists(os.path.join(path,f.group(1))): print('removing '+i) os.remove(os.path.join(tnpath,i)) except: @@ -301,17 +304,17 @@ def createthumbs(path,list,options): ''' Runs imagemagick Convert to create medium sized and thumbnail images ''' if len(list)==0: return - if not os.path.exists(os.path.join(path,'_tn')): - os.mkdir(os.path.join(path,'_tn')) - if not os.path.exists(os.path.join(path,'_med')): - os.mkdir(os.path.join(path,'_med')) + if not os.path.exists(os.path.join(path,'.tn')): + os.mkdir(os.path.join(path,'.tn')) + if not os.path.exists(os.path.join(path,'.med')): + os.mkdir(os.path.join(path,'.med')) n=1 nsum=len(list) r=str(options.width) res=r+'x'+r+'>' for i in list: - outmedium=os.path.join(path,'_med','med_'+i+'.jpg') - outthumb=os.path.join(path,'_tn','tn_'+i+'.jpg') + outmedium=os.path.join(path,'.med',i+'.jpg') + outthumb=os.path.join(path,'.tn',i+'.jpg') inpath=os.path.join(path,i) if (options.force) and os.path.exists(outmedium): os.unlink(outmedium) @@ -445,15 +448,9 @@ def traverse(path,crumbs,inputs,options): header=getheader(path,'../'*(len(crumbs)-1),inputs[0][1]) else: header=getheader(path,'../'*(len(crumbs)-1)) - if not os.path.exists(os.path.join(path,'../'*(len(crumbs)-1),'galleryscript.js')): - print('Warning, no (relative path) galleryscript! '+os.path.join(path,'../'*(len(crumbs)-1),'galleryscript.js')) - #depth=0 - #while not os.path.exists(os.path.join(path,'../'*(depth),'galleryscript.js')): - # print(os.path.join(path,'../'*(depth))) - # depth+=1 - #header=getheader(path,'../'*(depth)) - - #print('Depth: '+str(len(crumbs))) + if not os.path.exists(os.path.join(path,'../'*(len(crumbs)-1),'.qalbum','gallery.js')): + print('Warning, no (relative path) galleryscript! '+os.path.join(path,'../'*(len(crumbs)-1),'.qalbum','gallery.js')) + pathlist=getpathlist(path,options) imagelist=getimagelist(path,options) if options.clean: @@ -558,7 +555,7 @@ def setupdefaultoptions(options): if 'reverse' not in options: options.reverse=False if 'style' not in options or options.style is None: - options.style=os.path.join(os.path.abspath(os.path.dirname(os.path.realpath(sys.argv[0]))),'gallerystyle.css') + options.style=os.path.join(os.path.abspath(os.path.dirname(os.path.realpath(sys.argv[0]))),'lib','style.css') if 'timesort' not in options: options.timesort=False if 'thumbs' not in options: @@ -606,11 +603,14 @@ def execute_plain(): # Copy all resources to target folder pathname=os.path.dirname(os.path.realpath(sys.argv[0])) fullpath=os.path.abspath(pathname) + libpath=os.path.join(options.startpath,'.qalbum') if not os.path.exists(options.style): raise IOError('File not found: "'+options.style+'"') - shutil.copyfile(options.style,os.path.join(options.startpath,'gallerystyle.css')) - shutil.copyfile(os.path.join(fullpath,'galleryscript.js'),os.path.join(options.startpath,'galleryscript.js')) - + if not os.path.isdir(libpath): + os.mkdir(libpath) + shutil.copyfile(options.style,os.path.join(libpath,'style.css')) + for jslib in ('gallery.js','jquery.js','jqzoom.js','touch.js'): + shutil.copyfile(os.path.join(fullpath,'lib',jslib),os.path.join(libpath,jslib)) inputs=[] inputs.append((None,options.gallery,None)) diff --git a/galleryscript.js b/galleryscript.js deleted file mode 100644 index 3c4698b..0000000 --- a/galleryscript.js +++ /dev/null @@ -1,1860 +0,0 @@ -/* -Copyright 2012 Ville Rantanen - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . - - See other included library licenses further down the file. - - - */ - - -/*! - * 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)[^>]*$|^#([\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
a"; -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="";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-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=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=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-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;j0){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":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=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 hl[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=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";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=""; -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="

";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="
";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=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},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-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=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_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
","
"];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;b0||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;e0?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]===""&&!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=//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("
").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").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=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.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); - - -/*! - * jQzoom Evolution Library v2.3 - Javascript Image magnifier - * http://www.mind-projects.it - * - * Copyright 2011, Engineer Marco Renzi - * Licensed under the BSD license. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the organization nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * Date: 03 May 2011 22:16:00 - */ -(function ($) { - //GLOBAL VARIABLES - var isIE6 = ($.browser.msie && $.browser.version < 7); - var body = $(document.body); - var window = $(window); - var jqzoompluging_disabled = false; //disabilita globalmente il plugin - $.fn.jqzoom = function (options) { - return this.each(function () { - var node = this.nodeName.toLowerCase(); - if (node == 'a') { - new jqzoom(this, options); - } - }); - }; - jqzoom = function (el, options) { - var api = null; - api = $(el).data("jqzoom"); - if (api) return api; - var obj = this; - var settings = $.extend({}, $.jqzoom.defaults, options || {}); - obj.el = el; - el.rel = $(el).attr('rel'); - //ANCHOR ELEMENT - el.zoom_active = false; - el.zoom_disabled = false; //to disable single zoom instance - el.largeimageloading = false; //tell us if large image is loading - el.largeimageloaded = false; //tell us if large image is loaded - el.scale = {}; - el.timer = null; - el.mousepos = {}; - el.mouseDown = false; - $(el).css({ - 'outline-style': 'none', - 'text-decoration': 'none' - }); - //BASE IMAGE - var img = $("img:eq(0)", el); - el.title = $(el).attr('title'); - el.imagetitle = img.attr('title'); - var zoomtitle = ($.trim(el.title).length > 0) ? el.title : el.imagetitle; - var smallimage = new Smallimage(img); - var lens = new Lens(); - var stage = new Stage(); - var largeimage = new Largeimage(); - var loader = new Loader(); - //preventing default click,allowing the onclick event [exmple: lightbox] - $(el).bind('click', function (e) { - e.preventDefault(); - return false; - }); - //setting the default zoomType if not in settings - var zoomtypes = ['standard', 'drag', 'innerzoom', 'reverse']; - if ($.inArray($.trim(settings.zoomType), zoomtypes) < 0) { - settings.zoomType = 'standard'; - } - $.extend(obj, { - create: function () { //create the main objects - //create ZoomPad - if ($(".zoomPad", el).length == 0) { - el.zoomPad = $('
').addClass('zoomPad'); - img.wrap(el.zoomPad); - } - if(settings.zoomType == 'innerzoom'){ - settings.zoomWidth = smallimage.w; - settings.zoomHeight = smallimage.h; - } - //creating ZoomPup - if ($(".zoomPup", el).length == 0) { - lens.append(); - } - //creating zoomWindow - if ($(".zoomWindow", el).length == 0) { - stage.append(); - } - //creating Preload - if ($(".zoomPreload", el).length == 0) { - loader.append(); - } - //preloading images - if (settings.preloadImages || settings.zoomType == 'drag' || settings.alwaysOn) { - obj.load(); - } - obj.init(); - }, - init: function () { - //drag option - if (settings.zoomType == 'drag') { - $(".zoomPad", el).mousedown(function () { - el.mouseDown = true; - }); - $(".zoomPad", el).mouseup(function () { - el.mouseDown = false; - }); - document.body.ondragstart = function () { - return false; - }; - $(".zoomPad", el).css({ - cursor: 'default' - }); - $(".zoomPup", el).css({ - cursor: 'move' - }); - } - if (settings.zoomType == 'innerzoom') { - $(".zoomWrapper", el).css({ - cursor: 'crosshair' - }); - } - $(".zoomPad", el).bind('mouseenter mouseover', function (event) { - img.attr('title', ''); - $(el).attr('title', ''); - el.zoom_active = true; - //if loaded then activate else load large image - smallimage.fetchdata(); - if (el.largeimageloaded) { - obj.activate(event); - } else { - obj.load(); - } - }); - $(".zoomPad", el).bind('mouseleave', function (event) { - obj.deactivate(); - }); - $(".zoomPad", el).bind('mousemove', function (e) { - - //prevent fast mouse mevements not to fire the mouseout event - if (e.pageX > smallimage.pos.r || e.pageX < smallimage.pos.l || e.pageY < smallimage.pos.t || e.pageY > smallimage.pos.b) { - lens.setcenter(); - return false; - } - el.zoom_active = true; - if (el.largeimageloaded && !$('.zoomWindow', el).is(':visible')) { - obj.activate(e); - } - if (el.largeimageloaded && (settings.zoomType != 'drag' || (settings.zoomType == 'drag' && el.mouseDown))) { - lens.setposition(e); - } - }); - var thumb_preload = new Array(); - var i = 0; - //binding click event on thumbnails - var thumblist = new Array(); - thumblist = $('a').filter(function () { - var regex = new RegExp("gallery[\\s]*:[\\s]*'" + $.trim(el.rel) + "'", "i"); - var rel = $(this).attr('rel'); - if (regex.test(rel)) { - return this; - } - }); - if (thumblist.length > 0) { - //getting the first to the last - var first = thumblist.splice(0, 1); - thumblist.push(first); - } - thumblist.each(function () { - //preloading thumbs - if (settings.preloadImages) { - var thumb_options = $.extend({}, eval("(" + $.trim($(this).attr('rel')) + ")")); - thumb_preload[i] = new Image(); - thumb_preload[i].src = thumb_options.largeimage; - i++; - } - $(this).click(function (e) { - if($(this).hasClass('zoomThumbActive')){ - return false; - } - thumblist.each(function () { - $(this).removeClass('zoomThumbActive'); - }); - e.preventDefault(); - obj.swapimage(this); - return false; - }); - }); - }, - load: function () { - if (el.largeimageloaded == false && el.largeimageloading == false) { - var url = $(el).attr('href'); - el.largeimageloading = true; - largeimage.loadimage(url); - } - }, - activate: function (e) { - clearTimeout(el.timer); - //show lens and zoomWindow - lens.show(); - stage.show(); - }, - deactivate: function (e) { - switch (settings.zoomType) { - case 'drag': - //nothing or lens.setcenter(); - break; - default: - img.attr('title', el.imagetitle); - $(el).attr('title', el.title); - if (settings.alwaysOn) { - lens.setcenter(); - } else { - stage.hide(); - lens.hide(); - } - break; - } - el.zoom_active = false; - }, - swapimage: function (link) { - el.largeimageloading = false; - el.largeimageloaded = false; - var options = new Object(); - options = $.extend({}, eval("(" + $.trim($(link).attr('rel')) + ")")); - if (options.smallimage && options.largeimage) { - var smallimage = options.smallimage; - var largeimage = options.largeimage; - $(link).addClass('zoomThumbActive'); - $(el).attr('href', largeimage); - img.attr('src', smallimage); - lens.hide(); - stage.hide(); - obj.load(); - } else { - alert('ERROR :: Missing parameter for largeimage or smallimage.'); - throw 'ERROR :: Missing parameter for largeimage or smallimage.'; - } - return false; - } - }); - //sometimes image is already loaded and onload will not fire - if (img[0].complete) { - //fetching data from sallimage if was previously loaded - smallimage.fetchdata(); - if ($(".zoomPad", el).length == 0) obj.create(); - } -/*========================================================, -| Smallimage -|---------------------------------------------------------: -| Base image into the anchor element -`========================================================*/ - - function Smallimage(image) { - var $obj = this; - this.node = image[0]; - this.findborder = function () { - var bordertop = 0; - bordertop = image.css('border-top-width'); - btop = ''; - var borderleft = 0; - borderleft = image.css('border-left-width'); - bleft = ''; - if (bordertop) { - for (i = 0; i < 3; i++) { - var x = []; - x = bordertop.substr(i, 1); - if (isNaN(x) == false) { - btop = btop + '' + bordertop.substr(i, 1); - } else { - break; - } - } - } - if (borderleft) { - for (i = 0; i < 3; i++) { - if (!isNaN(borderleft.substr(i, 1))) { - bleft = bleft + borderleft.substr(i, 1) - } else { - break; - } - } - } - $obj.btop = (btop.length > 0) ? eval(btop) : 0; - $obj.bleft = (bleft.length > 0) ? eval(bleft) : 0; - }; - this.fetchdata = function () { - $obj.findborder(); - $obj.w = image.width(); - $obj.h = image.height(); - $obj.ow = image.outerWidth(); - $obj.oh = image.outerHeight(); - $obj.pos = image.offset(); - $obj.pos.l = image.offset().left + $obj.bleft; - $obj.pos.t = image.offset().top + $obj.btop; - $obj.pos.r = $obj.w + $obj.pos.l; - $obj.pos.b = $obj.h + $obj.pos.t; - $obj.rightlimit = image.offset().left + $obj.ow; - $obj.bottomlimit = image.offset().top + $obj.oh; - - }; - this.node.onerror = function () { - alert('Problems while loading image.'); - throw 'Problems while loading image.'; - }; - this.node.onload = function () { - $obj.fetchdata(); - if ($(".zoomPad", el).length == 0) obj.create(); - }; - return $obj; - }; -/*========================================================, -| Loader -|---------------------------------------------------------: -| Show that the large image is loading -`========================================================*/ - - function Loader() { - var $obj = this; - this.append = function () { - this.node = $('
').addClass('zoomPreload').css('visibility', 'hidden').html(settings.preloadText); - $('.zoomPad', el).append(this.node); - }; - this.show = function () { - this.node.top = (smallimage.oh - this.node.height()) / 2; - this.node.left = (smallimage.ow - this.node.width()) / 2; - //setting position - this.node.css({ - top: this.node.top, - left: this.node.left, - position: 'absolute', - visibility: 'visible' - }); - }; - this.hide = function () { - this.node.css('visibility', 'hidden'); - }; - return this; - } -/*========================================================, -| Lens -|---------------------------------------------------------: -| Lens over the image -`========================================================*/ - - function Lens() { - var $obj = this; - this.node = $('
').addClass('zoomPup'); - //this.nodeimgwrapper = $("
").addClass('zoomPupImgWrapper'); - this.append = function () { - $('.zoomPad', el).append($(this.node).hide()); - if (settings.zoomType == 'reverse') { - this.image = new Image(); - this.image.src = smallimage.node.src; // fires off async - $(this.node).empty().append(this.image); - } - }; - this.setdimensions = function () { - this.node.w = (parseInt((settings.zoomWidth) / el.scale.x) > smallimage.w ) ? smallimage.w : (parseInt(settings.zoomWidth / el.scale.x)); - this.node.h = (parseInt((settings.zoomHeight) / el.scale.y) > smallimage.h ) ? smallimage.h : (parseInt(settings.zoomHeight / el.scale.y)); - this.node.top = (smallimage.oh - this.node.h - 2) / 2; - this.node.left = (smallimage.ow - this.node.w - 2) / 2; - //centering lens - this.node.css({ - top: 0, - left: 0, - width: this.node.w + 'px', - height: this.node.h + 'px', - position: 'absolute', - display: 'none', - borderWidth: 1 + 'px' - }); - - - - if (settings.zoomType == 'reverse') { - this.image.src = smallimage.node.src; - $(this.node).css({ - 'opacity': 1 - }); - - $(this.image).css({ - position: 'absolute', - display: 'block', - left: -(this.node.left + 1 - smallimage.bleft) + 'px', - top: -(this.node.top + 1 - smallimage.btop) + 'px' - }); - - } - }; - this.setcenter = function () { - //calculating center position - this.node.top = (smallimage.oh - this.node.h - 2) / 2; - this.node.left = (smallimage.ow - this.node.w - 2) / 2; - //centering lens - this.node.css({ - top: this.node.top, - left: this.node.left - }); - if (settings.zoomType == 'reverse') { - $(this.image).css({ - position: 'absolute', - display: 'block', - left: -(this.node.left + 1 - smallimage.bleft) + 'px', - top: -(this.node.top + 1 - smallimage.btop) + 'px' - }); - - } - //centering large image - largeimage.setposition(); - }; - this.setposition = function (e) { - el.mousepos.x = e.pageX; - el.mousepos.y = e.pageY; - var lensleft = 0; - var lenstop = 0; - - function overleft(lens) { - return el.mousepos.x - (lens.w) / 2 < smallimage.pos.l; - } - - function overright(lens) { - return el.mousepos.x + (lens.w) / 2 > smallimage.pos.r; - - } - - function overtop(lens) { - return el.mousepos.y - (lens.h) / 2 < smallimage.pos.t; - } - - function overbottom(lens) { - return el.mousepos.y + (lens.h) / 2 > smallimage.pos.b; - } - - lensleft = el.mousepos.x + smallimage.bleft - smallimage.pos.l - (this.node.w + 2) / 2; - lenstop = el.mousepos.y + smallimage.btop - smallimage.pos.t - (this.node.h + 2) / 2; - if (overleft(this.node)) { - lensleft = smallimage.bleft - 1; - } else if (overright(this.node)) { - lensleft = smallimage.w + smallimage.bleft - this.node.w - 1; - } - if (overtop(this.node)) { - lenstop = smallimage.btop - 1; - } else if (overbottom(this.node)) { - lenstop = smallimage.h + smallimage.btop - this.node.h - 1; - } - - this.node.left = lensleft; - this.node.top = lenstop; - this.node.css({ - 'left': lensleft + 'px', - 'top': lenstop + 'px' - }); - if (settings.zoomType == 'reverse') { - if ($.browser.msie && $.browser.version > 7) { - $(this.node).empty().append(this.image); - } - - $(this.image).css({ - position: 'absolute', - display: 'block', - left: -(this.node.left + 1 - smallimage.bleft) + 'px', - top: -(this.node.top + 1 - smallimage.btop) + 'px' - }); - } - - largeimage.setposition(); - }; - this.hide = function () { - img.css({ - 'opacity': 1 - }); - this.node.hide(); - }; - this.show = function () { - - if (settings.zoomType != 'innerzoom' && (settings.lens || settings.zoomType == 'drag')) { - this.node.show(); - } - - if (settings.zoomType == 'reverse') { - img.css({ - 'opacity': settings.imageOpacity - }); - } - }; - this.getoffset = function () { - var o = {}; - o.left = $obj.node.left; - o.top = $obj.node.top; - return o; - }; - return this; - }; -/*========================================================, -| Stage -|---------------------------------------------------------: -| Window area that contains the large image -`========================================================*/ - - function Stage() { - var $obj = this; - this.node = $("
"); - this.ieframe = $(''); - this.setposition = function () { - this.node.leftpos = 0; - this.node.toppos = 0; - if (settings.zoomType != 'innerzoom') { - //positioning - switch (settings.position) { - case "left": - this.node.leftpos = (smallimage.pos.l - smallimage.bleft - Math.abs(settings.xOffset) - settings.zoomWidth > 0) ? (0 - settings.zoomWidth - Math.abs(settings.xOffset)) : (smallimage.ow + Math.abs(settings.xOffset)); - this.node.toppos = Math.abs(settings.yOffset); - break; - case "top": - this.node.leftpos = Math.abs(settings.xOffset); - this.node.toppos = (smallimage.pos.t - smallimage.btop - Math.abs(settings.yOffset) - settings.zoomHeight > 0) ? (0 - settings.zoomHeight - Math.abs(settings.yOffset)) : (smallimage.oh + Math.abs(settings.yOffset)); - break; - case "bottom": - this.node.leftpos = Math.abs(settings.xOffset); - this.node.toppos = (smallimage.pos.t - smallimage.btop + smallimage.oh + Math.abs(settings.yOffset) + settings.zoomHeight < screen.height) ? (smallimage.oh + Math.abs(settings.yOffset)) : (0 - settings.zoomHeight - Math.abs(settings.yOffset)); - break; - default: - this.node.leftpos = (smallimage.rightlimit + Math.abs(settings.xOffset) + settings.zoomWidth < screen.width) ? (smallimage.ow + Math.abs(settings.xOffset)) : (0 - settings.zoomWidth - Math.abs(settings.xOffset)); - this.node.toppos = Math.abs(settings.yOffset); - break; - } - } - this.node.css({ - 'left': this.node.leftpos + 'px', - 'top': this.node.toppos + 'px' - }); - return this; - }; - this.append = function () { - $('.zoomPad', el).append(this.node); - this.node.css({ - position: 'absolute', - display: 'none', - zIndex: 5001 - }); - if (settings.zoomType == 'innerzoom') { - this.node.css({ - cursor: 'default' - }); - var thickness = (smallimage.bleft == 0) ? 1 : smallimage.bleft; - $('.zoomWrapper', this.node).css({ - borderWidth: thickness + 'px' - }); - } - - $('.zoomWrapper', this.node).css({ - width: Math.round(settings.zoomWidth) + 'px' , - borderWidth: thickness + 'px' - }); - $('.zoomWrapperImage', this.node).css({ - width: '100%', - height: Math.round(settings.zoomHeight) + 'px' - }); - //zoom title - $('.zoomWrapperTitle', this.node).css({ - width: '100%', - position: 'absolute' - }); - - $('.zoomWrapperTitle', this.node).hide(); - if (settings.title && zoomtitle.length > 0) { - $('.zoomWrapperTitle', this.node).html(zoomtitle).show(); - } - $obj.setposition(); - }; - this.hide = function () { - switch (settings.hideEffect) { - case 'fadeout': - this.node.fadeOut(settings.fadeoutSpeed, function () {}); - break; - default: - this.node.hide(); - break; - } - this.ieframe.hide(); - }; - this.show = function () { - switch (settings.showEffect) { - case 'fadein': - this.node.fadeIn(); - this.node.fadeIn(settings.fadeinSpeed, function () {}); - break; - default: - this.node.show(); - break; - } - if (isIE6 && settings.zoomType != 'innerzoom') { - this.ieframe.width = this.node.width(); - this.ieframe.height = this.node.height(); - this.ieframe.left = this.node.leftpos; - this.ieframe.top = this.node.toppos; - this.ieframe.css({ - display: 'block', - position: "absolute", - left: this.ieframe.left, - top: this.ieframe.top, - zIndex: 99, - width: this.ieframe.width + 'px', - height: this.ieframe.height + 'px' - }); - $('.zoomPad', el).append(this.ieframe); - this.ieframe.show(); - }; - }; - }; -/*========================================================, -| LargeImage -|---------------------------------------------------------: -| The large detailed image -`========================================================*/ - - function Largeimage() { - var $obj = this; - this.node = new Image(); - this.loadimage = function (url) { - //showing preload - loader.show(); - this.url = url; - this.node.style.position = 'absolute'; - this.node.style.border = '0px'; - this.node.style.display = 'none'; - this.node.style.left = '-5000px'; - this.node.style.top = '0px'; - document.body.appendChild(this.node); - this.node.src = url; // fires off async - }; - this.fetchdata = function () { - var image = $(this.node); - var scale = {}; - this.node.style.display = 'block'; - $obj.w = image.width(); - $obj.h = image.height(); - $obj.pos = image.offset(); - $obj.pos.l = image.offset().left; - $obj.pos.t = image.offset().top; - $obj.pos.r = $obj.w + $obj.pos.l; - $obj.pos.b = $obj.h + $obj.pos.t; - scale.x = ($obj.w / smallimage.w); - scale.y = ($obj.h / smallimage.h); - el.scale = scale; - document.body.removeChild(this.node); - $('.zoomWrapperImage', el).empty().append(this.node); - //setting lens dimensions; - lens.setdimensions(); - }; - this.node.onerror = function () { - alert('Problems while loading the big image.'); - throw 'Problems while loading the big image.'; - }; - this.node.onload = function () { - //fetching data - $obj.fetchdata(); - loader.hide(); - el.largeimageloading = false; - el.largeimageloaded = true; - if (settings.zoomType == 'drag' || settings.alwaysOn) { - lens.show(); - stage.show(); - lens.setcenter(); - } - }; - this.setposition = function () { - var left = -el.scale.x * (lens.getoffset().left - smallimage.bleft + 1); - var top = -el.scale.y * (lens.getoffset().top - smallimage.btop + 1); - $(this.node).css({ - 'left': left + 'px', - 'top': top + 'px' - }); - }; - return this; - }; - $(el).data("jqzoom", obj); - }; - //es. $.jqzoom.disable('#jqzoom1'); - $.jqzoom = { - defaults: { - zoomType: 'standard', - //innerzoom/standard/reverse/drag - zoomWidth: 300, - //zoomWindow default width - zoomHeight: 300, - //zoomWindow default height - xOffset: 10, - //zoomWindow x offset, can be negative(more on the left) or positive(more on the right) - yOffset: 0, - //zoomWindow y offset, can be negative(more on the left) or positive(more on the right) - position: "right", - //zoomWindow default position - preloadImages: true, - //image preload - preloadText: 'Loading zoom', - title: true, - lens: true, - imageOpacity: 0.4, - alwaysOn: false, - showEffect: 'show', - //show/fadein - hideEffect: 'hide', - //hide/fadeout - fadeinSpeed: 'slow', - //fast/slow/number - fadeoutSpeed: '2000' //fast/slow/number - }, - disable: function (el) { - var api = $(el).data('jqzoom'); - api.disable(); - return false; - }, - enable: function (el) { - var api = $(el).data('jqzoom'); - api.enable(); - return false; - }, - disableAll: function (el) { - jqzoompluging_disabled = true; - }, - enableAll: function (el) { - jqzoompluging_disabled = false; - } - }; -})(jQuery); - -/** - * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!) - * Common usage: wipe images (left and right to show the previous or next image) - * - * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de) - * @version 1.1.1 (9th December 2010) - fix bug (older IE's had problems) - * @version 1.1 (1st September 2010) - support wipe up and wipe down - * @version 1.0 (15th July 2010) - */ -(function(e){var o="left",n="right",d="up",v="down",c="in",w="out",l="none",r="auto",k="swipe",s="pinch",x="tap",i="doubletap",b="longtap",A="horizontal",t="vertical",h="all",q=10,f="start",j="move",g="end",p="cancel",a="ontouchstart" in window,y="TouchSwipe";var m={fingers:1,threshold:75,cancelThreshold:25,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,triggerOnTouchEnd:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:"button, input, select, textarea, a, .noSwipe"};e.fn.swipe=function(D){var C=e(this),B=C.data(y);if(B&&typeof D==="string"){if(B[D]){return B[D].apply(this,Array.prototype.slice.call(arguments,1))}else{e.error("Method "+D+" does not exist on jQuery.swipe")}}else{if(!B&&(typeof D==="object"||!D)){return u.apply(this,arguments)}}return C};e.fn.swipe.defaults=m;e.fn.swipe.phases={PHASE_START:f,PHASE_MOVE:j,PHASE_END:g,PHASE_CANCEL:p};e.fn.swipe.directions={LEFT:o,RIGHT:n,UP:d,DOWN:v,IN:c,OUT:w};e.fn.swipe.pageScroll={NONE:l,HORIZONTAL:A,VERTICAL:t,AUTO:r};e.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:h};function u(B){if(B&&(B.allowPageScroll===undefined&&(B.swipe!==undefined||B.swipeStatus!==undefined))){B.allowPageScroll=l}if(B.click!==undefined&&B.tap===undefined){B.tap=B.click}if(!B){B={}}B=e.extend({},e.fn.swipe.defaults,B);return this.each(function(){var D=e(this);var C=D.data(y);if(!C){C=new z(this,B);D.data(y,C)}})}function z(a0,aq){var av=(a||!aq.fallbackToMouseEvents),G=av?"touchstart":"mousedown",au=av?"touchmove":"mousemove",R=av?"touchend":"mouseup",P=av?null:"mouseleave",az="touchcancel";var ac=0,aL=null,Y=0,aX=0,aV=0,D=1,am=0,aF=0,J=null;var aN=e(a0);var W="start";var T=0;var aM=null;var Q=0,aY=0,a1=0,aa=0,K=0;var aS=null;try{aN.bind(G,aJ);aN.bind(az,a5)}catch(ag){e.error("events not supported "+G+","+az+" on jQuery.swipe")}this.enable=function(){aN.bind(G,aJ);aN.bind(az,a5);return aN};this.disable=function(){aG();return aN};this.destroy=function(){aG();aN.data(y,null);return aN};this.option=function(a7,a6){if(aq[a7]!==undefined){if(a6===undefined){return aq[a7]}else{aq[a7]=a6}}else{e.error("Option "+a7+" does not exist on jQuery.swipe.options")}};function aJ(a8){if(ax()){return}if(e(a8.target).closest(aq.excludedElements,aN).length>0){return}var a9=a8.originalEvent?a8.originalEvent:a8;var a7,a6=a?a9.touches[0]:a9;W=f;if(a){T=a9.touches.length}else{a8.preventDefault()}ac=0;aL=null;aF=null;Y=0;aX=0;aV=0;D=1;am=0;aM=af();J=X();O();if(!a||(T===aq.fingers||aq.fingers===h)||aT()){ae(0,a6);Q=ao();if(T==2){ae(1,a9.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}if(aq.swipeStatus||aq.pinchStatus){a7=L(a9,W)}}else{a7=false}if(a7===false){W=p;L(a9,W);return a7}else{ak(true)}}function aZ(a9){var bc=a9.originalEvent?a9.originalEvent:a9;if(W===g||W===p||ai()){return}var a8,a7=a?bc.touches[0]:bc;var ba=aD(a7);aY=ao();if(a){T=bc.touches.length}W=j;if(T==2){if(aX==0){ae(1,bc.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}else{aD(bc.touches[1]);aV=ap(aM[0].end,aM[1].end);aF=an(aM[0].end,aM[1].end)}D=a3(aX,aV);am=Math.abs(aX-aV)}if((T===aq.fingers||aq.fingers===h)||!a||aT()){aL=aH(ba.start,ba.end);ah(a9,aL);ac=aO(ba.start,ba.end);Y=aI();aE(aL,ac);if(aq.swipeStatus||aq.pinchStatus){a8=L(bc,W)}if(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave){var a6=true;if(aq.triggerOnTouchLeave){var bb=aU(this);a6=B(ba.end,bb)}if(!aq.triggerOnTouchEnd&&a6){W=ay(j)}else{if(aq.triggerOnTouchLeave&&!a6){W=ay(g)}}if(W==p||W==g){L(bc,W)}}}else{W=p;L(bc,W)}if(a8===false){W=p;L(bc,W)}}function I(a6){var a7=a6.originalEvent;if(a){if(a7.touches.length>0){C();return true}}if(ai()){T=aa}a6.preventDefault();aY=ao();Y=aI();if(aq.triggerOnTouchEnd||(aq.triggerOnTouchEnd==false&&W===j)){W=g;L(a7,W)}else{if(!aq.triggerOnTouchEnd&&a2()){W=g;aB(a7,W,x)}else{if(W===j){W=p;L(a7,W)}}}ak(false)}function a5(){T=0;aY=0;Q=0;aX=0;aV=0;D=1;O();ak(false)}function H(a6){var a7=a6.originalEvent;if(aq.triggerOnTouchLeave){W=ay(g);L(a7,W)}}function aG(){aN.unbind(G,aJ);aN.unbind(az,a5);aN.unbind(au,aZ);aN.unbind(R,I);if(P){aN.unbind(P,H)}ak(false)}function ay(a9){var a8=a9;var a7=aw();var a6=aj();if(!a7){a8=p}else{if(a6&&a9==j&&(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave)){a8=g}else{if(!a6&&a9==g&&aq.triggerOnTouchLeave){a8=p}}}return a8}function L(a8,a6){var a7=undefined;if(F()){a7=aB(a8,a6,k)}else{if(M()&&a7!==false){a7=aB(a8,a6,s)}}if(aC()&&a7!==false){a7=aB(a8,a6,i)}else{if(al()&&a7!==false){a7=aB(a8,a6,b)}else{if(ad()&&a7!==false){a7=aB(a8,a6,x)}}}if(a6===p){a5(a8)}if(a6===g){if(a){if(a8.touches.length==0){a5(a8)}}else{a5(a8)}}return a7}function aB(a9,a6,a8){var a7=undefined;if(a8==k){aN.trigger("swipeStatus",[a6,aL||null,ac||0,Y||0,T]);if(aq.swipeStatus){a7=aq.swipeStatus.call(aN,a9,a6,aL||null,ac||0,Y||0,T);if(a7===false){return false}}if(a6==g&&aR()){aN.trigger("swipe",[aL,ac,Y,T]);if(aq.swipe){a7=aq.swipe.call(aN,a9,aL,ac,Y,T);if(a7===false){return false}}switch(aL){case o:aN.trigger("swipeLeft",[aL,ac,Y,T]);if(aq.swipeLeft){a7=aq.swipeLeft.call(aN,a9,aL,ac,Y,T)}break;case n:aN.trigger("swipeRight",[aL,ac,Y,T]);if(aq.swipeRight){a7=aq.swipeRight.call(aN,a9,aL,ac,Y,T)}break;case d:aN.trigger("swipeUp",[aL,ac,Y,T]);if(aq.swipeUp){a7=aq.swipeUp.call(aN,a9,aL,ac,Y,T)}break;case v:aN.trigger("swipeDown",[aL,ac,Y,T]);if(aq.swipeDown){a7=aq.swipeDown.call(aN,a9,aL,ac,Y,T)}break}}}if(a8==s){aN.trigger("pinchStatus",[a6,aF||null,am||0,Y||0,T,D]);if(aq.pinchStatus){a7=aq.pinchStatus.call(aN,a9,a6,aF||null,am||0,Y||0,T,D);if(a7===false){return false}}if(a6==g&&a4()){switch(aF){case c:aN.trigger("pinchIn",[aF||null,am||0,Y||0,T,D]);if(aq.pinchIn){a7=aq.pinchIn.call(aN,a9,aF||null,am||0,Y||0,T,D)}break;case w:aN.trigger("pinchOut",[aF||null,am||0,Y||0,T,D]);if(aq.pinchOut){a7=aq.pinchOut.call(aN,a9,aF||null,am||0,Y||0,T,D)}break}}}if(a8==x){if(a6===p||a6===g){clearTimeout(aS);if(V()&&!E()){K=ao();aS=setTimeout(e.proxy(function(){K=null;aN.trigger("tap",[a9.target]);if(aq.tap){a7=aq.tap.call(aN,a9,a9.target)}},this),aq.doubleTapThreshold)}else{K=null;aN.trigger("tap",[a9.target]);if(aq.tap){a7=aq.tap.call(aN,a9,a9.target)}}}}else{if(a8==i){if(a6===p||a6===g){clearTimeout(aS);K=null;aN.trigger("doubletap",[a9.target]);if(aq.doubleTap){a7=aq.doubleTap.call(aN,a9,a9.target)}}}else{if(a8==b){if(a6===p||a6===g){clearTimeout(aS);K=null;aN.trigger("longtap",[a9.target]);if(aq.longTap){a7=aq.longTap.call(aN,a9,a9.target)}}}}}return a7}function aj(){var a6=true;if(aq.threshold!==null){a6=ac>=aq.threshold}if(a6&&aq.cancelThreshold!==null){a6=(aP(aL)-ac)=aq.pinchThreshold}return true}function aw(){var a6;if(aq.maxTimeThreshold){if(Y>=aq.maxTimeThreshold){a6=false}else{a6=true}}else{a6=true}return a6}function ah(a6,a7){if(aq.allowPageScroll===l||aT()){a6.preventDefault()}else{var a8=aq.allowPageScroll===r;switch(a7){case o:if((aq.swipeLeft&&a8)||(!a8&&aq.allowPageScroll!=A)){a6.preventDefault()}break;case n:if((aq.swipeRight&&a8)||(!a8&&aq.allowPageScroll!=A)){a6.preventDefault()}break;case d:if((aq.swipeUp&&a8)||(!a8&&aq.allowPageScroll!=t)){a6.preventDefault()}break;case v:if((aq.swipeDown&&a8)||(!a8&&aq.allowPageScroll!=t)){a6.preventDefault()}break}}}function a4(){var a7=aK();var a6=U();var a8=ab();return a7&&a6&&a8}function aT(){return !!(aq.pinchStatus||aq.pinchIn||aq.pinchOut)}function M(){return !!(a4()&&aT())}function aR(){var a8=aw();var ba=aj();var a7=aK();var a6=U();var a9=a6&&a7&&ba&&a8;return a9}function S(){return !!(aq.swipe||aq.swipeStatus||aq.swipeLeft||aq.swipeRight||aq.swipeUp||aq.swipeDown)}function F(){return !!(aR()&&S())}function aK(){return((T===aq.fingers||aq.fingers===h)||!a)}function U(){return aM[0].end.x!==0}function a2(){return !!(aq.tap)}function V(){return !!(aq.doubleTap)}function aQ(){return !!(aq.longTap)}function N(){if(K==null){return false}var a6=ao();return(V()&&((a6-K)<=aq.doubleTapThreshold))}function E(){return N()}function at(){return((T===1||!a)&&(isNaN(ac)||ac===0))}function aW(){return((Y>aq.longTapThreshold)&&(ac=0)){return o}else{if((a8<=360)&&(a8>=315)){return o}else{if((a8>=135)&&(a8<=225)){return n}else{if((a8>45)&&(a8<135)){return v}else{return d}}}}}function ao(){var a6=new Date();return a6.getTime()}function aU(a6){a6=e(a6);var a8=a6.offset();var a7={left:a8.left,right:a8.left+a6.outerWidth(),top:a8.top,bottom:a8.top+a6.outerHeight()};return a7}function B(a6,a7){return(a6.x>a7.left&&a6.xa7.top&&a6.yimagelist.length-1 || i<0) { return; } - thumblist(i,i); - var dirStr=$('#imagecontainer').data('ID')'; - if (slideshowinterval!=0) { - linkToBig = ''; - } - if (isHTML(imagelist[i].name)) { - $('#imagecontainer').html('
'+linkToBig+ - ''); + this.setposition = function () { + this.node.leftpos = 0; + this.node.toppos = 0; + if (settings.zoomType != 'innerzoom') { + //positioning + switch (settings.position) { + case "left": + this.node.leftpos = (smallimage.pos.l - smallimage.bleft - Math.abs(settings.xOffset) - settings.zoomWidth > 0) ? (0 - settings.zoomWidth - Math.abs(settings.xOffset)) : (smallimage.ow + Math.abs(settings.xOffset)); + this.node.toppos = Math.abs(settings.yOffset); + break; + case "top": + this.node.leftpos = Math.abs(settings.xOffset); + this.node.toppos = (smallimage.pos.t - smallimage.btop - Math.abs(settings.yOffset) - settings.zoomHeight > 0) ? (0 - settings.zoomHeight - Math.abs(settings.yOffset)) : (smallimage.oh + Math.abs(settings.yOffset)); + break; + case "bottom": + this.node.leftpos = Math.abs(settings.xOffset); + this.node.toppos = (smallimage.pos.t - smallimage.btop + smallimage.oh + Math.abs(settings.yOffset) + settings.zoomHeight < screen.height) ? (smallimage.oh + Math.abs(settings.yOffset)) : (0 - settings.zoomHeight - Math.abs(settings.yOffset)); + break; + default: + this.node.leftpos = (smallimage.rightlimit + Math.abs(settings.xOffset) + settings.zoomWidth < screen.width) ? (smallimage.ow + Math.abs(settings.xOffset)) : (0 - settings.zoomWidth - Math.abs(settings.xOffset)); + this.node.toppos = Math.abs(settings.yOffset); + break; + } + } + this.node.css({ + 'left': this.node.leftpos + 'px', + 'top': this.node.toppos + 'px' + }); + return this; + }; + this.append = function () { + $('.zoomPad', el).append(this.node); + this.node.css({ + position: 'absolute', + display: 'none', + zIndex: 5001 + }); + if (settings.zoomType == 'innerzoom') { + this.node.css({ + cursor: 'default' + }); + var thickness = (smallimage.bleft == 0) ? 1 : smallimage.bleft; + $('.zoomWrapper', this.node).css({ + borderWidth: thickness + 'px' + }); + } + + $('.zoomWrapper', this.node).css({ + width: Math.round(settings.zoomWidth) + 'px' , + borderWidth: thickness + 'px' + }); + $('.zoomWrapperImage', this.node).css({ + width: '100%', + height: Math.round(settings.zoomHeight) + 'px' + }); + //zoom title + $('.zoomWrapperTitle', this.node).css({ + width: '100%', + position: 'absolute' + }); + + $('.zoomWrapperTitle', this.node).hide(); + if (settings.title && zoomtitle.length > 0) { + $('.zoomWrapperTitle', this.node).html(zoomtitle).show(); + } + $obj.setposition(); + }; + this.hide = function () { + switch (settings.hideEffect) { + case 'fadeout': + this.node.fadeOut(settings.fadeoutSpeed, function () {}); + break; + default: + this.node.hide(); + break; + } + this.ieframe.hide(); + }; + this.show = function () { + switch (settings.showEffect) { + case 'fadein': + this.node.fadeIn(); + this.node.fadeIn(settings.fadeinSpeed, function () {}); + break; + default: + this.node.show(); + break; + } + if (isIE6 && settings.zoomType != 'innerzoom') { + this.ieframe.width = this.node.width(); + this.ieframe.height = this.node.height(); + this.ieframe.left = this.node.leftpos; + this.ieframe.top = this.node.toppos; + this.ieframe.css({ + display: 'block', + position: "absolute", + left: this.ieframe.left, + top: this.ieframe.top, + zIndex: 99, + width: this.ieframe.width + 'px', + height: this.ieframe.height + 'px' + }); + $('.zoomPad', el).append(this.ieframe); + this.ieframe.show(); + }; + }; + }; +/*========================================================, +| LargeImage +|---------------------------------------------------------: +| The large detailed image +`========================================================*/ + + function Largeimage() { + var $obj = this; + this.node = new Image(); + this.loadimage = function (url) { + //showing preload + loader.show(); + this.url = url; + this.node.style.position = 'absolute'; + this.node.style.border = '0px'; + this.node.style.display = 'none'; + this.node.style.left = '-5000px'; + this.node.style.top = '0px'; + document.body.appendChild(this.node); + this.node.src = url; // fires off async + }; + this.fetchdata = function () { + var image = $(this.node); + var scale = {}; + this.node.style.display = 'block'; + $obj.w = image.width(); + $obj.h = image.height(); + $obj.pos = image.offset(); + $obj.pos.l = image.offset().left; + $obj.pos.t = image.offset().top; + $obj.pos.r = $obj.w + $obj.pos.l; + $obj.pos.b = $obj.h + $obj.pos.t; + scale.x = ($obj.w / smallimage.w); + scale.y = ($obj.h / smallimage.h); + el.scale = scale; + document.body.removeChild(this.node); + $('.zoomWrapperImage', el).empty().append(this.node); + //setting lens dimensions; + lens.setdimensions(); + }; + this.node.onerror = function () { + alert('Problems while loading the big image.'); + throw 'Problems while loading the big image.'; + }; + this.node.onload = function () { + //fetching data + $obj.fetchdata(); + loader.hide(); + el.largeimageloading = false; + el.largeimageloaded = true; + if (settings.zoomType == 'drag' || settings.alwaysOn) { + lens.show(); + stage.show(); + lens.setcenter(); + } + }; + this.setposition = function () { + var left = -el.scale.x * (lens.getoffset().left - smallimage.bleft + 1); + var top = -el.scale.y * (lens.getoffset().top - smallimage.btop + 1); + $(this.node).css({ + 'left': left + 'px', + 'top': top + 'px' + }); + }; + return this; + }; + $(el).data("jqzoom", obj); + }; + //es. $.jqzoom.disable('#jqzoom1'); + $.jqzoom = { + defaults: { + zoomType: 'standard', + //innerzoom/standard/reverse/drag + zoomWidth: 300, + //zoomWindow default width + zoomHeight: 300, + //zoomWindow default height + xOffset: 10, + //zoomWindow x offset, can be negative(more on the left) or positive(more on the right) + yOffset: 0, + //zoomWindow y offset, can be negative(more on the left) or positive(more on the right) + position: "right", + //zoomWindow default position + preloadImages: true, + //image preload + preloadText: 'Loading zoom', + title: true, + lens: true, + imageOpacity: 0.4, + alwaysOn: false, + showEffect: 'show', + //show/fadein + hideEffect: 'hide', + //hide/fadeout + fadeinSpeed: 'slow', + //fast/slow/number + fadeoutSpeed: '2000' //fast/slow/number + }, + disable: function (el) { + var api = $(el).data('jqzoom'); + api.disable(); + return false; + }, + enable: function (el) { + var api = $(el).data('jqzoom'); + api.enable(); + return false; + }, + disableAll: function (el) { + jqzoompluging_disabled = true; + }, + enableAll: function (el) { + jqzoompluging_disabled = false; + } + }; +})(jQuery); diff --git a/gallerystyle.css b/lib/style.css similarity index 100% rename from gallerystyle.css rename to lib/style.css diff --git a/lib/touch.js b/lib/touch.js new file mode 100644 index 0000000..efed5e8 --- /dev/null +++ b/lib/touch.js @@ -0,0 +1,10 @@ +/** + * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!) + * Common usage: wipe images (left and right to show the previous or next image) + * + * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de) + * @version 1.1.1 (9th December 2010) - fix bug (older IE's had problems) + * @version 1.1 (1st September 2010) - support wipe up and wipe down + * @version 1.0 (15th July 2010) + */ +(function(e){var o="left",n="right",d="up",v="down",c="in",w="out",l="none",r="auto",k="swipe",s="pinch",x="tap",i="doubletap",b="longtap",A="horizontal",t="vertical",h="all",q=10,f="start",j="move",g="end",p="cancel",a="ontouchstart" in window,y="TouchSwipe";var m={fingers:1,threshold:75,cancelThreshold:25,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,triggerOnTouchEnd:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:"button, input, select, textarea, a, .noSwipe"};e.fn.swipe=function(D){var C=e(this),B=C.data(y);if(B&&typeof D==="string"){if(B[D]){return B[D].apply(this,Array.prototype.slice.call(arguments,1))}else{e.error("Method "+D+" does not exist on jQuery.swipe")}}else{if(!B&&(typeof D==="object"||!D)){return u.apply(this,arguments)}}return C};e.fn.swipe.defaults=m;e.fn.swipe.phases={PHASE_START:f,PHASE_MOVE:j,PHASE_END:g,PHASE_CANCEL:p};e.fn.swipe.directions={LEFT:o,RIGHT:n,UP:d,DOWN:v,IN:c,OUT:w};e.fn.swipe.pageScroll={NONE:l,HORIZONTAL:A,VERTICAL:t,AUTO:r};e.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:h};function u(B){if(B&&(B.allowPageScroll===undefined&&(B.swipe!==undefined||B.swipeStatus!==undefined))){B.allowPageScroll=l}if(B.click!==undefined&&B.tap===undefined){B.tap=B.click}if(!B){B={}}B=e.extend({},e.fn.swipe.defaults,B);return this.each(function(){var D=e(this);var C=D.data(y);if(!C){C=new z(this,B);D.data(y,C)}})}function z(a0,aq){var av=(a||!aq.fallbackToMouseEvents),G=av?"touchstart":"mousedown",au=av?"touchmove":"mousemove",R=av?"touchend":"mouseup",P=av?null:"mouseleave",az="touchcancel";var ac=0,aL=null,Y=0,aX=0,aV=0,D=1,am=0,aF=0,J=null;var aN=e(a0);var W="start";var T=0;var aM=null;var Q=0,aY=0,a1=0,aa=0,K=0;var aS=null;try{aN.bind(G,aJ);aN.bind(az,a5)}catch(ag){e.error("events not supported "+G+","+az+" on jQuery.swipe")}this.enable=function(){aN.bind(G,aJ);aN.bind(az,a5);return aN};this.disable=function(){aG();return aN};this.destroy=function(){aG();aN.data(y,null);return aN};this.option=function(a7,a6){if(aq[a7]!==undefined){if(a6===undefined){return aq[a7]}else{aq[a7]=a6}}else{e.error("Option "+a7+" does not exist on jQuery.swipe.options")}};function aJ(a8){if(ax()){return}if(e(a8.target).closest(aq.excludedElements,aN).length>0){return}var a9=a8.originalEvent?a8.originalEvent:a8;var a7,a6=a?a9.touches[0]:a9;W=f;if(a){T=a9.touches.length}else{a8.preventDefault()}ac=0;aL=null;aF=null;Y=0;aX=0;aV=0;D=1;am=0;aM=af();J=X();O();if(!a||(T===aq.fingers||aq.fingers===h)||aT()){ae(0,a6);Q=ao();if(T==2){ae(1,a9.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}if(aq.swipeStatus||aq.pinchStatus){a7=L(a9,W)}}else{a7=false}if(a7===false){W=p;L(a9,W);return a7}else{ak(true)}}function aZ(a9){var bc=a9.originalEvent?a9.originalEvent:a9;if(W===g||W===p||ai()){return}var a8,a7=a?bc.touches[0]:bc;var ba=aD(a7);aY=ao();if(a){T=bc.touches.length}W=j;if(T==2){if(aX==0){ae(1,bc.touches[1]);aX=aV=ap(aM[0].start,aM[1].start)}else{aD(bc.touches[1]);aV=ap(aM[0].end,aM[1].end);aF=an(aM[0].end,aM[1].end)}D=a3(aX,aV);am=Math.abs(aX-aV)}if((T===aq.fingers||aq.fingers===h)||!a||aT()){aL=aH(ba.start,ba.end);ah(a9,aL);ac=aO(ba.start,ba.end);Y=aI();aE(aL,ac);if(aq.swipeStatus||aq.pinchStatus){a8=L(bc,W)}if(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave){var a6=true;if(aq.triggerOnTouchLeave){var bb=aU(this);a6=B(ba.end,bb)}if(!aq.triggerOnTouchEnd&&a6){W=ay(j)}else{if(aq.triggerOnTouchLeave&&!a6){W=ay(g)}}if(W==p||W==g){L(bc,W)}}}else{W=p;L(bc,W)}if(a8===false){W=p;L(bc,W)}}function I(a6){var a7=a6.originalEvent;if(a){if(a7.touches.length>0){C();return true}}if(ai()){T=aa}a6.preventDefault();aY=ao();Y=aI();if(aq.triggerOnTouchEnd||(aq.triggerOnTouchEnd==false&&W===j)){W=g;L(a7,W)}else{if(!aq.triggerOnTouchEnd&&a2()){W=g;aB(a7,W,x)}else{if(W===j){W=p;L(a7,W)}}}ak(false)}function a5(){T=0;aY=0;Q=0;aX=0;aV=0;D=1;O();ak(false)}function H(a6){var a7=a6.originalEvent;if(aq.triggerOnTouchLeave){W=ay(g);L(a7,W)}}function aG(){aN.unbind(G,aJ);aN.unbind(az,a5);aN.unbind(au,aZ);aN.unbind(R,I);if(P){aN.unbind(P,H)}ak(false)}function ay(a9){var a8=a9;var a7=aw();var a6=aj();if(!a7){a8=p}else{if(a6&&a9==j&&(!aq.triggerOnTouchEnd||aq.triggerOnTouchLeave)){a8=g}else{if(!a6&&a9==g&&aq.triggerOnTouchLeave){a8=p}}}return a8}function L(a8,a6){var a7=undefined;if(F()){a7=aB(a8,a6,k)}else{if(M()&&a7!==false){a7=aB(a8,a6,s)}}if(aC()&&a7!==false){a7=aB(a8,a6,i)}else{if(al()&&a7!==false){a7=aB(a8,a6,b)}else{if(ad()&&a7!==false){a7=aB(a8,a6,x)}}}if(a6===p){a5(a8)}if(a6===g){if(a){if(a8.touches.length==0){a5(a8)}}else{a5(a8)}}return a7}function aB(a9,a6,a8){var a7=undefined;if(a8==k){aN.trigger("swipeStatus",[a6,aL||null,ac||0,Y||0,T]);if(aq.swipeStatus){a7=aq.swipeStatus.call(aN,a9,a6,aL||null,ac||0,Y||0,T);if(a7===false){return false}}if(a6==g&&aR()){aN.trigger("swipe",[aL,ac,Y,T]);if(aq.swipe){a7=aq.swipe.call(aN,a9,aL,ac,Y,T);if(a7===false){return false}}switch(aL){case o:aN.trigger("swipeLeft",[aL,ac,Y,T]);if(aq.swipeLeft){a7=aq.swipeLeft.call(aN,a9,aL,ac,Y,T)}break;case n:aN.trigger("swipeRight",[aL,ac,Y,T]);if(aq.swipeRight){a7=aq.swipeRight.call(aN,a9,aL,ac,Y,T)}break;case d:aN.trigger("swipeUp",[aL,ac,Y,T]);if(aq.swipeUp){a7=aq.swipeUp.call(aN,a9,aL,ac,Y,T)}break;case v:aN.trigger("swipeDown",[aL,ac,Y,T]);if(aq.swipeDown){a7=aq.swipeDown.call(aN,a9,aL,ac,Y,T)}break}}}if(a8==s){aN.trigger("pinchStatus",[a6,aF||null,am||0,Y||0,T,D]);if(aq.pinchStatus){a7=aq.pinchStatus.call(aN,a9,a6,aF||null,am||0,Y||0,T,D);if(a7===false){return false}}if(a6==g&&a4()){switch(aF){case c:aN.trigger("pinchIn",[aF||null,am||0,Y||0,T,D]);if(aq.pinchIn){a7=aq.pinchIn.call(aN,a9,aF||null,am||0,Y||0,T,D)}break;case w:aN.trigger("pinchOut",[aF||null,am||0,Y||0,T,D]);if(aq.pinchOut){a7=aq.pinchOut.call(aN,a9,aF||null,am||0,Y||0,T,D)}break}}}if(a8==x){if(a6===p||a6===g){clearTimeout(aS);if(V()&&!E()){K=ao();aS=setTimeout(e.proxy(function(){K=null;aN.trigger("tap",[a9.target]);if(aq.tap){a7=aq.tap.call(aN,a9,a9.target)}},this),aq.doubleTapThreshold)}else{K=null;aN.trigger("tap",[a9.target]);if(aq.tap){a7=aq.tap.call(aN,a9,a9.target)}}}}else{if(a8==i){if(a6===p||a6===g){clearTimeout(aS);K=null;aN.trigger("doubletap",[a9.target]);if(aq.doubleTap){a7=aq.doubleTap.call(aN,a9,a9.target)}}}else{if(a8==b){if(a6===p||a6===g){clearTimeout(aS);K=null;aN.trigger("longtap",[a9.target]);if(aq.longTap){a7=aq.longTap.call(aN,a9,a9.target)}}}}}return a7}function aj(){var a6=true;if(aq.threshold!==null){a6=ac>=aq.threshold}if(a6&&aq.cancelThreshold!==null){a6=(aP(aL)-ac)=aq.pinchThreshold}return true}function aw(){var a6;if(aq.maxTimeThreshold){if(Y>=aq.maxTimeThreshold){a6=false}else{a6=true}}else{a6=true}return a6}function ah(a6,a7){if(aq.allowPageScroll===l||aT()){a6.preventDefault()}else{var a8=aq.allowPageScroll===r;switch(a7){case o:if((aq.swipeLeft&&a8)||(!a8&&aq.allowPageScroll!=A)){a6.preventDefault()}break;case n:if((aq.swipeRight&&a8)||(!a8&&aq.allowPageScroll!=A)){a6.preventDefault()}break;case d:if((aq.swipeUp&&a8)||(!a8&&aq.allowPageScroll!=t)){a6.preventDefault()}break;case v:if((aq.swipeDown&&a8)||(!a8&&aq.allowPageScroll!=t)){a6.preventDefault()}break}}}function a4(){var a7=aK();var a6=U();var a8=ab();return a7&&a6&&a8}function aT(){return !!(aq.pinchStatus||aq.pinchIn||aq.pinchOut)}function M(){return !!(a4()&&aT())}function aR(){var a8=aw();var ba=aj();var a7=aK();var a6=U();var a9=a6&&a7&&ba&&a8;return a9}function S(){return !!(aq.swipe||aq.swipeStatus||aq.swipeLeft||aq.swipeRight||aq.swipeUp||aq.swipeDown)}function F(){return !!(aR()&&S())}function aK(){return((T===aq.fingers||aq.fingers===h)||!a)}function U(){return aM[0].end.x!==0}function a2(){return !!(aq.tap)}function V(){return !!(aq.doubleTap)}function aQ(){return !!(aq.longTap)}function N(){if(K==null){return false}var a6=ao();return(V()&&((a6-K)<=aq.doubleTapThreshold))}function E(){return N()}function at(){return((T===1||!a)&&(isNaN(ac)||ac===0))}function aW(){return((Y>aq.longTapThreshold)&&(ac=0)){return o}else{if((a8<=360)&&(a8>=315)){return o}else{if((a8>=135)&&(a8<=225)){return n}else{if((a8>45)&&(a8<135)){return v}else{return d}}}}}function ao(){var a6=new Date();return a6.getTime()}function aU(a6){a6=e(a6);var a8=a6.offset();var a7={left:a8.left,right:a8.left+a6.outerWidth(),top:a8.top,bottom:a8.top+a6.outerHeight()};return a7}function B(a6,a7){return(a6.x>a7.left&&a6.xa7.top&&a6.y