/* ------------------------ VARIABLES GLOBALES ------------------------ */
var currentPage = 1;
var numPagesTotales = 0;
var typeClassementVideosCommunaute = 'classement_date_videos_communaute';

/* ------------------------ INIT ------------------------ */
$(document).ready(function(){
	// on affiche le flash du header
	var flashvars = {
		configPath: "flash/",
		xmlPath: "ws/"
	};
	var params = {
		menu: "false",
		scale: "noScale",
		allowFullscreen: "true",
		allowScriptAccess: "always",
		bgcolor: "#FFFFFF",
		wmode:"transparent"
	};
	var attributes = {
		id:"flashHome"
	};
	swfobject.embedSWF("./flash/home_header.swf", "flashHome", "926px", "280px", "10.0.0", "flash/expressInstall.swf", flashvars, params, attributes);
	
	initEvents();
	// on récupère les vidéos en arrivant sur la page
	getVideos('');
});

/* ------------------------ EVENEMENTS ------------------------ */
function initEvents(){
	// on met la classe active au menu du classement par défaut
	$('#videos_communaute #'+typeClassementVideosCommunaute).attr('class','activeMenuContentPage');
	
	initHoversOnMenuContentPageVideosCommunaute();
	
	initClickOnMenuContentPageVideosCommunaute();	
}

function initHoversOnMenuContentPageVideosCommunaute(){
	// over/out sur les liens du menu
	$('#videos_communaute .linkMenuContentPage').hover(
		function(){
			$(this).attr('class','curseur activeMenuContentPage');
		},
		function(){
			$(this).attr('class','curseur linkMenuContentPage');
	});

	$('#videos_communaute .activeMenuContentPage').hover(
		function(){
			$(this).attr('class','activeMenuContentPage');
		},
		function(){
			$(this).attr('class','activeMenuContentPage');
	});
	
}

function initClickOnMenuContentPageVideosCommunaute(){
	// init des clics sur les types de classement
	$('#videos_communaute .linkMenuContentPage').bind('click',handleClickonMenuPageContentVideosCommunaute);
}

function handleClickonMenuPageContentVideosCommunaute()
{
	// on récupère le type de classement
	typeClassementVideosCommunaute = $(this).attr('id');
	
	currentPage = 1;
	getVideos('');
	
	// on change les styles du menu
	$('#videos_communaute .activeMenuContentPage').attr('class','curseur linkMenuContentPage');
	$(this).attr('class','activeMenuContentPage');
	initHoversOnMenuContentPageVideosCommunaute();
	initClickOnMenuContentPageVideosCommunaute();
	
	$(this).unbind('click',handleClickonMenuPageContentVideosCommunaute);
}

function getVideos(sens){
	aPost = {
		get_videos: true,
		page_to_display: currentPage, 
		type_classement: typeClassementVideosCommunaute
	};	

		// on soumet le form en ajax
		$.ajax({
			type: "POST",
			url: "ws/videos/get_videos.php",
			data: aPost,
			dataType:"json",
			success:function(returnedJson){			
				if (!returnedJson["b_error"]) {
					// mise à jour de la liste des vidéos
					updateListVideos(sens, returnedJson);
				}
			}
		});
}

function initPagination(){
	// click sur le bouton précédent
	$('#videos_communaute .btnLast').bind('click',handleClickLastPagination);
	
	// click sur le bouton suivant
	$('#videos_communaute .btnNext').bind('click',handleClickNextPagination);
	
	// click sur une page
	$('#videos_communaute .numPage:not(.off)').bind('click',handleClickPagePagination);
}

function handleClickLastPagination(){
	$(this).unbind('click',handleClickLastPagination);
	if(currentPage > 1) currentPage--;
	getVideos('last');
}

function handleClickNextPagination(){
	$(this).unbind('click',handleClickNextPagination);
	if(currentPage < numPagesTotales) currentPage++;
	getVideos('next');
}

function handleClickPagePagination(){
	$(this).unbind('click',handleClickPagePagination);
	curSens = (currentPage > $(this).html()) ? 'last' : 'next';
	currentPage = $(this).html();
	getVideos(curSens);
}

function updateListVideos(sens, returnedJson){
	// on récupère le html de la liste des vidéos
	htmlListVideos = returnedJson["html_list_videos"];
	// mise à jour de la pagination
	$('#videos_communaute .contentPaginationVideo').html(returnedJson["html_pagination"]);
	// mise à jour du nombre de page
	numPagesTotales = returnedJson["num_pages_totales"];	
	
	// selon le sens de la pagination
	switch(sens)
	{
		case 'next':
			// on ajoute le contenu des vidéos après celui affiché
			$('#videos_communaute .contentDynamic').after(htmlListVideos);
			
			// On cache la liste affiché (le premier bloc)
			$('#videos_communaute .contentDynamic:first').slideUp({
				duration:speedChangePage,
				easing:"easeInOutExpo",
				complete:function(){
					// si plus d'un bloc, on supprime le bloc caché
					if($('#videos_communaute .contentDynamic').length > 1)
					{
						$(this).remove();
					}
				}
			});

			// on affiche le nouveau contenu (le dernier bloc)
			$('#videos_communaute .contentDynamic:last').slideDown({
				duration:speedChangePage,
				easing:"easeInOutExpo",
				complete:function(){
					// si plus d'un bloc
					if($('#videos_communaute .contentDynamic').length > 1)
					{
						// on supprime tous les autres blocs
						$('#videos_communaute .contentDynamic:not(:last)').remove();
					}
					initListDisplayed(returnedJson["html_pagination"]);
				}
			});
			break;
		case 'last':
			// on ajoute le contenu des vidéos avant celui affiché
			$('#videos_communaute .contentDynamic').before(htmlListVideos);

			// On cache la liste affiché (le dernier bloc)
			$('#videos_communaute .contentDynamic:last').slideUp({
				duration:speedChangePage,
				easing:"easeInOutExpo",
				complete:function(){
					// si plus d'un bloc	
					if($('#videos_communaute .contentDynamic').length > 1)
					{
						// on supprime le bloc que l'on vient de caché
						$(this).remove();
					}
				}
			});
			
			// on affiche le nouveau contenu (le premier bloc)
			$('#videos_communaute .contentDynamic:first').slideDown({
				duration:speedChangePage,
				easing:"easeInOutExpo",
				complete:function(){
					// si plus d'un bloc		
					if($('#videos_communaute .contentDynamic').length > 1)
					{
						// on supprime tous les autres blocs (ceux qui ne sont pas premiers)
						$('#videos_communaute .contentDynamic:not(:first)').remove();
					}
					initListDisplayed(returnedJson["html_pagination"]);
				}
			});
			break;
		default:
			// par défaut on affiche directement la liste des vidéos
			$('#videos_communaute #listVideos').html(htmlListVideos);
			// on montre sans effet le contenu
			$('#videos_communaute .contentDynamic').show();
			initListDisplayed(returnedJson["html_pagination"]);
			break;
	}
}

function initListDisplayed(htmlPagination){
	// pngFix
	$('#listVideos').pngFix();
	// initialisation de la pagination
	initPagination(htmlPagination);
	// mise à jour de la taille du conteneur
	resetHeightSlider();
}

function resetHeightSlider()
{
	// initialisation de la hauteur
	var height = 0;
	// pour chaque ligne de vidéo
	$('#videos_communaute .lineBoxVideo').each(function(){
		// On incrémente la hauteur générale de la hauteur de la ligne
		height += $(this).outerHeight();
	});
	$('#videos_communaute #listVideos').animate({height: height}, 100);
	$('#videos_communaute .contentDynamic').animate({height: height}, 100);
}