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

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

// ajoutBlocFormulaire
// Duplique un bloc dans un formulaire
function ajoutBlocFormulaire(nom_bloc, type_enfant_duplique) {
	$('#' + nom_bloc).children(type_enfant_duplique + ':last').clone(true).insertAfter($('#' + nom_bloc).children(type_enfant_duplique + ':last'));
}

// selectListe
// Génère les options d'une liste HTML à partir d'une liste d'item
function selectList(p_select, items) {

	// Si la liste_item contient des éléments.
	if(items.length > 0) {
		if(p_select.get(0).tagName.toLowerCase() == 'input') {
			// Récupération des propriétés de la liste.
			var select_properties = { name: p_select.attr('name'), id: p_select.attr('id'), onchange: p_select.attr('onchange') };
			// Suppression du contenu du parent, à l'exception du label
			var p = p_select.parent('p');
			var label = p.children('label').clone(true);
			p.empty();
			p.append(label);
			// Création de la nouvelle liste.
			var new_select = $(document.createElement('select')).attr(select_properties);
			new_select.append($(document.createElement('option')).attr('value', 0).text(index_traduction['selectionner_une_valeur']));
			// Insertion du nouvel objet dans le DOM
			new_select.appendTo(p);
			p_select = new_select;
		} else {
			p_select.children('option, optgroup').remove();
			p_select.append($(document.createElement('option')).attr('value', 0).text(index_traduction['selectionner_une_valeur']));
		}

		var id_parent_courant = -1;
		var noeudParent = p_select;

		items.each(function() {
			var item = $(this);

			if(item.attr('parent') != undefined && item.attr('parent') != id_parent_courant) {
				if(id_parent_courant != -1) {
					p_select.append(noeudParent);
				}
				var optgroup = $(document.createElement('optgroup')).attr('label', item.attr('group-label'));
				p_select.append(optgroup);
				noeudParent = optgroup;
				id_parent_courant = item.attr('parent');
			}
			noeudParent.append($(document.createElement('option')).attr('value', item.attr('value')).text(item.attr('caption')));
		} );
		if(noeudParent != p_select) {
			p_select.append(noeudParent);
		}
	} else {
		// Récupération des propriétés de la liste.
		var select_properties = { name: p_select.attr('name'), id: p_select.attr('id'), onchange: p_select.attr('onchange') };
		// Suppression du contenu du parent, à l'exception du label
		var p = p_select.parent('p');
		var label = p.children('label').clone(true);
		p.empty();
		p.append(label);
		// Création de l'input
		p.append($(document.createTextNode(index_traduction['aucune_entree_pour_cette_selection'])));
		p.append($(document.createElement('input')).attr(select_properties).attr({ type: 'hidden', value: 0 }));
	}
}

function noResult(p_obj, p_texte) {
	p_obj.replaceWith($(document.createElement('div')).addClass('error').append($(document.createElement('p')).text(p_texte)));
}

function checkAll(p_obj) {
	$(p_obj).parent('form').find('input[type="checkbox"]').attr('checked', $(p_obj).attr('checked'));
}


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


// Ajoute un masque personnalisé sur les images portant la classe round
$(function() { $('img.round').each( function() {
	$(this).attr('src', 'utils/round-image.php?img=' + $(this).attr('src'));
} ); } );


var MenuObj = null;

function checkHover() {
	if (MenuObj) {
		MenuObj.find('ul').fadeOut('fast');
	}
}

$(function() {
	$('#menu-lang > li').hover(function() {
		if (MenuObj) {
			MenuObj.find('ul').fadeOut('fast');
			MenuObj = null;
		}

		$(this).find('ul').fadeIn('fast');
	}, function() {
		MenuObj = $(this);
		setTimeout(
			"checkHover()",
			120); // si vous souhaitez retarder la disparition, c'est ici
	});
});