PageSourceSearch

https://horecakazan.ru/bitrix/templates/eshop_blue2/js/jquery.slideViewerPro.1.5.js?141562524910543

js horecakazan.ru collected 2026-10-05 00:03:26 UTC 10,543 bytes, 226 lines download raw bytes

1/*!
2 * slideViewerPro 1.5
3 * Examples and documentation at: 
4 * http://www.gcmingati.net/wordpress/wp-content/lab/jquery/svwt/
5 * 2009-2011 Gian Carlo Mingati
6 * Version: 1.5.0 (02-AUG-2011)
7 * Dual licensed under the MIT and GPL licenses:
8 * http://www.opensource.org/licenses/mit-license.php
9 * http://www.gnu.org/licenses/gpl.html
10 * Requires:
11 * jQuery v1.6 or later
12 * Option:
13 * jQuery Timers plugin | plugins.jquery.com/project/timers (for autoslide mode)
14 * 
15 */
16jQuery.extend( jQuery.easing, // from the jquery.easing plugin
17{
18	easeInOutExpo: function (x, t, b, c, d) {
19		if (t==0) return b;
20		if (t==d) return b+c;
21		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
22		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
23	}
24});
25jQuery(function(){
26   jQuery("div.svwp").prepend("<img src='images/svwloader.gif' class='ldrgif' alt='loading...'/ >"); //change with YOUR loader image path   
27});
28var j = 0;
29jQuery.fn.slideViewerPro = function(settings) {
30	  settings = jQuery.extend({
31
32		thumbs: 3, 
33		galBorderWidth: 0,
34		thumbsTopMargin: 10, 
35		thumbsRightMargin: 19,
36		thumbsLeftMargin: 0,
37		thumbsBorderWidth: 1,
38		thumbsBorderOpacity: 1, 
39		buttonsWidth: 34,
40		buttonsHeight: 34,
41		galBorderColor: "#ff0000",
42		thumbsActiveBorderColor: "#ff0000",
43		buttonsTextColor: "#ff0000",
44		thumbsBorderOpacity: 1.0, // could be 0, 0.1 up to 1.0
45		thumbsActiveBorderOpacity: 1.0, // could be 0, 0.1 up to 1.0
46		easeTime: 750,
47		asTimer: 4000,
48		thumbsPercentReduction: 12,
49		thumbsVis: true,
50		easeFunc: "easeInOutExpo",
51		leftButtonInner: "", //could be an image "<img src='images/larw.gif' />" or an escaped char as "&larr";
52		rightButtonInner: "", //could be an image or an escaped char as "&rarr";
53		autoslide: true, 
54		typo: false,
55		shuffle: false
56		}, settings);
57		
58	return this.each(function(){
59		function shuffle(a) {
60	    var i = a.size();
61	    while (--i) {
62	        var j = Math.floor(Math.random() * (i));
63	        var tmp = a.slice(i, i+1);
64	        a.slice(j, j+1).insertAfter(tmp);
65	    }
66		} 
67		var container = jQuery(this);
68		(!settings.shuffle) ? null : shuffle(container.find("li"));
69		container.find("img.ldrgif").remove();
70		container.removeClass("svwp").addClass("slideViewer");	
71		container.attr("id", "svwp"+j);
72		/**
73			var pictWidth = container.find("img").width(); 
74			Reads the width of the first (and only) IMG height. 
75			That's why all images in the gal must have the same width/height
76		*/
77		var pictWidth = container.find("img").width(); 
78		var pictHeight = container.find("img").height();
79		var pictEls = container.find("li").size();
80		(pictEls >= settings.thumbs) ? null : settings.thumbs = pictEls;
81		var slideViewerWidth = 300*pictEls;
82		var thumbsWidth = 85;
83		var thumbsHeight =  85;
84		var pos = 0;
85		var r_enabled = true;
86		var l_enabled = true;
87    container.find("ul").css("width" , slideViewerWidth)
88    .wrap(jQuery("<div style='width:"+ 300 +"px; overflow: hidden; position: relative; top: 0; left: 0'>"));
89		container.css("width" , pictWidth);
90		container.css("height" , pictHeight);
91		container.each(function(i) {
92			if(settings.typo)
93			{
94			jQuery(this).find("img").each(function(z) {
95				jQuery(this).after("<span class='typo' style='position: absolute; width:"+(pictWidth-12)+"px; margin: 0 0 0 -"+pictWidth+"px'>"+jQuery(this).attr("alt")+"<\/span>");
96			});
97			}
98			jQuery(this).after("<div class='thumbSlider' id='thumbSlider" + j + "'><ul><\/ul><\/div>");
99			jQuery(this).next().after("<a href='#' class='itemleft' id='left" + j + "'><span>"+settings.leftButtonInner+"</span><\/a><a href='#' class='itemright' id='right" + j + "'><span>"+settings.rightButtonInner+"<\/span><\/a>");
100			
101			jQuery(this).find("li").each(function(n) { 
102						jQuery("div#thumbSlider" + j + " ul").append("<li><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'><img style='max-width: 65px;max-height: 65px;' src='" + jQuery(this).find("img").attr("src") + "' /><p class='tmbrdr'>&nbsp;<\/p><\/a><\/li>");						
103			});
104    
105			jQuery("div#thumbSlider" + j + " a").each(function(z) {			
106				jQuery(this).bind("click", function(){
107					jQuery(this).find("p.tmbrdr").addClass("active").css({opacity: settings.thumbsActiveBorderOpacity});
108					jQuery(this).parent().parent().find("p.tmbrdr").not(jQuery(this).find("p.tmbrdr")).removeClass("active").css({borderColor: settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});
109					var cnt = -(300*z);
110					(cnt != container.find("ul").css("left").replace(/px/, "")) ? container.find("span.typo").animate({"opacity": 0}, 250) : null ;
111					container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc, function(){container.find("span.typo").animate({"opacity": settings.typoFullOpacity}, 250)});					
112					return false;
113				});
114			});
115			// shortcuts to +/- buttons
116			var jQuerybtl = jQuery("a#left" + j);	
117			var jQuerybtr = jQuery("a#right" + j);	
118			
119			// right/left 			
120			jQuerybtr.bind("click", function(){
121					if (r_enabled) (pictEls-pos > settings.thumbs*2 || pictEls%settings.thumbs == 0)? pos += settings.thumbs : pos += pictEls % settings.thumbs;
122					r_enabled = false;
123					jQuery(this).prev().prev().find("ul:not(:animated)").animate({ left: -(thumbsWidth+23)*pos}, 500, settings.easeFunc, function(){authorityMixing();});					
124					return false;
125			});
126			jQuerybtl.bind("click", function(){	
127					if (l_enabled && pos!=0) (pictEls-pos > settings.thumbs || pictEls%settings.thumbs == 0)? pos -= settings.thumbs : pos -= pictEls % settings.thumbs;
128					l_enabled = false;
129					jQuery(this).prev().find("ul:not(:animated)").animate({ left: -(thumbsWidth+23)*pos}, 500, settings.easeFunc, function(){authorityMixing();});			
130					return false;
131			});						
132			
133			function authorityMixing()
134			{				
135				
136				//right btt
137				(pos == pictEls-settings.thumbs) ? jQuerybtr.addClass("r_dis") : jQuerybtr.removeClass("r_dis");
138				(pos == pictEls-settings.thumbs) ? r_enabled = false : r_enabled = true;
139				//left btt
140				(pos == 0) ? jQuerybtl.addClass("l_dis") : jQuerybtl.removeClass("l_dis");
141				(pos == 0) ? l_enabled = false : l_enabled = true;
142			}
143			
144			//CSS	defs @ runtime
145			var tBorder = settings.thumbsBorderWidth;
146			var contBorder = settings.galBorderWidth
147			
148			jQuery(".slideViewer a img").css({border: "0"});
149			if(settings.typo)
150					{
151						jQuery(this).find("span.typo").each(function(z) {
152							jQuery(this).css({marginTop: (pictHeight-jQuery(this).innerHeight()), opacity: settings.typoFullOpacity});
153						});
154					}
155			jQuery("div#svwp"+ j).css({border: settings.galBorderWidth +"px solid "+settings.galBorderColor});
156			
157			jQuery("div#thumbSlider" + j).css({position: "relative", left: contBorder, top: settings.thumbsTopMargin+"px", width: 300+"px", height: 97+"px", textAlign: "center", overflow: "hidden", margin: "0 auto"});
158			jQuery("div#thumbSlider" + j + " ul").css({width: (thumbsWidth*(pictEls+1))+settings.thumbsRightMargin*pictEls, position: "relative", left: "0", top: "0"});
159			jQuery("div#thumbSlider" + j + " ul li").css({marginRight: settings.thumbsRightMargin});
160					
161			jQuery("div#thumbSlider" + j).find("p.tmbrdr").css({width: (thumbsWidth-tBorder*2)+"px", height: 95 +"px", top: 0 +"px", border: settings.thumbsBorderWidth +"px solid "+settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});			
162			jQuery("div#thumbSlider" + j + " a:first p.tmbrdr").addClass("active").css({borderColor: settings.thumbsActiveBorderColor, opacity: settings.thumbsActiveBorderOpacity});
163			
164			var rbttLeftMargin = (pictWidth/2) + (jQuery("div#thumbSlider" + j).width()/2) + settings.thumbsRightMargin + contBorder;
165			var lbttLeftMargin = (pictWidth/2) - (jQuery("div#thumbSlider" + j).width()/2) - (settings.buttonsWidth + settings.thumbsRightMargin) + contBorder;			
166
167			
168			var innerLeftImg = jQuerybtl.find("img");
169			var innerRightImg = jQuerybtr.find("img");
170			if(innerLeftImg.length != 0 && innerRightImg.length != 0)
171			{		
172				jQuery(innerLeftImg).load(function() {
173					jQuery(this).css({margin: Math.round((thumbsHeight/2)-(jQuery(this).height()/2))+"px 0 0 0"});
174				});				
175				jQuery(innerRightImg).load(function() {
176					jQuery(this).css({margin: Math.round((thumbsHeight/2)-(jQuery(this).height()/2))+"px 0 0 0"});
177				});			
178			}
179
180			
181			jQuery("a#left" + j).css({display: "block", textAlign: "center", width: settings.buttonsWidth + "px" , height: settings.buttonsHeight+"px",  margin: "-51px 0px 0px -10px", textDecoration: "none", lineHeight: thumbsHeight+"px", color: settings.buttonsTextColor});
182			jQuery("a#right" + j).css({display: "block", textAlign: "center", width: settings.buttonsWidth + "px", height: settings.buttonsHeight+"px" , margin: "-54px 0px 0px 295px", textDecoration: "none", lineHeight: thumbsHeight+"px", color: settings.buttonsTextColor});			
183
184
185			authorityMixing();
186	
187			if(settings.autoslide){					
188					var i = 1;
189					
190					jQuery("div#thumbSlider" + j).everyTime(settings.asTimer, "asld", function() {			
191		  			jQuery(this).find("a").eq(i).trigger("click");
192		  			if(i == 0)
193		  			{
194						pos = 0;
195						l_enabled = false;
196						jQuery("div#thumbSlider" + j).find("ul:not(:animated)").animate({ left: -(thumbsWidth+settings.thumbsRightMargin)*pos}, 500, settings.easeFunc, function(){authorityMixing();});
197		  			}
198		  			else l_enabled = true;
199		  			
200						(i%settings.thumbs == 0)? jQuery(this).next().next().trigger("click") : null;
201						(i < pictEls-1)?	i++ : i=0;		  			
202					});		
203					
204					//stops autoslidemode	
205					jQuery("a#right" + j).bind("mouseup", function(){
206						jQuery(this).prev().prev().stopTime("asld");
207		    	});
208					jQuery("a#left" + j).bind("mouseup", function(){
209						jQuery(this).prev().stopTime("asld");	
210					});
211					jQuery("div#thumbSlider" + j + " a").bind("mouseup", function(){
212						jQuery(this).parent().parent().parent().stopTime("asld");
213					});
214			}
215			var uiDisplay = (settings.thumbsVis)? "block":"none";
216			jQuery("div#thumbSlider" + j + ", a#left" + j + ", a#right" + j).wrapAll("<div style='width:320px; display: "+uiDisplay+"' id='ui"+j+"'><\/div>");			
217			jQuery("div#svwp"+ j + ", div#ui" + j).wrapAll("<div style='width:300px'><\/div>");
218			});
219			// (jQuery("div#thumbSlider" + j).width()+(settings.buttonsWidth*2) >= pictWidth)? alert("ALERT: THE THUMBNAILS SLIDER IS TOO WIDE! \nthumbsPercentReduction and/or buttonsWidth needs to be scaled down!") : null;
220		j++;
221		$(".slideViewer").css({height:300+"px",width:300+"px","float":"none"})
222		$(".itemleft").css({margin:"-51px 0 0 0"})
223		$(".itemright").css({margin:"-54px 0 0 285px"})
224
225  });	
226};

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.