PageSourceSearch

http://www.fatsimare.gr/files/js/js_39bf8eb9bcb4e8d87cfb7480c72331d0.js

js fatsimare.gr collected 2026-10-02 12:58:32 UTC 126,323 bytes, 1,846 lines download raw bytes

1/*
2 * jQuery JavaScript Library v1.3.2
3 * http://jquery.com/
4 *
5 * Copyright (c) 2009 John Resig
6 * Dual licensed under the MIT and GPL licenses.
7 * http://docs.jquery.com/License
8 *
9 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
10 * Revision: 6246
11 */
12(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})}
12,css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})}
12,remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?
120:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];
12if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
13/*
14 * Sizzle CSS Selector Engine - v0.9.3
15 *  Copyright 2009, The Dojo Foundation
16 *  Released under the MIT, BSD, and GPL Licenses.
17 *  More information: http://sizzlejs.com/
18 */
19(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*
19)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}
19if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCo
19de clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}
19o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();
19if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["o
19pacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;
19if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.
19clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();;
20
21var Drupal = Drupal || { 'settings': {}, 'behaviors': {}, 'themes': {}, 'locale': {} };
22
23/**
24 * Set the variable that indicates if JavaScript behaviors should be applied
25 */
26Drupal.jsEnabled = document.getElementsByTagName && document.createElement && document.createTextNode && document.documentElement && document.getElementById;
27
28/**
29 * Attach all registered behaviors to a page element.
30 *
31 * Behaviors are event-triggered actions that attach to page elements, enhancing
32 * default non-Javascript UIs. Behaviors are registered in the Drupal.behaviors
33 * object as follows:
34 * @code
35 *    Drupal.behaviors.behaviorName = function () {
36 *      ...
37 *    };
38 * @endcode
39 *
40 * Drupal.attachBehaviors is added below to the jQuery ready event and so
41 * runs on initial page load. Developers implementing AHAH/AJAX in their
42 * solutions should also call this function after new page content has been
43 * loaded, feeding in an element to be processed, in order to attach all
44 * behaviors to the new content.
45 *
46 * Behaviors should use a class in the form behaviorName-processed to ensure
47 * the behavior is attached only once to a given element. (Doing so enables
48 * the reprocessing of given elements, which may be needed on occasion despite
49 * the ability to limit behavior attachment to a particular element.)
50 *
51 * @param context
52 *   An element to attach behaviors to. If none is given, the document element
53 *   is used.
54 */
55Drupal.attachBehaviors = function(context) {
56  context = context || document;
57  if (Drupal.jsEnabled) {
58    // Execute all of them.
59    jQuery.each(Drupal.behaviors, function() {
60      this(context);
61    });
62  }
63};
64
65/**
66 * Encode special characters in a plain-text string for display as HTML.
67 */
68Drupal.checkPlain = function(str) {
69  str = String(str);
70  var replace = { '&': '&amp;', '"': '&quot;', '<': '&lt;', '>': '&gt;' };
71  for (var character in replace) {
72    var regex = new RegExp(character, 'g');
73    str = str.replace(regex, replace[character]);
74  }
75  return str;
76};
77
78/**
79 * Translate strings to the page language or a given language.
80 *
81 * See the documentation of the server-side t() function for further details.
82 *
83 * @param str
84 *   A string containing the English string to translate.
85 * @param args
86 *   An object of replacements pairs to make after translation. Incidences
87 *   of any key in this array are replaced with the corresponding value.
88 *   Based on the first character of the key, the value is escaped and/or themed:
89 *    - !variable: inserted as is
90 *    - @variable: escape plain text to HTML (Drupal.checkPlain)
91 *    - %variable: escape text and theme as a placeholder for user-submitted
92 *      content (checkPlain + Drupal.theme('placeholder'))
93 * @return
94 *   The translated string.
95 */
96Drupal.t = function(str, args) {
97  // Fetch the localized version of the string.
98  if (Drupal.locale.strings && Drupal.locale.strings[str]) {
99    str = Drupal.locale.strings[str];
100  }
101
102  if (args) {
103    // Transform arguments before inserting them
104    for (var key in args) {
105      switch (key.charAt(0)) {
106        // Escaped only
107        case '@':
108          args[key] = Drupal.checkPlain(args[key]);
109        break;
110        // Pass-through
111        case '!':
112          break;
113        // Escaped and placeholder
114        case '%':
115        default:
116          args[key] = Drupal.theme('placeholder', args[key]);
117          break;
118      }
119      str = str.replace(key, args[key]);
120    }
121  }
122  return str;
123};
124
125/**
126 * Format a string containing a count of items.
127 *
128 * This function ensures that the string is pluralized correctly. Since Drupal.t() is
129 * called by this function, make sure not to pass already-localized strings to it.
130 *
131 * See the documentation of the server-side format_plural() function for further details.
132 *
133 * @param count
134 *   The item count to display.
135 * @param singular
136 *   The string for the singular case. Please make sure it is clear this is
137 *   singular, to ease translation (e.g. use "1 new comment" instead of "1 new").
138 *   Do not use @count in the singular string.
139 * @param plural
140 *   The string for the plural case. Please make sure it is clear this is plural,
141 *   to ease translation. Use @count in place of the item count, as in "@count
142 *   new comments".
143 * @param args
144 *   An object of replacements pairs to make after translation. Incidences
145 *   of any key in this array are replaced with the corresponding value.
146 *   Based on the first character of the key, the value is escaped and/or themed:
147 *    - !variable: inserted as is
148 *    - @variable: escape plain text to HTML (Drupal.checkPlain)
149 *    - %variable: escape text and theme as a placeholder for user-submitted
150 *      content (checkPlain + Drupal.theme('placeholder'))
151 *   Note that you do not need to include @count in this array.
152 *   This replacement is done automatically for the plural case.
153 * @return
154 *   A translated string.
155 */
156Drupal.formatPlural = function(count, singular, plural, args) {
157  var args = args || {};
158  args['@count'] = count;
159  // Determine the index of the plural form.
160  var index = Drupal.locale.pluralFormula ? Drupal.locale.pluralFormula(args['@count']) : ((args['@count'] == 1) ? 0 : 1);
161
162  if (index == 0) {
163    return Drupal.t(singular, args);
164  }
165  else if (index == 1) {
166    return Drupal.t(plural, args);
167  }
168  else {
169    args['@count['+ index +']'] = args['@count'];
170    delete args['@count'];
171    return Drupal.t(plural.replace('@count', '@count['+ index +']'), args);
172  }
173};
174
175/**
176 * Generate the themed representation of a Drupal object.
177 *
178 * All requests for themed output must go through this function. It examines
179 * the request and routes it to the appropriate theme function. If the current
180 * theme does not provide an override function, the generic theme function is
181 * called.
182 *
183 * For example, to retrieve the HTML that is output by theme_placeholder(text),
184 * call Drupal.theme('placeholder', text).
185 *
186 * @param func
187 *   The name of the theme function to call.
188 * @param ...
189 *   Additional arguments to pass along to the theme function.
190 * @return
191 *   Any data the theme function returns. This could be a plain HTML string,
192 *   but also a complex object.
193 */
194Drupal.theme = function(func) {
195  for (var i = 1, args = []; i < arguments.length; i++) {
196    args.push(arguments[i]);
197  }
198
199  return (Drupal.theme[func] || Drupal.theme.prototype[func]).apply(this, args);
200};
201
202/**
203 * Parse a JSON response.
204 *
205 * The result is either the JSON object, or an object with 'status' 0 and 'data' an error message.
206 */
207Drupal.parseJson = function (data) {
208  if ((data.substring(0, 1) != '{') && (data.substring(0, 1) != '[')) {
209    return { status: 0, data: data.length ? data : Drupal.t('Unspecified error') };
210  }
211  return eval('(' + data + ');');
212};
213
214/**
215 * Freeze the current body height (as minimum height). Used to prevent
216 * unnecessary upwards scrolling when doing DOM manipulations.
217 */
218Drupal.freezeHeight = function () {
219  Drupal.unfreezeHeight();
220  var div = document.createElement('div');
221  $(div).css({
222    position: 'absolute',
223    top: '0px',
224    left: '0px',
225    width: '1px',
226    height: $('body').css('height')
227  }).attr('id', 'freeze-height');
228  $('body').append(div);
229};
230
231/**
232 * Unfreeze the body height
233 */
234Drupal.unfreezeHeight = function () {
235  $('#freeze-height').remove();
236};
237
238/**
239 * Wrapper around encodeURIComponent() which avoids Apache quirks (equivalent of
240 * drupal_urlencode() in PHP). This function should only be used on paths, not
241 * on query string arguments.
242 */
243Drupal.encodeURIComponent = function (item, uri) {
244  uri = uri || location.href;
245  item = encodeURIComponent(item).replace(/%2F/g, '/');
246  return (uri.indexOf('?q=') != -1) ? item : item.replace(/%26/g, '%2526').replace(/%23/g, '%2523').replace(/\/\//g, '/%252F');
247};
248
249/**
250 * Get the text selection in a textarea.
251 */
252Drupal.getSelection = function (element) {
253  if (typeof(element.selectionStart) != 'number' && document.selection) {
254    // The current selection
255    var range1 = document.selection.createRange();
256    var range2 = range1.duplicate();
257    // Select all text.
258    range2.moveToElementText(element);
259    // Now move 'dummy' end point to end point of original range.
260    range2.setEndPoint('EndToEnd', range1);
261    // Now we can calculate start and end points.
262    var start = range2.text.length - range1.text.length;
263    var end = start + range1.text.length;
264    return { 'start': start, 'end': end };
265  }
266  return { 'start': element.selectionStart, 'end': element.selectionEnd };
267};
268
269/**
270 * Build an error message from ahah response.
271 */
272Drupal.ahahError = function(xmlhttp, uri) {
273  if (xmlhttp.status == 200) {
274    if (jQuery.trim($(xmlhttp.responseText).text())) {
275      var message = Drupal.t("An error occurred. \n@uri\n@text", {'@uri': uri, '@text': xmlhttp.responseText });
276    }
277    else {
278      var message = Drupal.t("An error occurred. \n@uri\n(no information available).", {'@uri': uri, '@text': xmlhttp.responseText });
279    }
280  }
281  else {
282    var message = Drupal.t("An HTTP error @status occurred. \n@uri", {'@uri': uri, '@status': xmlhttp.status });
283  }
284  return message;
285}
286
287// Global Killswitch on the <html> element
288if (Drupal.jsEnabled) {
289  // Global Killswitch on the <html> element
290  $(document.documentElement).addClass('js');
291  // 'js enabled' cookie
292  document.cookie = 'has_js=1; path=/';
293  // Attach all behaviors.
294  $(document).ready(function() {
295    Drupal.attachBehaviors(this);
296  });
297}
298
299/**
300 * The default themes.
301 */
302Drupal.theme.prototype = {
303
304  /**
305   * Formats text for emphasized display in a placeholder inside a sentence.
306   *
307   * @param str
308   *   The text to format (plain-text).
309   * @return
310   *   The formatted text (html).
311   */
312  placeholder: function(str) {
313    return '<em>' + Drupal.checkPlain(str) + '</em>';
314  }
315};
316;
317Drupal.locale = { 'pluralFormula': function($n) { return Number(($n!=1)); }, 'strings': { "Unspecified error": "Απροσδιόριστο σφάλμα", "An error occurred. \n@uri\n@text": "Παρουσιάστηκε σφάλμα. \n@uri\n@text", "An error occurred. \n@uri\n(no information available).": "Παρουσιάστηκε σφάλμα. \n@uri\n(καμία διαθέσιμη πληροφορία).", "An HTTP error @status occurred. \n@uri": "Παρουσιάστηκε HTTP σφάλμα. @status \n@uri", "Drag to re-order": "Μετακινήστε για ανακατάταξη", "Changes made in this table will not be saved until the form is submitted.": "Οι αλλαγές που γίνονται σ\' αυτόν τον πίνακα δεν θα αποθηκευτούν έως ότου η φόρμα υποβληθεί.", "Select all rows in this table": "Επιλογή όλων των γραμμών σε αυτόν τον πίνακα", "Deselect all rows in this table": "Αποεπιλογή όλων των γραμμών σε αυτό τον πίνακα", "Split summary at cursor": "Διαχωρισμός περίληψης στο σημείο που βρίσκεται ο δρομέας", "Join 
317summary": "Ένωση περίληψης", "Your server has been successfully tested to support this feature.": "Ο διακομιστής σας δοκιμάστηκε επιτυχώς για υποστήριξη αυτού του χαρακτηριστικού.", "Testing clean URLs...": "Δοκιμή καθαρών διευθύνσεων URL...", "Your system configuration does not currently support this feature. The \x3ca href=\"http://drupal.org/node/15365\"\x3ehandbook page on Clean URLs\x3c/a\x3e has additional troubleshooting information.": "Η διαμόρφωση του συστήματός σας δεν υποστηρίζει αυτό το χαρακτηριστικό αυτή τη στιγμή. Η \x3ca href=\"http://drupal.org/node/15365\"\x3eσελίδα του εγχειριδίου περί Καθαρών Διευθύνσεων URL\x3c/a\x3e περιλαμβάνει περισσότερες πληροφορίες αποκατάστασης.", "The changes to these blocks will not be saved until the \x3cem\x3eSave blocks\x3c/em\x3e button is clicked.": "Οι αλλαγές σε αυτά τα μπλοκ δεν θα αποθηκευτούν έως ότου κάνετε κλικ στο κουμπί \x3cem\x3eΑποθήκευση μπλοκ\x3c/em\x3e." } };;
318/* $Id: lightbox.js,v 1.5.2.6.2.136 2010/09/24 08:39:40 snpower Exp $ */
319
320/**
321 * jQuery Lightbox
322 * @author
323 *   Stella Power, <http://drupal.org/user/66894>
324 *
325 * Based on Lightbox v2.03.3 by Lokesh Dhakar
326 * <http://www.huddletogether.com/projects/lightbox2/>
327 * Also partially based on the jQuery Lightbox by Warren Krewenki
328 *   <http://warren.mesozen.com>
329 *
330 * Permission has been granted to Mark Ashmead & other Drupal Lightbox2 module
331 * maintainers to distribute this file via Drupal.org
332 * Under GPL license.
333 *
334 * Slideshow, iframe and video functionality added by Stella Power.
335 */
336
337var Lightbox = {
338  auto_modal : false,
339  overlayOpacity : 0.8, // Controls transparency of shadow overlay.
340  overlayColor : '000', // Controls colour of shadow overlay.
341  disableCloseClick : true,
342  // Controls the order of the lightbox resizing animation sequence.
343  resizeSequence: 0, // 0: simultaneous, 1: width then height, 2: height then width.
344  resizeSpeed: 'normal', // Controls the speed of the lightbox resizing animation.
345  fadeInSpeed: 'normal', // Controls the speed of the image appearance.
346  slideDownSpeed: 'slow', // Controls the speed of the image details appearance.
347  minWidth: 240,
348  borderSize : 10,
349  boxColor : 'fff',
350  fontColor : '000',
351  topPosition : '',
352  infoHeight: 20,
353  alternative_layout : false,
354  imageArray : [],
355  imageNum : null,
356  total : 0,
357  activeImage : null,
358  inprogress : false,
359  disableResize : false,
360  disableZoom : false,
361  isZoomedIn : false,
362  rtl : false,
363  loopItems : false,
364  keysClose : ['c', 'x', 27],
365  keysPrevious : ['p', 37],
366  keysNext : ['n', 39],
367  keysZoom : ['z'],
368  keysPlayPause : [32],
369
370  // Slideshow options.
371  slideInterval : 5000, // In milliseconds.
372  showPlayPause : true,
373  autoStart : true,
374  autoExit : true,
375  pauseOnNextClick : false, // True to pause the slideshow when the "Next" button is clicked.
376  pauseOnPrevClick : true, // True to pause the slideshow when the "Prev" button is clicked.
377  slideIdArray : [],
378  slideIdCount : 0,
379  isSlideshow : false,
380  isPaused : false,
381  loopSlides : false,
382
383  // Iframe options.
384  isLightframe : false,
385  iframe_width : 600,
386  iframe_height : 400,
387  iframe_border : 1,
388
389  // Video and modal options.
390  enableVideo : false,
391  flvPlayer : '/flvplayer.swf',
392  flvFlashvars : '',
393  isModal : false,
394  isVideo : false,
395  videoId : false,
396  modalWidth : 400,
397  modalHeight : 400,
398  modalHTML : null,
399
400
401  // initialize()
402  // Constructor runs on completion of the DOM loading.
403  // The function inserts html at the bottom of the page which is used
404  // to display the shadow overlay and the image container.
405  initialize: function() {
406
407    var s = Drupal.settings.lightbox2;
408    Lightbox.overlayOpacity = s.overlay_opacity;
409    Lightbox.overlayColor = s.overlay_color;
410    Lightbox.disableCloseClick = s.disable_close_click;
411    Lightbox.resizeSequence = s.resize_sequence;
412    Lightbox.resizeSpeed = s.resize_speed;
413    Lightbox.fadeInSpeed = s.fade_in_speed;
414    Lightbox.slideDownSpeed = s.slide_down_speed;
415    Lightbox.borderSize = s.border_size;
416    Lightbox.boxColor = s.box_color;
417    Lightbox.fontColor = s.font_color;
418    Lightbox.topPosition = s.top_position;
419    Lightbox.rtl = s.rtl;
420    Lightbox.loopItems = s.loop_items;
421    Lightbox.keysClose = s.keys_close.split(" ");
422    Lightbox.keysPrevious = s.keys_previous.split(" ");
423    Lightbox.keysNext = s.keys_next.split(" ");
424    Lightbox.keysZoom = s.keys_zoom.split(" ");
425    Lightbox.keysPlayPause = s.keys_play_pause.split(" ");
426    Lightbox.disableResize = s.disable_resize;
427    Lightbox.disableZoom = s.disable_zoom;
428    Lightbox.slideInterval = s.slideshow_interval;
429    Lightbox.showPlayPause = s.show_play_pause;
430    Lightbox.showCaption = s.show_caption;
431    Lightbox.autoStart = s.slideshow_automatic_start;
432    Lightbox.autoExit = s.slideshow_automatic_exit;
433    Lightbox.pauseOnNextClick = s.pause_on_next_click;
434    Lightbox.pauseOnPrevClick = s.pause_on_previous_click;
435    Lightbox.loopSlides = s.loop_slides;
436    Lightbox.alternative_layout = s.use_alt_layout;
437    Lightbox.iframe_width = s.iframe_width;
438    Lightbox.iframe_height = s.iframe_height;
439    Lightbox.iframe_border = s.iframe_border;
440    Lightbox.enableVideo = s.enable_video;
441    if (s.enable_video) {
442      Lightbox.flvPlayer = s.flvPlayer;
443      Lightbox.flvFlashvars = s.flvFlashvars;
444    }
445
446    // Make the lightbox divs.
447    var layout_class = (s.use_alt_layout ? 'lightbox2-alt-layout' : 'lightbox2-orig-layout');
448    var output = '<div id="lightbox2-overlay" style="display: none;"></div>\
449      <div id="lightbox" style="display: none;" class="' + layout_class + '">\
450        <div id="outerImageContainer"></div>\
451        <div id="imageDataContainer" class="clearfix">\
452          <div id="imageData"></div>\
453        </div>\
454      </div>';
455    var loading = '<div id="loading"><a href="#" id="loadingLink"></a></div>';
456    var modal = '<div id="modalContainer" style="display: none;"></div>';
457    var frame = '<div id="frameContainer" style="display: none;"></div>';
458    var imageContainer = '<div id="imageContainer" style="display: none;"></div>';
459    var details = '<div id="imageDetails"></div>';
460    var bottomNav = '<div id="bottomNav"></div>';
461    var image = '<img id="lightboxImage" alt="" />';
462    var hoverNav = '<div id="hoverNav"><a id="prevLink" href="#"></a><a id="nextLink" href="#"></a></div>';
463    var frameNav = '<div id="frameHoverNav"><a id="framePrevLink" href="#"></a><a id="frameNextLink" href="#"></a></div>';
464    var hoverNav = '<div id="hoverNav"><a id="prevLink" title="' + Drupal.t('Previous') + '" href="#"></a><a id="nextLink" title="' + Drupal.t('Next') + '" href="#"></a></div>';
465    var frameNav = '<div id="frameHoverNav"><a id="framePrevLink" title="' + Drupal.t('Previous') + '" href="#"></a><a id="frameNextLink" title="' + Drupal.t('Next') + '" href="#"></a></div>';
466    var caption = '<span id="caption"></span>';
467    var numberDisplay = '<span id="numberDisplay"></span>';
468    var close = '<a id="bottomNavClose" title="' + Drupal.t('Close') + '" href="#"></a>';
469    var zoom = '<a id="bottomNavZoom" href="#"></a>';
470    var zoomOut = '<a id="bottomNavZoomOut" href="#"></a>';
471    var pause = '<a id="lightshowPause" title="' + Drupal.t('Pause Slideshow') + '" href="#" style="display: none;"></a>';
472    var play = '<a id="lightshowPlay" title="' + Drupal.t('Play Slideshow') + '" href="#" style="display: none;"></a>';
473
474    $("body").append(output);
475    $('#outerImageContainer').append(modal + frame + imageContainer + loading);
476    if (!s.use_alt_layout) {
477      $('#imageContainer').append(image + hoverNav);
478      $('#imageData').append(details + bottomNav);
479      $('#imageDetails').append(caption + numberDisplay);
480      $('#bottomNav').append(frameNav + close + zoom + zoomOut + pause + play);
481    }
482    else {
483      $('#outerImageContainer').append(bottomNav);
484      $('#imageContainer').append(image);
485      $('#bottomNav').append(close + zoom + zoomOut);
486      $('#imageData').append(hoverNav + details);
487      $('#imageDetails').append(caption + numberDisplay + pause + play);
488    }
489
490    // Setup onclick handlers.
491    if (Lightbox.disableCloseClick) {
492      $('#lightbox2-overlay').click(function() { Lightbox.end(); return false; } ).hide();
493    }
494    $('#loadingLink, #bottomNavClose').click(function() { Lightbox.end('forceClose'); return false; } );
495    $('#prevLink, #framePrevLink').click(function() { Lightbox.changeData(Lightbox.activeImage - 1); return false; } );
496    $('#nextLink, #frameNextLink').click(function() { Lightbox.changeData(Lightbox.activeImage + 1); return false; } );
497    $('#bottomNavZoom').click(function() { Lightbox.changeData(Lightbox.activeImage, true); return false; } );
498    $('#bottomNavZoomOut').click(function() { Lightbox.changeData(Lightbox.activeImage, false); return false; } );
499    $('#lightshowPause').click(function() { Lightbox.togglePlayPause("lightshowPause", "lightshowPlay"); return false; } );
500    $('#lightshowPlay').click(function() { Lightbox.togglePlayPause("lightshowPlay", "lightshowPause"); return false; } );
501
502    // Fix positioning.
503    $('#prevLink, #nextLink, #framePrevLink, #frameNextLink').css({ 'paddingTop': Lightbox.borderSize + 'px'});
504    $('#imageContainer, #frameContainer, #modalContainer').css({ 'padding': Lightbox.borderSize + 'px'});
505    $('#outerImageContainer, #imageDataContainer, #bottomNavClose').css({'backgroundColor': '#' + Lightbox.boxColor, 'color': '#'+Lightbox.fontColor});
506    if (Lightbox.alternative_layout) {
507      $('#bottomNavZoom, #bottomNavZoomOut').css({'bottom': Lightbox.borderSize + 'px', 'right': Lightbox.borderSize + 'px'});
508    }
509    else if (Lightbox.rtl == 1 && $.browser.msie) {
510      $('#bottomNavZoom, #bottomNavZoomOut').css({'left': '0px'});
511    }
512
513    // Force navigation links to always be displayed
514    if (s.force_show_nav) {
515      $('#prevLink, #nextLink').addClass("force_show_nav");
516    }
517
518  },
519
520  // initList()
521  // Loops through anchor tags looking for 'lightbox', 'lightshow' and
522  // 'lightframe', etc, references and applies onclick events to appropriate
523  // links. You can rerun after dynamically adding images w/ajax.
524  initList : function(context) {
525
526    if (context == undefined || context == null) {
527      context = document;
528    }
529
530    // Attach lightbox to any links with rel 'lightbox', 'lightshow' or
531    // 'lightframe', etc.
532    $("a[rel^='lightbox']:not(.lightbox-processed), area[rel^='lightbox']:not(.lightbox-processed)", context).addClass('lightbox-processed').click(function(e) {
533      if (Lightbox.disableCloseClick) {
534        $('#lightbox').unbind('click');
535        $('#lightbox').click(function() { Lightbox.end('forceClose'); } );
536      }
537      Lightbox.start(this, false, false, false, false);
538      if (e.preventDefault) { e.preventDefault(); }
539      return false;
540    });
541    $("a[rel^='lightshow']:not(.lightbox-processed), area[rel^='lightshow']:not(.lightbox-processed)", context).addClass('lightbox-processed').click(function(e) {
542      if (Lightbox.disableCloseClick) {
543        $('#lightbox').unbind('click');
544        $('#lightbox').click(function() { Lightbox.end('forceClose'); } );
545      }
546      Lightbox.start(this, true, false, false, false);
547      if (e.preventDefault) { e.preventDefault(); }
548      return false;
549    });
550    $("a[rel^='lightframe']:not(.lightbox-processed), area[rel^='lightframe']:not(.lightbox-processed)", context).addClass('lightbox-processed').click(function(e) {
551      if (Lightbox.disableCloseClick) {
552        $('#lightbox').unbind('click');
553        $('#lightbox').click(function() { Lightbox.end('forceClose'); } );
554      }
555      Lightbox.start(this, false, true, false, false);
556      if (e.preventDefault) { e.preventDefault(); }
557      return false;
558    });
559    if (Lightbox.enableVideo) {
560      $("a[rel^='lightvideo']:not(.lightbox-processed), area[rel^='lightvideo']:not(.lightbox-processed)", context).addClass('lightbox-processed').click(function(e) {
561        if (Lightbox.disableCloseClick) {
562          $('#lightbox').unbind('click');
563          $('#lightbox').click(function() { Lightbox.end('forceClose'); } );
564        }
565        Lightbox.start(this, false, false, true, false);
566        if (e.preventDefault) { e.preventDefault(); }
567        return false;
568      });
569    }
570    $("a[rel^='lightmodal']:not(.lightbox-processed), area[rel^='lightmodal']:not(.lightbox-processed)", context).addClass('lightbox-processed').click(function(e) {
571      $('#lightbox').unbind('click');
572      // Add classes from the link to the lightbox div - don't include lightbox-processed
573      $('#lightbox').addClass($(this).attr('class'));
574      $('#lightbox').removeClass('lightbox-processed');
575      Lightbox.start(this, false, false, false, true);
576      if (e.preventDefault) { e.preventDefault(); }
577      return false;
578    });
579    $("#lightboxAutoModal:not(.lightbox-processed)", context).addClass('lightbox-processed').click(function(e) {
580      Lightbox.auto_modal = true;
581      $('#lightbox').unbind('click');
582      Lightbox.start(this, false, false, false, true);
583      if (e.preventDefault) { e.preventDefault(); }
584      return false;
585    });
586  },
587
588  // start()
589  // Display overlay and lightbox. If image is part of a set, add siblings to
590  // imageArray.
591  start: function(imageLink, slideshow, lightframe, lightvideo, lightmodal) {
592
593    Lightbox.isPaused = !Lightbox.autoStart;
594
595    // Replaces hideSelectBoxes() and hideFlash() calls in original lightbox2.
596    Lightbox.toggleSelectsFlash('hide');
597
598    // Stretch overlay to fill page and fade in.
599    var arrayPageSize = Lightbox.getPageSize();
600    $("#lightbox2-overlay").hide().css({
601      'width': '100%',
602      'zIndex': '10090',
603      'height': arrayPageSize[1] + 'px',
604      'backgroundColor' : '#' + Lightbox.overlayColor
605    });
606    // Detect OS X FF2 opacity + flash issue.
607    if (lightvideo && this.detectMacFF2()) {
608      $("#lightbox2-overlay").removeClass("overlay_default");
609      $("#lightbox2-overlay").addClass("overlay_macff2");
610      $("#lightbox2-overlay").css({'opacity' : null});
611    }
612    else {
613      $("#lightbox2-overlay").removeClass("overlay_macff2");
614      $("#lightbox2-overlay").addClass("overlay_default");
615      $("#lightbox2-overlay").css({'opacity' : Lightbox.overlayOpacity});
616    }
617    $("#lightbox2-overlay").fadeIn(Lightbox.fadeInSpeed);
618
619
620    Lightbox.isSlideshow = slideshow;
621    Lightbox.isLightframe = lightframe;
622    Lightbox.isVideo = lightvideo;
623    Lightbox.isModal = lightmodal;
624    Lightbox.imageArray = [];
625    Lightbox.imageNum = 0;
626
627    var anchors = $(imageLink.tagName);
628    var anchor = null;
629    var rel_parts = Lightbox.parseRel(imageLink);
630    var rel = rel_parts["rel"];
631    var rel_group = rel_parts["group"];
632    var title = (rel_parts["title"] ? rel_parts["title"] : imageLink.title);
633    var rel_style = null;
634    var i = 0;
635
636    if (rel_parts["flashvars"]) {
637      Lightbox.flvFlashvars = Lightbox.flvFlashvars + '&' + rel_parts["flashvars"];
638    }
639
640    // Set the title for image alternative text.
641    var alt = imageLink.title;
642    if (!alt) {
643      var img = $(imageLink).find("img");
644      if (img && $(img).attr("alt")) {
645        alt = $(img).attr("alt");
646      }
647      else {
648        alt = title;
649      }
650    }
651
652    if ($(imageLink).attr('id') == 'lightboxAutoModal') {
653      rel_style = rel_parts["style"];
654      Lightbox.imageArray.push(['#lightboxAutoModal > *', title, alt, rel_style, 1]);
655    }
656    else {
657      // Handle lightbox images with no grouping.
658      if ((rel == 'lightbox' || rel == 'lightshow') && !rel_group) {
659        Lightbox.imageArray.push([imageLink.href, title, alt]);
660      }
661
662      // Handle other items with no grouping.
663      else if (!rel_group) {
664        rel_style = rel_parts["style"];
665        Lightbox.imageArray.push([imageLink.href, title, alt, rel_style]);
666      }
667
668      // Handle grouped items.
669      else {
670
671        // Loop through anchors and add them to imageArray.
672        for (i = 0; i < anchors.length; i++) {
673          anchor = anchors[i];
674          if (anchor.href && typeof(anchor.href) == "string" && $(anchor).attr('rel')) {
675            var rel_data = Lightbox.parseRel(anchor);
676            var anchor_title = (rel_data["title"] ? rel_data["title"] : anchor.title);
677            img_alt = anchor.title;
678            if (!img_alt) {
679              var anchor_img = $(anchor).find("img");
680              if (anchor_img && $(anchor_img).attr("alt")) {
681                img_alt = $(anchor_img).attr("alt");
682              }
683              else {
684                img_alt = title;
685              }
686            }
687            if (rel_data["rel"] == rel) {
688              if (rel_data["group"] == rel_group) {
689                if (Lightbox.isLightframe || Lightbox.isModal || Lightbox.isVideo) {
690                  rel_style = rel_data["style"];
691                }
692                Lightbox.imageArray.push([anchor.href, anchor_title, img_alt, rel_style]);
693              }
694            }
695          }
696        }
697
698        // Remove duplicates.
699        for (i = 0; i < Lightbox.imageArray.length; i++) {
700          for (j = Lightbox.imageArray.length-1; j > i; j--) {
701            if (Lightbox.imageArray[i][0] == Lightbox.imageArray[j][0]) {
702              Lightbox.imageArray.splice(j,1);
703            }
704          }
705        }
706        while (Lightbox.imageArray[Lightbox.imageNum][0] != imageLink.href) {
707          Lightbox.imageNum++;
708        }
709      }
710    }
711
712    if (Lightbox.isSlideshow && Lightbox.showPlayPause && Lightbox.isPaused) {
713      $('#lightshowPlay').show();
714      $('#lightshowPause').hide();
715    }
716
717    // Calculate top and left offset for the lightbox.
718    var arrayPageScroll = Lightbox.getPageScroll();
719    var lightboxTop = arrayPageScroll[1] + (Lightbox.topPosition == '' ? (arrayPageSize[3] / 10) : Lightbox.topPosition) * 1;
720    var lightboxLeft = arrayPageScroll[0];
721    $('#frameContainer, #modalContainer, #lightboxImage').hide();
722    $('#hoverNav, #prevLink, #nextLink, #frameHoverNav, #framePrevLink, #frameNextLink').hide();
723    $('#imageDataContainer, #numberDisplay, #bottomNavZoom, #bottomNavZoomOut').hide();
724    $('#outerImageContainer').css({'width': '250px', 'height': '250px'});
725    $('#lightbox').css({
726      'zIndex': '10500',
727      'top': lightboxTop + 'px',
728      'left': lightboxLeft + 'px'
729    }).show();
730
731    Lightbox.total = Lightbox.imageArray.length;
732    Lightbox.changeData(Lightbox.imageNum);
733  },
734
735  // changeData()
736  // Hide most elements and preload image in preparation for resizing image
737  // container.
738  changeData: function(imageNum, zoomIn) {
739
740    if (Lightbox.inprogress === false) {
741      if (Lightbox.total > 1 && ((Lightbox.isSlideshow && Lightbox.loopSlides) || (!Lightbox.isSlideshow && Lightbox.loopItems))) {
742        if (imageNum >= Lightbox.total) imageNum = 0;
743        if (imageNum < 0) imageNum = Lightbox.total - 1;
744      }
745
746      if (Lightbox.isSlideshow) {
747        for (var i = 0; i < Lightbox.slideIdCount; i++) {
748          window.clearTimeout(Lightbox.slideIdArray[i]);
749        }
750      }
751      Lightbox.inprogress = true;
752      Lightbox.activeImage = imageNum;
753
754      if (Lightbox.disableResize && !Lightbox.isSlideshow) {
755        zoomIn = true;
756      }
757      Lightbox.isZoomedIn = zoomIn;
758
759
760      // Hide elements during transition.
761      $('#loading').css({'zIndex': '10500'}).show();
762      if (!Lightbox.alternative_layout) {
763        $('#imageContainer').hide();
764      }
765      $('#frameContainer, #modalContainer, #lightboxImage').hide();
766      $('#hoverNav, #prevLink, #nextLink, #frameHoverNav, #framePrevLink, #frameNextLink').hide();
767      $('#imageDataContainer, #numberDisplay, #bottomNavZoom, #bottomNavZoomOut').hide();
768
769      // Preload image content, but not iframe pages.
770      if (!Lightbox.isLightframe && !Lightbox.isVideo && !Lightbox.isModal) {
771        $("#lightbox #imageDataContainer").removeClass('lightbox2-alt-layout-data');
772        imgPreloader = new Image();
773        imgPreloader.onerror = function() { Lightbox.imgNodeLoadingError(this); };
774
775        imgPreloader.onload = function() {
776          var photo = document.getElementById('lightboxImage');
777          photo.src = Lightbox.imageArray[Lightbox.activeImage][0];
778          photo.alt = Lightbox.imageArray[Lightbox.activeImage][2];
779
780          var imageWidth = imgPreloader.width;
781          var imageHeight = imgPreloader.height;
782
783          // Resize code.
784          var arrayPageSize = Lightbox.getPageSize();
785          var targ = { w:arrayPageSize[2] - (Lightbox.borderSize * 2), h:arrayPageSize[3] - (Lightbox.borderSize * 6) - (Lightbox.infoHeight * 4) - (arrayPageSize[3] / 10) };
786          var orig = { w:imgPreloader.width, h:imgPreloader.height };
787
788          // Image is very large, so show a smaller version of the larger image
789          // with zoom button.
790          if (zoomIn !== true) {
791            var ratio = 1.0; // Shrink image with the same aspect.
792            $('#bottomNavZoomOut, #bottomNavZoom').hide();
793            if ((orig.w >= targ.w || orig.h >= targ.h) && orig.h && orig.w) {
794              ratio = ((targ.w / orig.w) < (targ.h / orig.h)) ? targ.w / orig.w : targ.h / orig.h;
795              if (!Lightbox.disableZoom && !Lightbox.isSlideshow) {
796                $('#bottomNavZoom').css({'zIndex': '10500'}).show();
797              }
798            }
799
800            imageWidth  = Math.floor(orig.w * ratio);
801            imageHeight = Math.floor(orig.h * ratio);
802          }
803
804          else {
805            $('#bottomNavZoom').hide();
806            // Only display zoom out button if the image is zoomed in already.
807            if ((orig.w >= targ.w || orig.h >= targ.h) && orig.h && orig.w) {
808              // Only display zoom out button if not a slideshow and if the
809              // buttons aren't disabled.
810              if (!Lightbox.disableResize && Lightbox.isSlideshow === false && !Lightbox.disableZoom) {
811                $('#bottomNavZoomOut').css({'zIndex': '10500'}).show();
812              }
813            }
814          }
815
816          photo.style.width = (imageWidth) + 'px';
817          photo.style.height = (imageHeight) + 'px';
818          Lightbox.resizeContainer(imageWidth, imageHeight);
819
820          // Clear onLoad, IE behaves irratically with animated gifs otherwise.
821          imgPreloader.onload = function() {};
822        };
823
824        imgPreloader.src = Lightbox.imageArray[Lightbox.activeImage][0];
825        imgPreloader.alt = Lightbox.imageArray[Lightbox.activeImage][2];
826      }
827
828      // Set up frame size, etc.
829      else if (Lightbox.isLightframe) {
830        $("#lightbox #imageDataContainer").addClass('lightbox2-alt-layout-data');
831        var src = Lightbox.imageArray[Lightbox.activeImage][0];
832        $('#frameContainer').html('<iframe id="lightboxFrame" style="display: none;" src="'+src+'"></iframe>');
833
834        // Enable swf support in Gecko browsers.
835        if ($.browser.mozilla && src.indexOf('.swf') != -1) {
836          setTimeout(function () {
837            document.getElementById("lightboxFrame").src = Lightbox.imageArray[Lightbox.activeImage][0];
838          }, 1000);
839        }
840
841        if (!Lightbox.iframe_border) {
842          $('#lightboxFrame').css({'border': 'none'});
843          $('#lightboxFrame').attr('frameborder', '0');
844        }
845        var iframe = document.getElementById('lightboxFrame');
846        var iframeStyles = Lightbox.imageArray[Lightbox.activeImage][3];
847        iframe = Lightbox.setStyles(iframe, iframeStyles);
848        Lightbox.resizeContainer(parseInt(iframe.width, 10), parseInt(iframe.height, 10));
849      }
850      else if (Lightbox.isVideo || Lightbox.isModal) {
851        $("#lightbox #imageDataContainer").addClass('lightbox2-alt-layout-data');
852        var container = document.getElementById('modalContainer');
853        var modalStyles = Lightbox.imageArray[Lightbox.activeImage][3];
854        container = Lightbox.setStyles(container, modalStyles);
855        if (Lightbox.isVideo) {
856          Lightbox.modalHeight =  parseInt(container.height, 10) - 10;
857          Lightbox.modalWidth =  parseInt(container.width, 10) - 10;
858          Lightvideo.startVideo(Lightbox.imageArray[Lightbox.activeImage][0]);
859        }
860        Lightbox.resizeContainer(parseInt(container.width, 10), parseInt(container.height, 10));
861      }
862    }
863  },
864
865  // imgNodeLoadingError()
866  imgNodeLoadingError: function(image) {
867    var s = Drupal.settings.lightbox2;
868    var original_image = Lightbox.imageArray[Lightbox.activeImage][0];
869    if (s.display_image_size !== "") {
870      original_image = original_image.replace(new RegExp("."+s.display_image_size), "");
871    }
872    Lightbox.imageArray[Lightbox.activeImage][0] = original_image;
873    image.onerror = function() { Lightbox.imgLoadingError(image); };
874    image.src = original_image;
875  },
876
877  // imgLoadingError()
878  imgLoadingError: function(image) {
879    var s = Drupal.settings.lightbox2;
880    Lightbox.imageArray[Lightbox.activeImage][0] = s.default_image;
881    image.src = s.default_image;
882  },
883
884  // resizeContainer()
885  resizeContainer: function(imgWidth, imgHeight) {
886
887    imgWidth = (imgWidth < Lightbox.minWidth ? Lightbox.minWidth : imgWidth);
888
889    this.widthCurrent = $('#outerImageContainer').width();
890    this.heightCurrent = $('#outerImageContainer').height();
891
892    var widthNew = (imgWidth  + (Lightbox.borderSize * 2));
893    var heightNew = (imgHeight  + (Lightbox.borderSize * 2));
894
895    // Scalars based on change from old to new.
896    this.xScale = ( widthNew / this.widthCurrent) * 100;
897    this.yScale = ( heightNew / this.heightCurrent) * 100;
898
899    // Calculate size difference between new and old image, and resize if
900    // necessary.
901    wDiff = this.widthCurrent - widthNew;
902    hDiff = this.heightCurrent - heightNew;
903
904    $('#modalContainer').css({'width': imgWidth, 'height': imgHeight});
905    // Detect animation sequence.
906    if (Lightbox.resizeSequence) {
907      var animate1 = {width: widthNew};
908      var animate2 = {height: heightNew};
909      if (Lightbox.resizeSequence == 2) {
910        animate1 = {height: heightNew};
911        animate2 = {width: widthNew};
912      }
913      $('#outerImageContainer').animate(animate1, Lightbox.resizeSpeed).animate(animate2, Lightbox.resizeSpeed, 'linear', function() { Lightbox.showData(); });
914    }
915    // Simultaneous.
916    else {
917      $('#outerImageContainer').animate({'width': widthNew, 'height': heightNew}, Lightbox.resizeSpeed, 'linear', function() { Lightbox.showData(); });
918    }
919
920    // If new and old image are same size and no scaling transition is necessary
921    // do a quick pause to prevent image flicker.
922    if ((hDiff === 0) && (wDiff === 0)) {
923      if ($.browser.msie) {
924        Lightbox.pause(250);
925      }
926      else {
927        Lightbox.pause(100);
928      }
929    }
930
931    var s = Drupal.settings.lightbox2;
932    if (!s.use_alt_layout) {
933      $('#prevLink, #nextLink').css({'height': imgHeight + 'px'});
934    }
935    $('#imageDataContainer').css({'width': widthNew + 'px'});
936  },
937
938  // showData()
939  // Display image and begin preloading neighbors.
940  showData: function() {
941    $('#loading').hide();
942
943    if (Lightbox.isLightframe || Lightbox.isVideo || Lightbox.isModal) {
944      Lightbox.updateDetails();
945      if (Lightbox.isLightframe) {
946        $('#frameContainer').show();
947        if ($.browser.safari || Lightbox.fadeInSpeed === 0) {
948          $('#lightboxFrame').css({'zIndex': '10500'}).show();
949        }
950        else {
951          $('#lightboxFrame').css({'zIndex': '10500'}).fadeIn(Lightbox.fadeInSpeed);
952        }
953      }
954      else {
955        if (Lightbox.isVideo) {
956          $("#modalContainer").html(Lightbox.modalHTML).click(function(){return false;}).css('zIndex', '10500').show();
957        }
958        else {
959          var src = unescape(Lightbox.imageArray[Lightbox.activeImage][0]);
960          if (Lightbox.imageArray[Lightbox.activeImage][4]) {
961            $(src).appendTo("#modalContainer");
962            $('#modalContainer').css({'zIndex': '10500'}).show();
963          }
964          else {
965            // Use a callback to show the new image, otherwise you get flicker.
966            $("#modalContainer").hide().load(src, function () {$('#modalContainer').css({'zIndex': '10500'}).show();});
967          }
968          $('#modalContainer').unbind('click');
969        }
970        // This might be needed in the Lightframe section above.
971        //$('#modalContainer').css({'zIndex': '10500'}).show();
972      }
973    }
974
975    // Handle display of image content.
976    else {
977      $('#imageContainer').show();
978      if ($.browser.safari || Lightbox.fadeInSpeed === 0) {
979        $('#lightboxImage').css({'zIndex': '10500'}).show();
980      }
981      else {
982        $('#lightboxImage').css({'zIndex': '10500'}).fadeIn(Lightbox.fadeInSpeed);
983      }
984      Lightbox.updateDetails();
985      this.preloadNeighborImages();
986    }
987    Lightbox.inprogress = false;
988
989    // Slideshow specific stuff.
990    if (Lightbox.isSlideshow) {
991      if (!Lightbox.loopSlides && Lightbox.activeImage == (Lightbox.total - 1)) {
992        if (Lightbox.autoExit) {
993          Lightbox.slideIdArray[Lightbox.slideIdCount++] = setTimeout(function () {Lightbox.end('slideshow');}, Lightbox.slideInterval);
994        }
995      }
996      else {
997        if (!Lightbox.isPaused && Lightbox.total > 1) {
998          Lightbox.slideIdArray[Lightbox.slideIdCount++] = setTimeout(function () {Lightbox.changeData(Lightbox.activeImage + 1);}, Lightbox.slideInterval);
999        }
1000      }
1001      if (Lightbox.showPlayPause && Lightbox.total > 1 && !Lightbox.isPaused) {
1002        $('#lightshowPause').show();
1003        $('#lightshowPlay').hide();
1004      }
1005      else if (Lightbox.showPlayPause && Lightbox.total > 1) {
1006        $('#lightshowPause').hide();
1007        $('#lightshowPlay').show();
1008      }
1009    }
1010
1011    // Adjust the page overlay size.
1012    var arrayPageSize = Lightbox.getPageSize();
1013    var arrayPageScroll = Lightbox.getPageScroll();
1014    var pageHeight = arrayPageSize[1];
1015    if (Lightbox.isZoomedIn && arrayPageSize[1] > arrayPageSize[3]) {
1016      var lightboxTop = (Lightbox.topPosition == '' ? (arrayPageSize[3] / 10) : Lightbox.topPosition) * 1;
1017      pageHeight = pageHeight + arrayPageScroll[1] + lightboxTop;
1018    }
1019    $('#lightbox2-overlay').css({'height': pageHeight + 'px', 'width': arrayPageSize[0] + 'px'});
1020
1021    // Gecko browsers (e.g. Firefox, SeaMonkey, etc) don't handle pdfs as
1022    // expected.
1023    if ($.browser.mozilla) {
1024      if (Lightbox.imageArray[Lightbox.activeImage][0].indexOf(".pdf") != -1) {
1025        setTimeout(function () {
1026          document.getElementById("lightboxFrame").src = Lightbox.imageArray[Lightbox.activeImage][0];
1027        }, 1000);
1028      }
1029    }
1030  },
1031
1032  // updateDetails()
1033  // Display caption, image number, and bottom nav.
1034  updateDetails: function() {
1035
1036    $("#imageDataContainer").hide();
1037
1038    var s = Drupal.settings.lightbox2;
1039
1040    if (s.show_caption) {
1041      var caption = Lightbox.filterXSS(Lightbox.imageArray[Lightbox.activeImage][1]);
1042      if (!caption) caption = '';
1043      $('#caption').html(caption).css({'zIndex': '10500'}).show();
1044    }
1045
1046    // If image is part of set display 'Image x of x'.
1047    var numberDisplay = null;
1048    if (s.image_count && Lightbox.total > 1) {
1049      var currentImage = Lightbox.activeImage + 1;
1050      if (!Lightbox.isLightframe && !Lightbox.isModal && !Lightbox.isVideo) {
1051        numberDisplay = s.image_count.replace(/\!current/, currentImage).replace(/\!total/, Lightbox.total);
1052      }
1053      else if (Lightbox.isVideo) {
1054        numberDisplay = s.video_count.replace(/\!current/, currentImage).replace(/\!total/, Lightbox.total);
1055      }
1056      else {
1057        numberDisplay = s.page_count.replace(/\!current/, currentImage).replace(/\!total/, Lightbox.total);
1058      }
1059      $('#numberDisplay').html(numberDisplay).css({'zIndex': '10500'}).show();
1060    }
1061    else {
1062      $('#numberDisplay').hide();
1063    }
1064
1065    $("#imageDataContainer").hide().slideDown(Lightbox.slideDownSpeed, function() {
1066      $("#bottomNav").show();
1067    });
1068    if (Lightbox.rtl == 1) {
1069      $("#bottomNav").css({'float': 'left'});
1070    }
1071    Lightbox.updateNav();
1072  },
1073
1074  // updateNav()
1075  // Display appropriate previous and next hover navigation.
1076  updateNav: function() {
1077
1078    $('#hoverNav').css({'zIndex': '10500'}).show();
1079    var prevLink = '#prevLink';
1080    var nextLink = '#nextLink';
1081
1082    // Slideshow is separated as we need to show play / pause button.
1083    if (Lightbox.isSlideshow) {
1084      if ((Lightbox.total > 1 && Lightbox.loopSlides) || Lightbox.activeImage !== 0) {
1085        $(prevLink).css({'zIndex': '10500'}).show().click(function() {
1086          if (Lightbox.pauseOnPrevClick) {
1087            Lightbox.togglePlayPause("lightshowPause", "lightshowPlay");
1088          }
1089          Lightbox.changeData(Lightbox.activeImage - 1); return false;
1090        });
1091      }
1092      else {
1093        $(prevLink).hide();
1094      }
1095
1096      // If not last image in set, display next image button.
1097      if ((Lightbox.total > 1 && Lightbox.loopSlides) || Lightbox.activeImage != (Lightbox.total - 1)) {
1098        $(nextLink).css({'zIndex': '10500'}).show().click(function() {
1099          if (Lightbox.pauseOnNextClick) {
1100            Lightbox.togglePlayPause("lightshowPause", "lightshowPlay");
1101          }
1102          Lightbox.changeData(Lightbox.activeImage + 1); return false;
1103        });
1104      }
1105      // Safari browsers need to have hide() called again.
1106      else {
1107        $(nextLink).hide();
1108      }
1109    }
1110
1111    // All other types of content.
1112    else {
1113
1114      if ((Lightbox.isLightframe || Lightbox.isModal || Lightbox.isVideo) && !Lightbox.alternative_layout) {
1115        $('#frameHoverNav').css({'zIndex': '10500'}).show();
1116        $('#hoverNav').css({'zIndex': '10500'}).hide();
1117        prevLink = '#framePrevLink';
1118        nextLink = '#frameNextLink';
1119      }
1120
1121      // If not first image in set, display prev image button.
1122      if ((Lightbox.total > 1 && Lightbox.loopItems) || Lightbox.activeImage !== 0) {
1123        // Unbind any other click handlers, otherwise this adds a new click handler
1124        // each time the arrow is clicked.
1125        $(prevLink).css({'zIndex': '10500'}).show().unbind().click(function() {
1126          Lightbox.changeData(Lightbox.activeImage - 1); return false;
1127        });
1128      }
1129      // Safari browsers need to have hide() called again.
1130      else {
1131        $(prevLink).hide();
1132      }
1133
1134      // If not last image in set, display next image button.
1135      if ((Lightbox.total > 1 && Lightbox.loopItems) || Lightbox.activeImage != (Lightbox.total - 1)) {
1136        // Unbind any other click handlers, otherwise this adds a new click handler
1137        // each time the arrow is clicked.
1138        $(nextLink).css({'zIndex': '10500'}).show().unbind().click(function() {
1139          Lightbox.changeData(Lightbox.activeImage + 1); return false;
1140        });
1141      }
1142      // Safari browsers need to have hide() called again.
1143      else {
1144        $(nextLink).hide();
1145      }
1146    }
1147
1148    // Don't enable keyboard shortcuts so forms will work.
1149    if (!Lightbox.isModal) {
1150      this.enableKeyboardNav();
1151    }
1152  },
1153
1154
1155  // enableKeyboardNav()
1156  enableKeyboardNav: function() {
1157    $(document).bind("keydown", this.keyboardAction);
1158  },
1159
1160  // disableKeyboardNav()
1161  disableKeyboardNav: function() {
1162    $(document).unbind("keydown", this.keyboardAction);
1163  },
1164
1165  // keyboardAction()
1166  keyboardAction: function(e) {
1167    if (e === null) { // IE.
1168      keycode = event.keyCode;
1169      escapeKey = 27;
1170    }
1171    else { // Mozilla.
1172      keycode = e.keyCode;
1173      escapeKey = e.DOM_VK_ESCAPE;
1174    }
1175
1176    key = String.fromCharCode(keycode).toLowerCase();
1177
1178    // Close lightbox.
1179    if (Lightbox.checkKey(Lightbox.keysClose, key, keycode)) {
1180      Lightbox.end('forceClose');
1181    }
1182    // Display previous image (p, <-).
1183    else if (Lightbox.checkKey(Lightbox.keysPrevious, key, keycode)) {
1184      if ((Lightbox.total > 1 && ((Lightbox.isSlideshow && Lightbox.loopSlides) || (!Lightbox.isSlideshow && Lightbox.loopItems))) || Lightbox.activeImage !== 0) {
1185        Lightbox.changeData(Lightbox.activeImage - 1);
1186      }
1187
1188    }
1189    // Display next image (n, ->).
1190    else if (Lightbox.checkKey(Lightbox.keysNext, key, keycode)) {
1191      if ((Lightbox.total > 1 && ((Lightbox.isSlideshow && Lightbox.loopSlides) || (!Lightbox.isSlideshow && Lightbox.loopItems))) || Lightbox.activeImage != (Lightbox.total - 1)) {
1192        Lightbox.changeData(Lightbox.activeImage + 1);
1193      }
1194    }
1195    // Zoom in.
1196    else if (Lightbox.checkKey(Lightbox.keysZoom, key, keycode) && !Lightbox.disableResize && !Lightbox.disableZoom && !Lightbox.isSlideshow && !Lightbox.isLightframe) {
1197      if (Lightbox.isZoomedIn) {
1198        Lightbox.changeData(Lightbox.activeImage, false);
1199      }
1200      else if (!Lightbox.isZoomedIn) {
1201        Lightbox.changeData(Lightbox.activeImage, true);
1202      }
1203      return false;
1204    }
1205    // Toggle play / pause (space).
1206    else if (Lightbox.checkKey(Lightbox.keysPlayPause, key, keycode) && Lightbox.isSlideshow) {
1207
1208      if (Lightbox.isPaused) {
1209        Lightbox.togglePlayPause("lightshowPlay", "lightshowPause");
1210      }
1211      else {
1212        Lightbox.togglePlayPause("lightshowPause", "lightshowPlay");
1213      }
1214      return false;
1215    }
1216  },
1217
1218  preloadNeighborImages: function() {
1219
1220    if ((Lightbox.total - 1) > Lightbox.activeImage) {
1221      preloadNextImage = new Image();
1222      preloadNextImage.src = Lightbox.imageArray[Lightbox.activeImage + 1][0];
1223    }
1224    if (Lightbox.activeImage > 0) {
1225      preloadPrevImage = new Image();
1226      preloadPrevImage.src = Lightbox.imageArray[Lightbox.activeImage - 1][0];
1227    }
1228
1229  },
1230
1231  end: function(caller) {
1232    var closeClick = (caller == 'slideshow' ? false : true);
1233    if (Lightbox.isSlideshow && Lightbox.isPaused && !closeClick) {
1234      return;
1235    }
1236    // To prevent double clicks on navigation links.
1237    if (Lightbox.inprogress === true && caller != 'forceClose') {
1238      return;
1239    }
1240    Lightbox.disableKeyboardNav();
1241    $('#lightbox').hide();
1242    $("#lightbox2-overlay").fadeOut();
1243    Lightbox.isPaused = true;
1244    Lightbox.inprogress = false;
1245    // Replaces calls to showSelectBoxes() and showFlash() in original
1246    // lightbox2.
1247    Lightbox.toggleSelectsFlash('visible');
1248    if (Lightbox.isSlideshow) {
1249      for (var i = 0; i < Lightbox.slideIdCount; i++) {
1250        window.clearTimeout(Lightbox.slideIdArray[i]);
1251      }
1252      $('#lightshowPause, #lightshowPlay').hide();
1253    }
1254    else if (Lightbox.isLightframe) {
1255      $('#frameContainer').empty().hide();
1256    }
1257    else if (Lightbox.isVideo || Lightbox.isModal) {
1258      if (!Lightbox.auto_modal) {
1259        $('#modalContainer').hide().html("");
1260      }
1261      Lightbox.auto_modal = false;
1262    }
1263  },
1264
1265
1266  // getPageScroll()
1267  // Returns array with x,y page scroll values.
1268  // Core code from - quirksmode.com.
1269  getPageScroll : function() {
1270
1271    var xScroll, yScroll;
1272
1273    if (self.pageYOffset || self.pageXOffset) {
1274      yScroll = self.pageYOffset;
1275      xScroll = self.pageXOffset;
1276    }
1277    else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {  // Explorer 6 Strict.
1278      yScroll = document.documentElement.scrollTop;
1279      xScroll = document.documentElement.scrollLeft;
1280    }
1281    else if (document.body) {// All other Explorers.
1282      yScroll = document.body.scrollTop;
1283      xScroll = document.body.scrollLeft;
1284    }
1285
1286    arrayPageScroll = [xScroll,yScroll];
1287    return arrayPageScroll;
1288  },
1289
1290  // getPageSize()
1291  // Returns array with page width, height and window width, height.
1292  // Core code from - quirksmode.com.
1293  // Edit for Firefox by pHaez.
1294
1295  getPageSize : function() {
1296
1297    var xScroll, yScroll;
1298
1299    if (window.innerHeight && window.scrollMaxY) {
1300      xScroll = window.innerWidth + window.scrollMaxX;
1301      yScroll = window.innerHeight + window.scrollMaxY;
1302    }
1303    else if (document.body.scrollHeight > document.body.offsetHeight) { // All but Explorer Mac.
1304      xScroll = document.body.scrollWidth;
1305      yScroll = document.body.scrollHeight;
1306    }
1307    else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari.
1308      xScroll = document.body.offsetWidth;
1309      yScroll = document.body.offsetHeight;
1310    }
1311
1312    var windowWidth, windowHeight;
1313
1314    if (self.innerHeight) { // All except Explorer.
1315      if (document.documentElement.clientWidth) {
1316        windowWidth = document.documentElement.clientWidth;
1317      }
1318      else {
1319        windowWidth = self.innerWidth;
1320      }
1321      windowHeight = self.innerHeight;
1322    }
1323    else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode.
1324      windowWidth = document.documentElement.clientWidth;
1325      windowHeight = document.documentElement.clientHeight;
1326    }
1327    else if (document.body) { // Other Explorers.
1328      windowWidth = document.body.clientWidth;
1329      windowHeight = document.body.clientHeight;
1330    }
1331    // For small pages with total height less than height of the viewport.
1332    if (yScroll < windowHeight) {
1333      pageHeight = windowHeight;
1334    }
1335    else {
1336      pageHeight = yScroll;
1337    }
1338    // For small pages with total width less than width of the viewport.
1339    if (xScroll < windowWidth) {
1340      pageWidth = xScroll;
1341    }
1342    else {
1343      pageWidth = windowWidth;
1344    }
1345    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
1346    return arrayPageSize;
1347  },
1348
1349
1350  // pause(numberMillis)
1351  pause : function(ms) {
1352    var date = new Date();
1353    var curDate = null;
1354    do { curDate = new Date(); }
1355    while (curDate - date < ms);
1356  },
1357
1358
1359  // toggleSelectsFlash()
1360  // Hide / unhide select lists and flash objects as they appear above the
1361  // lightbox in some browsers.
1362  toggleSelectsFlash: function (state) {
1363    if (state == 'visible') {
1364      $("select.lightbox_hidden, embed.lightbox_hidden, object.lightbox_hidden").show();
1365    }
1366    else if (state == 'hide') {
1367      $("select:visible, embed:visible, object:visible").not('#lightboxAutoModal select, #lightboxAutoModal embed, #lightboxAutoModal object').addClass("lightbox_hidden");
1368      $("select.lightbox_hidden, embed.lightbox_hidden, object.lightbox_hidden").hide();
1369    }
1370  },
1371
1372
1373  // parseRel()
1374  parseRel: function (link) {
1375    var parts = [];
1376    parts["rel"] = parts["title"] = parts["group"] = parts["style"] = parts["flashvars"] = null;
1377    if (!$(link).attr('rel')) return parts;
1378    parts["rel"] = $(link).attr('rel').match(/\w+/)[0];
1379
1380    if ($(link).attr('rel').match(/\[(.*)\]/)) {
1381      var info = $(link).attr('rel').match(/\[(.*?)\]/)[1].split('|');
1382      parts["group"] = info[0];
1383      parts["style"] = info[1];
1384      if (parts["style"] != undefined && parts["style"].match(/flashvars:\s?(.*?);/)) {
1385        parts["flashvars"] = parts["style"].match(/flashvars:\s?(.*?);/)[1];
1386      }
1387    }
1388    if ($(link).attr('rel').match(/\[.*\]\[(.*)\]/)) {
1389      parts["title"] = $(link).attr('rel').match(/\[.*\]\[(.*)\]/)[1];
1390    }
1391    return parts;
1392  },
1393
1394  // setStyles()
1395  setStyles: function(item, styles) {
1396    item.width = Lightbox.iframe_width;
1397    item.height = Lightbox.iframe_height;
1398    item.scrolling = "auto";
1399
1400    if (!styles) return item;
1401    var stylesArray = styles.split(';');
1402    for (var i = 0; i< stylesArray.length; i++) {
1403      if (stylesArray[i].indexOf('width:') >= 0) {
1404        var w = stylesArray[i].replace('width:', '');
1405        item.width = jQuery.trim(w);
1406      }
1407      else if (stylesArray[i].indexOf('height:') >= 0) {
1408        var h = stylesArray[i].replace('height:', '');
1409        item.height = jQuery.trim(h);
1410      }
1411      else if (stylesArray[i].indexOf('scrolling:') >= 0) {
1412        var scrolling = stylesArray[i].replace('scrolling:', '');
1413        item.scrolling = jQuery.trim(scrolling);
1414      }
1415      else if (stylesArray[i].indexOf('overflow:') >= 0) {
1416        var overflow = stylesArray[i].replace('overflow:', '');
1417        item.overflow = jQuery.trim(overflow);
1418      }
1419    }
1420    return item;
1421  },
1422
1423
1424  // togglePlayPause()
1425  // Hide the pause / play button as appropriate.  If pausing the slideshow also
1426  // clear the timers, otherwise move onto the next image.
1427  togglePlayPause: function(hideId, showId) {
1428    if (Lightbox.isSlideshow && hideId == "lightshowPause") {
1429      for (var i = 0; i < Lightbox.slideIdCount; i++) {
1430        window.clearTimeout(Lightbox.slideIdArray[i]);
1431      }
1432    }
1433    $('#' + hideId).hide();
1434    $('#' + showId).show();
1435
1436    if (hideId == "lightshowPlay") {
1437      Lightbox.isPaused = false;
1438      if (!Lightbox.loopSlides && Lightbox.activeImage == (Lightbox.total - 1)) {
1439        Lightbox.end();
1440      }
1441      else if (Lightbox.total > 1) {
1442        Lightbox.changeData(Lightbox.activeImage + 1);
1443      }
1444    }
1445    else {
1446      Lightbox.isPaused = true;
1447    }
1448  },
1449
1450  triggerLightbox: function (rel_type, rel_group) {
1451    if (rel_type.length) {
1452      if (rel_group && rel_group.length) {
1453        $("a[rel^='" + rel_type +"\[" + rel_group + "\]'], area[rel^='" + rel_type +"\[" + rel_group + "\]']").eq(0).trigger("click");
1454      }
1455      else {
1456        $("a[rel^='" + rel_type +"'], area[rel^='" + rel_type +"']").eq(0).trigger("click");
1457      }
1458    }
1459  },
1460
1461  detectMacFF2: function() {
1462    var ua = navigator.userAgent.toLowerCase();
1463    if (/firefox[\/\s](\d+\.\d+)/.test(ua)) {
1464      var ffversion = new Number(RegExp.$1);
1465      if (ffversion < 3 && ua.indexOf('mac') != -1) {
1466        return true;
1467      }
1468    }
1469    return false;
1470  },
1471
1472  checkKey: function(keys, key, code) {
1473    return (jQuery.inArray(key, keys) != -1 || jQuery.inArray(String(code), keys) != -1);
1474  },
1475
1476  filterXSS: function(str, allowed_tags) {
1477    var output = "";
1478    $.ajax({
1479      url: Drupal.settings.basePath + 'system/lightbox2/filter-xss',
1480      data: {
1481        'string' : str,
1482        'allowed_tags' : allowed_tags
1483      },
1484      type: "POST",
1485      async: false,
1486      dataType:  "json",
1487      success: function(data) {
1488        output = data;
1489      }
1490    });
1491    return output;
1492  }
1493
1494};
1495
1496// Initialize the lightbox.
1497Drupal.behaviors.initLightbox = function (context) {
1498  $('body:not(.lightbox-processed)', context).addClass('lightbox-processed').each(function() {
1499    Lightbox.initialize();
1500    return false; // Break the each loop.
1501  });
1502
1503  // Attach lightbox to any links with lightbox rels.
1504  Lightbox.initList(context);
1505  $('#lightboxAutoModal', context).triggerHandler('click');
1506};
1507
1508;
1509
1510(function ($) {
1511  Drupal.Panels = {};
1512
1513  Drupal.Panels.autoAttach = function() {
1514    if ($.browser.msie) {
1515      // If IE, attach a hover event so we can see our admin links.
1516      $("div.panel-pane").hover(
1517        function() {
1518          $('div.panel-hide', this).addClass("panel-hide-hover"); return true;
1519        },
1520        function() {
1521          $('div.panel-hide', this).removeClass("panel-hide-hover"); return true;
1522        }
1523      );
1524      $("div.admin-links").hover(
1525        function() {
1526          $(this).addClass("admin-links-hover"); return true;
1527        },
1528        function(){
1529          $(this).removeClass("admin-links-hover"); return true;
1530        }
1531      );
1532    }
1533  };
1534
1535  $(Drupal.Panels.autoAttach);
1536})(jQuery);
1537;
1538/**
1539 * @file base.js
1540 *
1541 * Some basic behaviors and utility functions for Views.
1542 */
1543
1544Drupal.Views = {};
1545
1546/**
1547 * jQuery UI tabs, Views integration component
1548 */
1549Drupal.behaviors.viewsTabs = function (context) {
1550  $('#views-tabset:not(.views-processed)').addClass('views-processed').each(function() {
1551    new Drupal.Views.Tabs($(this), {selectedClass: 'active'});
1552  });
1553
1554  $('a.views-remove-link')
1555    .addClass('views-processed')
1556    .click(function() {
1557      var id = $(this).attr('id').replace('views-remove-link-', '');
1558      $('#views-row-' + id).hide();
1559      $('#views-removed-' + id).attr('checked', true);
1560      return false;
1561    });
1562  /**
1563   * Here is to handle display deletion
1564   * (checking in the hidden checkbox and hiding out the row)
1565   */
1566  $('a.display-remove-link')
1567    .addClass('display-processed')
1568    .click(function() {
1569      var id = $(this).attr('id').replace('display-remove-link-', '');
1570      $('#display-row-' + id).hide();
1571      $('#display-removed-' + id).attr('checked', true);
1572      return false;
1573    });
1574}
1575
1576/**
1577 * For IE, attach some javascript so that our hovers do what they're supposed
1578 * to do.
1579 */
1580Drupal.behaviors.viewsHoverlinks = function() {
1581  if ($.browser.msie) {
1582    // If IE, attach a hover event so we can see our admin links.
1583    $("div.view:not(.views-hover-processed)").addClass('views-hover-processed').hover(
1584      function() {
1585        $('div.views-hide', this).addClass("views-hide-hover"); return true;
1586      },
1587      function(){
1588        $('div.views-hide', this).removeClass("views-hide-hover"); return true;
1589      }
1590    );
1591    $("div.views-admin-links:not(.views-hover-processed)")
1592      .addClass('views-hover-processed')
1593      .hover(
1594        function() {
1595          $(this).addClass("views-admin-links-hover"); return true;
1596        },
1597        function(){
1598          $(this).removeClass("views-admin-links-hover"); return true;
1599        }
1600      );
1601  }
1602}
1603
1604/**
1605 * Helper function to parse a querystring.
1606 */
1607Drupal.Views.parseQueryString = function (query) {
1608  var args = {};
1609  var pos = query.indexOf('?');
1610  if (pos != -1) {
1611    query = query.substring(pos + 1);
1612  }
1613  var pairs = query.split('&');
1614  for(var i in pairs) {
1615    if (typeof(pairs[i]) == 'string') {
1616      var pair = pairs[i].split('=');
1617      // Ignore the 'q' path argument, if present.
1618      if (pair[0] != 'q' && pair[1]) {
1619        args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] = decodeURIComponent(pair[1].replace(/\+/g, ' '));
1620      }
1621    }
1622  }
1623  return args;
1624};
1625
1626/**
1627 * Helper function to return a view's arguments based on a path.
1628 */
1629Drupal.Views.parseViewArgs = function (href, viewPath) {
1630  var returnObj = {};
1631  var path = Drupal.Views.getPath(href);
1632  // Ensure we have a correct path.
1633  if (viewPath && path.substring(0, viewPath.length + 1) == viewPath + '/') {
1634    var args = decodeURIComponent(path.substring(viewPath.length + 1, path.length));
1635    returnObj.view_args = args;
1636    returnObj.view_path = path;
1637  }
1638  return returnObj;
1639};
1640
1641/**
1642 * Strip off the protocol plus domain from an href.
1643 */
1644Drupal.Views.pathPortion = function (href) {
1645  // Remove e.g. http://example.com if present.
1646  var protocol = window.location.protocol;
1647  if (href.substring(0, protocol.length) == protocol) {
1648    // 2 is the length of the '//' that normally follows the protocol
1649    href = href.substring(href.indexOf('/', protocol.length + 2));
1650  }
1651  return href;
1652};
1653
1654/**
1655 * Return the Drupal path portion of an href.
1656 */
1657Drupal.Views.getPath = function (href) {
1658  href = Drupal.Views.pathPortion(href);
1659  href = href.substring(Drupal.settings.basePath.length, href.length);
1660  // 3 is the length of the '?q=' added to the url without clean urls.
1661  if (href.substring(0, 3) == '?q=') {
1662    href = href.substring(3, href.length);
1663  }
1664  var chars = ['#', '?', '&'];
1665  for (i in chars) {
1666    if (href.indexOf(chars[i]) > -1) {
1667      href = href.substr(0, href.indexOf(chars[i]));
1668    }
1669  }
1670  return href;
1671};
1672;
1673
1674/**
1675 * @file ajaxView.js
1676 *
1677 * Handles AJAX fetching of views, including filter submission and response.
1678 */
1679
1680Drupal.Views.Ajax = Drupal.Views.Ajax || {};
1681
1682/**
1683 * An ajax responder that accepts a packet of JSON data and acts appropriately.
1684 *
1685 * The following fields control behavior.
1686 * - 'display': Display the associated data in the view area.
1687 */
1688Drupal.Views.Ajax.ajaxViewResponse = function(target, response) {
1689
1690  if (response.debug) {
1691    alert(response.debug);
1692  }
1693
1694  var $view = $(target);
1695
1696  // Check the 'display' for data.
1697  if (response.status && response.display) {
1698    var $newView = $(response.display);
1699    $view.replaceWith($newView);
1700    $view = $newView;
1701    Drupal.attachBehaviors($view.parent());
1702  }
1703
1704  if (response.messages) {
1705    // Show any messages (but first remove old ones, if there are any).
1706    $view.find('.views-messages').remove().end().prepend(response.messages);
1707  }
1708};
1709
1710/**
1711 * Ajax behavior for views.
1712 */
1713Drupal.behaviors.ViewsAjaxView = function() {
1714  if (Drupal.settings && Drupal.settings.views && Drupal.settings.views.ajaxViews) {
1715    var ajax_path = Drupal.settings.views.ajax_path;
1716    // If there are multiple views this might've ended up showing up multiple times.
1717    if (ajax_path.constructor.toString().indexOf("Array") != -1) {
1718      ajax_path = ajax_path[0];
1719    }
1720    $.each(Drupal.settings.views.ajaxViews, function(i, settings) {
1721      if (settings.view_dom_id) {
1722        var view = '.view-dom-id-' + settings.view_dom_id;
1723        if (!$(view).size()) {
1724          // Backward compatibility: if 'views-view.tpl.php' is old and doesn't
1725          // contain the 'view-dom-id-#' class, we fall back to the old way of
1726          // locating the view:
1727          view = '.view-id-' + settings.view_name + '.view-display-id-' + settings.view_display_id;
1728        }
1729      }
1730
1731
1732      // Process exposed filter forms.
1733      $('form#views-exposed-form-' + settings.view_name.replace(/_/g, '-') + '-' + settings.view_display_id.replace(/_/g, '-'))
1734      .filter(':not(.views-processed)')
1735      .each(function () {
1736        // remove 'q' from the form; it's there for clean URLs
1737        // so that it submits to the right place with regular submit
1738        // but this method is submitting elsewhere.
1739        $('input[name=q]', this).remove();
1740        var form = this;
1741
1742        $('input[type=submit], button', this).click(function () {
1743          $(this).after('<span class="views-throbbing">
1743&nbsp</span>');
1744          // We have to actually tell it what button got clicked if we want
1745          // anything to be sent:
1746          form.clk = this;
1747        });
1748        // ajaxSubmit doesn't accept a data argument, so we have to
1749        // pass additional fields this way.
1750        $.each(settings, function(key, setting) {
1751          $(form).append('<input type="hidden" name="'+ key + '" value="'+ setting +'"/>');
1752        });
1753      })
1754      .addClass('views-processed')
1755      .submit(function () {
1756        var object = this;
1757        $(this).ajaxSubmit({
1758          url: ajax_path,
1759          type: 'GET',
1760          success: function(response) {
1761            // Call all callbacks.
1762            if (response.__callbacks) {
1763              $.each(response.__callbacks, function(i, callback) {
1764                eval(callback)(view, response);
1765              });
1766              $('.views-throbbing', object).remove();
1767            }
1768          },
1769          error: function(xhr) { Drupal.Views.Ajax.handleErrors(xhr, ajax_path); $('.views-throbbing', object).remove(); },
1770          dataType: 'json'
1771        });
1772
1773        return false;
1774      });
1775
1776      $(view).filter(':not(.views-processed)')
1777        // Don't attach to nested views. Doing so would attach multiple behaviors
1778        // to a given element.
1779        .filter(function() {
1780          // If there is at least one parent with a view class, this view
1781          // is nested (e.g., an attachment). Bail.
1782          return !$(this).parents('.view').size();
1783        })
1784        .each(function() {
1785          // Set a reference that will work in subsequent calls.
1786          var target = this;
1787          $(this)
1788            .addClass('views-processed')
1789            // Process pager, tablesort, and attachment summary links.
1790            .find('ul.pager > li > a, th.views-field a, .attachment .views-summary a')
1791            .each(function () {
1792              var viewData = { 'js': 1 };
1793              // Construct an object using the settings defaults and then overriding
1794              // with data specific to the link.
1795              $.extend(
1796                viewData,
1797                Drupal.Views.parseQueryString($(this).attr('href')),
1798                // Extract argument data from the URL.
1799                Drupal.Views.parseViewArgs($(this).attr('href'), settings.view_base_path),
1800                // Settings must be used last to avoid sending url aliases to the server.
1801                settings
1802              );
1803              $(this).click(function () {
1804                $.extend(viewData, Drupal.Views.parseViewArgs($(this).attr('href'), settings.view_base_path));
1805                $(this).addClass('views-throbbing');
1806                $.ajax({
1807                  url: ajax_path,
1808                  type: 'GET',
1809                  data: viewData,
1810                  success: function(response) {
1811                    $(this).removeClass('views-throbbing');
1812                    // Scroll to the top of the view. This will allow users
1813                    // to browse newly loaded content after e.g. clicking a pager
1814                    // link.
1815                    var offset = $(target).offset();
1816                    // We can't guarantee that the scrollable object should be
1817                    // the body, as the view could be embedded in something
1818                    // more complex such as a modal popup. Recurse up the DOM
1819                    // and scroll the first element that has a non-zero top.
1820                    var scrollTarget = target;
1821                    while ($(scrollTarget).scrollTop() == 0 && $(scrollTarget).parent()) {
1822                      scrollTarget = $(scrollTarget).parent()
1823                    }
1824                    // Only scroll upward
1825                    if (offset.top - 10 < $(scrollTarget).scrollTop()) {
1826                      $(scrollTarget).animate({scrollTop: (offset.top - 10)}, 500);
1827                    }
1828                    // Call all callbacks.
1829                    if (response.__callbacks) {
1830                      $.each(response.__callbacks, function(i, callback) {
1831                        eval(callback)(target, response);
1832                      });
1833                    }
1834                  },
1835                  error: function(xhr) { $(this).removeClass('views-throbbing'); Drupal.Views.Ajax.handleErrors(xhr, ajax_path); },
1836                  dataType: 'json'
1837                });
1838
1839                return false;
1840              });
1841            }); // .each function () {
1842      }); // $view.filter().each
1843    }); // .each Drupal.settings.views.ajaxViews
1844  } // if
1845};
1846;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.