$(document).ready(function() {
	var running = false;
	
	// slider style1 & 2
	$('div.realisations_slider.style1, div.realisations_slider.style2').each(function(){
		var slider = $(this);
		var ul = slider.find('ul');
		var lis = ul.children('li');
		var num_element = 0;

		var nb_elements = lis.length;
		
		//init
		ul.imagesLoaded(function(){
			lis.each(function(){
				var li = $(this);
				li.width(li.find('img').width());
			});
		});
		
		if(nb_elements < 2)
			slider.find('div.arrow.next').css('display', 'none');
		
		slider.find('div.arrow.previous').click(function(){
			if(running == false){
				running = true;
				if(num_element > 0){
					
					ul.animate({
						marginLeft: parseInt(ul.css('margin-left'))+$(lis[num_element-1]).outerWidth(true)
					}, 'normal', function(){
						running = false;
						$(lis[num_element]).addClass('selected');
						$(lis[num_element+1]).removeClass('selected');
					});	
					num_element--;
					
					if(num_element == 0)
						slider.find('div.arrow.previous').fadeOut();
					slider.find('div.arrow.next').fadeIn()
				}
			}
		});
		
		slider.find('div.arrow.next').click(function(){
			if(running == false){
				running = true;
			
				if(num_element < nb_elements-1){
					ul.animate({
						marginLeft: parseInt(ul.css('margin-left'))-$(lis[num_element]).outerWidth(true)
					}, 'normal', function(){
						running = false;
						$(lis[num_element]).addClass('selected');
						$(lis[num_element-1]).removeClass('selected');
					});	
					num_element++;
					
					if(num_element == nb_elements-1)
						slider.find('div.arrow.next').fadeOut();
					slider.find('div.arrow.previous').fadeIn();
				}
			}
		});
	});
	
	
	// slider style 3
	$('div.realisations_slider.style3').each(function(){
		var slider = $(this);
		var ul = slider.find('ul');
		var lis = ul.children('li');
		var num_element = 0;

		var nb_elements = lis.length;
		var nb_elements_visible = 4;
		
		//init
		if(nb_elements < 2)
			slider.find('div.arrow.next span').css('display', 'none');
		slider.find('div.arrow.previous span').css('display', 'none');
		
		// previous
		slider.find('div.arrow.previous span').click(function(){
			if(num_element > 0){
				
				num_element--;
				ul.animate({
					marginTop: -(num_element*$(lis[0]).outerHeight(true))
				}, 'normal', function() {
					// Animation complete.
				});	
				
				if(num_element == 0)
					slider.find('div.arrow.previous span').fadeOut();
				slider.find('div.arrow.next span').fadeIn()
			}
		});
		
		// next
		slider.find('div.arrow.next span').click(function(){
			if(num_element < nb_elements-nb_elements_visible){
				
				num_element++;
				ul.animate({
					marginTop: -(num_element*$(lis[0]).outerHeight(true))
				}, 'normal');	
				
				if(num_element == nb_elements-nb_elements_visible)
					slider.find('div.arrow.next span').fadeOut();
				slider.find('div.arrow.previous span').fadeIn();
			}
		});
		
		//click
		slider.find('ul li img').click(function(){
			var img_click = $(this);
			var img_stape1 = slider.find('img.stape1');
			var img_stape2 = slider.find('img.stape2');
			img_stape2.css('display', 'block')
			
			img_stape1.attr('src', img_click.attr('src'));
			img_stape2.fadeOut(function(){
				img_stape2.attr('src', img_click.attr('src'));
			});
		});
	});
	
	$('div.realisations_slider ul li').each(function(){
		var element = $(this);
		$(element).hover(
			function(){
				if(element.hasClass('selected')){
					element.find('div.infos').fadeIn();
					if(!element.find('img').hasClass('selected')){
						element.find('img').animate({opacity : 0.7});
					}
				}
			},
			function(){
				if(element.hasClass('selected')){
					element.find('div.infos').fadeOut();
					if(!element.find('img').hasClass('selected')){
						element.find('img').animate({opacity : 1});
					}
				}
			}
		);
	});
	
	$('select').sSelect();

	//Navigation Realisation3
	
	$('ul.slider3 li a').each(function(index, element){
		$(element).click(function(e){
			e.preventDefault();
			
			var img = $(this).find('img');
			$('ul.slider3 li a img').each(function(){
				$(this).removeClass('selected');
				$(this).animate({
					opacity : 1
				},
					function(){
						img.addClass('selected');
						img.animate({
							opacity : 0.7
						});
					}
				);
			});
				
			img.animate({
				opacity : 0.8
			});	
			
			var to_show = null;
			$('div.s_items div.s_item').each(function(s_index, s_element){
				if(index == s_index){
					to_show = $(this);
				}
			});
			
			var to_hide = $('div.s_items').find('div.s_selected');
			to_hide.removeClass('s_selected');
			to_hide.fadeOut('fast', function(){
				to_show.fadeIn('fast');
				to_show.addClass('s_selected');				
			});
		});
	});
	
	//Download arrow
	$('div.download a').hover(
		function(){
			$(this).find('span').animate({
				backgroundPosition:"(2px 5px)"
			});
		},
		function(){
			$(this).find('span').animate({
				backgroundPosition:"(2px 1px)"
			});
		}
	);
            
            
         $('.close_detail').click(function() {
             
            var selected_item = $('div.display') ; 
            if(selected_item.length != 0)
               selected_item.removeClass('display');
            else
            {
               var selected_item = $('div.s_selected') ; 
                selected_item.hide() ; 
               
            }
           
           
             return false ; 
             
             
         })
	
});

(function($) {
	$.extend($.fx.step,{
	    backgroundPosition: function(fx) {
            if (fx.state === 0 && typeof fx.end == 'string') {
                var start = $.curCSS(fx.elem,'backgroundPosition');
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
			}
            var nowPosX = [];
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

           function toArray(strg){
               strg = strg.replace(/left|top/g,'0px');
               strg = strg.replace(/right|bottom/g,'100%');
               strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
               var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
               return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
           }
        }
	});
})(jQuery);


