/*
	Background Stretcher jQuery Plugin
	� 2009 ajaxBlender.com
	For any questions please visit www.ajaxblender.com 
	or email us at support@ajaxblender.com
	
	Version: 1.2
*/

;(function($){
	/*  Variables  */
	var container = null;
	var allImgs = '', allLIs = '', containerStr = '';
	
	var element = this;
	var _bgStretcherPause = false;
	var _bgStretcherTm = null;

	
	$.fn.bgStretcher = function(settings){
		settings = $.extend({}, $.fn.bgStretcher.defaults, settings);
		$.fn.bgStretcher.settings = settings;
		$.fn.bgStretcher.position = 0;
		
		function _build(){
			if(!settings.images.length){ return; }
			
			_genHtml();
			
			containerStr = '#' + settings.imageContainer;
			container = $(containerStr);
			allImgs = '#' + settings.imageContainer + ' IMG';
			allLIs = '#' + settings.imageContainer + ' LI';
				
			$(allLIs).hide();
				
			function selectorImagesLoaded($selector){ 
				
				
				
				$('#loading_page').css({'display':'none'});
				$('#main').css({'display':''});
				
				
				$(allLIs + ':first').show().addClass('bgs-current');
				
				if(!container.length){ return; }
				$(window).resize(_resize);
				
				if(settings.slideShow && $(allImgs).length > 1){
					_bgStretcherTm = setTimeout('$.fn.bgStretcher.slideShow()', settings.nextSlideDelay);
				}
				
				
	
						
						
				_resize();
				page_loaded = 1;
				
			} 
			
			$('#bgstretcher').onImagesLoad({ 
				selectorCallback: selectorImagesLoaded 
			}); 
				//the selectorCallback function, invoked once when all images contained within $('body') have loaded 
				
			
			$(".pagination li a").click(function(){
				current = $(".pagination li.current a").attr("rel");									
				clicked = $(this).attr("rel");
	
				if (current != clicked) {
					
					//Arrête le slide
					$.fn.bgStretcher.pause();
					
					//Enlève le bouton rouge
					$(".pagination li a:eq("+current+")").parent().removeClass("current");
					$(".pagination li a:eq("+clicked+")").parent().addClass("current");
					
					//Enlève la photo actuelle
					var current = $(containerStr + ' LI.bgs-current');
					$(containerStr + ' LI').removeClass('bgs-current');	
					
					//Positionne toi sur la photo d'avant
					$.fn.bgStretcher.position = clicked;						
					//$.fn.bgStretcher.position--;
					
					if($.fn.bgStretcher.position < 0)
						$.fn.bgStretcher.position = $.fn.bgStretcher.settings.images.length-1;
						
					//Modifie le suivant
					var next = $(containerStr + " LI:eq("+$.fn.bgStretcher.position+")");
					next.addClass('bgs-current');
					
					//Change la photo
					next.fadeIn( $.fn.bgStretcher.settings.slideShowSpeed );
					current.fadeOut( $.fn.bgStretcher.settings.slideShowSpeed );
					
					//relance la machine
					_bgStretcherPause = false;
      				 $.fn.bgStretcher._clearTimeout();
					_bgStretcherTm = setTimeout('$.fn.bgStretcher.slideShow()', $.fn.bgStretcher.settings.nextSlideDelay);
					

		
				}
			});
			
		};
		
		function _resize(){
			
			
			//Placement du footer sur page d'accueil
			if(NAV == 1)
				if(getWindowHeight()>640)
					$('#footer').css({'margin-top':getHeight(610)});
						
						
			var winW = $(window).width();
			//var winH = $(window).height() - settings.marginHeight;
			var winH = $(window).height();
			var imgW = 0, imgH = 0;

			//	Update container's height
			container.width(winW);
			container.height(winH);
			
			//	Non-proportional resize
			if(!settings.resizeProportionally){
				imgW = winW;
				imgH = winH;
			} else {
				var initW = settings.imageWidth, initH = settings.imageHeight;
				var ratio = initH / initW;
				
				imgW = winW;
				imgH = winW * ratio;
				
				if(imgH < winH){
					imgH = winH;
					imgW = imgH / ratio;
				}
			}
			
			//	Apply new size for images
			if(!settings.resizeAnimate){
				$(allImgs).width(imgW).height(imgH);
			} else {
				$(allImgs).animate({width: imgW, height: imgH}, 'normal');
			}
		};
		
		function _genHtml(){
			var code = '<div id="' + settings.imageContainer + '" class="bgstretcher"><ul>';
			
			for(i = 0; i < settings.images.length; i++){
				code += '<li><img src="' + settings.images[i] + '" alt="" /></li>';
			}
			code += '</ul>';
			
			if(NAV == 1)
				code += '<img src="assets/pict/page/bg_menu_home_left.png" alt="" class="ombre" />';
			else
				code += '<img src="assets/pict/page/bg_menu_home_left_top.png" alt="" class="ombre" />';
			
			code += '</div>';
			
			$(code).appendTo('body');
					
		};
		
		/*  Start bgStretcher  */
		_build();
	};
	
	$.fn.bgStretcher.play = function(){
       _bgStretcherPause = false;
       $.fn.bgStretcher._clearTimeout();
       $.fn.bgStretcher.slideShow();
       
	};
	
	$.fn.bgStretcher._clearTimeout = function(){
       if(_bgStretcherTm != null){
           clearTimeout(_bgStretcherTm);
           _bgStretcherTm = null;
       }
	}
	
	$.fn.bgStretcher.pause = function(){
	   _bgStretcherPause = true;
	   $.fn.bgStretcher._clearTimeout();
	};
	
	$.fn.bgStretcher.slideShow = function(){
		var current = $(containerStr + ' LI.bgs-current');
		var next = current.next();
		if(!next.length){
			next = $(containerStr + ' LI:first');
		}
		
		$(containerStr + ' LI').removeClass('bgs-current');
		next.addClass('bgs-current');
		
		next.fadeIn( $.fn.bgStretcher.settings.slideShowSpeed );
		current.fadeOut( $.fn.bgStretcher.settings.slideShowSpeed );
		
		if(!_bgStretcherPause){
		  _bgStretcherTm = setTimeout('$.fn.bgStretcher.slideShow()', $.fn.bgStretcher.settings.nextSlideDelay);
		}
		
		$(".pagination li a:eq("+$.fn.bgStretcher.position+")").parent().removeClass("current");
		
		$.fn.bgStretcher.position++;
		
		if($.fn.bgStretcher.position == $.fn.bgStretcher.settings.images.length)
			$.fn.bgStretcher.position = 0;
			
			
		$(".pagination li a:eq("+$.fn.bgStretcher.position+")").parent().addClass("current");
		
						
	};
	
	/*  Default Settings  */
	$.fn.bgStretcher.defaults = {
		imageContainer:             'bgstretcher',
		resizeProportionally:       true,
		resizeAnimate:              false,
		images:                     [],
		imageWidth:                 1024,
		imageHeight:                768,
		nextSlideDelay:             3000,
		slideShowSpeed:             'normal',
		slideShow:                  true
	};
	$.fn.bgStretcher.settings = {};
})(jQuery);
