// JavaScript Document

$(function(){
		
	//*******************
	// Centrer les images
	//*******************
	
	centrerImages();
	
	vitesse_carresInfo = 100;
		
	//************************
	// La liste de productions
	//************************
	
	// Enlever les infos et le carré jaune au début
	cacherCarresInfo();
	
	// En hover
	$('#listeProds article').live('mouseover',function(){
		
		$(this).children('section').animate({
			right:0
		},{
			duration:vitesse_carresInfo,
			queue:false
		});	
		
	// En mouse out
	}).live('mouseout',function(){
		
		$(this).children('section').animate({
			right:'-279px'
		},{
			duration:vitesse_carresInfo,
			queue:false
		});	
	
	// Au clic
	}).live('click',function(){
	
		var lien = $(this).find('a').attr('href');
		window.location = lien;
	
	});
	
	
	//******************************
	// La liste d'articles de blogue
	//******************************
	
	$('div#droite div article').bind('click',function(){
	
		var lien = $(this).find('a').attr('href');
		window.location = lien;
	
	});
	
	
	// Variables de la page prod
	pprod_peutChanger = true;
	pprod_debut = 0;
	pprod_nbResultats = 5;
	pprod_total = 0;
	pprod_type = 'categorie';
	pprod_cat = $('#listeVideosSemblables .selectCat').attr('title');
	
	// Quand on clique pour afficher les vidéos d'une catégorie, section page prod
	$('#listeVideosSemblables .selectCat').bind('click',function(){
		
		if(pprod_peutChanger) {
		
			pprod_peutChanger = false;
			$('.categorieCourante').removeClass('categorieCourante');
			$(this).addClass('categorieCourante');
			
			pprod_debut = 0;
			pprod_cat = $(this).attr('title');
			pprod_type = 'categorie';
			pprod_recupererArticles('categorie', pprod_cat, 'fade');
			
		}
		return false;
		
	});
	
	// Quand on clique pour afficher toutes les vidéos, section page prod
	$('#listeVideosSemblables .selectTout').bind('click',function(){
		
		if(pprod_peutChanger) {
		
			pprod_peutChanger = false;
			$('.categorieCourante').removeClass('categorieCourante');
			$(this).addClass('categorieCourante');
			
			pprod_debut = 0;
			pprod_type = 'tout';
			pprod_recupererArticles('tout', "", 'fade');
			
		}
		return false;
		
	});
	
	// Quand on clique pour afficher les vidéos au hasard, section page prod
	$('#listeVideosSemblables .selectHasard').bind('click',function(){
		
		if(pprod_peutChanger) {
		
			pprod_peutChanger = false;
			$('.categorieCourante').removeClass('categorieCourante');
			$(this).addClass('categorieCourante');
			
			pprod_debut = 0;
			pprod_type = 'hasard';
			pprod_recupererArticles('hasard', "", 'fade');
			
		}
		return false;
		
	});
	
	
	//********************
	// Les boutons d'envoi
	//********************
	
	$('.btEnvoyer').bind('mouseover',function(){
		
		$(this).val('CLIQUE');
		
	}).bind('mouseout',function(){
		
		$(this).val('Aweille');
		
	}).bind('mousedown',function(){
		
		$(this).val('Lâche-moé !');
		
	});
	
	
	//******************
	// Les placeholders
	//******************
	
	$('[placeholder]').each(function(){
		
		// Enlever le label
		var leID = $(this).attr('id');
		$('label[for="'+ leID +'"]').remove();
		
		// Afficher le texte
		var leTexte = $(this).attr('placeholder');
		if( $(this).val() == '' ) {
			$(this).val(leTexte);
		}
		
	}).bind('focus',function(){
		
		if( $(this).val() == $(this).attr('placeholder') ) {
			$(this).val('');
		}
		
	}).bind('blur',function(){
		
		var leTexte = $(this).attr('placeholder');
		
		if( $(this).val() == '' ) {
			$(this).val(leTexte);
		}
		
	});
	
	
	//************
	// Les flèches
	//************
	
	$('button#flecheGauche').bind('mouseover',function(){
		
		$(this).animate({
			backgroundPosition:'(-473px -160px)'
		},{
			duration:300,
			queue:false,
			complete:function(){
				$(this).css('background-position','-418px -160px');
			}
		});
		
	}).bind('mousedown',function(){
		
		$(this).css('background-position','-526px -160px');
		
	}).bind('mouseup mouseout',function(){
		
		$(this).css('background-position','-418px -160px');
		
	// Quand on clique sur la flèche gauche
	}).bind('click',function(){
		
		if(pprod_peutChanger) {
		
			pprod_peutChanger = false;
			pprod_debut -= pprod_nbResultats;
			pprod_recupererArticles(pprod_type, pprod_cat, 'droite');
		
		}
		
	});
	
	$('button#flecheDroite').bind('mouseover',function(){
		
		$(this).animate({
			backgroundPosition:'(-413px -212px)'
		},{
			duration:300,
			queue:false,
			complete:function(){
				$(this).css('background-position','-467px -212px');
			}
		});
		
	}).bind('mousedown',function(){
		
		$(this).css('background-position','-522px -212px');
		
	}).bind('mouseup mouseout',function(){
		
		$(this).css('background-position','-467px -212px');
	
	// Quand on cliquer sur la flèche droite
	}).bind('click',function(){
		
		if(pprod_peutChanger) {
		
			pprod_peutChanger = false;
			pprod_debut += pprod_nbResultats;
			pprod_recupererArticles(pprod_type, pprod_cat, 'gauche');
		
		}
		
	});
	
	
	//************************************
	// Formulaire avec champs obligatoires
	//************************************
	
	// Vérifier les champs obligatoires
	$('form.obligatoire .obligatoire').bind('change keydown keyup',function(){
	
		verifierChampsObligatoires();
	
	});
	verifierChampsObligatoires();
	
	// Afficher le chargement par dessus pour empêcher de cliquer
	$('.affChargement').bind('mouseup',function(){
		
		// Afficher un popup de chargement
		$('<div id="chargement_fond"><div id="chargement_conteneur"><p>Patience</p></div></div>').prependTo('body');
	
	});
	
	
	//********************
	// Les options d'admin
	//********************
	
	// Cacher les options au départ
	$('div.optionAdmin').css('display','none').addClass('bougeable');
	
	// Afficher les options en mouse over sur son parent
	$('div.optionAdmin').parent().bind('mouseover',function(){
		$(this).children('div.optionAdmin').css('display','block');
		console.log('in');
	// Cacher en mouse out
	}).bind('mouseout',function(){
		$(this).children('div.optionAdmin').css('display','none');
		console.log('out');
	// Au mouvement de la souris
	}).bind('mousemove',function(e){
		
		var opt = $(this).children('div.optionAdmin');
	
		if(opt.hasClass('bougeable')) {
			
			var pos = e.pageY - $(this).position().top - (opt.height() / 2);
			
			// Si c'est un commentaire, soustraire son grand parent
			if(opt.hasClass('commentaire')) {
				pos -= $(this).parent().parent().position().top;
			}
			// Si c'est les humains
			if(opt.hasClass('humain')) {
				pos -= 40;
			}
			
			opt.css('top',pos);
			
		}
	
	});
	
	//Hover sur les options d'admin
	$('div.optionAdmin').bind('mouseover',function(){
		$(this).removeClass('bougeable');
	}).bind('mouseout',function(){
		$(this).addClass('bougeable');
	});
	
		
	//*****************
	// La barre d'admin
	//*****************
	
	// La cacher au début
	$('aside#adminBar').animate({
		'left':'-170px'
	},{
		'duration':1000,
		'queue':false
	}).bind('mouseover',function(){
		$(this).animate({
			'left':'-5px'
		},{
			'duration':300,
			'queue':false
		});
	}).bind('mouseout',function(){
		$(this).animate({
			'left':'-170px'
		},{
			'duration':300,
			'queue':false
		});
	});
	
	
	//*************************************
	// Ajouter un lien de bas de page admin
	//*************************************
	
	$('article.liens a#ajouterLien').bind('click',function(){
		
		var h = $('<section><div><label>Lien</label><input type="text" name="nouvLien[]" /></div><div><label>Nom</label><input type="text" name="nouvNom[]" /></div></section>');
		$(this).parent('section').before(h);
		
		return false;
	});
	
	
	//**********************************
	// La boîte de vidéos page d'accueil
	//**********************************
	
	// Cacher les blocs par dessus le slider
	$('div#sliderVideos div#listeVerticale').css('right','-250px');
	$('div#sliderVideos div#infosArticle').css('bottom','-140px');
	
	// En hover sur le slider au complet
	$('div#sliderVideos').bind('mouseover',function(e){
	
		$(this).children('#listeVerticale').animate({
			'right':'0px'
		},{
			duration:200,
			queue:false
		});
		$(this).children('#infosArticle').animate({
			'bottom':'0px'
		},{
			duration:200,
			queue:false
		});
		
	}).bind('mouseout',function(e){
	
		$(this).children('#listeVerticale').animate({
			'right':'-250px'
		},{
			duration:200,
			queue:false
		});
		$(this).children('#infosArticle').animate({
			'bottom':'-140px'
		},{
			duration:200,
			queue:false
		});
	
	});
	
	// Quand on clique sur chaque article de la liste à droite
	$('div#sliderVideos #listeVerticale article').bind('click',function(){
	
		changerVideoAccueil($(this));
		accueil_articleCourant = $(this).index()+1;
		arreterTimer();
		commencerTimer();
	
		return false;
	});
	
	// Changer d'article automatiquement
	accueil_articleCourant = 1;
	var timer;
	commencerTimer();
	
	
	//*********************************
	// Redimentioner les tags du footer
	//*********************************
	
	$('footer section section.listeTags a').each(function(){
	
		var grosseur = 1.7 - ($(this).index() / 20);
		$(this).css('font-size',grosseur+'em');
	
	});
	
	//*************************************
	// Le textarea timyMCE des commentaires
	//*************************************
	
	$('div#formulaireCommentaires span#commentaire_parent').addClass('ombre_normal');
	
	
	//************************
	// La liste de catégories
	//************************
	
	// Déplacer sur un hover
	$('nav.catSlider a').bind('mouseover',function(){
		
		var leGauche = $(this).position().left;
		
		$(this).siblings('div#selectionCat').animate({
			left:leGauche+10
		},{
			duration:300,
			queue:false
		});
		
	});
	
	// Remettre au bon endroit au début
	var leGauche = $('.categorieCourante').position().left;
	$('nav.catSlider a').siblings('div#selectionCat').css('left',leGauche+10);
	
	// au mouse out
	$('#masqueProds, #listeProds, .ombre_moyen, #commentaires, #prodCourante, header, footer').bind('mouseover',function(){
		
		// Remettre au bon endroit
		var leGauche = $('.categorieCourante').position().left;
		
		$('nav.catSlider a').siblings('div#selectionCat').animate({
			left:leGauche+10
		},{
			duration:400,
			queue:false
		});
		
	});
	
	
	// Quand on clique pour afficher les vidéos d'une catégorie, section liste productions
	$('#categories .selectCat').bind('click',function(){
		
		// Récupérer et afficher les nouvelles vidéos de la recherche
		var categorie = $(this).attr('title');
		$('#listeProds').load('ajax/prods.php',{"categorie":categorie, "petit":"moyen"},function(e){
			
			cacherCarresInfo();
			
		});
		
	});
	
	// Quand on clique pour afficher toutes les vidéos, section liste productions
	$('#categories .selectTout').bind('click',function(){
		
		// Récupérer et afficher les nouvelles vidéos de la recherche
		$('#listeProds').load('ajax/prods.php',{"tout":"tout", "petit":"moyen"},function(e){
			
			cacherCarresInfo();
			
		});
		
	});
	
	
	centrerImages();
});


// Cacher les carrés jaunes dans les listes de vidéo
function cacherCarresInfo() {

	$('#listeProds article section, .transition article section').css('right','-100%');

}

// Vérifier si les champs obligatoires sont remplis
function verifierChampsObligatoires() {
	
	var tVide = new Array();
	
	$('form.obligatoire .obligatoire').each(function(){
	
		if( $(this).val() == "" ) {
			tVide.push("vide");
		}
	
	});
	
	if( tVide.length == 0 ) {
		$('form.obligatoire .btObligatoire').removeAttr('disabled');
	}else {
		$('form.obligatoire .btObligatoire').attr('disabled','disabled');
	}

}

// Récupérer et afficher les nouvelles vidéos de la requête
function pprod_recupererArticles(type, cat, anim) {

	$.getJSON('ajax/prods.php',{"type":type, "cat":cat, "petit":"petit", "debut":pprod_debut, "nbResultats":pprod_nbResultats},function(e){
		
		pprod_total = e['total'];
		var totalPage = e['totalPage'];
		var tNouvs = new Array();
		
		for(var i=0; i<totalPage; i++) {
			
			var b1 = $('<div class="ombre_petit" style="display:none"></div>');
			var b2 = $('<article></article>');
			var b3 = $('<img class="centrer" src="'+ e[i].image +'_petit.png" alt="'+ e[i].titre +'" />');
			var b4 = $('<section><h1><a href="prod.php?prod='+ e[i].id +'">'+ e[i].titre +'</a></h1></section>');
			b2.append(b3).append(b4).appendTo(b1);
			tNouvs.push(b1.get(0));
			
		}
		
		pprod_afficherNouveauxArticles(tNouvs, anim);
		centrerImages();
		
	});
	
}

// Faire entrer les nouveaux articles et enlever les anciens de la page prod
function pprod_afficherNouveauxArticles(nouvs, trans) {

	var conteneur = $('div#listeVideosSemblables div#listeProds');
	var anciens = $('div#listeVideosSemblables div#listeProds div');
	
	if(trans == 'fade') {
	
		anciens.fadeOut(500);
		conteneur.empty();
		$(nouvs).appendTo(conteneur).fadeIn(500);
		pprod_peutChanger = true;
		
	}else if(trans == 'droite') {
		
		
		var trans = $('<div class="transition"></div>');
		$(nouvs).css('display','block').appendTo(trans);
		trans.css({'left':'-850px','top':'0'}).appendTo(conteneur.parent());
		
		// Tasser les anciens vidéos
		conteneur.animate({
			left:'850px'
		},{
			duration:500,
			queue:false,
			complete:function(){
				$(this).remove();
			}
		});
		
		// Afficher les nouveaux vidéos
		trans.animate({
			left:0
		},{
			duration:500,
			queue:false,
			complete:function(){
				$(this).removeClass('transition').attr('id','listeProds');
				pprod_peutChanger = true;
			}
		});
		
		
	}else if(trans == 'gauche') {
		
		var trans = $('<div class="transition"></div>');
		$(nouvs).css('display','block').appendTo(trans);
		trans.css({'left':'850px','top':'0'}).appendTo(conteneur.parent());
		
		// Tasser les anciens vidéos
		conteneur.animate({
			left:'-850px'
		},{
			duration:500,
			queue:false,
			complete:function(){
				$(this).remove();
			}
		});
		
		// Afficher les nouveaux vidéos
		trans.animate({
			left:0
		},{
			duration:500,
			queue:false,
			complete:function(){
				$(this).removeClass('transition').attr('id','listeProds');
				pprod_peutChanger = true;
			}
		});
	
	}
	
	centrerImages();
	cacherCarresInfo();
	pprod_verifierFleches();
	
}

// Vérifier l'affichage des flèche après une requête sur la page prod
function pprod_verifierFleches() {

	// La flèche de gauche
	if(pprod_debut < pprod_nbResultats) {
		$('div#listeVideosSemblables button#flecheGauche').attr('disabled','disabled');
	}else {
		$('div#listeVideosSemblables button#flecheGauche').removeAttr('disabled');
	}
	
	// La flèche de droite
	if(pprod_debut > pprod_total - pprod_nbResultats) {
		$('div#listeVideosSemblables button#flecheDroite').attr('disabled','disabled');
	}else {
		$('div#listeVideosSemblables button#flecheDroite').removeAttr('disabled');
	}

}

function centrerImages() {
	
	$('img.centrer').bind('load', function() {
	
		$('img.centrer').each(function(){
			
			var l = $(this).width();
			var h = $(this).height();
			
			$(this).css({
				'margin-top':-h/2,
				'margin-left':-l/2,
				'left':'50%',
				'top':'50%'
			});
	
		});
		
	});
}

// Fonction qui change l'image et les infos du plugin de la page d'accueil
function changerVideoAccueil(avant) {

	var t1 = avant.children('a').children('h1').text();
	var t2 = avant.children('div.description').html();
	var t3 = avant.children('time').attr('datetime');
	var t4 = avant.children('time').text();
	var t5 = avant.children('a').attr('href');
	var leID = avant.attr('title');
	
	$('div#infosArticle a h1').text(t1);
	$('div#infosArticle div').empty().append(t2);
	$('div#infosArticle time').attr('datetime',t3);
	$('div#infosArticle time').text(t4);
	$('div#infosArticle a').attr('href',t5);
	
	$('.sliderBG').fadeOut(200);
	$('.sliderBG#'+leID).fadeIn(200);
	
	centrerImages();

}

function commencerTimer() {
	timer = setTimeout("changerSurTimer()",5000);
}

function changerSurTimer() {

	accueil_articleCourant ++;
	if(accueil_articleCourant > $('div#sliderVideos #listeVerticale article').size()) {
		accueil_articleCourant = 1;
	}
	
	var p = $('div#sliderVideos #listeVerticale article:nth-child('+ accueil_articleCourant +')');
	changerVideoAccueil(p);
	commencerTimer();

}

function arreterTimer() {
	clearTimeout(timer);
}
