// AddLoadHandler
// Ajoute une fonction au chargement de la page.
function addLoadHandler(handler) {

	if(window.addEventListener) {
		window.addEventListener("load",handler,false);
	} else if(window.attachEvent) {
		window.attachEvent("onload",handler);
	} else if(window.onload) {
		var oldHandler = window.onload;
		window.onload = function piggyback() {
			oldHandler();
			handler();
		};
	} else {
		window.onload = handler;
	}
}

// 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;
}

// Trim
// Equivalent de la fonction PHP du même nom
function trim(chaine) {
	//regex qui supprime les espaces retour chariot ... au debut et a la fin de la chaine
	return chaine.replace(/(^\s*)|(\s*$)/g,'');
}

// Swap
// Echange deux éléments dans un tableau
function swap(p_array, x, y) {
	var temp = p_array[x];
		p_array[x] = p_array[y];
		p_array[y] = temp;

	return p_array;
}

// sortAliasedTable
// Tri d'un tableau aliasé
function sortAliasedTable(p_table, p_start_index, p_field) {
	var sorted = false;

	if(p_start_index < p_table.length) {

		for(var i = p_start_index; i < p_table.length && !sorted; i++) {
			sorted = true;
			for(var j = 1; j < p_table.length - i; j++) {
				var courant = p_table[j];
				var precedent = p_table[j-1];

				if(courant[p_field] < precedent[p_field]) {
					p_table = swap(p_table, j, j-1);
					sorted = false;
				}
			}
		}
	}

	return p_table;
}

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