/******
 * Ecrit par Julien Mazé pour le site cliclarue.
 * Avril mai 2009.
 * Contact : mazejul@gmail.com
 * 
 ******/
 
var textTraces = "" ;
var tableauTriParDate = new Array();
var tableauInformationsFlux = new Array();
var listeTooltips = "";
var pushed;
var compteurTotal = 0;
var compteurAjax = 0 ;

// Appelee a la fin de index.php
function initialiser() {
	printTrace("Initialiser");
	$("#tabs").tabs({ cookie:{expires: 100}})
		.prepend('<div id="chargementFlux"></div>');
	afficherLesFlux();
	printTrace("Fin Initialiser");

}

function afficherLesFlux(){
	compteurAjax = 0 ;
	compteurTotal = 0 ;
	tableauTriParDate.length = 0 ;
	printTrace("afficherLesFlux compteurTotal "+compteurTotal);
	$("#chargementFlux").empty().append('Chargement des articles en cours...').removeClass("loaded").addClass("loading");
	$.each(tableauInformationsFlux,function(i){
		$.get('./php/affichageRSS.php',{
			cacheOn: cacheRss,
			rssURL: tableauInformationsFlux[i][0],
			maxRssItems: tableauInformationsFlux[i][1],
			titreFlux: tableauInformationsFlux[i][2],
			categorie: tableauInformationsFlux[i][3]
		},(function(i){
			return function(donnees) {
				$('#widget'+(i+1)).empty().append(donnees);
				var compteurArticles = $("#widget"+(i+1)+" > .widget-content > ul > li").length;
				$("#widget"+(i+1)+" > h3 > .liencompteur > .compteur").attr("id","compteurWidget"+(i+1)).empty().append(compteurArticles);
				var compteurTab = parseFloat($("#compteurTab"+tableauInformationsFlux[i][3]).text())+compteurArticles;
				$("#compteurTab"+tableauInformationsFlux[i][3]).empty().append($("#tabs-"+tableauInformationsFlux[i][3]+" > div > ul > li > .widget-content > ul > li").length);
				compteurTotal += compteurArticles;
				$("#compteurTotal").empty().append(compteurTotal);
				document.title = "Clic la rue, l\'info a la source ("+compteurTotal+")";
				GererFinRequetes();
			};
		})(i));
	});

	return false;
}

function GererFinRequetes(){

	compteurAjax ++ ;
	printTrace("ajaxStop compteurAjax "+compteurAjax+" compteurTotal "+compteurTotal);

	if( compteurAjax >= tableauInformationsFlux.length ) {
		printTrace("ajaxStop compteurAjax "+compteurAjax+" tableauInformationsFlux.length "+tableauInformationsFlux.length);
		$("#listeTooltips").append(listeTooltips);
		tableauTriParDate.sort(compareDate);	
		afficherLeTableau(tableauTriParDate);
		cookies();
		bindEvents();
	
		$("#chargementFlux").empty()
			.removeClass("loading")
			.addClass("loaded")
			.click(afficherLesFlux);
	}
}

function cookies(){
	for (var i=0;i<$("#tabs > #onglets > li > .liencompteur > .compteur").length;i++){
			var categorie = i+1;
			setATabCookie(categorie);
			getATabCookie(categorie);
	}	
}

function compareDate(a, b) {
	return b[0]-a[0];
}

function afficherLeTableau (tableauTriParDate) {
	/* tableauTriParDate[article] :
	0 : date
	1 : uniqueIdentifier
	2 : widgetUniqueIdentifier
	3 : titre flux
	4 : lien article
	5 : titre article
	6 : categorie
	*/
	$("#ongletTriParDate > table > tbody").empty(); //On enlève le message de chargement
	for (var i=0;i<tableauTriParDate.length;i++){
		var date = new Date();
		var dateArticle = date.dateFormat('d-m-Y', 'fr', tableauTriParDate[i][0]);
		$("#ongletTriParDate > table > tbody").append('<tr class="flux'+tableauTriParDate[i][2]+'"><td class="tableauDate"><img src="css/images/widget-arrow.png" alt=" " /> '+dateArticle+'</td><td class="tableauTitreFlux">'+tableauTriParDate[i][3]+'</td><td class="tableauTitreArticle" id="articleTableau'+tableauTriParDate[i][1]+'"><a class="articleCategorie'+tableauTriParDate[i][6]+'"  href="'+tableauTriParDate[i][4]+'" rel="#tooltip'+tableauTriParDate[i][1]+'">'+tableauTriParDate[i][5]+'</a></td></tr>');
	}
}

function bindEvents(){
	$("#tabs .widget-content > ul > li > a").delayedMouseover(marquerArticleCommeLu, {delay: 2000});
	$("#tableauTriParDate > tbody > tr > .tableauTitreArticle > a").delayedMouseover(marquerArticleTableauTriCommeLu, {delay: 2000});
	$("#tabs .widget .compteur").click(marquerWidgetCommeLu).mouseover(simulerLien);
	$("#tabs > #onglets > li > .liencompteur > .compteur").click(marquerCategorieCommeLue).mouseover(simulerLien);
	$("#tabs > #onglets > li > .liencompteur > #compteurTotal").click(marquerTousCommeLus).mouseover(simulerLien);
	
	simple_tooltip("#tabs .widget > .widget-content > ul > li > a, #tableauTriParDate > tbody > tr > .tableauTitreArticle > a");
}

function marquerArticleCommeLu (){
	marquerCommeLu($(this));
	printTrace("marquerArticleCommeLu id " + $(this).parent().attr("id") );
}

function marquerArticleTableauTriCommeLu(){
	var articles = $(this).parent().attr("id").replace(/articleTableau/,"#article")+" > a";
	marquerCommeLu(articles);
}

function marquerWidgetCommeLu (){
	var articles = $(this).attr("id").replace(/compteurW/,"#w")+" > .widget-content > ul > li > a";
	marquerCommeLu(articles);
	$(this).unbind("click");
}

function marquerCategorieCommeLue (){
	var confirmation = confirm("Marquer comme lus tous les articles de cette catégorie ? (Cela peut prendre quelques secondes)")
	if (confirmation){
		var articles = $(this).attr("id").replace(/compteurTab/,"#tabs-")+" > div > ul > li > .widget-content > ul > li > a";
		marquerCommeLu(articles);
		$(this).unbind("click");
	}	
}

function marquerTousCommeLus (){
	var confirmation = confirm("Marquer comme lus tous les articles ? (Cela peut prendre quelques secondes)")
	if (confirmation){
		var articles = "#tabs > .onglet > div > ul > li > .widget-content > ul > li > a";
		marquerCommeLu(articles);
		$(this).unbind("click");
	}
}

function simulerLien(){
	$(this).css("cursor","pointer");
}

function marquerCommeLu(articles){
	compteurTotal = parseFloat($("#compteurTotal").text());
	$(articles).each(function(i){
		//printTrace( "marquerCommeLu id: " + $(this).parent().attr("id") );
		if ($(this).attr("class") != "articleLu"){
			var identifiantArticle = $(this).parent().attr("id");
			$(this).css("color","#AA7700").attr("class","articleLu").unbind("click");
			$("#tableauTriParDate "+identifiantArticle.replace(/article/,"#articleTableau")+" > a").css("color","#AA7700").attr("class","articleLu").unbind("click");
			
			//Decrementer le compteur du widget
			var widget = $(this).parents(".widget").attr("id").replace(/w/,"#compteurW");
			var compteurWidget = parseFloat($(widget).text())-1;
			$(widget).empty().append(compteurWidget);
			
			//Decrementer le compteur de la catégorie
			var categorie = identifiantArticle.substr(-1);
			var compteurCat =  parseFloat($("#compteurTab"+categorie).text())-1;
			$("#compteurTab"+categorie).empty().append(compteurCat);
			
			//Decrementer le compteur total
			compteurTotal = compteurTotal-1;
			
			
			//Enregistrement dans le cookie correspondant
			writeInACookie(identifiantArticle.replace(/article/,""),categorie);
		} else {
			printError( "marquerCommeLu Classe: " + $(this).attr("class") );
		}
	});
	$("#compteurTotal").empty().append(compteurTotal);
	document.title = "Clic la rue, l\'info a la source ("+compteurTotal+")";
}

function printTrace( text ) {
	if( trace ) {
		var obj = document.getElementById('ongletTrace') ;
		var date = new Date();
		textTraces += '<BR />' + date.dateFormat('H:i:s', 'fr') + ' ' + text ;
		if( obj != null ) {
			obj.innerHTML = textTraces ;
		} 
	}
}
function printError( text ) {
	if( trace ) {
		var obj = document.getElementById('ongletTrace') ;
		var date = new Date();
		textTraces += '<BR />' + date.dateFormat('H:i:s', 'fr') + ' ERREUR ' + text ;
		if( obj != null ) {
			obj.innerHTML = textTraces ;
		} 
	}
}
