/*
//INFO: special simplegallery for affichage
//USAGE:
	<script type="text/javascript">
		//<![CDATA[
		$(function(){
			$("#simplegallery_{{ instance.id }}").simplegallery({
				cms_placeholder: "{{ placeholder }}",
				interval: {{ instance.interval }},
				style: "{{ instance.style }}"
			});
		});
		//]]>
	</script>
*/

$.fn.simplegallery = function(options){
	var defaults = {
		cms_placeholder: "",
		interval: 0,
		style: "",
		startitem: "auto"
	};
	var options = $.extend(defaults, options);

	return this.each(function(){				
		var silderActiveId = 0;
		var silderLastActiveId = 0;
		var sliderItemCount = 0;
		var sliderWidth = 0;
		var sliderItemStartMiddle = false;		
		
		var galleryHolderObj 	= $(this);
		var galleryContentObj	= galleryHolderObj.find(".gallery_content");
		var gallerySlider		= galleryHolderObj.find(".gallery_slider");		
		var galleryActiveObj	= galleryHolderObj.find(".gallery_active");		
		var galleryNavObj		= galleryHolderObj.find(".gallery_nav");			
		var galleryInfoObj		= galleryHolderObj.find(".gallery_info");

		var sliderItemCountOriginal = galleryActiveObj.find(".holder").size();
		
		var generateItems = function(c){
			galleryNavObj.find("li").duplicate(c).prependTo(galleryNavObj);
			galleryActiveObj.find(".holder").duplicate(c).prependTo(galleryActiveObj);
		
			galleryActiveObj.find(".holder").each(function(i){
				$(this).attr("title",i+1);
			});
		}
		
		var slideToItem = function(id){
			silderActiveId = Number(id);			
			
			if(silderActiveId < 1){silderActiveId=sliderItemCount;}
			if(silderActiveId > sliderItemCount){silderActiveId=1;}
		
			var newX = ((silderActiveId-1)*100);
			var id2 = Number(galleryNavObj.find("li:eq("+(silderActiveId-1)+")").attr("title"))-1;
			
			if(sliderItemCountOriginal == 2){
				newX = 0;
				if(silderActiveId==2){
					galleryNavObj.find("li.first-child").animate({ paddingLeft:"100px" },{duration:400,easing:'easeOutQuart'});
				}else{
					galleryNavObj.find("li.first-child").animate({ paddingLeft:"200px" },{duration:400,easing:'easeOutQuart'});
				}				
			}else{
				gallerySlider.stop().scrollTo({top: 0,left: newX + "px"}, 400, {easing:"easeOutQuart"});
			}
			
			galleryContentObj.cycle(id2);
			
			if(options.cms_placeholder == "feature_top" && options.style == "infobottom"){
				var footerinfo = galleryContentObj.find(".holder:eq("+id2+") .gallery_info").html();
				if(silderLastActiveId!=silderActiveId){
					galleryHolderObj.find(".gallery_footer_info").fadeOut(400, function(){
						$(this).html(footerinfo);
						if($.trim(footerinfo).length>0){
							$(this).fadeIn(400);
						}
					});
				}
			}
			
			silderLastActiveId = silderActiveId;
		}
		
			
		if(sliderItemCountOriginal == 3){
			galleryHolderObj.addClass("simplegallery_sliderart3");
			generateItems(10);
			sliderItemStartMiddle = true;
		}else if(sliderItemCountOriginal == 2){
			galleryHolderObj.addClass("simplegallery_sliderart2");
		}else if(sliderItemCountOriginal == 1){
			galleryHolderObj.addClass("simplegallery_art1");
		}else{
			galleryHolderObj.addClass("simplegallery_artnormal");
			generateItems(10);
			sliderItemStartMiddle = true;
		}
		
		gallerySlider.find(".slideritem").each(function(i){
			sliderItemCount++
			sliderWidth += 300+$(this).width();
		});
		
		if(sliderItemStartMiddle == true && options.startitem == "auto"){
			options.startitem = sliderItemCountOriginal * 5;
		}
		
		
		galleryNavObj.width(sliderWidth);	
		galleryNavObj.find("li:first-child").addClass("first-child");	
		
		
		if(options.cms_placeholder == "feature_top"){
			galleryInfoObj.height(galleryContentObj.height());
		}else{
			galleryInfoObj.width(galleryHolderObj.width())
		}
		
		galleryContentObj.cycle({
			fx:    'fade',
		    speed:  '900',
		    timeout: 0
		});
		
		galleryActiveObj.cycle({
		    fx:    'fade',
		    speed:  '900',
		    timeout: (Number(options.interval)*1000),
		    pager:  galleryNavObj,
		    pagerAnchorBuilder: function(idx, slide) {
		        return galleryNavObj.find('li:eq(' + (idx) + ') a');
		    },
			next: galleryHolderObj.find(".next"),
			prev: galleryHolderObj.find(".prev"),
			startingSlide: options.startitem,
			before: function(currSlideElement, nextSlideElement, options, forwardFlag) {
				slideToItem($(nextSlideElement).attr("title"));
			}
		});



	});
}

