var elementsCaches = new Boolean();
elementsCaches = false;

var bulles = {};

var traduction = {
    nom: {
        fr: 'Nom',
        en: 'Name'
    },
    courriel: {
        fr: 'Courriel',
        en: 'Email'
    },
    commentaire: {
		fr: 'Commentaire',
		en: 'Comment'    
    },
    captcha: {
		fr: 'Image de vérification',
		en: 'Random code'    
    },
    autreCaptcha: {
		fr: 'Voir un autre code brouillé',
		en: 'See another random code'    
    },    
    entrezCaptcha: {
    	fr: 'Entrez le code brouillé',
		en: 'Captcha'    
    },
    boutonEnvoyer: {
		fr: 'Publier le commentaire',
		en: 'Post comment'    
    },
  	donnerAvis: {
		fr: 'Publier le commentaire',
		en: 'Leave a Reply'    
    },
    nonDisponible: {
		fr: 'Vous ne pouvez laisser de commentaires pour le moment. C\'est un rendez-vous dans quelques instants!',
		en: 'You can\'t leave any comments right now. Please try again in a few moments!'    
    },
    titreCommentaires: {
		fr: 'Commentaires',
		en: 'Comments'    
    },
    titreDonnerAvis: {
		fr: 'Commenter cet événement',
		en: 'Post a comment on this event'    
    },
    messageNonVide: {
    	fr: 'Hum, vous n\'êtes pas bavard aujourd\'hui! Laissez-nous vos commentaires.',
    	en: 'Say, you aren\'t very chatty today! Why not leave us your comments?'
    },
    courrielObligatoire: {
    	fr: 'Vous devez entrer une adresse courriel valide.',
    	en: 'Please enter a valid e-mail address.'
    },
    nomNonVide: {
    	fr: 'Soyez fier de vos opinions, et inscrivez votre nom.',
    	en: 'Take pride in your opinions: type in your name.'
    },
    captchaNonVide: {
    	fr: 'Faites la preuve de votre excellente vision en tapant le mot qui apparaît dans l\'image.',
    	en: 'Show how perceptive you are by typing in the word that appears in the picture.'
    },
    erreurCaptcha: {
    	fr: 'Une faute de frappe est si vite arrivée! Essayez de nouveau.',
    	en: 'It\'s so easy to hit the wrong key! Please try again.'
    },
    erreurCommentaire: {
    	fr: 'Oups! Nous n\'avons pas reçu votre commentaire. Laissez-le-nous à nouveau!',
    	en: 'Oops! We didn\'t receive your comment. Please leave it again!'
    },
    commentaireSoumisAvecSucces: {
    	fr: 'Merci pour vos commentaires! Nous sommes si heureux de les recevoir que nous prendrons le temps de les lire en primeur (et de les valider!) avant de les publier sur le site.',
    	en: 'Thank you for your comments! We are so pleased to have received them that we\'ll first take the time to read and confirm them before they are posted on the web site.'
    },
    courrielNonPublier: {
    	fr: '*Votre courriel ne sera pas publié.',
    	en: '*Your e-mail will not be posted.'
    },
    votreCommentaire: {
    	fr: 'Votre commentaire',
    	en: 'Your comment'
    }, 
    imageExtLangue: {
    	fr: 'f',
    	en: 'e'
    },
    voirAutresCommentaires: {
	    fr: 'Voir d\'autres commentaires',
    	en: 'More comments'
    }         
}

/*
Cette méthode valide le contenu du formulaire avant de soumettre. La méthode doit retourner true si le formulaire ne contient pas d'erreurs et peut être soumis et false si il y a erreurs et il ne faut pas soumettre.
*/
function valider() {
   var estValide = true;
   
   	var nom = $("input#nom").val();
	if (nom == "") {
      $("label#nom_error").show();
      $("input#nom").focus();
      estValide = false;
    }
    
	var courriel = $("input#courriel").val();
	if (courriel == "" || !isValidEmailAddress(courriel)) {
	  $("label#courriel_error").show();
      $("input#courriel").focus();
      estValide = false;
    }
    
	var message = $("textarea#message").val();
	if (message == "" || message == traduire('votreCommentaire')) {
	  $("label#message_error").show();
      $("textarea#message").focus();
      estValide = false;
    }

    var captcha = $("input#captcha").val();
	if (captcha == "" || captcha == traduire('entrezCaptcha')) {
	  $("label#captcha_error").show();
      $("input#captcha").focus();
      estValide = false;
    }
    
    //Si valide, on enregistre la stat dans Google analytics
    saveStats("evenement", 'publier_commentaire', location.pathname);
    
    return estValide;
}

/*
Afficher la réponse de la soumission du formulaire de commentaires
*/
function traiterSubmitCommentaire(commentaireSauvegarde, codeMessage) {
		
	if (commentaireSauvegarde == 'true') {
		$('#message-commentr').html(traduire(codeMessage));
		$("textarea#message").val('');
		//$('#message-commentr').css('color', 'black');
	} else {
		$('#captcha_error2').show();
	}	
}

/*
Afficher le formulaire de commentaires. Ce contenu sera affiché dans l'element <div id=Commentr_sujetId></div> où sujetId est le id du sujet (exemple : 34).
sujetId est le ID du sujet
commentaires est la liste des commentaires du sujet. Chaque commentaire contient les attributs suivants :
commentaire.nom = le nom de la personne qui a envoyé le commentaire
commentaire.creation = la date de creation du commentaire en millisecondes
commentaire.message = le message du commentaire
*/
function traiterAffichageSujet(sujetId, commentaires) {	
	var contenu = '<h3 id="blocCommentairesTitre">'+traduire('titreDonnerAvis')+'<img src="images/fiche/img_h3_fleche.gif" alt=""/></h3>\
		<div id="divform">\
		<form id="formulaireCommentaire" action="'+URL_COMMENT_POST+'" method="post" target="framePostCommentaire" accept-charset="utf-8">\
		 	<div id="message-commentr"></div>\
		        <table>\
		         	<tbody>\
		         	 <input type="hidden" name="ie_utf_hack" value="&#153;">\
		             <input type="hidden" name="sujet" id="sujet" value="'+sujetId+'" />\
		             <tr class="prop">\
		                 <td valign="top" class="name" style="padding-left: 10px; padding-top: 12px; ">\
		                     <label for="name">'+traduire('nom')+'&nbsp;:</label>\
		                 </td>\
		                 <td valign="top" class="value" style="padding-top: 12px;">\
		                     <input type="text" name="nom" value="" id="nom" size="40" style="width: 150px; overflow:hidden;"/>\
		                 </td>\
		             </tr>\
		             <tr class="prop">\
		                 <td valign="top" colspan="2" class="value">\
							 <label class="err" for="nom" id="nom_error">'+traduire('nomNonVide')+'</label>\
		                 </td>\
		             </tr>\
		             <tr class="prop">\
		                 <td valign="top" class="name" style="padding-left: 10px;">\
		                     <label for="courriel">'+traduire('courriel')+'*&nbsp;:</label>\
		                 </td>\
		                 <td valign="top" class="value">\
		                     <input type="text" name="courriel" value="" id="courriel" size="40" style="width: 150px; overflow:hidden;"/>\
		                 </td>\
		             </tr>\
		             <tr class="prop">\
		                 <td valign="top" colspan="2" class="value">\
							 <label class="err" for="courriel" id="courriel_error">'+traduire('courrielObligatoire')+'</label>\
		                 </td>\
		             </tr>\
		             <tr class="prop">\
		                 <td valign="top" class="name" style="padding-left: 10px; padding-top: 10px;">\
		                     <label for="message">'+traduire('commentaire')+'&nbsp;:</label>\
		                 </td>\
		                 <td valign="top" class="value" style="padding-left: 7px; padding-right: 8px; padding-top: 5px;">\
		                     <textarea name="message" id="message" rows="5" style="width: 275px;">'+traduire('votreCommentaire')+'</textarea>\
		                 </td>\
		             </tr>\
		             <tr class="prop">\
		                 <td valign="top" colspan="2" class="value">\
							 <label class="err" for="message" id="message_error">'+traduire('messageNonVide')+'</label>\
		                 </td>\
		             </tr>\
		         	 <tr class="prop">\
		                 <td valign="top" colspan="2" class="name" style="padding: 5px 0px 5px 10px;">\
		                     <label for="message">'+traduire('captcha')+'&nbsp;:</label>\
		                 </td>\
		             </tr>\
		             <tr class="prop">\
		                 <td valign="top" colspan="2" class="value">\
							<label class="err" for="captcha" id="captcha_error">'+traduire('captchaNonVide')+'</label>\
							<label class="err" for="captcha" id="captcha_error2" style="dsiplay: none;">'+traduire('erreurCaptcha')+'</label>\
		                 </td>\
		             </tr>\
		             <tr>\
		                 <td valign="top"  colspan="2" align="right" class="value" style="padding-left: 7px; padding-right: 7px; padding-bottom: 0px;">\
		                     <img id="imageCaptcha" src="'+URL_CAPTCHA+'" style="border: 0px solid red; width: 285px; margin: 0px;"/><br>\
		                 </td>\
		             </tr>\
		             <tr>\
		                 <td valign="top" class="name" style="padding-bottom: 10px;">\
		                 </td>\
		                 <td valign="top" class="name" style="padding-bottom: 10px; padding-left: 10px;">\
		                 	<a id="autrecaptcha" href="javascript:autreCaptcha();">'+traduire('autreCaptcha')+'</a><br>\
		                 </td>\
		             </tr>\
		             <tr>\
		                 <td valign="top" class="name" style="padding-bottom: 10px;">\
		                 </td>\
		                 <td valign="top" class="name" colspan="2" style="padding-bottom: 10px;">\
		                 	<input type="text" name="captcha" value="'+traduire('entrezCaptcha')+'" id="captcha" size="9" style="width: 155px; overflow:hidden;" />\
		                 </td>\
		             </tr>\
		             <tr>\
		                 <td valign="top" class="name" align="right" colspan="2" style="padding: 5px 10px 0px 0px;">\
		                 	<input style="margin: 0px; width: 57px; height: 18px;" type="image" src="images/fiche/bt_fiche_comment_publier_'+traduire('imageExtLangue')+'_0.gif" id="createcomment"/>\
		                 </td>\
		             </tr>\
		             <tr>\
		                 <td valign="top" class="name" colspan="2" style="padding-bottom: 10px; padding-left: 10px;">\
		                 	<div style="display: inline; height: 20px; width: 200px; font-weight: normal; background-color: #e3e5e8; padding: 2px;">'+traduire('courrielNonPublier')+'</div>\
		                 </td>\
		             </tr>\
		         </tbody>\
		     </table>\
		</form>\
		</div>\
		<h3 id="listeCommentaires">'+traduire('titreCommentaires')+' ('+commentaires.length+')<img src="images/fiche/img_h3_fleche.gif" alt=""/></h3>';
		
	var ResponsesOutput='<a name="comments"/><div id="commentaires">';

	$.each(commentaires, function(i, commentaire) {
		var nbElement = commentaires.length;
		var id = 'commentaire'+i;
		
		ResponsesOutput += '<div class="commentaire" id="'+id+'">\
			<div class="name">'+commentaire.nom+'</div>\
			<div class="date">'+formatDateFromMillis(commentaire.creation)+'</div>\
			<div class="separateur"></div>\
			<div class="message">'+commentaire.message+'</div></div>';
		
	    if (i + 1 != nbElement && i + 1 != 6) {	
	    	ResponsesOutput +=	'<div class="separateurcommentaires"></div>';     		  
	    }
	    	
	    if (i + 1 == 6 && nbElement > 6) {
	    	ResponsesOutput += '<div id="expandCommentsContent" style="display: none;"><div class="separateurcommentaires"></div>';		    
	    	elementsCaches = true;
	    }
	    	
	    if (i + 1 > 6 && i + 1 == nbElement)
	    	ResponsesOutput += '</div>';
	     			    	
    });
    ResponsesOutput += '&nbsp;</div><a id="lastcomment" name="lastcomment"/><div class="separateur"></div>';
    contenu += ResponsesOutput;

	return contenu;
}

function initialiserFormulaire() {

	if ($("textarea").is("#message")) {		
		$("textarea").live('click', function() {
			if ($(this).attr('value') == traduire('votreCommentaire')) {
				$(this).attr('value', '');
			}			
		});	
	}	
	
	if ($("input").is("#captcha")) {		
		$("input#captcha").live('click', function() {
			if ($(this).attr('value') == traduire('entrezCaptcha')) {
				$(this).attr('value', '');
			}			
		});	
	}		
	
    if (elementsCaches) {
 		$('#blocCommentaires').after('<div id="sepFinBoiteComments"></div>\
					<div id="expandComments" class="expanderBox">\
						<img src="images/bt_ouvrir_out.gif" alt="" style="display: inline; z-index: -1;"/>\
						<span class="libelle">'+ traduire('voirAutresCommentaires') + '</span><span class="fermer">Fermer</span></div>');
						elementsCaches = false;
	}	
	
	if (window.location.hash == '#comments') { 
		$('html,body').scrollTop($("#lastcomment").offset().top);
	}
	

	if ( $.browser.msie ) {				 			
		var docHeight = parseInt($(document).height())-200;	
		$("#piedDePage").css({'top':docHeight+'px', 'position':'absolute'});	
	}
	
	
}

/*
Methode appelé si le sujetId ne correspond pas à un sujet existant. Ce contenu sera affiché dans l'element <div id=Commentr_sujetId></div>.
*/
function traiterAffichageSujetErreur(sujetId) {
	return '<div>'+traduire('nonDisponible')+'</div>';
}

/*
Affiche le contenu pour le nombre de commentaires d'un sujet. Ce contenu sera affiché dans l'element <div id=nbCommentr_sujetId></div> où sujetId est le id du sujet (exemple : 34).
*/
function traiterNbCommentaires(sujetId, nbCommentaires) {
    var lienDetail = bulles['lien' + sujetId];
    var l = lienDetail ? ('<a href="' + lienDetail + '#comments"><img src="images/evenement/bt_coments_0.gif"/></a>') : '';
    return nbCommentaires > 0 ? (l + '<span>('+nbCommentaires+')</span>') : '';
}
