/*******************************************************
* FICHIER JAVASCRIPT 
* NOTE SD : Triés par ordre alphabétique de rubrique,
*******************************************************/



/*******************************************************
********************************************************
* _Generique
********************************************************
*******************************************************/
//var textAreaHide = new Array();
/*function addTextAreaHide(id){
	textAreaHide[textAreaHide.length] = id;
}
function hideTextArea(){
	if(textAreaHide.length > 0){
		var i = 0;
		while(textAreaHide[i]){
			$(textAreaHide[i]).style.display = 'none';
			i++;
		}
	}
	clearInterval(timerTextArea);
}*/


function $(item) {
	return document.getElementById(item);
}

/**
 * Fonction issue de historique3.js
 */
function changeWindowLocation(url) {
	// globalCook est valorisée dans reponse.php, vers la fin
	window.location = url;
}

/*******************************************************
********************************************************
* Form Has Changed
********************************************************
*******************************************************/
function displayArray(item) {
	var strArray = '';
	for (var i = 0; i < item.length; i++) {
		strArray += item[i] + ', ';
	}
	alert(strArray);
}

/*******************************************************
********************************************************
* Form Has Changed
********************************************************
*******************************************************/
function setFormHasChanged(item) {
	if (item.form.formHasChanged) {
		item.form.formHasChanged.value = 1;
	}
}

/*******************************************************
********************************************************
* FileUplod changed
********************************************************
*******************************************************/
function fileuploadChanged(fieldName) {
    var fileName = extractFilename($(fieldName).value);
    $('FileUploadFileName' + fieldName).value = noaccent(fileName);
}
function extractFilename(path) {
  var x;
  x = path.lastIndexOf('\\');
  if (x >= 0) // Windows-based path
    return path.substr(x+1);
  x = path.lastIndexOf('/');
  if (x >= 0) // Unix-based path
    return path.substr(x+1);
  return path; // just the filename
} 
function noaccent(chaine) {
	var temp = chaine;
	temp = temp.replace("\340","a");
	temp = temp.replace("\350","e");
	temp = temp.replace("\351","e");
	temp = temp.replace("\352","e");
	return temp;
}

/*******************************************************
********************************************************
* Formatage
********************************************************
*******************************************************/
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function dblToStr(value) {
	var strValue = '';
	if (value != null) {
		value = Math.round(value * 100) /100;
		strValue = value.toString().replace('.', ',');
		var arrValue = strValue.split(',');
		if (arrValue.length == 1) {
			// Nombre entier
			strValue = arrValue[0] + ',00';
		} else {
			// Nombre décimal
			strValue = arrValue[0] + ',' + (arrValue[1] + '00').substring(0, 2);
		}
	}
	return FormatNumberBy3(strValue, ',', ' ');
}

function decimal4ToStr(value) {
	var strValue = '';
	if (value != null) {
		value = Math.round(value * 10000) /10000;
		strValue = value.toString().replace('.', ',');
		var arrValue = strValue.split(',');
		if (arrValue.length == 1) {
			// Nombre entier
			strValue = arrValue[0] + ',0000';
		} else {
			// Nombre décimal
			strValue = arrValue[0] + ',' + (arrValue[1] + '0000').substring(0, 4);
		}
	}
	return FormatNumberBy3(strValue, ',', ' ');
}

//Récupération d'un numérique à partir d'un texte
function getNumber(text) {
	/*if (text && text != '') {
		return Number(text.replace(',', '.').replace(' ', ''));
	} else {
		return 0;
	}*/
	var retour = 0;
	if (text != '') {
		retour = strToDbl(text);
		if (retour == null || retour == '') {
			retour = 0;
		}
	}
	return retour;
}

function strToDbl(value){
	var retour = null;
	if(value != null){
		value = value.toString();
		if(value != ''){
			retour = value.replace(',','.');
			retour = retour.replace(' ', '');
			retour = retour.replace(' ', '');
			retour = retour.replace(' ', '');
		}
		retour = parseFloat(retour);
	}
	return retour;
}

function intToStr(value){
	var retour = FormatNumberBy3(parseInt(value), ',', ' ');
	return retour;
}

function no_accent (my_string) {
	var new_string = "";
	var pattern_accent = new Array("ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½", "ï¿½");
	var pattern_replace_accent = new Array("A", "A", "A", "A", "A", "A", "a", "a", "a", "a", "a", "a", "O", "O", "O", "O", "O", "O", "o", "o", "o", "o", "o", "o", "E", "E", "E", "E", "e", "e", "e", "e", "C", "c", "I", "I", "I", "I", "i", "i", "i", "i", "U", "U", "U", "U", "u", "u", "u", "u", "y", "N", "n");
	
	if (my_string && my_string!= "") {
		new_string = preg_replace (pattern_accent, pattern_replace_accent, my_string);
	}
	return new_string;
}

function preg_replace (array_pattern, array_pattern_replace, my_string)  {
	var new_string = String (my_string);
	for (i=0; i<array_pattern.length; i++) {
		var reg_exp= RegExp(array_pattern[i], "gi");
		var val_to_replace = array_pattern_replace[i];
		new_string = new_string.replace (reg_exp, val_to_replace);
	}
	return new_string;
}

function FormatNumberBy3(num, decpoint, sep) {
	  // check for missing parameters and use defaults if so
	  if (arguments.length == 2) {
	    sep = ",";
	  }
	  if (arguments.length == 1) {
	    sep = ",";
	    decpoint = ".";
	  }
	  // need a string for operations
	  num = num.toString();
	  // separate the whole number and the fraction if possible
	  a = num.split(decpoint);
	  x = a[0]; // decimal
	  y = a[1]; // fraction
	  z = "";


	  if (typeof(x) != "undefined") {
	    // reverse the digits. regexp works from left to right.
	    for (i=x.length-1;i>=0;i--)
	      z += x.charAt(i);
	    // add seperators. but undo the trailing one, if there
	    z = z.replace(/(\d{3})/g, "$1" + sep);
	    if (z.slice(-sep.length) == sep)
	      z = z.slice(0, -sep.length);
	    x = "";
	    // reverse again to get back the number
	    for (i=z.length-1;i>=0;i--)
	      x += z.charAt(i);
	    // add the fraction back in, if it was there
	    if (typeof(y) != "undefined" && y.length > 0)
	      x += decpoint + y;
	  }
	  return x;
}

/*******************************************************
********************************************************
* Div
********************************************************
*******************************************************/
function ShowHideDiv(div){
	if($(div).style.display == 'none') $(div).style.display = '';
	else $(div).style.display = 'none';
}
function closeDiv(div) {
	$(div).style.display = "none";
}

function showDiv(item) {
	$(item).style.display = "";
	// Décalage à gauche si on sort à droite
	if (getOffset($(item))[0] + getSize($(item))[0] > getWindowWidth() - 20) {
		$(item).style.left = (getWindowWidth() - getSize($(item))[0] - 20) + "px";
	}
	// Décalage à droite si on sort à gauche
	if (getOffset($(item))[0] <= 0) {
		$(item).style.left = "5px";
	}
	// Décalage en haut si on sort en bas
	var yScroll = document.body.scrollTop || document.documentElement.scrollTop;
	if (getOffset($(item))[1] + getSize($(item))[1] > getWindowHeight() + yScroll - 10) {
		$(item).style.top = (getWindowHeight() + yScroll - getSize($(item))[1] - 10) + "px";
	}
	// Décalage en bas si on sort en haut
	if (getOffset($(item))[1] <= yScroll) {
		$(item).style.top = (yScroll + 5) + "px";
	}
}

function showDivCenter(item) {
	// Centrage de la div
	$(item).style.display = '';
	var posX = (getWindowWidth() - getSize($(item))[0])/2;
	$(item).style.left = posX + 'px';
	$(item).style.top = '100px';
	
	// Affichage de la div
	showDiv(item);
}
function hideDiv(item) {
	if ($(item)) {
		$(item).style.display = "none";
	}
}

/*******************************************************
********************************************************
* Aide
********************************************************
*******************************************************/
var decalageHelpX = 10; 
var decalageHelpY = 10;
function showHelp(item) {
	//alert(mouseY);
	$(item).style.display = '';
	//alert(getOffset($(item))[0]);
	//alert(getOffset($(item))[1]);
	$(item).style.left = (mouseX + decalageHelpX) + 'px';
	//$(item).style.left = (getOffset($(item))[0] + decalageHelpX) + 'px';
	if (window.event) {
		// IE : hauteur de la fenï¿½tre + hauteur du scroll
		$(item).style.top = (mouseY + decalageHelpY + document.documentElement.scrollTop) + 'px';
		//$(item).style.top = (getOffset($(item))[1] + decalageHelpY + document.documentElement.scrollTop) + 'px';
	} else {
		$(item).style.top = (mouseY + decalageHelpY) + 'px';
		//$(item).style.top = (getOffset($(item))[1] + decalageHelpY) + 'px';
	}
	//$(item).style.display = '';
	showDiv(item);
}
function hideHelp(item) {
	hideDiv(item);
}


var aideEnligne = false;
function showHideAideEnLigne() {
	if ($('divAideEnLigne').style.display == '') {
		hideDiv('divAideEnLigne');
	} else {
		action = $('aideEnLigne_actgId').value;
		//alert(action);
		if(action > 0){
			showDiv('divAideEnLigne');
			if (!aideEnligne) {
				//aideEnligne = true;
				action = $('aideEnLigne_actgId').value;
				
				$('divAideEnLigneContenu').style.display = 'none';
				$('divAideEnLignePatienter').style.display = '';
				
				ajaxGetAideEnLigne(action);
			}
		}
	}
}
function hideAideEnLigne() {
	hideDiv('divAideEnLigne');
}
function ajaxGetAideEnLigne(action){
	var action = 'main.php?action=ajx_publication&actg_id=' + action;

	//3 paramï¿½tres :
	//-url de la page appellï¿½e par la requï¿½te ajax
	//-liste des paramï¿½tres GET pour l'appel
	//-Nom de la fonction javascript appellï¿½e en mode asynchrone qui va rï¿½cupï¿½rer le flux et le traiter
	AJAXRequest(action, '', displayAideEnLigne);
}
function displayAideEnLigne(xhr) {
	var article = getXhrValueHTML(xhr);
	if (article != undefined && article != '') {
		$('divAideEnLigneContenu').innerHTML = article;
		$('divAideEnLignePatienter').style.display = 'none';
		$('divAideEnLigneContenu').style.display = '';
	}
}
function aideEnLigneChangeActgId(actgId) {
	//alert(actgId);
	if (actgId) {
		$('aideEnLigne_actgId').value = actgId;
	}
}

function closePublication() {
	window.location = 'main.php?action=adm_publications';
}

/*******************************************************
********************************************************
* Alert
********************************************************
*******************************************************/
// Ouverture div d'alerte
function openAlertConfirm(formName) { 
	//document.getElementById("boutonConfirm").setAttribute("onClick","closeAlertConfirm(); document.form['" + formName + "'].submit()");
	$("alertConfirmBG").style.display = "";
	$("alertConfirmWin").style.display = "";
}
// Fermeture de div d'alerte  
function closeAlertError() { 
	$("alertErrorBG").style.display = "none";
	$("alertErrorWin").style.display = "none";
}
function closeAlertErrorTexte() { 
	$("alertErrorTexteBG").style.display = "none";
	$("alertErrorTexteWin").style.display = "none";
}
function closeAlertConfirm() { 
	$("alertConfirmBG").style.display = "none";
	$("alertConfirmWin").style.display = "none";
}
function autoCloseAlertConfirm(){
	clearInterval(timerPopup);
	closeAlertConfirm();
}
function closeAlertConfirmAjax() { 
	$("alertJSConfirm").style.display = "none";
}
function closeAlertExtra() { 
	$("alertExtraBG").style.display = "none";
	$("alertExtraWin").style.display = "none";
}
function applyAlertExtra(fonctionName){
	eval(fonctionName + '()');
	closeAlertExtra();
}
function closeAlertJS() { 
	$("alertJS").style.display = "none";
}
function showAlert(text) {
	$("alertJSText").innerHTML = text;
	$("alertJS").style.display = "";
	setButtonOKFocus("alertJSWin");
}
function showAlertKey(key) {
	$("alertJSText").innerHTML = $(key).value;
	$("alertJS").style.display = "";
	setButtonOKFocus("alertJSWin");
}
function closeAlertJSErr() { 
	$("alertJSErr").style.display = "none";
}
function showAlertErr(type, text) {
	if (type == "required") {
		$("alertJSErrRequired").style.display = "";
	} else if (type == "formatNumber") {
		$("alertJSErrNumber").style.display = "";
	} else if (type == "formatDate") {
		$("alertJSErrDate").style.display = "";
	} else if (type == "formatTime") {
		$("alertJSErrTime").style.display = "";
	} else if (type == "formatMail") {
		$("alertJSErrMail").style.display = "";
	} else if (type == "formatUrl") {
		$("alertJSErrUrl").style.display = "";
	} else if (type == "formatMaj") {
		$("alertJSErrMaj").style.display = "";
	} else {
		$("alertJSErrText").innerHTML = text;
		$("alertJSErrText").style.display = "";
	}
	$("alertJSErr").style.display = "";
	
	setButtonOKFocus("alertJSErrWin");
}
function closeAlertJSConfirm() { 
	$("alertJSConfirm").style.display = "none";
}
function showAlertConfirm(text) {
	$("alertJSConfirmText").innerHTML = text;
	$("alertJSConfirmText").style.display = "";
	$("alertJSConfirm").style.display = "";
	
	setButtonOKFocus("alertJSConfirmWin");
}
function hideAlertErr() {
	$("alertJSErrRequired").style.display = "none";
	$("alertJSErrNumber").style.display = "none";
	$("alertJSErrDate").style.display = "none";
	$("alertJSErrMail").style.display = "none";
	$("alertJSErrUrl").style.display = "none";
	$("alertJSErrMaj").style.display = "none";
	$("alertJSErrText").style.display = "none";
	$("alertJSErr").style.display = "none";
}

function setButtonOKFocus(id)
{
	var button;
	var divElement = $(id);
	for (var i = 0 ; i < divElement.childNodes.length ; i++)
	{
		//if ( divElement.childNodes[i].getAttribute('type') == 'button' )
		if ( divElement.childNodes[i].type == 'button' )
		{
			button = divElement.childNodes[i];
			break;
		}
	}
	button.focus();
}

/*******************************************************
********************************************************
* Champs lockés
********************************************************
*******************************************************/
function unLock(objectName){
	$('textbox' + objectName + '_divPart').style.display = 'none';
	$('textbox' + objectName + '_inputPart').style.display = '';
}

/*******************************************************
********************************************************
* Collapsible Div
********************************************************
*******************************************************/
function collapseDiv(divId) {
	if ($(divId).style.display == '') {
		$(divId).style.display = 'none';
		$("img" + divId).src = 'img/arrowClosed.gif';
	} else {
		$(divId).style.display = '';
		$("img" + divId).src = 'img/arrowOpened.gif';
	}
}

/*******************************************************
********************************************************
* Compteur caractères textarea
********************************************************
*******************************************************/
function TextAreaCheckMaxLength(item, length, errorMessage) {
	if($(item).value.length >= length){
		showAlert(errorMessage + " (" + length + ")");
		$(item).value = $(item).value.substring(0, length);
	}
	
	$('restcar' + item).innerHTML = length - $(item).value.length; 
}

function CKCount(field, maxlimit, item, errorMessage)
{
	if (field.value.length > maxlimit){
		// Si texte trop long, on substring
		showAlert(errorMessage + " (" + maxlimit + ")");
		field.value=field.value.substring(0, maxlimit);
	}
	
	//On met ï¿½ jour le champ de comptage
	$('restcar' + item).innerHTML = maxlimit - field.value.length;
}

/*******************************************************
********************************************************
* Demande de confirmation (OK - Annuler) avant submit d'un formulaire
********************************************************
*******************************************************/
var confirmFormName = "";
var confirmFieldName = "";
var confirmValue = "";
var confirmAjaxFunction = null;
var confirmShowDate = false;
var confirmShowCheckBox= false;

function confirmForm(formName, fieldName, value) {
	confirmFormMessage(formName, fieldName, value, '', false, '');
}
function confirmFormMessage(formName, fieldName, value, messageConfirmation, showDate, messageCheckBox) {
	// Initilisation des paramètres de confirmation
	confirmFormName = formName;
	confirmFieldName = fieldName;
	confirmValue = value;
	confirmShowDate = showDate;
	confirmShowCheckBox = messageCheckBox && (messageCheckBox != '');
	
	// Affichage du div de confirmation
	if (messageConfirmation != '') {
		$("confirmMessageCustom").innerHTML = messageConfirmation;
		if (showDate) {
			$("confirmMessageCustomDate").style.display = '';
		} else {
			$("confirmMessageCustomDate").style.display = 'none';
		}
		if (confirmShowCheckBox) {
			$("confirmMessageCustomCheckBoxMessage").innerHTML = messageCheckBox;
			$("confirmMessageCustomCheckBox").style.display = '';
		} else {
			$("confirmMessageCustomCheckBox").style.display = 'none';
		}
		$("confirmMessageCustom").style.display = '';
		$("confirmMessageDel").style.display = 'none';
	} else {
		$("confirmMessageCustomCheckBox").style.display = 'none';
		$("confirmMessageCustomDate").style.display = 'none';
		$("confirmMessageCustom").style.display = 'none';
		$("confirmMessageDel").style.display = '';
	}
	$("confirmDiv").style.display = "";
	setButtonOKFocus("confirmWin");
}
function confirmFormAjax(formName, fieldName, value, ajaxFunction) {
	confirmFormAjaxMessage(formName, fieldName, value, ajaxFunction, '');
}
function confirmFormAjaxMessage(formName, fieldName, value, ajaxFunction, messageConfirmation) {
	confirmAjaxFunction = ajaxFunction;
	confirmFormMessage(formName, fieldName, value, messageConfirmation, false, '');
}
function confirmFormAjaxMessageDate(formName, fieldName, value, ajaxFunction, messageConfirmation) {
	confirmAjaxFunction = ajaxFunction;
	confirmFormMessage(formName, fieldName, value, messageConfirmation, true, '');
}
function confirmFormAjaxMessageDateCheckBox(formName, fieldName, value, ajaxFunction, messageConfirmation, messageCheckBox) {
	confirmAjaxFunction = ajaxFunction;
	confirmFormMessage(formName, fieldName, value, messageConfirmation, true, messageCheckBox);
}
function confirmOK() {
	if (confirmFieldName != '') {
		// Mise à jour de la valeur du champ
		eval("document." + confirmFormName + "." + confirmFieldName + ".value = " + confirmValue);
	}
	if (confirmShowDate) {
		eval("document." + confirmFormName + ".confirm_date.value = '" + $('confirm_date').value + "'");
	}
	if (confirmShowCheckBox) {
		eval("document." + confirmFormName + ".confirm_checkbox.value = '" + $('confirm_checkbox').value + "'");
	}
	if (confirmAjaxFunction != null && confirmAjaxFunction != '') {
		// Appel de la fonction Ajax
		confirmClose();
		eval(confirmAjaxFunction);
	} else {
		// Submit du formulaire
		eval("document." + confirmFormName + ".submit()");
	}
}
function confirmClose() {
	$("confirmDiv").style.display = "none";
}

/*******************************************************
********************************************************
* Demande de confirmation (OK - Annuler) avant exécution JS
********************************************************
*******************************************************/
var confirmJSFunction = null;

function confirmFonctionJS(message, fonctionJS) {
	// Initilisation des paramètres de confirmation
	confirmJSFunction = fonctionJS;
	
	// Affichage du div de confirmation
	$("confirmFonctionJSMessage").innerHTML = message;
	$("confirmFonctionJSDiv").style.display = "";
}
function confirmFonctionJSOK() {
	eval(confirmJSFunction);
	confirmFonctionJSClose();
}
function confirmFonctionJSClose() {
	$("confirmFonctionJSDiv").style.display = "none";
}

/*******************************************************
********************************************************
* Demande de confirmation (Oui - Non - Annuler) avant submit d'un formulaire
********************************************************
*******************************************************/
var confirmOuiNonFormName = "";
var confirmOuiNonFieldName = "";
var confirmOuiNonFieldValue = "";
var confirmOuiNonFieldNameConfirm = "";

/**
 * 
 * @param formName : nom du formulaire
 * @param fieldName : nom du champ de l'ID [optionnel]
 * @param value : valeur de l'ID [optionnel]
 * @param fieldNameConfirm : nom du champ de confirmation, passï¿½ ï¿½ 0 si non, ï¿½ 1 si oui
 * @param text : text de confirmation
 * @return
 */
function confirmOuiNonForm(formName, fieldName, fieldValue, fieldNameConfirm, text) {
	// Initilisation des paramï¿½tres de confirmation
	confirmOuiNonFormName = formName;
	confirmOuiNonFieldName = fieldName;
	confirmOuiNonFieldValue = fieldValue;
	confirmOuiNonFieldNameConfirm = fieldNameConfirm;
	// Affichage du div de confirmation
	$('confirmOuiNonMessage').innerHTML = text;
	$("confirmOuiNonDiv").style.display = "";
	setButtonOKFocus("confirmOuiNonWin");
}
function confirmOuiNonOui() {
	// Mise ï¿½ jour de la valeur du champ
	eval("document." + confirmOuiNonFormName + "." + confirmOuiNonFieldNameConfirm + ".value = 1");
	if (confirmOuiNonFieldName != ''){
		eval("document." + confirmOuiNonFormName + "." + confirmOuiNonFieldName + ".value = " + confirmOuiNonFieldValue);
	}
	// Submit du formulaire
	eval("document." + confirmOuiNonFormName + ".submit()");
}
function confirmOuiNonNon() {
	/*alert(confirmOuiNonFormName);
	alert(confirmOuiNonFieldName);
	alert(confirmOuiNonFieldValue);
	alert(confirmOuiNonFieldNameConfirm);*/
	// Mise ï¿½ jour de la valeur du champ
	//eval("document." + confirmOuiNonFormName + "." + confirmOuiNonFieldNameConfirm + ".value = 0");
	if (confirmOuiNonFieldName != ''){
		eval("document." + confirmOuiNonFormName + "." + confirmOuiNonFieldName + ".value = " + confirmOuiNonFieldValue);
	}
	// Submit du formulaire
	eval("document." + confirmOuiNonFormName + ".submit()");
}
function confirmOuiNonClose() {
	$("confirmOuiNonDiv").style.display = "none";
}

/*******************************************************
********************************************************
* Onglets
********************************************************
*******************************************************/
function getOngletActif(form) {
	var valid = isValidForm(form);
	var retour = -1;
	if(valid == true){
		//Test de l'onglet actif
		if(document.getElementById('divOngletGeneral').style.display == '') retour = 1;
		if(document.getElementById('divOngletDevisFacture').style.display == '') retour = 2;
		
		//Rï¿½cupï¿½ration de la valeur
		$('onglet_actif').value = retour;
		
		//Retour
		return true;
	}else{
		return false;
	}
}

/*******************************************************
********************************************************
* Libelles
********************************************************
*******************************************************/
function changeLibellePrefixe(fieldToChange, fieldValue) {
	var tableau = document.getElementById(fieldValue).value.split('-');
	if(tableau[1] != null){
		document.getElementById(fieldToChange).innerHTML = tableau[1];
	} else {
		document.getElementById(fieldToChange).innerHTML = '';
	}
}

/*******************************************************
********************************************************
* NavigableElement
********************************************************
*******************************************************/
function displayNavigableElement(direction, objectName){
	var nbElements = navigableElementNbElements(objectName);
	var activeElement = navigableElementActiveElement(objectName);
	var elementNumber = navigableElementActiveElementIndex(activeElement);
	
	if(direction < 0 && elementNumber > 1 || direction > 0 && elementNumber < (nbElements)){
		$(activeElement).style.display='none';
		$('divNavigableElement_' + objectName + '_' + (elementNumber + direction)).style.display = '';
		elementNumber = elementNumber + direction;
	}
	$('divTitreNavigableElement' + objectName).innerHTML = elementNumber + '/' + nbElements;
}

/*
 * displayNewNavigableElement affiche le formulaire de crï¿½ation d'un nouvel ï¿½lï¿½ment
 */
function displayNewNavigableElement(objectName){
	var newOk = true;
	var nbMax = $('navigableElement' + objectName + '_nbMax').value;
	if(nbMax > 0 && nbMax <= navigableElementNbElements(objectName)){
		newOk = false;
	}
		
	if(newOk){
		for (i = 0; i < document.getElementsByTagName("div").length; i++) {
			if (document.getElementsByTagName("div")[i].id.indexOf("ivNavigableElement_" + objectName) > 0) {
				document.getElementsByTagName("div")[i].style.display = 'none';
			}
		}
		
		$('divNavigableElement_' + objectName + '_0').style.display='';
		$('divTitreNavigableElement' + objectName).innerHTML = 'Nouvel &eacute;l&eacute;ment';
		$('divHeaderNavigableElementNew' + objectName).style.display='none';
		$('divHeaderNavigableElementClose' + objectName).style.display='';
		$('PreviousNavigableElement' + objectName).style.display = 'none';
		$('NextNavigableElement' + objectName).style.display = 'none';
		$(objectName + '_0_save').value = '1';
		$('HeaderNavigableElementDelete' + objectName).style.display = 'none';
	}else{
		showAlert('Le nombre maximal d\'&eacute;l&eacute;ments a &eacute;t&eacute; atteint pour cette fiche.');
	}
}

/*
 * displayFirstNavigableElement affiche le premier element
 */
function displayFirstNavigableElement(objectName){
	$('divNavigableElement_' + objectName + '_0').style.display='none';
	$('divNavigableElement_' + objectName + '_1').style.display='';
	$('divHeaderNavigableElementNew' + objectName).style.display='';
	$('divHeaderNavigableElementClose' + objectName).style.display='none';
	$('PreviousNavigableElement' + objectName).style.display = '';
	$('NextNavigableElement' + objectName).style.display = '';
	$('HeaderNavigableElementDelete' + objectName).style.display = '';
	$(objectName + '_0_save').value = '0';
	
	//1-Rï¿½initialisation des donnï¿½es du formulaire
	$('divTitreNavigableElement' + objectName).innerHTML = '1/' + navigableElementNbElements(objectName);
}

/*
 * NavigableElementNbElements renvoie le nb d'ï¿½lï¿½ments gï¿½rï¿½s par le contrï¿½le objectName
 */
function navigableElementNbElements(objectName){
	var nbElements = 0;
	for (i = 0; i < document.getElementsByTagName("div").length; i++) {
		if (document.getElementsByTagName("div")[i].id.indexOf("ivNavigableElement_" + objectName) > 0) {
			nbElements++;
		}
	}
	nbElements--;
	return nbElements;
}

/*
 * NavigableElementActiveElement renvoie l'ï¿½lï¿½ment actif dans le contrï¿½le objectName
 */
function navigableElementActiveElement(objectName){
	var activeElement = '';
	for (i = 0; i < document.getElementsByTagName("div").length; i++) {
		if (document.getElementsByTagName("div")[i].id.indexOf("ivNavigableElement_" + objectName) > 0) {
			if (document.getElementsByTagName("div")[i].style.display == ''){
				activeElement = document.getElementsByTagName("div")[i].id;
			}
		}
	}
	return activeElement;
}

/*
 * adresseActiveElementIndex renvoie l'index de l'ï¿½lï¿½ment actif
 */
function navigableElementActiveElementIndex(activeElement){
	var i = activeElement.length - 1;
	while(activeElement.substr(i, 1) != '_' && i > 1){
		i--;
	}
	var elementNumber = parseInt(activeElement.substr(i+1));
	return elementNumber; 
}

function navigableElementDelete(objectName, nacigableElementType){
	if(navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) != "0"){
		switch(nacigableElementType){
			case 1: //Adresse
				if(navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) == "1"){
					showAlert("Impossible de supprimer cet &eacute;l&eacute;ment car c'est une adresse principale.");
				}else{
					if(confirm("Etes-vous s\373r de vouloir supprimer cet \351l\351ment ?")){
						$(objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete').value = "1";
						$(objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete').form.submit();
					}
				}
			break;
			
			case 2:
				if(navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) == "1"){
					showAlert("Impossible de supprimer cet &eacute;l&eacute;ment car c'est un contact principal.");
				}else{
					if(confirm("Etes-vous s\373r de vouloir supprimer cet \351l\351ment ?")){
						$(objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete').value = "1";
						$(objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete').form.submit();
					}
				}
			break;
		}
	} else {
		//alert("Impossible de supprimer cet ï¿½lï¿½ment car il n'est pas encore enregistrï¿½");
		showAlert("Impossible de supprimer cet &eacute;l&eacute;ment car il n'est pas encore enregistr&eacute;.");
	}
}

function navigableElementManageRequired(objectName){
	var activeElement = navigableElementActiveElement(objectName);
	var elementNumber = navigableElementActiveElementIndex(activeElement);
	if($(objectName + '_' + elementNumber + '_adresse1').value == '' && $(objectName + '_' + elementNumber + '_villeDDL').value == ''){
		remRequiredTextBox(objectName + '_' + elementNumber + '_adresse1');
		remRequiredDDLAutoComplete(objectName + '_' + elementNumber + '_villeDDL');
	} else {
		addRequiredTextBox(objectName + '_' + elementNumber + '_adresse1');
		addRequiredDDLAutoComplete(objectName + '_' + elementNumber + '_villeDDL');
	}
	
	
}

function navigableContactElementManageRequired(objectName){
	var activeElement = navigableElementActiveElement(objectName);
	var elementNumber = navigableElementActiveElementIndex(activeElement);
	if($(objectName + '_' + elementNumber + '_civilite').value == '' && $(objectName + '_' + elementNumber + '_nom').value == ''){
		remRequiredTextBox(objectName + '_' + elementNumber + '_nom');
		remRequiredDDL(objectName + '_' + elementNumber + '_civilite');
	} else {
		addRequiredTextBox(objectName + '_' + elementNumber + '_nom');
		addRequiredDDL(objectName + '_' + elementNumber + '_civilite');
	}
}

function navigableElementUncheckMain(objectName){
	var activeElementNumber = navigableElementActiveElementIndex(navigableElementActiveElement(objectName));
	var i =0;
	while($('divNavigableElement_' + objectName + '_' + i)){
		if(i != activeElementNumber){$(objectName + '_' + i + '_principale').checked = false;}
		i++;
	}
	if($(objectName + '_' + activeElementNumber + '_principale').checked == false){
		var initValue = $(objectName + '_initPrincipal').value;
		if(initValue != ''){
			$(objectName + '_' + initValue + '_principale').checked = true;
		}
	}
}

function navigableElementUncheckMainContact(objectName){
	var activeElementNumber = navigableElementActiveElementIndex(navigableElementActiveElement(objectName));
	var i =0;
	while($('divNavigableElement_' + objectName + '_' + i)){
		if(i != activeElementNumber){$(objectName + '_' + i + '_principal').checked = false;}
		i++;
	}
	if($(objectName + '_' + activeElementNumber + '_principal').checked == false){
		var initValue = $(objectName + '_initPrincipal').value;
		if(initValue != ''){
			$(objectName + '_' + initValue + '_principal').checked = true;
		}
	}
}

/*******************************************************
********************************************************
* Onglets
********************************************************
*******************************************************/
function unselectOnglets(ongletActif, divOnglet) {
	/*Gestion des onglets*/
	for (i = 0; i < document.getElementsByTagName("td").length; i++) {
		if (document.getElementsByTagName("td")[i].id.indexOf("tdOnglet_") != -1) {
			//Cet onglet est-il celui de la recherche courante?
			if(document.getElementsByTagName("td")[i].className == "tabActifOnCourant" || document.getElementsByTagName("td")[i].className == "tabActifOffCourant" || document.getElementsByTagName("td")[i].className == "tabActifOffCourantOver"){
				document.getElementsByTagName("td")[i].className = "tabActifOffCourant";
				document.getElementsByTagName("td")[i].onmouseover = "this.className=\'tabActifOffCourantOver\'";
				document.getElementsByTagName("td")[i].onmouseout = "this.className=\'tabActifOffCourant\'";
			} else {
				document.getElementsByTagName("td")[i].className = "tabActifOff";
				document.getElementsByTagName("td")[i].onmouseover = "this.className=\'tabActifOffOver\'";
				document.getElementsByTagName("td")[i].onmouseout = "this.className=\'tabActifOff\'";
			}
		}
    }
	//Cet onglet est-il celui de la recherche courante?
	if($(ongletActif).className == "tabActifOffCourant"){
		$(ongletActif).className = "tabActifOnCourant";
	} else {
		$(ongletActif).className = "tabActifOn";
	}
	
	/*Gestion des Div correspondants*/
	for (i = 0; i < document.getElementsByTagName("div").length; i++) {
		if (document.getElementsByTagName("div")[i].id.indexOf("ivOnglet") > 0) {
			document.getElementsByTagName("div")[i].style.display = 'none';
		}
    }
	$(divOnglet).style.display = '';
}

function unselectSousOnglets(ongletActif, divOnglet) {
	/*Gestion des onglets*/
	for (i = 0; i < document.getElementsByTagName("td").length; i++) {
		if (document.getElementsByTagName("td")[i].id.indexOf("ous_onglet_") == 1) {
			
			//Cet onglet est-il celui de la recherche courante?
			if(document.getElementsByTagName("td")[i].className == "tabActifOnCourant" || document.getElementsByTagName("td")[i].className == "tabActifOffCourant" || document.getElementsByTagName("td")[i].className == "tabActifOffCourantOver"){
				document.getElementsByTagName("td")[i].className = "tabActifOffCourant";
				document.getElementsByTagName("td")[i].onmouseover = "this.className=\'tabActifOffCourantOver\'";
				document.getElementsByTagName("td")[i].onmouseout = "this.className=\'tabActifOffCourant\'";
			} else {
				document.getElementsByTagName("td")[i].className = "tabActifOff";
				document.getElementsByTagName("td")[i].onmouseover = "this.className=\'tabActifOffOver\'";
				document.getElementsByTagName("td")[i].onmouseout = "this.className=\'tabActifOff\'";
			}
		}
    }
	//Cet onglet est-il celui de la recherche courante?
	if($(ongletActif).className == "tabActifOffCourant"){
		$(ongletActif).className = "tabActifOnCourant";
	} else {
		$(ongletActif).className = "tabActifOn";
	}
	
	/*Gestion des Div correspondants*/
	for (i = 0; i < document.getElementsByTagName("div").length; i++) {
		if (document.getElementsByTagName("div")[i].id.indexOf("ivSousOnglet") > 0) {
			document.getElementsByTagName("div")[i].style.display = 'none';
		}
    }
	$(divOnglet).style.display = '';
}

function resetAdvancedSearchFilter(action, rechercheSimple, rechercheAvancee){
	if($('divOngletRecherche').style.display == ''){
		//L'onglet recherche simple est affichï¿½, on rï¿½initialise ce formulaire
		changeWindowLocation('main.php?action=' + action + '&saction=raz&type=' + rechercheSimple);
	} else if ($('divOngletRechercheAvancee').style.display == ''){
		//L'onglet recherche avancï¿½e est affichï¿½, on rï¿½initialise ce formulaire
		changeWindowLocation('main.php?action=' + action + '&saction=raz&type=' + rechercheAvancee);
	} else {
		//Aucun n'est affichï¿½, on rï¿½initialise le filtre actif
		for (i = 0; i < document.getElementsByTagName("td").length; i++) {
			if (document.getElementsByTagName("td")[i].id.indexOf("nglet_") == 1) {
				//Cet onglet est-il celui de la recherche courante?
				if(document.getElementsByTagName("td")[i].className == "tabActifOnCourant" || document.getElementsByTagName("td")[i].className == "tabActifOffCourant" || document.getElementsByTagName("td")[i].className == "tabActifOffCourantOver"){
					if(document.getElementsByTagName("td")[i].id.substr(document.getElementsByTagName("td")[i].id.length - 6) == 'simple'){
						changeWindowLocation('main.php?action=' + action + '&saction=raz&type=' + rechercheSimple);
					} else {
						changeWindowLocation('main.php?action=' + action + '&saction=raz&type=' + rechercheAvancee);
					}
				}
			}
	    }
	}
}
function resetSearchFilter(action, rechercheSimple){
	//L'onglet recherche simple est affichï¿½, on rï¿½initialise ce formulaire
	changeWindowLocation('main.php?action=' + action + '&saction=raz&type=' + rechercheSimple);
}

function selectActiveSearchFilter(){
	for (j = 0; j < document.getElementsByTagName("td").length; j++) {
//		if (document.getElementsByTagName("td")[j].id.indexOf("onglet_") == 1) {
			//Cet onglet est-il celui de la recherche courante?
			if(document.getElementsByTagName("td")[j].className == "tabActifOnCourant" 
					|| document.getElementsByTagName("td")[j].className == "tabActifOffCourant" 
					|| document.getElementsByTagName("td")[j].className == "tabActifOffCourantOver") {
				if(document.getElementsByTagName("td")[j].id.substr(document.getElementsByTagName("td")[j].id.length - 6) == 'Simple'){
					//Formulaire de recherche simple
					unselectOnglets('tdOnglet_divOngletRecherche_divOngletRechercheSimple', 'divOngletRechercheSimple');
				} else {
					//Formulaire de recherche avancee
					unselectOnglets('tdOnglet_divOngletRecherche_divOngletRechercheAvancee', 'divOngletRechercheAvancee');
				}
			}else{
				unselectOnglets('tdOnglet_divOngletRecherche_divOngletRechercheSimple', 'divOngletRechercheSimple');
			}
//		}
    }
}

/*******************************************************
********************************************************
* Recherche / Export
********************************************************
*******************************************************/
/*Recherche gï¿½nï¿½rique*/
function searchFieldFocus(object){
	object.style.color='#000000';
	object.style.fontStyle='normal';
	if(object.value == 'Recherche...'){
		object.value='';
	}
}

function searchFieldBlur(object){
	if(object.value == ''){
		object.style.color='#CCCCCC';
		object.style.fontStyle='italic';
		object.value='Recherche...';
	}
}

/* Dï¿½sactivation du ShowLoadingPopup */
function showLoadingPopupSetOff(){
	showLoadingPopup = false;
	setInterval('showLoadingPopup = true', 3000);
}

/* Affichage/Masquage de la div de recherche */
function showHideSearch() {
	var item = $("divSearch");
	if (item.style.display == "none") {
		showDiv("divSearch");
		//item.style.display = "";
	} else {
		item.style.display = "none";
	}
}

/* Affichage/Masquage de la div d'export */
function showHideExportExcel() {
	var item = $("divExportExcel");
	if (item.style.display == "none") {
		showDiv("divExportExcel");
	} else {
		hideDiv("divExportExcel");
	}
}

/* Affichage/Masquage de la div d'export Pdf */
function showHideExportPdf(entete) {
	if(entete){
		hideDiv("divExportPdfSansEntete");
		var item = $("divExportPdfAvecEntete");
		if (item.style.display == "none") {
			showDiv("divExportPdfAvecEntete");
		} else {
			hideDiv("divExportPdfAvecEntete");
		}
	}else{
		hideDiv("divExportPdfAvecEntete");
		var item = $("divExportPdfSansEntete");
		if (item.style.display == "none") {
			showDiv("divExportPdfSansEntete");
		} else {
			hideDiv("divExportPdfSansEntete");
		}
	}
}

/* Affichage/Masquage de la div d'export Word */
function showHideExportWord() {
	var item = $("divExportWord");
	if (item.style.display == "none") {
		showDiv("divExportWord");
	} else {
		hideDiv("divExportWord");
	}
}

/* Affichage/Masquage de la div de mail d'une pièce */
function showHideMailPiece() {
	var item = $("divMailPiece");
	if (item.style.display == "none") {
		showDiv("divMailPiece");
	} else {
		hideDiv("divMailPiece");
	}
}

/* Affichage/Masquage de la div d'export Word */
function showHideMailPiece() {
	var item = $("divMailPiece");
	if (item.style.display == "none") {
		showDiv("divMailPiece");
	} else {
		hideDiv("divMailPiece");
	}
}

/* Affichage/Masquage de la div de perso des requï¿½tes complexes */
function showHideRequete() {
	var item = $("divRequete");
	if (item.style.display == "none") {
		item.style.display = "";
	} else {
		item.style.display = "none";
	}
}

/* Affichage/Masquage de la div de Post-it */
function showHidePostIt() {
	var item = $("divPostIt");
	if (item.style.display == "none") {
		item.style.display = "";
	} else {
		item.style.display = "none";
	}
}

/* Affichage/Masquage d'une div */
function showHideDiv(divId) {
	var item = $(divId);
	if (item.style.display == "none") {
		item.style.display = "";
	} else {
		item.style.display = "none";
	}
}

/* Affichage/Masquage de la div de création d'un article */
function showHideCreationArticle() {
	var item = $("divCreationArticle");
	if (item.style.display == "none") {
		showDiv("divCreationArticle");
		//item.style.display = "";
	} else {
		item.style.display = "none";
	}
}

/* Select all */
function selectAllExport() {
	for (i = 0; i < document.getElementsByTagName("input").length; i++) {
        if (document.getElementsByTagName("input")[i].id.indexOf("b_export") > 0) {
            if (!document.getElementsByTagName("input")[i].disabled) {
                document.getElementsByTagName("input")[i].checked = true;
            }
        }
    }
}

/* Unselect all */
function unselectAllExport() {
	for (i = 0; i < document.getElementsByTagName("input").length; i++) {
        if (document.getElementsByTagName("input")[i].id.indexOf("b_export") > 0) {
            if (!document.getElementsByTagName("input")[i].disabled) {
                document.getElementsByTagName("input")[i].checked = false;
            }
        }
    }
}


/* Check all */
function cblCheckAll(item) {
	for (i = 0; i < document.getElementsByTagName("input").length; i++) {
        if (document.getElementsByTagName("input")[i].id.indexOf(item) >= 0) {
            if (!document.getElementsByTagName("input")[i].disabled) {
                document.getElementsByTagName("input")[i].checked = true;
            }
        }
    }
}

/* Uncheck all */
function cblUncheckAll(item) {
	for (i = 0; i < document.getElementsByTagName("input").length; i++) {
        if (document.getElementsByTagName("input")[i].id.indexOf(item) >= 0) {
            if (!document.getElementsByTagName("input")[i].disabled) {
                document.getElementsByTagName("input")[i].checked = false;
            }
        }
    }
}

/*******************************************************
********************************************************
* Export PDF
********************************************************
*******************************************************/
function showHideControlType(button){
	var inputs = document.getElementsByTagName('INPUT');
	for(var i=0; i<inputs.length; i++){
		if(inputs[i].type == 'radio' && inputs[i].name == 'cb_exportpdf'){
			if($('control_'+inputs[i].value)){
				$('control_'+inputs[i].value).style.display = 'none';
			}
		}
	}
	if($('control_'+button.value)){
		$('control_'+button.value).style.display = '';
	}
}

function submitFormExportPdf(form){
	var retour = isValidForm(form);
	
	if (retour == true){
		showLoadingPopupSetOff();
		return true;
	}else{
		return false;
	}
}

function submitFormMailPiece(form){
	var retour = isValidForm(form);
	
	if (retour == true){
		showLoadingPopupSetOff();
		return true;
	}else{
		return false;
	}
}

/*******************************************************
********************************************************
* VÃ©rification des champs
********************************************************
*******************************************************/
//Dï¿½claration des tableaux javascript contenant la liste des champs obligatoires
var requiredDDL = new Array();
var requiredDateBox = new Array();
var requiredTextBox = new Array();
var requiredFileUpload = new Array();
var requiredTextBoxMaj = new Array();
var requiredTextBoxUrl = new Array();
var requiredTextBoxDate = new Array();
var requiredTextBoxMail = new Array();
var requiredTextBoxTime = new Array();
var requiredTextBoxNumber = new Array();
var requiredDDLAutoComplete = new Array();


//Fonction de vérification du contenu des formulaires
function isValidForm(form){
	var formName = form.name;
	var requiredOk = true;
	var formatNumberOk = true;
	var formatDateOk = true;
	var formatTimeOk = true;
	var formatMailOk = true;
	var formatUrlOk = true;
	var formatMajOk = true;
	var i;
	hideAlertErr();
	
	// Réinitialisation des onglets
	resetOngletErreur();
	
	if($('DDLAutoCompleteOpen').value == '0'){
		//Vérification des champs textbox
		if(requiredTextBox[formName]){
			i = 0;
			while($(requiredTextBox[formName][i])){
				$(requiredTextBox[formName][i]).className = "tb";
				if($(requiredTextBox[formName][i]).value == ""){
					//alert('TB : '+requiredTextBox[formName][i]);
					requiredOk = false;
					$(requiredTextBox[formName][i]).className = "tbErreur";
					setOngletErreur(requiredTextBox[formName][i]);
				}
				i++;
			}
		}
		// Vérification des champs FileUpload
		if ( requiredFileUpload[formName] ) 
		{
			i = 0;
			while($(requiredFileUpload[formName][i]))
			{
				$(requiredFileUpload[formName][i]).className = "tb";
				if ($(requiredFileUpload[formName][i]).value == ""){
					//alert('FU :'+requiredFileUpload[formName][i]);
					requiredOk = false;
					$(requiredFileUpload[formName][i]).className = "tbErreur";
					setOngletErreur(requiredFileUpload[formName][i]);
				}
				i++;
			}
		}

		//Vérification des champs datebox
		if(requiredDateBox[formName]){
			i = 0;
			while($(requiredDateBox[formName][i])){
				$(requiredDateBox[formName][i]).className = "tb";
				if($(requiredDateBox[formName][i]).value == ""){
					//alert('DB : '+requiredDateBox[formName][i]);
					requiredOk = false;
					$(requiredDateBox[formName][i]).className = "tbErreur";
					setOngletErreur(requiredDateBox[formName][i]);
				}
				i++;
			}
		}

		//Vérification des champs DDLAutoComplete
		if(requiredDDLAutoComplete[formName]){
			i = 0;
			while($(requiredDDLAutoComplete[formName][i])){
				$(requiredDDLAutoComplete[formName][i]).className = "tbAutoComplete";
				if($(requiredDDLAutoComplete[formName][i]).value == "" || $(requiredDDLAutoComplete[formName][i]).value == "*"){
					//alert('DDLauto : '+requiredDDLAutoComplete[formName][i]);
					requiredOk = false;
					$(requiredDDLAutoComplete[formName][i]).className = "tbAutoCompleteErreur";
					setOngletErreur(requiredDDLAutoComplete[formName][i]);
				}
				i++;
			}
		}

		//Vérification des champs DDL
		if(requiredDDL[formName]){
			i = 0;
			while($(requiredDDL[formName][i])){
				$(requiredDDL[formName][i]).className = "ddl";
				if($(requiredDDL[formName][i]).value == 0){
					//alert('DDl : '+requiredDDL[formName][i]);
					requiredOk = false;
					$(requiredDDL[formName][i]).className = "ddlErreur";
					setOngletErreur(requiredDDL[formName][i]);
				}
				i++;
			}
		}

		if(!requiredOk){
			showAlertErr('required', '');
		} else {
			
			//Vérification des champs texte numï¿½riques
			if(requiredTextBoxNumber[formName]){
				i = 0;
				while($(requiredTextBoxNumber[formName][i])){
					$(requiredTextBoxNumber[formName][i]).className = "tb";
					if($(requiredTextBoxNumber[formName][i]).value != ""){
						if (isNaN(strToDbl($(requiredTextBoxNumber[formName][i]).value))) {
							$(requiredTextBoxNumber[formName][i]).className = "tbErreur";
							setOngletErreur(requiredTextBoxNumber[formName][i]);
							formatNumberOk = false;
						}
					}
					i++;
				}
			}
			if (!formatNumberOk) {
				showAlertErr('formatNumber', '');
			}

			//Vérification des champs texte date
			if(requiredTextBoxDate[formName]){
				i = 0;
				while($(requiredTextBoxDate[formName][i])){
					$(requiredTextBoxDate[formName][i]).className = "tb";
					if($(requiredTextBoxDate[formName][i]).value != ""){
						if (!isDate($(requiredTextBoxDate[formName][i]).value)) {
							//alert(requiredTextBoxDate[formName][i]);
							$(requiredTextBoxDate[formName][i]).className = "tbErreur";
							setOngletErreur(requiredTextBoxDate[formName][i]);
							formatDateOk = false;
						}
					}
					i++;
				}
			}
			if (!formatDateOk) {
				showAlertErr('formatDate', '');
			}

			//Vérification des champs texte time
			if(requiredTextBoxTime[formName]){
				i = 0;
				while($(requiredTextBoxTime[formName][i])){
					$(requiredTextBoxTime[formName][i]).className = "tb";
					if($(requiredTextBoxTime[formName][i]).value != ""){
						if (!isTime($(requiredTextBoxTime[formName][i]).value)) {
							$(requiredTextBoxTime[formName][i]).className = "tbErreur";
							setOngletErreur(requiredTextBoxTime[formName][i]);
							formatTimeOk = false;
						}
					}
					i++;
				}
			}
			if (!formatDateOk) {
				showAlertErr('formatTime', '');
			}
			
			//Vérification des champs texte mail
			if(requiredTextBoxMail[formName]){
				i = 0;
				while($(requiredTextBoxMail[formName][i])){
					$(requiredTextBoxMail[formName][i]).className = "tb";
					if($(requiredTextBoxMail[formName][i]).value != ""){
						if (!isMail($(requiredTextBoxMail[formName][i]).value)) {
							$(requiredTextBoxMail[formName][i]).className = "tbErreur";
							setOngletErreur(requiredTextBoxMail[formName][i]);
							formatMailOk = false;
						}
					}
					i++;
				}
			}
			if (!formatMailOk) {
				showAlertErr('formatMail', '');
			}
			
			//Vérification des champs texte url
			if(requiredTextBoxUrl[formName]){
				i = 0;
				while($(requiredTextBoxUrl[formName][i])){
					$(requiredTextBoxUrl[formName][i]).className = "tb";
					if($(requiredTextBoxUrl[formName][i]).value != ""){
						if (!isUrl($(requiredTextBoxUrl[formName][i]).value)) {
							$(requiredTextBoxUrl[formName][i]).className = "tbErreur";
							setOngletErreur(requiredTextBoxUrl[formName][i]);
							formatUrlOk = false;
						}
					}
					i++;
				}
			}
			if (!formatUrlOk) {
				showAlertErr('formatUrl', '');
			}
			
			//Vérification des champs texte en majuscule
			if(requiredTextBoxMaj[formName]){
				i = 0;
				while($(requiredTextBoxMaj[formName][i])){
					$(requiredTextBoxMaj[formName][i]).className = "tb";
					if($(requiredTextBoxMaj[formName][i]).value != ""){
						if (!isMAJ($(requiredTextBoxMaj[formName][i]).value)) {
							$(requiredTextBoxMaj[formName][i]).className = "tbErreur";
							setOngletErreur(requiredTextBoxMaj[formName][i]);
							formatMajOk = false;
						}
					}
					i++;
				}
			}
			if (!formatMajOk) {
				showAlertErr('formatMaj', '');
			}
		}
		return requiredOk && formatNumberOk && formatDateOk && formatTimeOk && formatMailOk && formatUrlOk && formatMajOk;
	} else {
		return false;
	}
}

function setOngletErreur(fieldId) {
	if ($(fieldId)) {
		// Récupération de l'ID du div de contenu de l'onglet : commence par "divOnglet"
		var myParent = $(fieldId).parentNode;
		var tdItem;
		
		while (myParent && myParent.id.indexOf('divOnglet') < 0 && myParent.tagName != 'FORM') {
			myParent = myParent.parentNode;
		}
		
		// Récupération de l'onglet du div : commence par "tdOnglet_", fini par "_[id du div]"
		for (var i=0; i < document.getElementsByTagName('td').length; i++) {
			tdItem = document.getElementsByTagName('td')[i];
			if (tdItem.id.indexOf('tdOnglet_') == 0 && tdItem.id.indexOf('_' + myParent.id) > 0) {
				if (tdItem.className.indexOf('Erreur') < 0) {
					tdItem.className += 'Erreur';
				}
				break;
			}
		}
	}
}

// Implémentation de la focntion document.getElementsByClassName si elle n'existe pas (par exemple dans IE)
if (!document.getElementsByClassName){
	document.getElementsByClassName = function(className, tag, elm){
		var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
		var tag = tag || "*";
		var elm = elm || document;
		var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
		var returnElements = [];
		var current;
		var length = elements.length;
		for(var i=0; i<length; i++){
			current = elements[i];
			if(testClass.test(current.className)){
				returnElements.push(current);
			}
		}
		return returnElements;
	}
}

function resetOngletErreur(idDiv) {
	// Récupération de l'onglet du div : commence par "tdOnglet_", fini par "_[id du div]"
	for (var j=0; j < document.getElementsByClassName('trOnglets').length; j++) {
		trOnglets = document.getElementsByClassName('trOnglets')[j];
		for (var i=0; i < trOnglets.getElementsByTagName('td').length; i++) {
			tdItem = trOnglets.getElementsByTagName('td')[i];
			// Reset seulement l'onglet du div renseigné s'il existe
			if(idDiv != undefined){
				if(tdItem.id.indexOf('_' + idDiv) > 0){
					tdItem.className = tdItem.className.replace('Erreur', '');
					break;
				}
			// Reset tous les onglets
			}else if (tdItem.id.indexOf('tdOnglet_') == 0) {
				tdItem.className = tdItem.className.replace('Erreur', '');
				//break;
			}
		}
	}
}

//LES AJOUTS
//Cette fonction permet d'alimenter le tableau qui liste les textbox obligatoires
function addRequiredTextBox(controlName){
	//alert(controlName);
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBox[formName])
			requiredTextBox[formName] = new Array();
		requiredTextBox[formName][requiredTextBox[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox numï¿½riques
function addRequiredTextBoxNumber(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxNumber[formName]) requiredTextBoxNumber[formName] = new Array();
		requiredTextBoxNumber[formName][requiredTextBoxNumber[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les fileUpload obligatoires
function addRequiredFileUpload(controlName) 
{
	if ($(controlName).form)
	{
		var formName = $(controlName).form.name;
		if ( !requiredFileUpload[formName] )
			requiredFileUpload[formName] = new Array();
		requiredFileUpload[formName][requiredFileUpload[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les datebox obligatoires
function addRequiredDateBox(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredDateBox[formName]) requiredDateBox[formName] = new Array();
		requiredDateBox[formName][requiredDateBox[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les DDLAutoComplete obligatoires
function addRequiredDDLAutoComplete(controlName){
	//alert('add ' + controlName);
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredDDLAutoComplete[formName]) requiredDDLAutoComplete[formName] = new Array();
		requiredDDLAutoComplete[formName][requiredDDLAutoComplete[formName].length] = controlName;		
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les DDL obligatoires
function addRequiredDDL(controlName){
	//alert(controlName);
	if($(controlName).form){
		var formName = $(controlName).form.name; 
		if(!requiredDDL[formName]) requiredDDL[formName] = new Array();
		requiredDDL[formName][requiredDDL[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox mail
function addRequiredTextBoxMail(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxMail[formName]) requiredTextBoxMail[formName] = new Array();
		requiredTextBoxMail[formName][requiredTextBoxMail[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox url
function addRequiredTextBoxUrl(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxUrl[formName]) requiredTextBoxUrl[formName] = new Array();
		requiredTextBoxUrl[formName][requiredTextBoxUrl[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox date
function addRequiredTextBoxDate(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxDate[formName]) requiredTextBoxDate[formName] = new Array();
		requiredTextBoxDate[formName][requiredTextBoxDate[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox en majuscules
function addRequiredTextBoxMaj(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxMaj[formName]) requiredTextBoxMaj[formName] = new Array();
		requiredTextBoxMaj[formName][requiredTextBoxMaj[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox time
function addRequiredTextBoxTime(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxTime[formName]) requiredTextBoxTime[formName] = new Array();
		requiredTextBoxTime[formName][requiredTextBoxTime[formName].length] = controlName;
	}
}

//LES SUPPRESSIONS
//Cette fonction permet d'enlever des elements du tableau qui liste les textbox obligatoires
function remRequiredTextBox(controlName){
	var temoin = true;
	if ($(controlName)) {
		$(controlName).className = "tb";
		if($(controlName).form){
			if(requiredTextBox[$(controlName).form.name]){
				while(temoin){
					var i = 0;
					temoin = false;
					while(requiredTextBox[$(controlName).form.name][i]){
						if(requiredTextBox[$(controlName).form.name][i] == controlName){
							requiredTextBox[$(controlName).form.name].splice(i,1);
							temoin = true;
						}
						i++;
					}
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les textbox de type numérique
function remRequiredTextBoxNumber(controlName){
	var temoin = true;
	$(controlName).className = "tb";
	if($(controlName).form){
		if(requiredTextBoxNumber[$(controlName).form.name]){
			while(temoin){
				var i = 0;
				temoin = false;
				while(requiredTextBoxNumber[$(controlName).form.name][i]){
					if(requiredTextBoxNumber[$(controlName).form.name][i] == controlName){
						requiredTextBoxNumber[$(controlName).form.name].splice(i,1);
						temoin = true;
					}
					i++;
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les textbox au format mail
function remRequiredTextBoxMail(controlName){
	var temoin = true;
	$(controlName).className = "tb";
	if($(controlName).form){
		if(requiredTextBoxMail[$(controlName).form.name]){
			while(temoin){
				var i = 0;
				temoin = false;
				while(requiredTextBoxMail[$(controlName).form.name][i]){
					if(requiredTextBoxMail[$(controlName).form.name][i] == controlName){
						requiredTextBoxMail[$(controlName).form.name].splice(i,1);
						temoin = true;
					}
					i++;
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les datebox obligatoires
function remRequiredDateBox(controlName){
	var temoin = true;
	if ($(controlName)) {
		$(controlName).className = "tb";
		if($(controlName).form){
			if(requiredDateBox[$(controlName).form.name]){
				while(temoin){
					var i = 0;
					temoin = false;
					while(requiredDateBox[$(controlName).form.name][i]){
						if(requiredDateBox[$(controlName).form.name][i] == controlName){
							requiredDateBox[$(controlName).form.name].splice(i,1);
							temoin = true;
						}
						i++;
					}
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les ddl autocomplete obligatoires
function remRequiredDDLAutoComplete(controlName){
	//alert('rem ' + controlName);
	var temoin = true;
	if ($(controlName)) {
		$(controlName).className = "tbAutoComplete";
		if($(controlName).form){
			if(requiredDDLAutoComplete[$(controlName).form.name]){
				while(temoin){
					var i = 0;
					temoin = false;
					while(requiredDDLAutoComplete[$(controlName).form.name][i]){
						if(requiredDDLAutoComplete[$(controlName).form.name][i] == controlName){
							requiredDDLAutoComplete[$(controlName).form.name].splice(i,1);
							temoin = true;
						}
						i++;
					}
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les ddl obligatoires
function remRequiredDDL(controlName){
	var temoin = true;
	if ($(controlName)) {
		$(controlName).className = "ddl";
		if($(controlName).form){
			if(requiredDDL[$(controlName).form.name]){
				while (temoin) {
					var i = 0;
					temoin = false;
					while(requiredDDL[$(controlName).form.name][i]){
						if(requiredDDL[$(controlName).form.name][i] == controlName){
							requiredDDL[$(controlName).form.name].splice(i,1);
							temoin = true;
						}
						i++;
					}
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les fileupload obligatoires
function remRequiredFileUpload(controlName){
	var temoin = true;
	$(controlName).className = "tb";
	if($(controlName).form){
		if(requiredFileUpload[$(controlName).form.name]){
			while(temoin){
				var i = 0;
				temoin = false;
				while(requiredFileUpload[$(controlName).form.name][i]){
					if(requiredFileUpload[$(controlName).form.name][i] == controlName){
						requiredFileUpload[$(controlName).form.name].splice(i,1);
						temoin = true;
					}
					i++;
				}
			}
		}
	}
}



/**
 * Vérification du format d'une date
 */
function isDate(dateStr) {
	if (dateStr == "") {
		return true; // date is valid
	} else {
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
	
		if (matchArray == null) {
			return false;
		}
	
		day = matchArray[1];
		month = matchArray[3];
		year = matchArray[5];
	
		if (month < 1 || month > 12) { // check month range
			return false;
		}
		if (day < 1 || day > 31) {
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			return false;
		}
		if (month == 2) { // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) {
				return false;
			}
		}
		return true; // date is valid
	}
}

/*************************************************************
**************************************************************
* Comparaison entre deux dates 
**************************************************************
**************************************************************/
/**
 * Fonction qui permet de comparer entre deux dates.
 * On suppose que la date entrée a été validée auparavant
 * au format dd/mm/yyyy.
 * 
 * Retourne un entier :
 *  0 si Date1=Date2,
 *  1 si Date1>Date2,
 * -1 si Date1<Date2	
 */
function compareDate(Date1, Date2){
	var DureeDate1 = Date.parse(Date1);
	var DureeDate2 = Date.parse(Date2);

	var iComparaison= DureeDate1 - DureeDate2;

	return (iComparaison==0?iComparaison:iComparaison/Math.abs(iComparaison));
}

/**
 * Vérification du format d'une heure
 */
function isTime(timeStr) {
	var timePat = /^(\d{1,2})(:)(\d{1,2})$/;
	var matchArray = timeStr.match(timePat); // is the format ok?

	if (matchArray == null) {
		return false;
	}
	return true; // time is valid
}

/**
 * Vérification du format d'un mail
 */
function isMail(email) {
	/*var verifMail = /([a-z0-9]+([-_]?[a-z0-9]+)*.)*[a-z0-9]+([-_]?[a-z0-9]+)*@([a-z0-9]+([-_]?[a-z0-9]+)*.)+[a-z]{2,4}/gi;
	if (verifMail.exec(email) == null) {
		return false;
	}
	return true;*/
	arrMail = email.split('@');
	if (arrMail.length != 2 || arrMail[0].length == 0) {
		return false;
	} else {
		arrMailDomaine = arrMail[1].split('.');
		if (arrMailDomaine.length <= 1 || arrMailDomaine[0].length == 0 || arrMailDomaine[1].length == 0) {
			return false;
		}
	}
	return true;
}

/**
 * Vérification du format d'une url
 */
function isUrl(url) {
	var verif = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	if (verif.exec(url) == null) {
		return false;
	}
	return true;
}

$motif_url=("^^http://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*)?(.[a-zA-Z0-9]{1,4})?$");

/**
 * Vérification du format d'une chaine de caractï¿½re en majuscule sans accent
 */
function isMAJ(chaine)
{
	var test = '';
	var ok = true;
	for (i = 0 ; i < chaine.length ; i++ )
	{
		ok = ok && (65 <= chaine.charCodeAt(i)) && (chaine.charCodeAt(i) <= 90);
		//test = test + ' ;; ' +  chaine[i] + ':' + chaine.charCodeAt(i)  ; 
	}
	//alert(chaine + ' :: long ' + chaine.length + ' :: valid ' + ok + ' : valeurs '+ test);
	return ok;
}

/*************************************************************
**************************************************************
* Vérification des couleurs des lignes d'un tableau
**************************************************************
**************************************************************/
/**
 * Fonction qui permet de vérifier les couleurs des lignes
 * d'un tableau et de faire une MAJ si nécéssaire
 * 
 * Params :
 * tableName désigne le nom du tableau à vérifier, ce champ est obligatoire.	
 * trIdPrefix désigne l'id des tr du tableau, ce champ est obligatoire.
 * trIdSuffix désigne le suffix de l'id des tr du tableau s'il existe, ce champ n'est pas obligatoire.
 * lineRemovedIdPrefix désigne l'id des indicateurs de suppression d'une ligne, ce champ est obligatoire.
 * ligneRomovedIdSuffix désigne le suffix de l'id des indicateurs de suppression d'une ligne s'il existe, ce champ n'est pas obligatoire.
 * 
 */
function checkUpdateRowColors(tableName, trIdPrefix, trIdSuffix, lineRemovedIdPrefix, ligneRomovedIdSuffix) {
	if(trIdSuffix == undefined) trIdSuffix = '';
	if(ligneRomovedIdSuffix == undefined) ligneRomovedIdSuffix = '';
	var elm = document.getElementById(tableName);
	var rowNum = elm.rows.length - 1;
	var classColor = 'ligne1';
	var trCourante;
	for (i = 1; i <= rowNum; i++) {
		trCourante = $(trIdPrefix + i + trIdSuffix);
		// Si la ligne est visible
		if ($(lineRemovedIdPrefix + i + ligneRomovedIdSuffix).value == 0) {
			// Si la ligne est de la même couleur que la ligne précédente
			if (trCourante.className == classColor) {
				if (trCourante.className == 'ligne1') {
					trCourante.className = 'ligne2';
				} else {
					trCourante.className = 'ligne1';
				}
			}
			classColor = trCourante.className;
		}
	}
}
//MAJ des couleurs des lignes d'un tableau
function tableUpdateColors(id){
	var pos = 0;
	var pos2 = 0;
	var myPos = 0;
	var elm = document.getElementById(id);
	var tr = elm.getElementsByTagName('TR');
	
	while(tr[pos]){
		if(tr[pos].id && tr[pos].style.display == ''){
			if(pos2 % 2 == 0) tr[pos].className = 'ligne1';
			else tr[pos].className = 'ligne2';
			pos2++;
		}
		pos++;
	}
}

/*******************************************************
********************************************************
* Gestion du navigateur et des coordonnees de la souris
********************************************************
*******************************************************/
var mouseX = 0;
var mouseY = 0;
var IE = document.all?true:false;
//****************************************************************************
//if (!IE) document.captureEvents(Event.MOUSEMOVE);
//document.onmousemove = getMouseCoordinates;
//à remplacer par le code suivant :
if (!IE) document.addEventListener('mousemove', getMouseCoordinates, false);
//****************************************************************************
function getMouseCoordinates(event) {
	if (document.all) {
		mouseX = window.event.clientX;
		mouseY = window.event.clientY;;
	} else {
		mouseX = event.pageX;
		mouseY = event.pageY;
	}
}

function getBrowser(){
	var detect = navigator.userAgent.toLowerCase();
    var OS,browser,version,total,thestring;

    if (checkIt('konqueror'))
    {
    	browser = "Konqueror";
    	OS = "Linux";
    }
    else if (checkIt('safari')) browser = "Safari";
    else if (checkIt('omniweb')) browser = "OmniWeb";
    else if (checkIt('opera')) browser = "Opera";
    else if (checkIt('webtv')) browser = "WebTV";
    else if (checkIt('icab')) browser = "iCab";
    else if (checkIt('msie')) browser = "Internet Explorer";
    else if (!checkIt('compatible'))
    {
    	browser = "Netscape Navigator";
    	version = detect.charAt(8);
    }
    else browser = "An unknown browser";
    return browser;
}

function checkIt(string){
	var detect = navigator.userAgent.toLowerCase();
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

function getWindowHeight() {
    var h = 0;
    if (typeof(window.innerHeight) == 'number') { // Netscape
        h = window.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        h = document.documentElement.clientHeight;
    } else if (document.body && document.body.offsetHeight) { //client
        h = document.body.offsetHeight;
    }
    return h;
}

function getDocumentHeight() {
    if (document.all) 
        return document.body.offsetHeight;
    else if (document.layers)
        return document.body.document.height;
}

function getWindowWidth() {
    var w = 0;
    if (typeof(window.innerWidth) == 'number') { // Netscape
        w = window.innerWidth;
    } else if (document.documentElement && document.documentElement.clientWidth) {
        w = document.documentElement.clientWidth;
    } else if (document.body && document.body.offsetWidth) { //client
        w = document.body.offsetWidth;
    }
    return w;
}

/*************************************************************
**************************************************************
* Compte le nombre d'items selectionnes dans une CheckBoxListe
**************************************************************
**************************************************************/
function countItemsByName(item) {

	var nbItems = 0;
	for (i = 0; i < document.getElementsByTagName("input").length; i++) {
		if (document.getElementsByTagName("input")[i].name == item && document.getElementsByTagName("input")[i].checked == true) {
			nbItems++;
		}
	}
	document.getElementById('nb_' + item).innerHTML = nbItems;

}

/*************************************************************
**************************************************************
* Parsing du résultat d'une requete ajax  
**************************************************************
**************************************************************/
/**
 * Retourne un tableau : [0] = le code HTML, [1] = un tabeau de javascript
 * @param _source : source de la response Ajax
 * @return
 */
function parseAjaxScript(_source) {
	var source = _source;
	var scripts = new Array();
	
	// Strip out tags
	while(source.indexOf("<script") > -1 || source.indexOf("</script") > -1) {
		var s = source.indexOf("<script");
		var s_e = source.indexOf(">", s);
		var e = source.indexOf("</script", s);
		var e_e = source.indexOf(">", e);
		
		// Add to scripts array
		scripts.push(source.substring(s_e+1, e));
		// Strip from source
		source = source.substring(0, s) + source.substring(e_e+1);
	}
	
	// Return the cleaned source
	var result = new Array();
	result[0] = source;
	result[1] = scripts;
	return result;
}
/**
 * Execute les lignes du tableau de scripts
 * @param scripts : tableau de scripts javascript
 * @return
 */
function executeJS(scripts) {
	//var scripts = ajaxResult[1];
	for(var i=0; i<scripts.length; i++) {
		try {
			//alert(scripts[i]);
			eval(scripts[i]);
		}
		catch(ex) {
			// do what you want here when a script fails
			alert("Une erreur est survenue dans executeJS pour : " + scripts[i]);
		}
	}
}


/*******************************************************
********************************************************
* END OF FILE
********************************************************
*******************************************************/
