$().ready(function(){
	$("#play").click(function(){ /* click sur le bouton play de la control bar noire */
		togglePlayIcon();
	});
	$("#volume div#carres").click(function(e){ /* click sur le controle de volume (un des petits carrés de son) */
		volumeClick(e);
	});
	$("#controles .barres").click(function(e){ /* click sur la barre de progression pour seeker dans le vidéo */
		seekTo($(this), e);
	});
	$("#controles div.barres").mouseover(function(e){ /* click sur la barre de progression pour seeker dans le vidéo */
		$(".bulle_temps").show();
	});
	$("#controles div.barres").mouseout(function(e){ /* click sur la barre de progression pour seeker dans le vidéo */
		$(".bulle_temps").hide();
	});
	$("#twitter").click(function(){ /* twitter share du vidéo */
		video.lnkTwitter();
	});
	$("#facebook").click(function(){ /* facebook share du vidéo */
		video.lnkFacebook();
	});
	$("#embed").click(function(){ /* popup des informations de embed du vidéo */
		video.lnkEmbed();
	});
	$("#infos").click(function(){ /* overlay des informations du vidéo lors d'un click sur le _i_ à coté du titre */
		menu.afficherInfos();
	});
	$("#toggle_piedpage").click(function(){ /* toggle le pied de page artv lors d'un click sur la fleche */
		menu.togglePiedpage();
	});
	$("div.sociaux div").mouseenter(function(){
		$("#titre_partage").show();
		clearTimeout($("div.sociaux").data("timer"));
	})
	$("div.sociaux div").mouseleave(function(){
		var timeout = setTimeout(function(){
			$("#titre_partage").hide();
		}, 200);
		$("div.sociaux").data("timer", timeout)
	})
});


/**
 * Toggle l'icone de play/pause
 * @param string|undefined forcePlayStatus Défini si l'icone doit être forcé à play
 */
function togglePlayIcon(forcePlayStatus){
	if(forcePlayStatus == undefined){
		if(video.isPlaying()){
			video.pause();
			menu.afficherInlineMenu(); // affiche le menu en overlay lors d'un pause
		}else{
			if(video.etat == "paused"){
				menu.cacherInlineMenu(); // si le menu était en pause, on cache le menu en overlay
				$("#menu").fadeOut(500);
				video.resume();
			}else if(video.etat == "stopped"){
				if(!video.playlist.play("suivant")){
					
				}
			}
		}
	}
	var img = $("#play").children("img").each(function(){ // pour chaque enfant (img)
		if(video.etat == "playing" || forcePlayStatus){
			$(this).attr("src", $(this).attr("src").replace("play", "pause")); // change l'icone si la lecture commence (pas d'erreur)
		}else{
			$(this).attr("src", $(this).attr("src").replace("pause", "play")); // change l'icone
		}
	});
}

/**
 * Demande au lecteur de changé son volume en fonction d'un event ou d'un chiffre déjà connu récupéré dans le cookie volume
 *
 * @param jqueryEvent e Evenement de click généré par jquery
 * @param int ratioInitial Volume à affecter directement au player (ratio de 0 à 1)
 */
function volumeClick(e, ratioInitial){
	var ratio;
	var carres = $("#volume #carres"); // array des petits carrés blanc de controles de son

	if(ratioInitial != null && ratioInitial != undefined){ // si c'est une initialisation du son (onload avec cookie)
		ratio = ratioInitial;
	}else{ // si c'est avec un event
		var offset = carres.offset();
		ratio = (e.clientX - offset.left) / carres.width();
	}
	
	$.cookie("volume", ""+ratio); // stocke le son dans les cookie afin de pouvoir le récupéré lors d'une ré-ouverture du site
	player.setVolume(ratio); // demande au player d'ajuster son son (0:1)
	carres.children("div").removeClass("off");
	carres.children("div").addClass("off"); // remet tout les carrés de son à off
	var nbCarresOn = Math.ceil(ratio * carres.children().length);
	for(var i = 0; i < nbCarresOn; i++){
		$(carres.children()[i]).removeClass("off"); // met le carré à "on"
	}
}

/**
 * Demande à la fonction volumeClick de remettre le son comme il l'était lors de la réouverture du site (récupère la valeur dans le cookie volume)
 */
function initVolume(){ //
	var ratio = $.cookie("volume");
	if(ratio != null){
		volumeClick(null, ratio);
	}
}

/**
 * Demande au player de seeker le vidéo
 *
 * @param jqueryObject barres Object jquery des barres de controles du vidéo (seekBar)
 * @param jqueryEvent e Event généré par jquery
 */
function seekTo(barres, e){
	player.seekTo((e.pageX - barres.offset().left - 10) / barres.width());
}

/**
 * Affiche la progression du chargement en modifiant le width d'un élément html
 *
 * @param int pourcentage Ratio de 0 à 1 du chargement du vidéo en cours
 */
function loadedPercent(pourcentage){ // flash call
	if(pourcentage > 0){
		$("#controles .loading").css("width", pourcentage*100+"%")
	}else{
		$("#controles .loading").css("width", 0);
	}
}

/**
 * Affiche la progression de lecture du vidéo en modifiant le width d'un élément html
 *
 * @param int pourcentage Ratio de 0 à 1 du chargement du vidéo en cours
 */
function progressPosition(pourcentage){ // flash call
	var temps = $("#controles p.temps").html().split(" / ");

	var actuel = temps[0].split(":");
	var total = temps[1].split(":");
	var secondes;

	actuel = actuel[0] * 60 + actuel[1];
	total = total[0] * 60 + total[1];
	secondes = total - actuel;

	video.secondes_restantes = secondes;

	if(pourcentage > 0){
		if(video.secondes_restantes <= 10 && video.secondes_restantes > 0){ // s'il reste 10 secondes et moins au vidéo avant la fin'
			menu.afficherPopupSuivant(); // affiche la bulle qui indique quel sera le prochain vidéo
		}
		$("#controles .position").css("width", pourcentage*100+"%");
	}else{
		$("#controles .position").css("width", 0);
	}
	video.progress = pourcentage;
}

/**
 * Affiche le temps dans le conteneur html
 *
 * @param string temps temps actuel du vidéo
 */
function afficherTemps(temps){
	if(temps != ""){
		$("#controles p.temps").html(temps);
	}
}
