window.onload = function()
{
	oDivVideoList = $('video-list');
	if(oDivVideoList)
	{
		displayVideoTop($('displays-all'));
		initListVideoBehaviour();

		// La méthode run() de oDomainFilter est appelé ï¿½ chaque clic sur l'un des items de chaque liste
		// Le fichier php appelé met ï¿½ jour TOUTES les listes, selon les paraméres envoyés.
		oMainFilter = new FilterCatalogue("ajax-filter.php?", "loading-filter");
	}
}



/*
 * Affiche une vidéo importée
 */
function playMovieEmbeded(iVideoId, sDivId)
{
	
	var sParam = 'le_action=video-embeded&le_id=' +iVideoId;

	var ajaxCall;
	
    if(ajaxCall && ajaxCall.transport && ajaxCall.transport.readyState != 4){
    	ajaxCall.transport.abort();
    }
    
    try {
    	var current = this;
    	ajaxCall = new Ajax.Updater(sDivId, 'ajax-retrieve-data.php', {
    		method: 'get',
			parameters: sParam,
			onComplete: function()
			{
				updateVideoData(iVideoId);
			},
			onFailure: function(request){
				alert('Erreur : ' +request.status)
			}
			
      	});
    }
    catch(exept){}
} /* playMovieEmbeded() */




/*
 * Affiche une vidéo locale
 */
function playMovieFLV(iVideoId)
{
	var sVideoPath = 'data/vid/';
	playMovie(sVideoPath + iVideoId +'.flv');
	updateVideoData(iVideoId);

} /* playMovieEmbeded() */




/*
 * Gère la MAJ des infos liées ï¿½ une vidéo
 * MAG video-ad
 * MAJ permalien
 * MAJ rate
 * Affiche le titre de la vidéo
 */
function updateVideoData(iVideoId)
{
	//var oDivAbout =  $('about');
	//var oDivAboutContent =  oDivAbout.getElementsByClassName('content')[0];
	var oDivGoogle = $('ad-google');
	var oDivAmazon = $('ad-amazon');
	var oInputPermalienLink = $('permalien-link');
	var oDivCommentBtn = $('comment-btn');
	var oDivComment = $('comment');
	var oRateMsg = $('rate-msg');
	var oDivTitle = $('video-title');
	var oDivShare = $('share');
	var oDivVideoToolbar = $('video-toolbar');
	
	var sParam = 'le_action=update-video-data&le_id=' +iVideoId;

	var ajaxCall;
    if(ajaxCall && ajaxCall.transport && ajaxCall.transport.readyState != 4) ajaxCall.transport.abort();
    try {
    	var current = this;
    	ajaxCall = new Ajax.Request('ajax-retrieve-data.php', {
    		method: 'get',
			parameters: sParam,
			onComplete: function(request){
				aRes = request.responseText.split('|'); // Code pub | permalien | commentaire
				if(aRes[0] == '')
				{
					oDivAmazon.style.display = 'none';
					oDivGoogle.style.display = 'block';
				}
				else
				{
					oDivGoogle.style.display = 'none';
					oDivAmazon.style.display = 'block';
					oDivAmazon.innerHTML = aRes[0];
				}
				if(oDivVideoToolbar) oDivVideoToolbar.style.display = 'block';
				
				if(oDivTitle) oDivTitle.innerHTML = '<h1>' +aRes[3] +'</h1>';
				if(oInputPermalienLink){
					//oInputPermalienLink.style.visibility = 'visible';
					Element.toggle('permalien-link');
					oInputPermalienLink.value = aRes[1];
				}
				if(oDivComment){
					oDivComment.innerHTML = '';
					oDivComment.style.display = 'none';
				}
				if(oDivCommentBtn){
					oDivCommentBtn.className = iVideoId;
					oDivCommentBtn.innerHTML = aRes[2];
				}
				displayComment('video');
				
				if(oRateMsg){
					oRateMsg.innerHTML = 'Votez ici';
					oRateMsg.className = 'to-vote';
				}
				ratingDisplayStars(iVideoId); 
				
				if(oDivShare) oDivShare.href = "mailto:?subject=Video%20Cdrole.net&body=" +aRes[1];
				
				pageTracker._trackPageview(aRes[1]);
			},
			onFailure: function(request){
				alert('Erreur : ' +request.status)
			}
      	});
    }
    catch(exept){}

} /* updateVideoData() */


/*
 * Met en évidence (dans la liste des vidéos) la vidéo actuellement lue.
 * Check tous les tr et enlève '-selected' le cas échéant (vidéo précédemment lue)
 */
function highlightTR(iVideoId)
{
/*
 * V1
 */
	var oTable = document.getElementById('tab-list');
	if(oTable){
		var aTr = oTable.getElementsByTagName('tr');
		for(var i=0; i<aTr.length; i++) {
			var sClass = aTr[i].className;
			if(sClass.match('-selected')) aTr[i].className = sClass.substring(0, sClass.length-9);
		}
	}
	oTr = document.getElementById('tr-' +iVideoId);
	if(oTr){
		sClass = oTr.className;
		sClass = sClass.substring(0, sClass.length-6); // Suppression du mot -ruled
		oTr.className = sClass +'-selected';
	}
/*
 * V2
 */
	var oTabVideo = $('video-list-content');
	
	aDiv = oTabVideo.getElementsByTagName('div');
	
	for(var i=0; i<aDiv.length; i++) {
		if(aDiv[i].className.match('box-video ')){
			var sClass = aDiv[i].className;
			sClass = sClass.replace('box-video-selected', '');
			sClass = sClass.replace('box-video-hover', '');
			aDiv[i].className = sClass;
		}
	}


	oDivCurrentVideo = document.getElementById('box-video-' +iVideoId);
	if(oDivCurrentVideo){
		sClass = oDivCurrentVideo.className;
		sClass = sClass.replace('box-video-hover', '');
		oDivCurrentVideo.className = sClass +' box-video-selected';
	}


	return true;
	
} /* highlightTR() */


/*
 * Gère le comportement du tableau qui contient la liste des vidéos
 */
function initListVideoTableBehaviour(sTabId){
	var oldRowsStyle;
	var oTabVideo = $(sTabId);
	
	oThead = oTabVideo.getElementsByTagName('thead')[0];
	oThead.style.display = 'none';
	
	aTR = oTabVideo.getElementsByTagName('tr');
	for(var i=0; i<aTR.length; i++) {
		aLink = aTR[i].getElementsByTagName('a')[0];
		if(aLink){
			aTR[i].onclick = aLink.onclick;
		
			aTR[i].onmouseover = function(){
					if(!this.className.match('-selected')){
						oldRowsStyle = this.className;
						this.className = this.className +'-ruled';
					}
					return false
			}
			aTR[i].onmouseout = function(){
					if(!this.className.match('-selected')) this.className = oldRowsStyle;
					return false
			}
		}
	}
	
} /* initListVideoTableBehaviour() */

/*
 * Gère le comportement de la liste des vidéos
 */
function initListVideoBehaviour(){
	var oldRowsStyle;
	var oTabVideo = $('video-list-content');
	
	aDiv = oTabVideo.getElementsByTagName('div');
	
	for(var i=0; i<aDiv.length; i++) {
		if(aDiv[i].className.match('box-video ')){
			aLink = aDiv[i].getElementsByTagName('a')[0];
			aDiv[i].onclick = aLink.onclick;
		
			aDiv[i].onmouseover = function(){
					if(!this.className.match('-selected')){
						oldRowsStyle = this.className;
						this.className = this.className +' box-video-hover';
					}
					return false
			}
			aDiv[i].onmouseout = function(){
					if(!this.className.match('-selected')) this.className = oldRowsStyle;
					return false
			}
		}
	}
	
} /* initListVideoBehaviour() */


/*
 * Tous les DIV ont l'Id suivant : 'start-' +note (1-10)
 * Si iVideoId n'existe pas il faut rendre disable le systï¿½me de vote
 */
function ratingDisplayStars(iVideoId, bAlreadyVoted)
{
	var oRate = $('rating');
	oRate.style.visibility = 'visible';
	var aStarDiv = oRate.getElementsByTagName('div');
	
	
	if(!iVideoId)
	{
		for(var i=0; i<aStarDiv.length; i++)
		{
			aStarDiv[i].onmouseover = function(){}
			aStarDiv[i].onclick = function(){}
		}
	}
	else
	{
		/* Attention les DIV sont listï¿½s de haut en bas donc des ID 10 ï¿½ ID 1 */
		for(var i=0; i<aStarDiv.length; i++) {
			if(aStarDiv[i].className == 'star' || aStarDiv[i].className == 'star-selected')
			{
				aStarDiv[i].className = 'star';
				$('rating-note').innerHTML = '';
				
				aStarDiv[i].onmouseover = function(){
					var iNote = parseInt(this.id.substring(5,7));
					$('rating-note').innerHTML = iNote;
					
					// Selection de tous les div dont les id sont <= ï¿½ l'id du div courant
					for(var j=1; j<=iNote; j++) {
						var oDivToSelect = $('star-' +j);
						oDivToSelect.className = 'star-selected';				
					}
					// Dï¿½sï¿½lection de tous les div dont les id sont > ï¿½ l'id du div courant
					for(var j=10; j>iNote; j--) {
						var oDivToUnselect = $('star-' +j);
						oDivToUnselect.className = 'star';				
					}
				}
				aStarDiv[i].onclick = function(){
					if(!bAlreadyVoted) ratingSaveVote(iVideoId, this.id.substring(5,7));
				}
			}
		}
	}
} /* ratingDisplayStars */




/*
 * Sauvegarde le vote d'une note
 */
function ratingSaveVote(iVideoId, iNote)
{
	var sParam = 'le_action=rate&le_id=' +iVideoId +'&le_note='+iNote;

	var ajaxCall;
	
    if(ajaxCall && ajaxCall.transport && ajaxCall.transport.readyState != 4){
    	ajaxCall.transport.abort();
    }
    
    try {
    	var current = this;
    	ajaxCall = new Ajax.Request('ajax-retrieve-data.php', {
    		method: 'get',
			parameters: sParam,
			onComplete: function(request){
				sRes = request.responseText;
				if(sRes == 1){
					oRateMsg = $('rate-msg');
					oRateMsg.innerHTML = 'A voté !';
					oRateMsg.className = 'voted';
					ratingDisplayStars(false); // Rend disable le systï¿½me de vote
				}
			},
			onFailure: function(request){
				alert('Erreur : ' +request.status)
			}
      	});
    }
    catch(exept){}
} /* ratingSaveVote() */




/*
 * Gère le clic sur une catégorie : 
 * -> Affichage des sous catégories
 * -> Mise à jour de la liste des vidéos
 */
function submenuDisplay(oLink) {
	
	if(oLink.tagName != 'A'){
		oLink = oLink.getElementsByTagName('A')[0];
	}
	
	displayLeftBoxContent('filter');	
	
	
	
	// Check current display value and store the new one in variable style.
	var style = '';
	aLI = oLink.parentNode.childNodes;
	for(var i=0; i<aLI.length; i++){
		if(aLI[i].tagName == 'UL'){
			if(aLI[i].style.display == 'block')
			{
				style = 'none';
			}
			else
			{
				style = 'block';
			}
			divCurrent = aLI[i];
		}
	}


	// Hide all ul.niv2 	
	ulTab = $('filter').getElementsByTagName('ul');
	for(var j=0; j<ulTab.length; j++){
		if(ulTab[j].className == 'niv2') ulTab[j].style.display = 'none';
	}

	// Show or not the ul.niv2 clicked by user
	divCurrent.style.display = style;
	
	// Mise à jour AJAX de la liste des vidéos
	if(typeof(oMainFilter) != 'undefined') updateVideoList('ul-filter1', oLink);

} /* submenuDisplay() */	



/*
 * Mets à jour la liste des vidéos suite à un clic sur une catégorie ou une sous catégorie
 * OU suite à une recherche par mot clé
 */
function updateVideoList(sFilter, oLink, sInputId){
	displayLeftBoxContent('filter', oLink);	
	
	sParam = 'le_filter=' +sFilter;
	switch (sFilter) {
		case 'ul-filter1':
			sParam += '&le_ul-filter1=' + encodeURIComponent(oLink.parentNode.id) +'|';
		break;

		case 'ul-filter2':
			sParam += '&le_ul-filter2=' + encodeURIComponent(oLink.id) +'|';
		break;
		
		case 'keyword':
			oInput = $(sInputId);
			sParam += '&le_keyword=' + encodeURIComponent(oInput.value) +'|';
		break;

		case 'hall-of-fame':
			sParam += '&le_top=' + encodeURIComponent(oLink.id);
		break;
		
		default:
		break;
	}

	oMainFilter.run(sParam, sFilter);
	
} /* updateVideoList() */



/*
 * soumet un formulaire
 */
function sendForm(oForm)
{
	var sParam = 'le_form=' +oForm.name +'&' +Form.serialize(oForm);
	var ajaxCall;
	
    if(ajaxCall && ajaxCall.transport && ajaxCall.transport.readyState != 4){
    	ajaxCall.transport.abort();
    }
    try {
    	var current = this;
    	ajaxCall = new Ajax.Request('ajax-form-valid.php', {
    		method: 'post',
			parameters: sParam,
			onComplete: function(request)
			{
				sRes = request.responseText;
				aRes = sRes.split('|');
				if(aRes[0] == 1){
					if(oForm.name == 'frm-comment')
					{
						displayComment(oForm.le_mediaType.value, 'display', oForm.le_mediaId.value);
					}
					else
					{
						sAdd = '<div class="msg-ok" id="msg-frm" style="width: 300px;">' +aRes[1] +'</div>';
						new Insertion.Bottom(oForm.id, sAdd); 
						setTimeout('displayPopupCss(false, \'div-popup\')', 2000);
					}
				}
				else{
					oDivErr = $('msg-frm');
					if(oDivErr)
					{
						oDivErr.innerHTML = sRes;
					}
					else
					{
						sAdd = '<div class="msg-nok" id="msg-frm" style="> ' +sRes +'</div>';
						new Insertion.Bottom(oForm.id, sAdd); 
					}
				}
			},
			onFailure: function(request){
				alert('Erreur : ' +request.status)
			}
      	});
    }
    catch(exept){}
	
	return false;
}/* sendForm() */




/*
 * Fonction qui affiche un popup dont le contenu est appelï¿½ via AJAX
 */
function displayPopupCss(oButton, sFormId, iPopupWidth)
{
	sPopupId = 'div-popup';
	
	//Si le popup n'existe pas il faut le crï¿½er
	if(!$(sPopupId))
	{
		oDivPopup = document.createElement("div");
		document.body.appendChild(oDivPopup);
		oDivPopup.id = sPopupId;
	}
	else
	{
		oDivWho = $(sPopupId);
		
		if(oDivWho.style.display == 'block'){
			oDivWho.style.display = 'none';
		}
		else{
			var sParam = 'le_action=' +sFormId;
		
			var ajaxCall;
			
		    if(ajaxCall && ajaxCall.transport && ajaxCall.transport.readyState != 4){
		    	ajaxCall.transport.abort();
		    }
		    
		    try {
		    	var current = this;
		    	ajaxCall = new Ajax.Updater(sPopupId, 'ajax-form-display.php', {
		    		method: 'post',
					parameters: sParam,
					onComplete: function()
					{
						// Récupération des coordonnées du bouton appelant
						var iPosTop = Element.getTop(oButton);
						var iPosLeft = Element.getLeft(oButton);
						var sButtonWidth = Element.getWidth(oButton);
						
						if(oDivWho)
						{
							
							// Il faut effacer les données de la vidéo courante
							if($('player'))
							{
								var oPlayer = $('player');
								oPlayer.innerHTML = '';
								var oComment = $('comment');
								oComment.style.display = 'none';
							}
							oDivWho.style.top = iPosTop +25 +'px';
							oDivWho.style.left = iPosLeft -(iPopupWidth) + sButtonWidth +'px';
							oDivWho.style.display = 'block';
						}
					},
					onFailure: function(request){
						alert('Erreur : ' +request.status)
					}
					
		      	});
		    }
		    catch(exept){}
		}
	}
} /* displayPopupCss() */


/*
 * 
 */
function keywordNbResult(oInput){
	
	var sKeyword = oInput.value;

	var sParam = 'le_filter=search-result-nb&le_keyword=' +sKeyword;

	var ajaxCall;
	
    if(ajaxCall && ajaxCall.transport && ajaxCall.transport.readyState != 4){
    	ajaxCall.transport.abort();
    }
    
    try {
    	var current = this;
    	ajaxCall = new Ajax.Updater('search-result-nb', 'ajax-filter.php', {
    		method: 'post',
			parameters: sParam,
			onComplete: function()	{
				oNbResult = $('search-result-nb');
				oSubmit = $('keyword-submit');
				oSubmit.disabled = false;
				if(parseInt(oNbResult.innerHTML) <= 0) oSubmit.disabled = 'disabled';
			},
			onFailure: function(request){
				alert('Erreur : ' +request.status)
			}
			
      	});
    }
    catch(exept){}
	
} /* keywordNbResult() */




/*
 * Affiche les différentes listes de vidéos
 * Efface d'abord toutes les listes pour ensuite afficher la bonne
 */
function displayVideoTop(oLi)
{
	var iNbVideo = 0;
	var oScrollingDiv = $('video-list-content-asc');
	
	
	displayLeftBoxContent('tab-list-top', oLi);	
	
	oDivVideoList = $('video-list-content');
	oDivRanking = $('div-' +oLi.id);
	if(oLi.id == 'displays-all'){
		aDiv = oDivRanking.getElementsByTagName('div');
		for(var i=0; i<aDiv.length; i++) {
			// Si il y a eut auparavant un display catégorie alors certaine vidéo sont en display:none
			if(aDiv[i].className.match('box-video '))
			{
				aDiv[i].style.display = '';
				iNbVideo++;
			} 
		}
	}
	oScrollingDiv.style.width = 140*iNbVideo +'px';
		
	aDiv = oDivVideoList.getElementsByClassName('div-video-list');
	for(i=0; i<aDiv.length; i++) {
		aDiv[i].style.display = 'none';
	}
	oDivRanking.style.display = '';

}/* displayVideoTop() */ 


/*
 * Gère l'affichage des box content catégorie Vs Top7
 */
function displayLeftBoxContent(sBoxId, oLi)
{
	// Passage du LI en selected et le contraire pour tous les autres LI
	if(typeof(oLi) != 'undefined'){
		aLiList = document.getElementById('site-left').getElementsByTagName('li');
		for(i=0; i<aLiList.length; i++){
			aLiList[i].className = '';
		}
		oLi.className = 'selected';
	}
	
	
	
	oDivVideoList = $('video-list-content');	
	if(sBoxId == 'filter')
	{
		oDivVideoList.style.display = 'block';
	}
	else
	{
		//oDivVideoList.style.display = 'none';	
	}	
	// Effacement éventuel d'un classement précédent 
	aDivVideoTopList = document.getElementsByClassName('tab-list-top');
	for(i=0; i<aDivVideoTopList.length; i++){
		aDivVideoTopList[i].style.display = 'none';
	}

}/* displayLeftBoxContent() */ 



/*
 * Fonction qui les commentaires d'une vidï¿½o ou d'une news
 */
function displayComment(sCommentType, sAction, iId)
{
	var oCommentBtn = $('comment-btn');
	var oComment = $('comment');
	if(!iId){
		var iDataId = oCommentBtn.className;
	}
	else{
		var iDataId = iId; 
	} 
	
	if(oComment.style.display != 'block' || sAction == 'display')
	{
		var sParam = 'le_action=comment-display&le_commentType=' +sCommentType +'&le_id=' +iDataId;
	
		var ajaxCall;
		
	    if(ajaxCall && ajaxCall.transport && ajaxCall.transport.readyState != 4){
	    	ajaxCall.transport.abort();
	    }
	    
	    try {
	    	var current = this;
	    	ajaxCall = new Ajax.Updater(oComment, 'ajax-retrieve-data.php', {
	    		method: 'post',
				parameters: sParam,
				onComplete: function()
				{
					oComment.style.display = 'block';
					
				},
				onFailure: function(request){
					alert('Erreur : ' +request.status)
				}
				
	      	});
	    }
	    catch(exept){}
	}
	else
	{
		oComment.style.display = 'none';
	}
   
} /* displayComment() */


/*
 * Gï¿½re l'affichage du formulaire pour ajouter un commentaire
 * Gï¿½re le fond du bouton "ajouter un commentaire"
 */
function manageBtnComment(oBtn, sFrmCommentId){

	if($(sFrmCommentId).style.display == 'none')
	{
		oBtn.className = 'add-comment-sel';
		
	}
	else
	{
		oBtn.className = 'add-comment';
	}
	Element.toggle(sFrmCommentId);

} /* manageBtnComment()*/


function moveDiv(sMove) {
	
	var oDivToMove = $('video-list-content-asc');
	var oDivContainer = $('video-list-content');
	
	$bMove = true;
	iX = 0;
	var iXCurrent = parseInt(oDivToMove.style.left);
	var iMoveSize = parseInt(oDivContainer.offsetWidth);
	var iDivToMoveWidth = parseInt(oDivToMove.offsetWidth)*(-1);
	
	if(iXCurrent >= 0 && sMove == 'backward') $bMove = false;
	if(iXCurrent <= iDivToMoveWidth && sMove == 'forward') $bMove = false;
	
	if($bMove)
	{
		switch(sMove)
		{
			case 'start':
					iX = 0;
			break;
			case 'backward':
					iX = iXCurrent + iMoveSize  +1;
			break;
			case 'forward':
				iX = iXCurrent - iMoveSize -1;
			break;
			case 'end':
					iX = iDivToMoveWidth + iMoveSize;
			break;
		}
		oDivToMove.style.left= iX +'px';
	}
} /* moveDiv() */


function $(v) { return(document.getElementById(v)); }
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
function xy(e,v) { return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX)); }

function dragOBJ(d,e) {

    function drag(e) { if(!stop) { d.style.left=(tY=xy(e)+oX-eX+'px'); } }

    var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop;

    document.onmousemove=drag; document.onmouseup=function(){ stop=1; document.onmousemove=''; document.onmouseup=''; };

} 	