624 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			624 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*
 | 
						|
	Background Stretcher jQuery Plugin
 | 
						|
	© 2011 ajaxBlender.com
 | 
						|
	For any questions please visit www.ajaxblender.com 
 | 
						|
	or email us at support@ajaxblender.com
 | 
						|
	
 | 
						|
	Version: 2.0.1
 | 
						|
*/
 | 
						|
 | 
						|
;(function($){
 | 
						|
	/*  Variables  */
 | 
						|
	var container = null;
 | 
						|
	var allLIs = '', containerStr = '';
 | 
						|
	
 | 
						|
	var element = this;
 | 
						|
	var _bgStretcherPause = false;
 | 
						|
	var _bgStretcherAction = false;
 | 
						|
	var _bgStretcherTm = null;
 | 
						|
	var random_line = new Array();
 | 
						|
	var random_temp = new Array();
 | 
						|
	var r_image = 0;
 | 
						|
	var swf_mode = false;
 | 
						|
	var img_options = new Array();
 | 
						|
	
 | 
						|
	$.fn.bgStretcher = function(settings){
 | 
						|
		
 | 
						|
		if ($('.bgstretcher-page').length || $('.bgstretcher-area').length) {
 | 
						|
			if(typeof(console) !== 'undefined' && console != null) console.log('More than one bgStretcher'); 
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
		settings = $.extend({}, $.fn.bgStretcher.defaults, settings);
 | 
						|
		$.fn.bgStretcher.settings = settings;
 | 
						|
		
 | 
						|
		function _build(body_content){
 | 
						|
			if(!settings.images.length){ return; }
 | 
						|
			
 | 
						|
			_genHtml(body_content);
 | 
						|
 | 
						|
			containerStr = '#' + settings.imageContainer;
 | 
						|
			container = $(containerStr);
 | 
						|
			allLIs = '#' + settings.imageContainer + ' LI';
 | 
						|
			$(allLIs).hide().css({'z-index': 1, overflow: 'hidden'});
 | 
						|
			
 | 
						|
			if(!container.length){ return; }
 | 
						|
			$(window).resize(function(){
 | 
						|
				_resize(body_content)
 | 
						|
			});
 | 
						|
			
 | 
						|
			_resize(body_content);
 | 
						|
			
 | 
						|
			var stratElement = 0;
 | 
						|
			/*  Rebuild images for simpleSlide  */
 | 
						|
			if (settings.transitionEffect == 'simpleSlide') {
 | 
						|
				if (settings.sequenceMode == 'random') {
 | 
						|
					if(typeof(console) !== 'undefined' && console != null) {
 | 
						|
						console.log('Effect \'simpleSlide\' don\'t be to use with mode random.');
 | 
						|
						console.log('Mode was automaticly set in normal.');
 | 
						|
					}
 | 
						|
				}
 | 
						|
				$(allLIs).css({'float': 'left', position: 'static'});
 | 
						|
				$(allLIs).show();
 | 
						|
				if ($.fn.bgStretcher.settings.slideDirection == 'NW' || $.fn.bgStretcher.settings.slideDirection == 'NE') {
 | 
						|
					$.fn.bgStretcher.settings.slideDirection = 'N';
 | 
						|
				}
 | 
						|
				if ($.fn.bgStretcher.settings.slideDirection == 'SW' || $.fn.bgStretcher.settings.slideDirection == 'SE') {
 | 
						|
					$.fn.bgStretcher.settings.slideDirection = 'S';
 | 
						|
				}
 | 
						|
				if ($.fn.bgStretcher.settings.slideDirection == 'S' || $.fn.bgStretcher.settings.slideDirection == 'E') {
 | 
						|
					settings.sequenceMode = 'back';
 | 
						|
					$(allLIs).removeClass('bgs-current');
 | 
						|
					$(allLIs).eq($(allLIs).length - $.fn.bgStretcher.settings.startElementIndex - 1).addClass('bgs-current');
 | 
						|
					if ($.fn.bgStretcher.settings.slideDirection == 'E') {
 | 
						|
						l = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * $(containerStr).width()*(-1);
 | 
						|
						t = 0;
 | 
						|
					} else { // S
 | 
						|
						t = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * $(containerStr).height()*(-1);
 | 
						|
						l = 0;
 | 
						|
					}
 | 
						|
					$(containerStr+' UL').css({left: l+'px', top: t+'px'});
 | 
						|
				} else {
 | 
						|
					settings.sequenceMode = 'normal';
 | 
						|
					if ($.fn.bgStretcher.settings.startElementIndex != 0) {
 | 
						|
						if ($.fn.bgStretcher.settings.slideDirection == 'N') {
 | 
						|
							t = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * $(containerStr).height()*(-1);
 | 
						|
							l = 0;
 | 
						|
						} else { // W
 | 
						|
							l = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * $(containerStr).width()*(-1);
 | 
						|
							t = 0;
 | 
						|
							console.log(l);
 | 
						|
						}
 | 
						|
						$(containerStr+' UL').css({left: l+'px', top: t+'px'});
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			
 | 
						|
			if ($(settings.buttonNext).length || $(settings.buttonPrev).length || $(settings.pagination).length){
 | 
						|
				if (settings.sequenceMode == 'random') {
 | 
						|
					if(typeof(console) !== 'undefined' && console != null) {
 | 
						|
						console.log('Don\'t use random mode width prev-button, next-button and pagination.');
 | 
						|
					}
 | 
						|
				} else {
 | 
						|
					/*  Prev and Next Buttons init  */
 | 
						|
					if ($(settings.buttonPrev).length){
 | 
						|
						$(settings.buttonPrev).addClass('bgStretcherNav bgStretcherNavPrev');
 | 
						|
						$(settings.buttonPrev).click(function(){
 | 
						|
							$.fn.bgStretcher.buttonSlide('prev');
 | 
						|
						});
 | 
						|
					}
 | 
						|
					if ($(settings.buttonNext).length){
 | 
						|
						$(settings.buttonNext).addClass('bgStretcherNav bgStretcherNavNext');
 | 
						|
						$(settings.buttonNext).click(function(){
 | 
						|
							$.fn.bgStretcher.buttonSlide('next');
 | 
						|
						});
 | 
						|
					}
 | 
						|
					/*  Pagination  */
 | 
						|
					if ($(settings.pagination).length) {
 | 
						|
						$.fn.bgStretcher.pagination();
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			
 | 
						|
			/*  Random mode init  */
 | 
						|
			if (settings.sequenceMode == 'random') {
 | 
						|
				var i = Math.floor(Math.random()*$(allLIs).length);
 | 
						|
				$.fn.bgStretcher.buildRandom(i);
 | 
						|
				if (settings.transitionEffect != 'simpleSlide') {
 | 
						|
					$.fn.bgStretcher.settings.startElementIndex = i;
 | 
						|
				}
 | 
						|
				stratElement = i;
 | 
						|
			} else {
 | 
						|
				if ($.fn.bgStretcher.settings.startElementIndex > ($(allLIs).length - 1)) $.fn.bgStretcher.settings.startElementIndex = 0;
 | 
						|
				stratElement = $.fn.bgStretcher.settings.startElementIndex;
 | 
						|
				if (settings.transitionEffect == 'simpleSlide') {
 | 
						|
					if ($.fn.bgStretcher.settings.slideDirection == 'S' || $.fn.bgStretcher.settings.slideDirection == 'E') {
 | 
						|
						stratElement = $(allLIs).length - 1 - $.fn.bgStretcher.settings.startElementIndex;
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			
 | 
						|
			$(allLIs).eq(stratElement).show().addClass('bgs-current');
 | 
						|
			$.fn.bgStretcher.loadImg($(allLIs).eq(stratElement));
 | 
						|
			
 | 
						|
			/*  Go slideshow  */
 | 
						|
			if(settings.slideShow && $(allLIs).length > 1){
 | 
						|
				_bgStretcherTm = setTimeout('$.fn.bgStretcher.slideShow(\''+$.fn.bgStretcher.settings.sequenceMode+'\', -1)', settings.nextSlideDelay);
 | 
						|
			}
 | 
						|
			
 | 
						|
		};
 | 
						|
		
 | 
						|
		function _resize(body_content){
 | 
						|
			var winW = 0;
 | 
						|
			var winH = 0;
 | 
						|
			var contH = 0;
 | 
						|
			var contW = 0;
 | 
						|
			
 | 
						|
			if ($('BODY').hasClass('bgStretcher-container')) {
 | 
						|
				winW = $(window).width();
 | 
						|
				winH = $(window).height(); 
 | 
						|
				if (($.browser.msie) && (parseInt(jQuery.browser.version) == 6)) {
 | 
						|
					$(window).scroll(function(){
 | 
						|
						$('#'+settings.imageContainer).css('top', $(window).scrollTop());
 | 
						|
					});					
 | 
						|
				}
 | 
						|
			} else {
 | 
						|
				$('.bgstretcher').css('position', 'absolute').css('top', '0px');
 | 
						|
				winW = body_content.width();
 | 
						|
				winH = body_content.height(); 
 | 
						|
			}
 | 
						|
			
 | 
						|
			var imgW = 0, imgH = 0;
 | 
						|
			var leftSpace = 0;
 | 
						|
			
 | 
						|
			//	Max image size
 | 
						|
			if(settings.maxWidth != 'auto'){
 | 
						|
				if (winW > settings.maxWidth){
 | 
						|
					leftSpace = (winW - settings.maxWidth)/2;
 | 
						|
					contW = settings.maxWidth;
 | 
						|
				} else contW = winW;
 | 
						|
			} else contW = winW;
 | 
						|
			if(settings.maxHeight != 'auto'){
 | 
						|
				if (winH > settings.maxHeight){
 | 
						|
					contH = settings.maxHeight;
 | 
						|
				} else contH = winH;
 | 
						|
			} else contH = winH;
 | 
						|
			
 | 
						|
			//	Update container's size
 | 
						|
			container.width(contW);
 | 
						|
			container.height(contH);
 | 
						|
			
 | 
						|
			//	Non-proportional resize
 | 
						|
			if(!settings.resizeProportionally){
 | 
						|
				imgW = contH;
 | 
						|
				imgH = contH;
 | 
						|
			} else {
 | 
						|
				var initW = settings.imageWidth, initH = settings.imageHeight;
 | 
						|
				var ratio = initH / initW;
 | 
						|
				
 | 
						|
				imgW = contW;
 | 
						|
				imgH = Math.round(contW * ratio);
 | 
						|
				
 | 
						|
				if(imgH < contH){
 | 
						|
					imgH = contH;
 | 
						|
					imgW = Math.round(imgH / ratio);
 | 
						|
				}
 | 
						|
			}
 | 
						|
			
 | 
						|
			// Anchoring
 | 
						|
			var mar_left = 0;
 | 
						|
			var mar_top = 0;
 | 
						|
			var anchor_arr;
 | 
						|
			if ($.fn.bgStretcher.settings.anchoring != 'left top') {
 | 
						|
				anchor_arr = ($.fn.bgStretcher.settings.anchoring).split(' ');
 | 
						|
				if (anchor_arr[0] == 'right') {
 | 
						|
					mar_left = (winW - contW);
 | 
						|
				} else {
 | 
						|
					if (anchor_arr[0] == 'center') mar_left = Math.round((winW - contW)/2);
 | 
						|
				}
 | 
						|
				if (anchor_arr[1] == 'bottom') {
 | 
						|
					mar_top = (winH - contH);
 | 
						|
				} else {
 | 
						|
					if (anchor_arr[1] == 'center') {
 | 
						|
						mar_top = Math.round((winH - contH)/2);
 | 
						|
					}
 | 
						|
				}
 | 
						|
				container.css('marginLeft', mar_left+'px').css('marginTop', mar_top+'px');
 | 
						|
			}
 | 
						|
			mar_left = 0;
 | 
						|
			mar_top = 0;
 | 
						|
			if ($.fn.bgStretcher.settings.anchoringImg != 'left top') {
 | 
						|
				anchor_arr = ($.fn.bgStretcher.settings.anchoringImg).split(' ');
 | 
						|
				if (anchor_arr[0] == 'right') {
 | 
						|
					mar_left = (contW - imgW);
 | 
						|
				} else {
 | 
						|
					if (anchor_arr[0] == 'center') mar_left = Math.round((contW - imgW)/2);
 | 
						|
				}
 | 
						|
				if (anchor_arr[1] == 'bottom') {
 | 
						|
					mar_top = (contH - imgH);
 | 
						|
				} else {
 | 
						|
					if (anchor_arr[1] == 'center') {
 | 
						|
						mar_top = Math.round((contH - imgH)/2);
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			img_options['mar_left'] = mar_left;
 | 
						|
			img_options['mar_top'] = mar_top;
 | 
						|
			
 | 
						|
			//	Apply new size for images
 | 
						|
			if (container.find('LI:first').hasClass('swf-mode')) {
 | 
						|
				
 | 
						|
				var path_swf = container.find('LI:first').html();
 | 
						|
				container.find('LI:first').html('<div id="bgstretcher-flash"> </div>');
 | 
						|
				
 | 
						|
				var header = new SWFObject('flash/stars.swf', 'flash-obj', contW, contH, '9');
 | 
						|
				header.addParam('wmode', 'transparent');
 | 
						|
				header.write('bgstretcher-flash');
 | 
						|
				
 | 
						|
			}; 
 | 
						|
			img_options['imgW'] = imgW;
 | 
						|
			img_options['imgH'] = imgH;
 | 
						|
			
 | 
						|
			if(!settings.resizeAnimate){
 | 
						|
				container.children('UL').children('LI.img-loaded').find('IMG').css({'marginLeft': img_options["mar_left"]+'px', 'marginTop': img_options["mar_top"]+'px'});
 | 
						|
				container.children('UL').children('LI.img-loaded').find('IMG').css({'width': img_options["imgW"]+'px', 'height': img_options["imgH"]+'px'});
 | 
						|
			} else {
 | 
						|
				container.children('UL').children('LI.img-loaded').find('IMG').animate({'marginLeft': img_options["mar_left"]+'px', 'marginTop': img_options["mar_top"]+'px'}, 'normal');
 | 
						|
				container.children('UL').children('LI.img-loaded').find('IMG').animate({'width': img_options["imgW"]+'px', 'height': img_options["imgH"]+'px'}, 'normal');
 | 
						|
			}
 | 
						|
			
 | 
						|
			$(allLIs).width(container.width()).height(container.height());
 | 
						|
			
 | 
						|
			if ($.fn.bgStretcher.settings.transitionEffect == 'simpleSlide') {
 | 
						|
				if ($.fn.bgStretcher.settings.slideDirection == 'W' || $.fn.bgStretcher.settings.slideDirection == 'E') {
 | 
						|
					container.children('UL').width(container.width() * $(allLIs).length).height(container.height());
 | 
						|
					if ( $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) != -1 ){
 | 
						|
						l = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * container.width()*(-1);
 | 
						|
						container.children('UL').css({left: l+'px'});
 | 
						|
					}
 | 
						|
				} else {
 | 
						|
					container.children('UL').height(container.height() * $(allLIs).length).width(container.width());
 | 
						|
					if ( $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) != -1 ){
 | 
						|
						t = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * $(containerStr).height()*(-1);
 | 
						|
						container.children('UL').css({top: t+'px'});
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			
 | 
						|
		};
 | 
						|
		
 | 
						|
		function _genHtml(body_content){
 | 
						|
			var code = '';
 | 
						|
			var cur_bgstretcher;
 | 
						|
 | 
						|
			body_content.each(function(){
 | 
						|
				$(this).wrapInner('<div class="bgstretcher-page" />').wrapInner('<div class="bgstretcher-area" />');
 | 
						|
				code = '<div id="' + settings.imageContainer + '" class="bgstretcher"><ul>';
 | 
						|
				// if swf
 | 
						|
				if (settings.images.length) {
 | 
						|
					var ext = settings.images[0].split('.');
 | 
						|
					ext = ext[ext.length-1];
 | 
						|
					
 | 
						|
					if (ext != 'swf') {
 | 
						|
						var ind = 0;
 | 
						|
						for(i = 0; i < settings.images.length; i++){
 | 
						|
							if (settings.transitionEffect == 'simpleSlide' && settings.sequenceMode == 'back') 
 | 
						|
								ind = settings.images.length-1-i;
 | 
						|
									else ind = i;
 | 
						|
							if ($.fn.bgStretcher.settings.preloadImg) {
 | 
						|
									code += '<li><span class="image-path">' + settings.images[ind] + '</span></li>';
 | 
						|
								} else {
 | 
						|
									code += '<li class="img-loaded"><img src="' + settings.images[ind] + '" alt="" /></li>';
 | 
						|
								}		
 | 
						|
						}
 | 
						|
					} else {
 | 
						|
						code += '<li class="swf-mode">' + settings.images[0] + '</li>';	
 | 
						|
					}
 | 
						|
				}
 | 
						|
				
 | 
						|
				code += '</ul></div>';
 | 
						|
				cur_bgstretcher = $(this).children('.bgstretcher-area');
 | 
						|
				$(code).prependTo(cur_bgstretcher);
 | 
						|
				cur_bgstretcher.css({position: 'relative'});
 | 
						|
				cur_bgstretcher.children('.bgstretcher-page').css({'position': 'relative', 'z-index': 3});
 | 
						|
			});
 | 
						|
 | 
						|
		};
 | 
						|
		
 | 
						|
		/*  Start bgStretcher  */
 | 
						|
		this.addClass('bgStretcher-container');
 | 
						|
		_build(this);
 | 
						|
	};
 | 
						|
	
 | 
						|
	$.fn.bgStretcher.loadImg = function(obj){
 | 
						|
		if (obj.hasClass('img-loaded')) return true;
 | 
						|
		obj.find('SPAN.image-path').each(function(){
 | 
						|
			var imgsrc = $(this).html();
 | 
						|
			var imgalt = '';
 | 
						|
			var parent = $(this).parent();
 | 
						|
			var img = new Image();
 | 
						|
			
 | 
						|
			$(img).load(function () {
 | 
						|
				$(this).hide();
 | 
						|
				parent.prepend(this);
 | 
						|
				$(this).fadeIn('100');
 | 
						|
			}).error(function () {
 | 
						|
			}).attr('src', imgsrc).attr('alt', imgalt);
 | 
						|
			
 | 
						|
			$(img).css({'marginLeft': img_options["mar_left"]+'px', 'marginTop': img_options["mar_top"]+'px'});
 | 
						|
			$(img).css({'width': img_options["imgW"]+'px', 'height': img_options["imgH"]+'px'});
 | 
						|
		});
 | 
						|
		obj.addClass('img-loaded');
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
	
 | 
						|
	$.fn.bgStretcher.play = function(){
 | 
						|
       _bgStretcherPause = false;
 | 
						|
       $.fn.bgStretcher._clearTimeout();
 | 
						|
       $.fn.bgStretcher.slideShow($.fn.bgStretcher.settings.sequenceMode, -1);
 | 
						|
       
 | 
						|
	};
 | 
						|
	
 | 
						|
	$.fn.bgStretcher._clearTimeout = function(){
 | 
						|
       if(_bgStretcherTm != null){
 | 
						|
           clearTimeout(_bgStretcherTm);
 | 
						|
           _bgStretcherTm = null;
 | 
						|
       }
 | 
						|
	}
 | 
						|
	
 | 
						|
	$.fn.bgStretcher.pause = function(){
 | 
						|
	   _bgStretcherPause = true;
 | 
						|
	   $.fn.bgStretcher._clearTimeout();
 | 
						|
	};
 | 
						|
	
 | 
						|
	$.fn.bgStretcher.sliderDestroy = function(){
 | 
						|
		var cont = $('.bgstretcher-page').html();
 | 
						|
		$('.bgStretcher-container').html('').html(cont).removeClass('bgStretcher-container');
 | 
						|
		$.fn.bgStretcher._clearTimeout();
 | 
						|
		_bgStretcherPause = false;
 | 
						|
	}
 | 
						|
	
 | 
						|
	/*  Slideshow  */
 | 
						|
	$.fn.bgStretcher.slideShow = function(sequence_mode, index_next){	
 | 
						|
		_bgStretcherAction = true;
 | 
						|
		if ($(allLIs).length < 2) return true;
 | 
						|
		var current = $(containerStr + ' LI.bgs-current');
 | 
						|
		var next;
 | 
						|
		
 | 
						|
		if (index_next == -1) {
 | 
						|
			switch (sequence_mode){
 | 
						|
				case 'back':
 | 
						|
					next = current.prev();
 | 
						|
					if(!next.length){ next = $(containerStr + ' LI:last'); 	}
 | 
						|
					break;
 | 
						|
				case 'random':
 | 
						|
					if (r_image == $(containerStr + ' LI').length) {
 | 
						|
						$.fn.bgStretcher.buildRandom(random_line[$(containerStr + ' LI').length-1]);
 | 
						|
						r_image = 0;
 | 
						|
					}
 | 
						|
					next = $(containerStr + ' LI').eq(random_line[r_image]);
 | 
						|
					r_image++;
 | 
						|
					break;
 | 
						|
				default:
 | 
						|
					next = current.next();
 | 
						|
					if(!next.length){ next = $(containerStr + ' LI:first'); }	
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			next = $(containerStr + ' LI').eq(index_next);
 | 
						|
		}
 | 
						|
		
 | 
						|
		$(containerStr + ' LI').removeClass('bgs-current');
 | 
						|
		$.fn.bgStretcher.loadImg(next);
 | 
						|
		next.addClass('bgs-current');
 | 
						|
		
 | 
						|
		switch ($.fn.bgStretcher.settings.transitionEffect){
 | 
						|
			case 'fade':
 | 
						|
				$.fn.bgStretcher.effectFade(current, next);
 | 
						|
				break;
 | 
						|
			case 'simpleSlide':
 | 
						|
				$.fn.bgStretcher.simpleSlide();
 | 
						|
				break;
 | 
						|
			case 'superSlide':
 | 
						|
				$.fn.bgStretcher.superSlide(current, next, sequence_mode);
 | 
						|
				break;
 | 
						|
			default : 
 | 
						|
				$.fn.bgStretcher.effectNone(current, next);
 | 
						|
				
 | 
						|
			}
 | 
						|
		if ($($.fn.bgStretcher.settings.pagination).find('LI').length) {
 | 
						|
			$($.fn.bgStretcher.settings.pagination).find('LI.showPage').removeClass('showPage');
 | 
						|
			$($.fn.bgStretcher.settings.pagination).find('LI').eq($(containerStr + ' LI').index($(containerStr + ' LI.bgs-current'))).addClass('showPage');
 | 
						|
		}
 | 
						|
			
 | 
						|
		// callback
 | 
						|
		if ($.fn.bgStretcher.settings.callbackfunction) {
 | 
						|
			if(typeof $.fn.bgStretcher.settings.callbackfunction == 'function')
 | 
						|
					$.fn.bgStretcher.settings.callbackfunction.call();
 | 
						|
		}	
 | 
						|
		
 | 
						|
		if(!_bgStretcherPause){
 | 
						|
		  _bgStretcherTm = setTimeout('$.fn.bgStretcher.slideShow(\''+$.fn.bgStretcher.settings.sequenceMode+'\', -1)', $.fn.bgStretcher.settings.nextSlideDelay);
 | 
						|
		}
 | 
						|
	};
 | 
						|
	
 | 
						|
	/*  Others effects  */
 | 
						|
	$.fn.bgStretcher.effectNone = function(current, next){
 | 
						|
		next.show();
 | 
						|
		current.hide();
 | 
						|
		_bgStretcherAction = false;
 | 
						|
	};	
 | 
						|
	$.fn.bgStretcher.effectFade = function(current, next){
 | 
						|
		next.fadeIn( $.fn.bgStretcher.settings.slideShowSpeed );
 | 
						|
		current.fadeOut( $.fn.bgStretcher.settings.slideShowSpeed, function(){
 | 
						|
			_bgStretcherAction = false;
 | 
						|
		} );
 | 
						|
	};
 | 
						|
	
 | 
						|
	$.fn.bgStretcher.simpleSlide = function(){
 | 
						|
		var t, l;
 | 
						|
		switch ($.fn.bgStretcher.settings.slideDirection) {
 | 
						|
			case 'N':
 | 
						|
			case 'S':
 | 
						|
				t = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * $(containerStr).height()*(-1);
 | 
						|
				l = 0;
 | 
						|
				break;
 | 
						|
			default:
 | 
						|
				l = $(containerStr + ' LI').index($(containerStr + ' LI.bgs-current')) * $(containerStr).width()*(-1);
 | 
						|
				t = 0;
 | 
						|
		}
 | 
						|
		$(containerStr+' UL').animate({left: l+'px', top: t+'px'}, $.fn.bgStretcher.settings.slideShowSpeed, function(){
 | 
						|
			_bgStretcherAction = false;
 | 
						|
		});
 | 
						|
		
 | 
						|
	};
 | 
						|
	
 | 
						|
	$.fn.bgStretcher.superSlide = function(current, next, sequence_mode){
 | 
						|
		var t, l;
 | 
						|
		switch ($.fn.bgStretcher.settings.slideDirection) {
 | 
						|
			case 'S':
 | 
						|
				t = $(containerStr).height();
 | 
						|
				l = 0;
 | 
						|
				break;
 | 
						|
			case 'E':
 | 
						|
				t = 0;
 | 
						|
				l = $(containerStr).width();
 | 
						|
				break;
 | 
						|
			case 'W':
 | 
						|
				t = 0;
 | 
						|
				l = $(containerStr).width()*(-1);
 | 
						|
				break;
 | 
						|
			case 'NW':
 | 
						|
				t = $(containerStr).height()*(-1);
 | 
						|
				l = $(containerStr).width()*(-1);
 | 
						|
				break;
 | 
						|
			case 'NE':
 | 
						|
				t = $(containerStr).height()*(-1);
 | 
						|
				l = $(containerStr).width();
 | 
						|
				break;
 | 
						|
			case 'SW':
 | 
						|
				t = $(containerStr).height();
 | 
						|
				l = $(containerStr).width()*(-1);
 | 
						|
				break;
 | 
						|
			case 'SE':
 | 
						|
				t = $(containerStr).height();
 | 
						|
				l = $(containerStr).width();
 | 
						|
				break;	
 | 
						|
			default:
 | 
						|
				t = $(containerStr).height()*(-1);
 | 
						|
				l = 0;
 | 
						|
 | 
						|
		}
 | 
						|
				
 | 
						|
		if (sequence_mode == 'back') {
 | 
						|
				next.css({'z-index': 2, top: t+'px', left: l+'px'});
 | 
						|
				next.show();
 | 
						|
				next.animate({left: '0px', top: '0px'}, $.fn.bgStretcher.settings.slideShowSpeed, function(){
 | 
						|
						current.hide();
 | 
						|
						$(this).css({'z-index': 1});
 | 
						|
						_bgStretcherAction = false;
 | 
						|
					});
 | 
						|
			} else {
 | 
						|
					current.css('z-index', 2);
 | 
						|
					next.show();
 | 
						|
					current.animate({left: l+'px', top: t+'px'}, $.fn.bgStretcher.settings.slideShowSpeed, function(){
 | 
						|
						$(this).hide().css({'z-index': 1, top: '0px', left: '0px'});
 | 
						|
						_bgStretcherAction = false;
 | 
						|
					});
 | 
						|
				}	
 | 
						|
	};
 | 
						|
	
 | 
						|
	/*  Build line random images  */
 | 
						|
	$.fn.bgStretcher.buildRandom = function(el_not){
 | 
						|
		var l = $(allLIs).length;
 | 
						|
		var i, j, rt;
 | 
						|
		for (i = 0; i < l; i++ ) {
 | 
						|
			random_line[i] = i;
 | 
						|
			random_temp[i] = Math.random()*l;
 | 
						|
		}
 | 
						|
		for (i = 0; i < l; i++ ) {
 | 
						|
			for (j = 0; j < (l-i-1); j++) {
 | 
						|
				if (random_temp[j] > random_temp[j+1]) {
 | 
						|
					rt = random_temp[j];
 | 
						|
					random_temp[j] = random_temp[j+1];
 | 
						|
					random_temp[j+1] = rt;
 | 
						|
					rt = random_line[j];
 | 
						|
					random_line[j] = random_line[j+1];
 | 
						|
					random_line[j+1] = rt;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		if (random_line[0] == el_not) {
 | 
						|
			rt = random_line[0];
 | 
						|
			random_line[0] = random_line[l-1];
 | 
						|
			random_line[l-1] = rt;
 | 
						|
		}
 | 
						|
	};
 | 
						|
	
 | 
						|
	/*  Prev and Next buttons */
 | 
						|
	$.fn.bgStretcher.buttonSlide = function(button_point){
 | 
						|
		if (_bgStretcherAction || ($(allLIs).length < 2)) return false;
 | 
						|
		var mode = '';
 | 
						|
		if (button_point == 'prev') {
 | 
						|
			mode = 'back';
 | 
						|
			if ($.fn.bgStretcher.settings.sequenceMode == 'back')  mode = 'normal';
 | 
						|
		} else {
 | 
						|
			mode = $.fn.bgStretcher.settings.sequenceMode;
 | 
						|
		}
 | 
						|
		$(allLIs).stop(true, true);
 | 
						|
		$.fn.bgStretcher._clearTimeout();
 | 
						|
		$.fn.bgStretcher.slideShow(mode, -1);
 | 
						|
		return false;
 | 
						|
	};
 | 
						|
	
 | 
						|
	/*  Pagination  */
 | 
						|
	$.fn.bgStretcher.pagination = function(){
 | 
						|
		var l = $(allLIs).length;
 | 
						|
		var output = ''; var i = 0;
 | 
						|
		if (l > 0) {
 | 
						|
			output += '<ul>';
 | 
						|
				for (i = 0; i < l; i++){
 | 
						|
					output += '<li><a href="javascript:;">'+(i+1)+'</a></li>';
 | 
						|
				}
 | 
						|
			output += '</ul>';
 | 
						|
			$($.fn.bgStretcher.settings.pagination).html(output);
 | 
						|
			$($.fn.bgStretcher.settings.pagination).find('LI:first').addClass('showPage');
 | 
						|
			
 | 
						|
			$($.fn.bgStretcher.settings.pagination).find('A').click(function(){
 | 
						|
				if ($(this).parent().hasClass('showPage')) return false;
 | 
						|
				$(allLIs).stop(true, true);
 | 
						|
				$.fn.bgStretcher._clearTimeout();
 | 
						|
				$.fn.bgStretcher.slideShow($.fn.bgStretcher.settings.sequenceMode, $($.fn.bgStretcher.settings.pagination).find('A').index($(this)));
 | 
						|
				return false;
 | 
						|
			});
 | 
						|
			
 | 
						|
		}
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
	
 | 
						|
	/*  Default Settings  */
 | 
						|
	$.fn.bgStretcher.defaults = {
 | 
						|
		imageContainer:             'bgstretcher',
 | 
						|
		resizeProportionally:       true,
 | 
						|
		resizeAnimate:              false,
 | 
						|
		images:                     [],
 | 
						|
		imageWidth:                 1024,
 | 
						|
		imageHeight:                768,
 | 
						|
		maxWidth:					'auto',
 | 
						|
		maxHeight:					'auto',
 | 
						|
		nextSlideDelay:             3000,
 | 
						|
		slideShowSpeed:             'normal',
 | 
						|
		slideShow:                  true,
 | 
						|
		transitionEffect:			'fade', // none, fade, simpleSlide, superSlide
 | 
						|
		slideDirection:				'N', // N, S, W, E, (if superSlide - NW, NE, SW, SE)
 | 
						|
		sequenceMode:				'normal', // back, random
 | 
						|
		buttonPrev:					'',
 | 
						|
		buttonNext:					'',
 | 
						|
		pagination: 				'',
 | 
						|
		anchoring: 					'left top', // right bottom center
 | 
						|
		anchoringImg: 				'left top', // right bottom center
 | 
						|
		preloadImg:					false,
 | 
						|
		startElementIndex:			0,
 | 
						|
		callbackfunction:			null
 | 
						|
	};
 | 
						|
	$.fn.bgStretcher.settings = {};
 | 
						|
})(jQuery); |