// JavaScript Document

// Raccourcis claviers --------------------------------------------------------------
// ----------------------------------------------------------------------------------

var viewerActiveControl = true;
	var speed = 500;
	var easing = "easeInOutExpo";

$(document).keydown(function (e) {
		if(e.which == 37 && viewerActiveControl == true){
			displaySlides('left');
		}
		if(e.which == 39 && viewerActiveControl == true){
			displaySlides('right');
		}
		/*if(e.which == 13){
			//alert('#'+currentCat+'Screenshots'+currentSlide);
			$('#'+currentCat+'Screenshots'+currentSlide).click();
		}*/
});

// Lightbox -------------------------------------------------------------------------
// ----------------------------------------------------------------------------------

function arrowFadeIn(direction){ 
	$('.viewer-arrow-'+direction).stop(true,true).animate({opacity: 1.0});  
}

function arrowFadeOut(direction){ 
	$('.viewer-arrow-'+direction).stop(true,true).animate({opacity: 0.0});  
}

function arrowFadeOutAll(){ 
	$('.viewer-arrow-left, .viewer-arrow-right').stop(true,true).animate({opacity: 0.0});  
}

// Descriptions ---------------------------------------------------------------------
// ----------------------------------------------------------------------------------

function initDescriptions(){ 
	for(var i=1; i<=nbrSlides["web"]; i++){
		if(i!=currentSlide){
			$("#webDescription"+oldSlide).animate({opacity: 0.0});
		}
	}
}

function displayDescriptions(){ 
	if(oldSlide>0){
		$("#webDescription"+oldSlide).animate({opacity: 0.0});
	}
	if($("#webDescription"+currentSlide)){
		$("#webDescription"+currentSlide).animate({opacity: 0.7});
	}
}

// Slide ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------------
 
function initViewer(){
	var nbrCat = nbrSlides[currentCat];
	for(var i = 1; i<=nbrCat; i++){
		var idScreenshot = currentCat+"Screenshots"+i;
		if(i!=1){
			$("#"+idScreenshot).animate({opacity: 0.5});
		}
	}
}

function displaySlides(direction,normalMode){
	var mode = (normalMode != false)?true:false; 

	oldSlide = currentSlide;
	if(direction == "right" && viewerActiveControl == true){
		viewerActiveControl = false;
		if((currentLeft-scaleLeft) >= maxLeft){
			$(".screenshots-container").animate({"left": "-="+scaleLeft+"px"}, speed, easing, function(){ viewerActiveControl = true; });
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,0.5);
			currentLeft -= scaleLeft;
			currentSlide++;
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,1);
			//displayPointer("right");
		}else if(currentLeft == maxLeft && (mode == true)){
			$(".screenshots-container").animate({"left": "-="+maxLeft+"px"}, speed, easing, function(){ viewerActiveControl = true; });
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,0.5);
			currentLeft -= maxLeft;
			currentSlide = 1;
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,1);
			/*if(mode == true){
				displayPointer("right");
			}*/
		}
	}else if(direction == "left" && viewerActiveControl == true){
		viewerActiveControl = false;
		if((currentLeft+scaleLeft) <= minLeft){
			$(".screenshots-container").animate({"left": "+="+scaleLeft+"px"}, speed, easing, function(){ viewerActiveControl = true; });
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,0.5);
			currentLeft += scaleLeft;
			currentSlide--;
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,1);
			//displayPointer("left");
		}else if(currentLeft == minLeft && (mode == true)){
			$(".screenshots-container").animate({"left": "+="+maxLeft+"px"}, speed, easing, function(){ viewerActiveControl = true; });
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,0.5);
			currentLeft += maxLeft;
			currentSlide = nbrSlides[currentCat];
			//$("#"+currentCat+"Screenshots"+currentSlide).fadeTo(200,1);
			/*if(mode == true){
				displayPointer("left");
			}*/
		}
	}
	initViewerOpt1();
	displayInfoboxes();
	directPointer(currentSlide,oldSlide);
	/*if(currentCat=="web"){
		displayDescriptions();
	}*/
}

function initViewerOpt1(){
	if(viewerLinks[currentCat][currentSlide] != false){
		if($('#viewerOptionUrl').css('display') == "none"){
			$('#viewerOptionUrl').css('display','block');
			$('#viewerOptionUrlInactive').css('display','none');
		}
		document.getElementById("viewerOptionUrl").href = viewerLinks[currentCat][currentSlide];
	}else{
		$('#viewerOptionUrl').css('display','none');
		$('#viewerOptionUrlInactive').css('display','block');

	}
}

function directSlide(id){
	if(id != currentSlide){
		viewerActiveControl = false;
		var oldSlidePosition = currentLeft;
		var newSlidePosition = -((id-1)*scaleLeft);
		if(oldSlidePosition > newSlidePosition){
			var scaleDirectSlide = oldSlidePosition-newSlidePosition;
			$(".screenshots-container").animate({"left": "-="+scaleDirectSlide+"px"}, speed, easing, function(){ viewerActiveControl = true; });
			currentLeft -= scaleDirectSlide;
		}else if(oldSlidePosition < newSlidePosition){
			var scaleDirectSlide = newSlidePosition-oldSlidePosition;
			$(".screenshots-container").animate({"left": "+="+scaleDirectSlide+"px"}, speed, easing, function(){ viewerActiveControl = true; });
			currentLeft += scaleDirectSlide;
		}
		directPointer(id,currentSlide);
		currentSlide = id;
		initViewerOpt1();
	}
}

// Pointer --------------------------------------------------------------------------
// ----------------------------------------------------------------------------------

function displayPointer(direction){
	if(direction == "right" && viewerActiveControl == true){
		viewerActiveControl = false;
		if((currentMarginP+scaleP) <= maxMarginP){
			$(".lay-icon-slide-current").animate({"left": "+="+scaleP+"px"}, "normal", function(){ viewerActiveControl = true; });
			currentMarginP += scaleP;
		}else if(currentMarginP == maxMarginP){
			$(".lay-icon-slide-current").animate({"left": "-="+maxMarginP+"px"}, "normal", function(){ viewerActiveControl = true; });
			currentMarginP -= maxMarginP;
		}
	}else if(direction == "left" && viewerActiveControl == true){
		viewerActiveControl = false;
		if((currentMarginP-scaleP) >= minMarginP){
			$(".lay-icon-slide-current").animate({"left": "-="+scaleP+"px"}, "normal", function(){ viewerActiveControl = true; });
			currentMarginP -= scaleP;
		}else if(currentMarginP == minMarginP){
			$(".lay-icon-slide-current").animate({"left": "+="+maxMarginP+"px"}, "normal", function(){ viewerActiveControl = true; });
			currentMarginP += maxMarginP;
		}		
	}
}

function directPointer(id,id_old){
	$("#"+currentCat+"Pointer"+id).removeClass("passive-pointer");
	$("#"+currentCat+"Pointer"+id).addClass("active-pointer");
	$("#"+currentCat+"Pointer"+id_old).removeClass("active-pointer");
	$("#"+currentCat+"Pointer"+id_old).addClass("passive-pointer");
}

// Gestion infoboxes ---------------------------------------------------------------
// ----------------------------------------------------------------------------------

function initInfoboxes(cat,cond,init){
	if(!init){ var init = false; }
	var nbrInfoboxes = nbrSlides[cat];
	for(var i = 1; i<=nbrInfoboxes; i++){
		if(i==cond){
			$("#"+cat+"Infoboxes"+i).css("display","block");
		}else{
			$("#"+cat+"Infoboxes"+i).css("display","none");
		}
	}
	
	if(init == true){
		var nbrCats = tabCats.length - 1;
		for(var j = 1; j<=nbrCats; j++){
			if(tabCats[j] != cat){
				var nbrInfoboxes = nbrSlides[tabCats[j]];
				for(var i = 1; i<=nbrInfoboxes; i++){
					$("#"+tabCats[j]+"Infoboxes"+i).css("display","none");
				}
			}
		}
	}
	
	$('#infoboxesLoading').fadeOut(100);
}

function displayInfoboxes(){
	$('#infoboxesLoading').fadeIn(100,function(){initInfoboxes(currentCat,currentSlide);});
}

// Basculement de catégories --------------------------------------------------------
// ----------------------------------------------------------------------------------

function swapScreenshots(cat,idLink){
	$('#loadingScreenshots').css('display','block');
	$('#loadingScreenshots').fadeIn(100,function(){
		setTimeout("directSlide(1,'same');",350);
		
		document.getElementById(currentCat+'Link').className = 'viewer-nav-'+currentLink;
		document.getElementById(cat+'Link').className = 'viewer-nav-'+idLink+'-active';
		currentLink = idLink;
		
		$('#'+currentCat+'Screenshots').css('z-index','0');
		$('#'+cat+'Screenshots').css('z-index','1');
		
		setTimeout("$('#loadingScreenshots').fadeOut(200,function(){$('#loadingScreenshots').css('display','none');});",1000);
		
		var stop_i = 1;
		var stop_it = false;
		while(stop_it == false){
			if($('#'+cat+'Pointer'+stop_i).length != 0){
					$('#'+cat+'Pointer'+stop_i).removeClass("active-pointer");
					$('#'+cat+'Pointer'+stop_i).addClass("passive-pointer");
			}else{
				stop_it = true;
			}
			stop_i++;
		}
		
		$('#'+cat+'Pointer1').removeClass("passive-pointer");
		$('#'+cat+'Pointer1').addClass("active-pointer");
		
		$('#'+currentCat+'Pointers').fadeOut(200, function(){
			$('#'+cat+'Pointers').fadeIn(200);											   
		});
		
		currentCat = cat;
		maxLeft = -(scaleLeft*(nbrSlides[currentCat]-1));
		
		initInfoboxes(cat,1,true);
		
	});
}

// Fonction du zoom -----------------------------------------------------------------
// ----------------------------------------------------------------------------------

function viewerZoom(){
	$('#'+currentCat+'Screenshots'+currentSlide).click();
}
