/*********************************************************************************************/
//	Fonction.js
//	Fonctions génériques
/*********************************************************************************************/


// Confirmation_action
// Affiche une boite de dialogue demandant la confirmation de l'action demandée.
confirmation = function() {
	return confirm(index_traduction["general__etes_vous_sur"]);
}

// ajoutBlocFormulaire
// Duplique un bloc dans un formulaire
ajoutBlocFormulaire = function(nom_bloc, type_enfant_duplique, p_nb_max_item) {
	var nb_max_item = p_nb_max_item || 0;

	if(nb_max_item == 0 || $('#' + nom_bloc).children(type_enfant_duplique).length < nb_max_item) {
		// Clonage du dernier bloc et insertion du nouveau bloc en fin de container
		$('#' + nom_bloc).children(type_enfant_duplique + ':last').clone(true).insertAfter($('#' + nom_bloc).children(type_enfant_duplique + ':last'));
		// Remise à zéro de toutes les valeurs des champs
		$('#' + nom_bloc).children(type_enfant_duplique + ':last').find('input, select').attr('value', '');
		// Réajustement des bulles d'aides
		if(SBTooltips) {
			initToolTips();
		}

		/*
			Cas particulier des champs d'upload
		*/
		// Suppression des p.quiet : retire les messages "Taille maximum autorisée en upload XXMo"
		$('#' + nom_bloc).children(type_enfant_duplique + ':last').find('li.quiet').remove();
		// Suppression des span.quiet qui contiennent des liens : retire les liens de manipulations des fichiers sur les champs upload
		$('#' + nom_bloc).children(type_enfant_duplique + ':last').find('span.file-tool').remove();

	} else {
		alert(index_traduction['nombre_maximum_item_atteint']);
	}
}

// getHiddenInput
// Retourne l'objet DOM correspondant au champs hidden de stockage des adresses déjà enregistrées pour les champs upload.
getHiddenInput = function(p_link_obj) {
	return $(p_link_obj).parent('span.file-tool').parent().find('input[type=hidden]');
}

// deleteUploadFieldLinks
// Supprime le trio de lien affiché près des champs upload lors des éditions/retour d'erreur
deleteUploadFieldLinks = function(p_link_obj) {
	return $(p_link_obj).parent('span.file-tool').remove();
}

// unlinkUploadedFile
// Vide la champs d'adresse caché d'un fichier uploadé et supprime les liens
unlinkUploadedFile = function(p_link_obj) {
	getHiddenInput(p_link_obj).attr('value', '');
	deleteUploadFieldLinks(p_link_obj);
}

// deleteUploadedFile
// Supprime un fichier uploadé, vide le champs d'adresse caché correspondant et supprime les liens
deleteUploadedFile = function(p_link_obj) {
	hiddenInput = getHiddenInput(p_link_obj);
	selector = 'li:has(input[type=hidden][value=' + hiddenInput.attr('value') + '])';

	SBAjaxWrapper.call('utils::remove-file', { fichier: hiddenInput.attr('value') }, selector, { callback: unlinkUploadedFile(p_link_obj) });
}

// Ajoute à tous les liens portant un attribut rel contenant external un attribut target à blanck
$(function() { $('a[rel*=external]').attr('target', '_blanck'); } );