PageSourceSearch

https://www.baulinks.de/core/js/lxGallery/lxGallery.js

js baulinks.de collected 2026-10-02 03:58:44 UTC 26,913 bytes, 695 lines download raw bytes

1
2var lxGalleryMain = {
3    defaults : {
4        autoplay : false
5        ,startImg : 0
6        ,startHeight : 350
7        ,zIndex : 100
8        ,headScrollArea : 100
9        ,autoheight : true
10        ,navigations : {
11            onlyShowOnFocus : true
12        },
13        fitToContainer :  false,
14        fitToContainerOptions : { enlarge:false,}
15        ,header : {
16            autoOpen : false
17            ,imgOpacity : 1
18            ,height : 90
19        }
20        ,timerThumbs : {
21            delay : 50
22        }
23        ,animation : {
24            duration : 1000
25        }
26        ,timer : {
27            delay : 3000
28        }
29        ,htmlOptions : {
30            backgroundColor : ''
31            ,textMode : 'outside'
32            ,timerDelay : -1
33            ,imgBorderColor : ''
34            ,nextButtons : true
35            ,thumbs : true
36            ,enlargeButton : true
37            ,keepPlayButton : true
38        }
39    }
40};
41var lxGalleryDEF = {
42    mainObj : null,
43    imgs : null,
44    options : null,
45    imgsLoaded : false,
46    imgsToLoad : -1,
47    layout : null,
48    state : null,
49    init : function(mainObj,options) {
50        var me = this;
51        this.imgs = new Array();
52        this.layout = {};
53        this.state = {};
54        this.state.currentImg = -1;
55        this.state.imgsAdded = false;
56        this.state.ready = false;
57        this.state.timer = null;
58        this.state.shouldNavVisible = false;
59        this.state.thumbs = {};
60        this.state.thumbs.visible = false;
61        this.state.thumbs.timer = null;
62        this.state.thumbs.direction = null;
63        var htmlOptions = mainObj.attr('options');
64        if (htmlOptions != '') {
65            htmlOptions = jQuery.parseJSON(htmlOptions);
66        } else {
67            htmlOptions = {};
68        }
69        this.options = jQuery.extend({},lxGalleryMain.defaults,options);
70        this.options.htmlOptions = jQuery.extend({},lxGalleryMain.defaults.htmlOptions,htmlOptions);
71        if (this.options.htmlOptions.timerDelay != -1) {
72            this.options.timer.delay = this.options.htmlOptions.timerDelay;
73        }
74        if (this.options.startHeight == 0 || this.options.fitToContainer === true) {
75            this.options.startHeight = mainObj.height();
76        }
77        this.mainObj = mainObj;
78        var imgs = this.mainObj.find('img');
79        imgs.remove();
80        this.initLayout();
81        this.imgsToLoad = imgs.length;
82        this.mainObj.bind('lxGallery:imgsLoaded',jQuery.proxy(this.addGallery,this));
83        imgs.each(function(imgIndex) {
84            var img = $('<img/>');
85            var skip = false;
86            if ($(this).attr('gbwidth') && $(this).attr('gbheight')) {
87                img.attr('gbwidth',$(this).attr('gbwidth'));
88                img.attr('gbheight',$(this).attr('gbheight'));
89            }
90            if ($(this).attr('gwidth') && $(this).attr('gheight')) {
91                img.attr('gwidth',$(this).attr('gwidth'));
92                img.attr('gheight',$(this).attr('gheight'));
93                if (imgIndex != me.options.startImg) {
94                    me.imgsToLoad--;
95                    skip = true;
96                }
97            }
98            if (!skip) {
99                img.load(function() {
100                    me.imgsToLoad--;
101                    if (me.imgsToLoad == 0 && me.state.imgsAdded) {
102                        me.mainObj.trigger('lxGallery:imgsLoaded');
103                    }
104                });
105                img.error(function() {
106                    me.imgsToLoad--;
107                    if (me.imgsToLoad == 0 && me.state.imgsAdded) {
108                        me.mainObj.trigger('lxGallery:imgsLoaded');
109                    }
110                });
111            }
112            img.attr('src',$(this).attr('src'));
113            img.attr('alt',$(this).attr('alt'));
114            img.attr('big',$(this).attr('big'));
115            if ($(this).attr('class'))
116            	img.attr('class',$(this).attr('class'));
117            if ($(this).attr('bigclass'))
118            	img.attr('bigclass',$(this).attr('bigclass'));
119            if (me.options.htmlOptions.backgroundColor != '') {
120                img.css('background-color',me.options.htmlOptions.backgroundColor);
121            }
122            if (me.options.htmlOptions.imgBorderColor != '') {
123                img.css('border-color',me.options.htmlOptions.imgBorderColor);
124            }
125            if (img.attr('big') && img.attr('big') != '') {
126                img.addClass('big');
127            }
128            me.imgs.push(img);
129            me.layout.inner.append(img);
130        });
131        this.state.imgsAdded = true;
132        if (this.imgsToLoad == 0) {
133            this.mainObj.trigger('lxGallery:imgsLoaded');
134        }
135    },
136    initLayout : function() {
137        var me = this;
138        this.mainObj.height(this.options.startHeight);
139        this.mainObj.css('opacity',1);
140        //**apend loader and set it to center center
141        var loader = $('<div/>').addClass('lxGalleryLoader');
142        loader.append($('<img/>').attr('src','/core/js/lxGallery/ajax-loader.gif'));
143        loader.css('left',(this.mainObj.width()-loader.width())/2+'px');
144        loader.css('top',(this.mainObj.height()-loader.height())/2+'px');
145        loader.css('zIndex',this.options.zIndex+2);
146
147        var gallery = $('<div/>').addClass('lxGallery').css('opacity',1);;
148        var inner = $('<div/>').addClass('lxGalleryInner').css('opacity',1);;
149        var text = $('<div class="lxGalleryText"/>').append($('<span/>'));
150        text.css('zIndex',this.options.zIndex+1).css('opacity',0.8);
151        if (this.options.htmlOptions.textMode == 'outside') {
152            text.addClass('lxGalleryTextOutside');
153            text.css('opacity',1);
154        }
155        inner.append(text);
156        inner.css('zIndex',this.options.zIndex);
157        gallery.append(inner);
158
159        this.mainObj.append(loader);
160        this.mainObj.append(gallery);
161        this.mainObj.show();
162
163        var navLeft = $('<div/>').addClass('navleft').css('zIndex',this.options.zIndex+1).css('opacity','0');
164        navLeft.append($('<a href=""/>').append('<img src="/core/js/lxGallery/button-main-left.png"/>'));
165        gallery.append(navLeft);
166        var navRight = $('<div/>').addClass('navright').css('zIndex',this.options.zIndex+1).css('opacity','0');
167        navRight.append($('<a href=""/>').append('<img src="/core/js/lxGallery/button-main-right.png"/>'));
168        gallery.append(navRight);
169        var navPP = $('<div/>').addClass('navpp').css('zIndex',this.options.zIndex+1).css('opacity','0');
170        navPP.append($('<a href=""/>').append('<img src="/core/js/lxGallery/icon_play.png"/>'));
171        gallery.append(navPP);
172        var navZoom = $('<div/>').addClass('navzoom').css('zIndex',this.options.zIndex+1).css('opacity','0');
173        navZoom.append($('<img src="/core/js/lxGallery/lupe.png"/>'));
174        gallery.append(navZoom);
175
176        //** head thumbs
177        var headC = $('<div class="lxGalleryHeaderC"/>').css('zIndex',this.options.zIndex+2);
178        var headC_thumbsC = $('<div class="lxGalleryThumbsC"/>');//.css('zIndex',this.options.zIndex+2);
179        headC.append(headC_thumbsC);
180        var headC_header = $('<div class="lxGalleryHeader"/>').html('Bilder').css('opacity','0');
181        headC.append(headC_header);
182        var headC_thumbsC_left = $('<div class="lxGalleryThumbsCLeft"/>').append($('<img src="/core/js/lxGallery/button-left.png"/>'));
183        var galleryThumbs = $('<div class="lxGalleryThumbsW"/>');
184        var headC_thumbsC_inner = $('<div class="lxGalleryThumbsCInner"/>').append(galleryThumbs);
185        var headC_thumbsC_right = $('<div class="lxGalleryThumbsCRight"/>').append($('<img src="/core/js/lxGallery/button-right.png"/>'));
186        headC_thumbsC.append(headC_thumbsC_left).append(headC_thumbsC_inner).append(headC_thumbsC_right);
187        headC.css({'top':-this.options.header.height});
188        gallery.append(headC);
189
190        //** store elemnts in layout object to have faster access
191        this.layout.loader = loader;
192        this.layout.gallery = gallery;
193        this.layout.inner = inner;
194        this.layout.text = text;
195        this.layout.nav = {};
196        this.layout.nav.left = navLeft;
197        this.layout.nav.right = navRight;
198        this.layout.nav.pp = navPP;
199        this.layout.nav.zoom = navZoom;
200        this.layout.thumbs = {};
201        this.layout.thumbs.galleryThumbs = galleryThumbs;
202        this.layout.thumbs.header = headC_header;
203        this.layout.thumbs.thumbsC = headC_thumbsC;
204        this.layout.thumbs.thumbsCinner = headC_thumbsC_inner;
205        this.layout.thumbs.container = headC;
206        //** the events
207        if (this.options.navigations.onlyShowOnFocus) {
208            gallery.bind('mouseover',jQuery.proxy(this.mainMouseOver,this));
209            gallery.bind('mouseout',jQuery.proxy(this.mainMouseOut,this));
210        }
211        this.layout.nav.left.bind('click',{'add':-1},jQuery.proxy(this.movePic,this));
212        this.layout.nav.right.bind('click',{'add':1},jQuery.proxy(this.movePic,this));
213        this.layout.nav.pp.bind('click',jQuery.proxy(this.playPause,this));
214        this.layout.nav.zoom.bind('click',jQuery.proxy(this.picClick,this));
215        this.layout.thumbs.header.bind('click',jQuery.proxy(this.showTumbs,this));
216        headC_thumbsC_left.bind('click',{'direction':1},jQuery.proxy(this.startScrollThumbs,this));
217        headC_thumbsC_right.bind('click',{'direction':-1},jQuery.proxy(this.startScrollThumbs,this));
218    },
219    thumbClick : function(event) {
220        var picNbr = $(event.target).attr('imgnbr');
221        this.timerStop();
222        this.show(picNbr);
223        this.showTumbs();
224        return false;
225    },
226    startScrollThumbs : function(event) {
227        if (this.state.thumbs.timer != null && this.state.thumbs.direction == event.data.direction) {
228            window.clearInterval(this.state.thumbs.timer);
229            this.state.thumbs.timer = null;
230            this.state.thumbs.direction = 0;
231        } else if (this.state.thumbs.timer != null) {
232            this.state.thumbs.direction = event.data.direction;
233        } else {
234            this.state.thumbs.direction = event.data.direction;
235            this.state.thumbs.timer = window.setInterval(jQuery.proxy(this.scrollThumbs,this),this.options.timerThumbs.delay);
236        }
237        return false;
238    },
239    scrollThumbs : function() {
240        var left = parseInt(this.layout.thumbs.galleryThumbs.css('left'),10);
241        left += this.state.thumbs.direction*10;
242        var widthC = this.layout.thumbs.thumbsC.width();
243        var widthW = this.layout.thumbs.galleryThumbs.width();
244        if (Math.abs(left) > (widthW-widthC)) {
245            left = -(widthW-widthC);
246            window.clearInterval(this.state.thumbs.timer);
247            this.state.thumbs.timer = null;
248            this.state.thumbs.direction = 0;
249            this.layout.thumbs.galleryThumbs.css('left',left+'px');
250        } else if (left > 0) {
251            window.clearInterval(this.state.thumbs.timer);
252            this.state.thumbs.timer = null;
253            this.state.thumbs.direction = 0;
254            this.layout.thumbs.galleryThumbs.css('left','0px');
255        } else {
256            this.layout.thumbs.galleryThumbs.hide().css('left',left+'px').show();
257        }
258    },
259    showTumbs : function(event) {
260        if (this.state.thumbs.visible) {
261            this.layout.thumbs.container.animate({'top':-this.options.header.height},{'queue':false});
262            this.state.thumbs.visible = false;
263            window.clearInterval(this.state.thumbs.timer);
264            this.state.thumbs.timer = null;
265            this.state.thumbs.direction = 0;
266        } else {
267            this.layout.thumbs.container.animate({'top':0},{'queue':false});
268            this.state.thumbs.visible = true;
269        }
270        return false;
271    },
272    playPause : function(event) {
273        if (this.state.timer != null) {
274            this.timerStop();
275        } else {
276            this.timerStart();
277        }
278        return false;
279    },
280    movePic : function(event) {
281        this.timerStop();
282        var add = event.data.add;
283        var picNbr = this.state.currentImg+add;
284        this.show(picNbr);
285        return false;
286    },
287    mainMouseOver : function(event) {
288        this.state.shouldNavVisible = true;
289        this.showNavs();
290    },
291    mainMouseOut : function(event) {
292        this.state.shouldNavVisible = false;
293        window.setTimeout(jQuery.proxy(this.hideNavs,this),400);
294    },
295    showNavs : function() {
296        if (this.options.htmlOptions.nextButtons) {
297            this.layout.nav.left.animate({
298                'left':'0px',
299                'opacity':'1'
300            },{'queue':false});
301            this.layout.nav.right.animate({
302                'right':'0px',
303                'opacity':'1'
304            },{'queue':false});
305        }
306        this.layout.nav.pp.show().animate({
307            'opacity':'1'
308        },{'queue':false});
309        if (this.options.htmlOptions.enlargeButton) {
310            this.layout.nav.zoom.animate({
311                'opacity':'1'
312            },{'queue':false});
313        }
314        if (this.options.htmlOptions.thumbs) {
315            if (this.state.thumbs.visible) {
316                this.layout.thumbs.container.animate({'opacity':'1'},{'queue':false});
317            } else {
318                this.layout.thumbs.header.animate({
319                    'opacity':'1'
320                },{'queue':false});
321            }
322        }
323    },
324    hideNavs : function() {
325        if (this.state.shouldNavVisible) {
326            return;
327        }
328        this.layout.nav.left.animate({
329            'left':'-50px',
330            'opacity':'0'
331        },{'queue':false});
332        this.layout.nav.right.animate({
333            'right':'-50px',
334            'opacity':'0'
335        },{'queue':false});
336        this.layout.nav.pp.animate({
337            'opacity':'0'
338        },{'queue':false});
339        this.layout.nav.zoom.animate({
340            'opacity':'0'
341        },{'queue':false});
342        if (this.state.thumbs.visible) {
343            this.layout.thumbs.container.animate({'opacity':0},{'queue':false});
344        } else {
345            this.layout.thumbs.header.animate({
346                'opacity':'0'
347            },{'queue':false});
348        }
349    },
350    picClick : function(event) {
351        this.timerStop();
352        var options = {};
353        options.content = "gallery dummy";
354        options.onContentReady = jQuery.proxy(this.maxGallery,this);
355        options.tabText = "Gallerie";
356        this.state.maxImg = this.state.currentImg;
357        $(window).itumaOverlay(options);
358        return false;
359        var index = this.state.currentImg;
360        var big = this.imgs[index].attr('big');
361        if (!big) {
362            return;
363        }
364        this.timerStop();
365        //baulinks.popup(big);
366        return false;
367    },
368    maxGallery : function(overlay,overlayMain) {
369        var obj = overlay.container;
370        var maxDim = overlayMain.options.maxDimension;
371        var div = $('<div class="gallery" />').show();
372        div.width(maxDim.width).height(maxDim.height);
373        
374        obj.html(div);
375        $(this.imgs).each(function() {
376            if ($(this).attr('big')) {
377                var img = $('<img/>');
378                img.attr('src',$(this).attr('big'));
379                img.attr('alt',$(this).attr('alt'));
380                if ($(this).attr('bigclass'))
381                	img.attr('class',$(this).attr('bigclass'));
382                if ($(this).attr('gbwidth') && $(this).attr('gbheight')) {
383                    img.attr('gwidth',$(this).attr('gbwidth'));
384                    img.attr('gheight',$(this).attr('gbheight'));
385                }
386                div.append(img);
387            }
388        });
389        var me = this;
390        div.lxGallery({fitToContainer:true,autoStart:false,autoheight:true,startImg:this.state.maxImg,zIndex:8100,onReady:function(gallery) {
391            div.width(gallery.state.maxWidth);
392            overlayMain.autoSize(0,0);
393            gallery.reArrangeLayout();
394        }});
395        //obj.html("max ready");
396    },
397    calcImgDimensions : function(imgs) {
398    	var dim = { w:0,h:0,th:0 };
399        var h;
400        var w;
401        var me = this;
402        imgs.each(function() {
403            if ($(this).attr('gheight')) {
404                h = parseInt($(this).attr('gheight'));
405            } else {
406                h = $(this).height();
407            }
408            if (dim.h < h) {
409            	dim.h = h;
410            }
411            if ($(this).attr('gwidth')) {
412                w = parseInt($(this).attr('gwidth'));
413            } else {
414                w = $(this).width();
415            }
416            if (dim.w < w) {
417            	dim.w = w;
418            }
419        });
420      //** text outside the gallery
421        if (this.options.htmlOptions.textMode == 'outside') {
422        	me.layout.text.width(dim.w);
423            imgs.each(function() {
424                var text = $(this).attr('alt');
425                if (text != '') {
426                    var html = '<span>'+text+'</span>';
427                    var tempHeight = me.layout.text.html(html).height();
428                    if (tempHeight > dim.th) {
429                    	dim.th = tempHeight;
430                    }
431                }
432            });
433        }
434        if (this.options.htmlOptions.backgroundColor != '') {
435        	dim.h += 2;
436        }
437        return dim;
438    },
439    setImgDimensions : function(imgs,toDim) {
440        var h;
441        var w;
442        var ph;
443        var pw;
444        var p;
445        imgs.each(function() {
446            if ($(this).attr('gheight')) {
447                h = parseInt($(this).attr('gheight'));
448            } else {
449                h = $(this).height();
450            }
451            if ($(this).attr('gwidth')) {
452                w = parseInt($(this).attr('gwidth'));
453            } else {
454                w = $(this).width();
455            }
456            if (w > toDim.w || h > toDim.h) {
457            	ph = h/toDim.h;
458            	pw = w/toDim.w;
459            	if (pw > ph)
460            		p = pw;
461            	else
462            		p = ph;
463            	$(this).width(w / p).height(h / p);
464            	$(this).attr('gheight',$(this).height());
465            	$(this).attr('gwidth',$(this).width());
466            }
467        });
468    },
469    addGallery : function(event) {
470        var me= this;
471        var galleryThumb;
472        var img;
473        var height = 0;
474        var width = 0;
475        var twidth;
476        var dim;
477        
478        this.imgsLoaded = true;
479        this.state.maxWidth = 0;
480        this.state.maxHeight = 0;
481        this.mainObj.unbind('lxGallery:imgsLoaded',jQuery.proxy(this.addGallery,this));
482        $(this.imgs).each(function(index) {
483            if ($(this).attr('big')) {
484                $(this).bind('click',jQuery.proxy(me.picClick,me));
485            }
486            galleryThumb = $('<div class="lxGalleryThumb"/>').attr('imgnbr',index);
487            img = $(this).clone();
488            img.attr('imgnbr',index);
489            galleryThumb.append(img);
490            me.layout.thumbs.galleryThumbs.append(galleryThumb);
491        });
492        this.layout.thumbs.galleryThumbs.find('div').bind('click',jQuery.proxy(this.thumbClick,this));
493        this.layout.loader.hide();
494        this.layout.gallery.show();
495        
496        $(me.layout.thumbs.galleryThumbs.find('div')).each(function() {
497            twidth = $(this).width();
498            width += twidth + parseInt($(this).css('marginRight')) + 1;
499        });
500        me.layout.thumbs.galleryThumbs.width(width);
501        
502        //**calc now the dimensions
503        //** max height
504        dim = this.calcImgDimensions($(this.imgs));
505        this.state.maxWidth = dim.w;
506        this.state.maxHeight = dim.h;
507        this.state.maxTextHeight = dim.th;
508
509        //**calcs made : are we bigger then the container and fitToContainer === true?
510        if (this.options.fitToContainer === true) {
511        	var maxDim = {w:this.mainObj.width() - 40,h:this.mainObj.height()-this.state.maxTextHeight - 40};
512        	var resize = false;
513        	if (this.state.maxHeight > maxDim.h) {
514        		resize = true;
515        	}
516        	if (this.state.maxWidth > maxDim.w) {
517        		resize = true;
518        	}
519        	if (resize === true) {
520        		this.setImgDimensions($(this.imgs),maxDim);
521                dim = this.calcImgDimensions($(this.imgs));
522                this.state.maxWidth = dim.w;
523                this.state.maxHeight = dim.h;
524        	}
525        }
526
527        //** set height of gallery
528        if (this.options.autoheight) {
529            this.layout.inner.height(me.state.maxHeight);
530            this.layout.gallery.height(me.state.maxHeight);
531            this.mainObj.height(me.state.maxHeight);
532        }
533        if (this.state.maxTextHeight > 0) {
534            this.mainObj.height(this.mainObj.height()+this.state.maxTextHeight);
535            this.layout.gallery.after(this.layout.text);
536            if (me.options.htmlOptions.backgroundColor != '')
537                this.layout.text.css('top',this.layout.gallery.height()+2+'px');
538            else
539                this.layout.text.css('top',this.layout.gallery.height()+'px');
540        }
541        //** align nav buttons
542        this.reArrangeLayout();
543        //** set img left to center it
544        $(this.imgs).each(function(index) {
545            if ($(this).attr('gwidth')) {
546                twidth = parseInt($(this).attr('gwidth'));
547            } else {
548                twidth = $(this).height();
549            }
550            var left = (me.state.maxWidth - twidth) / 2;
551            $(this).css('left',left+'px');
552        });
553
554        this.state.ready = true;
555        if (this.options.onReady) {
556            this.options.onReady(this);
557        }
558        this.show(this.options.startImg);
559        if (this.options.autoplay) {
560            this.timerStart();
561        } else {
562            if (this.options.htmlOptions.keepPlayButton) {
563                this.layout.nav.pp.animate({
564                    'opacity':'1'
565                },{'queue':false});
566            }
567        }
568    },
569    reArrangeLayout : function() {
570        var height = this.layout.gallery.height();
571        //** align nav buttons
572        this.layout.nav.left.css('top',(height-this.layout.nav.left.height())/2+'px');
573        this.layout.nav.pp.css('top',(height-this.layout.nav.pp.height())/2+'px');
574        this.layout.nav.right.css('top',(height-this.layout.nav.right.height())/2+'px');
575        this.layout.nav.pp.css('left',(this.mainObj.width()-this.layout.nav.pp.width())/2+'px');
576        this.layout.thumbs.thumbsC.width(this.mainObj.width()-110);
577        this.layout.thumbs.thumbsCinner.width(this.mainObj.width()-110);
578        this.layout.thumbs.header.css('left',this.mainObj.width()-this.layout.thumbs.header.width()+'px');
579        this.layout.text.width(this.layout.gallery.width());
580    },
581    timerStart : function() {
582        if (this.state.timer != null) {
583            return;
584        }
585        if (!this.state.shouldNavVisible) {
586            this.layout.nav.pp.hide().css('opacity','0');
587        }
588        this.layout.nav.pp.find('img').attr('src','/core/js/lxGallery/icon_pause.png');
589        this.state.timer = window.setTimeout(jQuery.proxy(this.timerEvent,this), this.options.timer.delay);
590    },
591    timerStop : function() {
592        if (this.state.timer != null) {
593            clearTimeout(this.state.timer);
594        }
595        this.layout.nav.pp.find('img').attr('src','/core/js/lxGallery/icon_play.png');
596        this.state.timer = null;
597    },
598    timerEvent : function() {
599        clearTimeout(this.state.timer);
600        this.show();
601        if (this.state.timer != null) {
602            this.state.timer = null;
603            this.timerStart();
604        }
605    },
606    show : function(picNbr) {
607        if (typeof picNbr === 'undefined') {
608            picNbr = this.state.currentImg+1;
609        }
610        if (picNbr >= this.imgs.length) {
611            picNbr = 0;
612        }
613        if (picNbr < 0) {
614            picNbr = this.imgs.length-1;
615        }
616        if (picNbr == this.state.currentImg) {
617            return;
618        }
619        if (this.imgs[this.state.currentImg]) {
620            this.imgs[this.state.currentImg].stop(true);
621            this.imgs[this.state.currentImg].animate(
622                    {opacity:'0'}
623                    ,{
624                        duration:this.options.animation.duration
625                        ,'queue':false
626                        ,complete : function() {
627                            $(this).hide();
628                        }
629                    });
630        }
631        if (!this.imgs[picNbr]) {
632            return;
633        }
634        this.imgs[picNbr].stop(true);
635        this.imgs[picNbr].css('opacity',0).show().animate({opacity:'1'},{duration:this.options.animation.duration,'queue':false});
636        this.state.currentImg = parseInt(picNbr);
637
638        if (this.imgs[picNbr].attr('big')) {
639            this.layout.nav.zoom.css('left',this.imgs[picNbr].width()-39-10+'px');
640            this.layout.nav.zoom.css('top',this.imgs[picNbr].height()-39-10+'px');
641        } else {
642            this.layout.nav.zoom.css('left',-39+'px');
643            this.layout.nav.zoom.css('top',-39+'px');
644        }
645
646        var html = '';
647        //var top = gallery.containerInner.height()-gallery.containerInnerText.height();
648        //gallery.containerInnerText.css('top',gallery.containerInner.height()-gallery.containerInnerText.height()+'px');
649        var text = this.imgs[picNbr].attr('alt');
650        if (text == '') {
651            this.layout.text.hide();
652        } else {
653            html = '<span>'+text+'</span>';
654            if (this.options.htmlOptions.backgroundColor != '')
655                this.layout.text.css('top',this.imgs[picNbr].height()+2).show().html(html);
656            else
657                this.layout.text.css('top',this.imgs[picNbr].height()).show().html(html);
658        }
659    }
660};
661var lxGallery = Class.extend(lxGalleryDEF);
662
663(function($){
664
665    var methods = {
666        init : function(options) {
667            return this.each(function() {
668                var gallery = $(this);
669                var data = gallery.data('lxGallery');
670                if (!data) {
671                    data = new lxGallery(gallery,options);
672                    gallery.data('lxGallery',data);
673                }
674            });
675        },
676        start : function() {
677            if (this.length == 0) {
678                return;
679            }
680            var gallery = $(this);
681            var data = gallery.data('lxGallery');
682            data.timerStart();
683        }
684    };
685
686    $.fn.lxGallery = function( method ) {
687        if ( methods[method] ) {
688            return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
689        } else if ( typeof method === 'object' || ! method ) {
690            return methods.init.apply( this, arguments );
691        } else {
692            $.error( 'Method ' +  method + ' does not exist on jQuery.lxGallery' );
693        }
694    };
695}) (jQuery);

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.