
//Cacher les blocs d'ajout de commentaire
$jQ(document).ready(function()
{
	$jQ(".cmt_add_blk").hide();
	return false;
});

var cmt_all_comments_display = new Array;

/* ----- Fonctions ----- */
// Poster un commentaire en ajax
/*
function postComment(form)
{
	var fk = $jQ(form).find('#cmt_fk').val();
	var tablefk = $jQ(form).find('#cmt_tablefk').val();
	var blk_id = "cmt_blk_add_"+fk;
	options =
	{ success: function(response) {
		$jQ("#"+blk_id).html(response);
		//refreshComments(form.action, tablefk, fk);
		return false;
	}};
	$jQ(form).ajaxSubmit(options);		
	return false;
}
*/
function postComment(form)
{
	form.action_sysd = form.action;
	form.action = "javascript:return false;";
	$jQ("#div_"+form.name+"_msg_error").html('');
	var cValid = new cValidator(form.name);
	cValid.validateField({'name':"cmt_firstname"}, 'mandatory', "Le champ « Prénom » est obligatoire.");
	//cValid.validateField({'name':"cmt_lastname"}, 'mandatory', "Le champ « Nom » est obligatoire.");
	cValid.validateField({'name':"cmt_email"}, 'mandatory', "Le champ « Courriel » est obligatoire.");
	cValid.validateField({'name':"cmt_email"}, 'email', "Le champ « Courriel » n'est pas une adresse de courriel valide.");
	cValid.onSubmitForm();
	var action = form.action_sysd;

	if(action != '' && !cValid.isError())
	{
		num = form.id.match(/\d/g);
		num = num.join("");
		id = form.id;
		var fk = form.cmt_fk.value;
		var tablefk = form.cmt_tablefk.value;
		var blk_id = "cmt_blk_add_"+fk;
		var options =
		{
			success: function(response) {
				//$jQ("#"+blk_id).html(response);
				$jQ("#"+blk_id).css('display', 'block');
				$jQ('#'+id+' #cmt_description').val('');
				refreshComments(action, tablefk, fk);
				return false;
			},
			target:"#"+blk_id,
			url:action
		};
		$jQ(form).ajaxSubmit(options);
		return false;
	}
	return false;
}

// Afficher tous les commentaires
function readAllComments(form)
{
	registerSeeAllComments(form.tablefk, form.fk);
	refreshComments(urlAdd(form.action, 'cmt_tablefk='+form.cmt_tablefk+'&cmt_fk='+form.cmt_fk, form.cmt_fk));
	return false;
}

// Afficher le formulaire d'ajout de commentaire
function displayAddCommentBlock(link_id)
{
	blk_id = link_id.replace("cmt_show", "cmt_blk_add");
	$jQ("#"+link_id).hide("slow");
	$jQ("#"+blk_id).show("slow");	
	return false;
}

// Cacher le bloc d'ajout de commentaire
function hideAddCommentBlock(link_id)
{
	num = link_id.match(/\d/g);
	num = num.join("");
	blk_id = "cmt_blk_add_"+num;
	link_id = "cmt_show_"+num;
	$jQ("#"+link_id).show("slow");
	$jQ("#"+blk_id).hide("slow");
	return false;
}

/* -----  ----- */
// Indiquer que tous les commentaires devront etre visible
function registerSeeAllComments(tablefk, fk)
{
	if(cmt_all_comments_display[tablefk] == undefined)
	{
		cmt_all_comments_display[tablefk] = new Array();
	}
	cmt_all_comments_display[tablefk][fk] = true;
	return false;
}

//Rafraichir le panneau des commentaires
function refreshComments(url, tablefk, fk)
{
	args = "act=getcomments&cmt_tablefk="+tablefk+"&cmt_fk="+fk;
	to_url = urlAddAllCommentsArg(urlAdd(url, args), tablefk, fk);
	$jQ("#cmt_blk_" + fk).load(to_url);
	return false;
}

/* ----- Utilitaires ----- */
// Ajouter des parametres a l'url
function urlAdd(url, arg)
{
	result = url;
	if(result.indexOf('?') == -1)
	{
		result += '?';
	}
	else
	{
		result += '&';
	}
	return result + arg;
}

// Ajouter au besoin le parametre indiquant que tous les commentaires doivent s'afficher
function urlAddAllCommentsArg(url, tablefk, fk)
{
	result = url;
	if((cmt_all_comments_display != undefined) && cmt_all_comments_display[tablefk] != undefined && cmt_all_comments_display[tablefk][fk] == true)
	{
		result = urlAdd(url, "display_all_comments=1");
	}
	return result;
}
