/*******************************************************
* FICHIER JAVASCRIPT 
* NOTE SD : Triï¿½ par ordre alphabï¿½tique de rubrique,
* 3 sauts de lignes entre chaque rubrique,
* entï¿½te standardisï¿½e
*******************************************************/
var diapoDelay = 5000;
//var fadeInDelay = 500; // Nécessite l'include de jquery.min.js + var $j = jQuery.noConflict(); (cf reponse.php)
//var fadeOutDelay = 1000;

/*******************************************************
********************************************************
* _Generique
********************************************************
*******************************************************/
//Cette fonction renvoie à partir de son id, la valeur texte sélectionnée dans une dropdown
function DDLSelectedText(ddlId){
	return $(ddlId).options[$(ddlId).selectedIndex].text;
}

function StringtoXML(text){
    if (window.ActiveXObject){
      var doc=new ActiveXObject('Microsoft.XMLDOM');
      doc.async='false';
      doc.loadXML(text);
    } else {
      var parser=new DOMParser();
      var doc=parser.parseFromString(text,'text/xml');
    }
    return doc;
}

function $(item) {
	return document.getElementById(item);
}

function displayArray(item) {
	var strArray = '';
	for (var i = 0; i < item.length; i++) {
		strArray += item[i] + ', ';
	}
	alert(strArray);
}

// Dimensionement de la div de contenu scrollable
function contenuSetSize() {
	// Hauteur du header
	var headerHeight = 104;
	var contenuHeight = getWindowHeight() - headerHeight;
	$('contenuDiv').style.height = contenuHeight + 'px';
}

function barCodeLoader(evt, contexte){
	if(!showBarCodePopup){
		var keyCode = 0;
		if(navigator.appName == "Microsoft Internet Explorer"){
			keyCode = 
			    document.layers ? evt.which :
			    document.all ? event.keyCode :
			    document.getElementById ? evt.keyCode : 0;
		}else{
			keyCode = evt.keyCode;
		}
		
		if(keyCode == 113 && contexte != ''){
			if(contexte == 'int_facture'){
				//FACTURE
				showBarCodePopup = true;
				timerBarCode = setInterval('autoBarCodeSetFree()', 6000);
				$('divBarCode').style.left = (getWindowWidth() / 2) - 125 + 'px';
				$('divBarCode').style.top = (getWindowHeight() / 2) + 'px';
				$('divBarCode').style.display = '';
				$('generique_code_barre').value = '';
				$('generique_code_barre').focus();
			} else if(contexte == 'int_stock') {
				//STOCK
				if($('prd_numserie') || $('stk_newnumserie')){
					if($('prd_numserie')){
						$('prd_numserie').value = '';
						v$('prd_numserie').focus();
					} else {
						//SD : pourquoi un champ nommé différemment pour la duplication? alourdit la page
						$('stk_newnumserie').value = '';
						$('stk_newnumserie').focus();
					}
				} else {
					$('barCodeErrorMessage').innerHTML = $('generique_selectionner_produit_avant').value;
					$('divBarCodeNone').style.left = (getWindowWidth() / 2) - 125 + 'px';
					$('divBarCodeNone').style.top = (getWindowHeight() / 2) + 'px';
					$('divBarCodeNone').style.display = '';
					$('barCodeSpacer').focus();
					
				}
			} else if(contexte == 'int_produit_ref') {
				//REFERENCE PRODUIT
				$('ref_codebarre').value = '';
				$('ref_codebarre').focus();
			}
		} else if(keyCode == 113 && contexte == ''){
			$('divBarCodeNone').style.left = (getWindowWidth() / 2) - 125 + 'px';
			$('divBarCodeNone').style.top = (getWindowHeight() / 2) + 'px';
			$('divBarCodeNone').style.display = '';
			$('barCodeSpacer').focus();
		}
	}
}

function manageBarCode(contexte){
	//Appel Ajax...
	switch(contexte){
		case 'int_facture':
			var cl1Id = parseInt($('cl1_id').value);
			var numSerie = $('generique_code_barre').value;
			AJAXRequest("main.php?action=ajx_stock_numero_serie&labIdCourant=" + globalLabIdCourant, "cl1Id=" + cl1Id + "&nsrNum=" + numSerie, ajaxUpdateBarCode);
			break;
		case 'int_stock':
			if($('prd_numserie')){
				alert('On peut discuter');
			} else {
				alert('Oublie-moi');
			}
			break;
	}
	//...Et retour de focus
	$('generique_code_barre').value='';
	$('generique_code_barre').focus();
	
}

function ajaxUpdateBarCode(xhr){
	if(trim(getXhrValue(xhr, 'prdid')) != ''){
		var numLigne = 0;
		
		//Ajout du produit
		numLigne = factureAddProduitFrequent(trim(getXhrValue(xhr, 'nblignemax')), trim(getXhrValue(xhr, 'prdid')), trim(getXhrValue(xhr, 'prdcode')), trim(getXhrValue(xhr, 'numserie')));
	}
}

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 getParamValeur(param){
	switch(param){
		//Etats d'appareils
		case 'AppareilEtat-AutreLabo' : return 1;
		case 'AppareilEtat-Porte' : return 3;
		case 'AppareilEtat-Rendu' : return 62;
		case 'AppareilEtat-Precommande' : return 363;
		case 'AppareilEtat-Devis' : return 399;
		case 'AppareilEtat-EnEssai' : return 2;
		case 'AppareilEtat-Abandonne' : return 810;
		case 'AppareilEtat-Nouveau' : return 0;
	
	    //Motifs de sortie de stock
		case 'StockMotifSortie-Vendu' : return 352;
	
	    //Types de produits
	    case 'ProduitType-Aucun' : return 0;
	    case 'ProduitType-Accessoire' : return 302;
	    case 'ProduitType-Appareil' : return 304;
	    case 'ProduitType-Consommable' : return 385;
	    case 'ProduitType-Embout' : return 384;
	    case 'ProduitType-Prestation' : return 305;
	    case 'ProduitType-Piece' : return 306;
	    case 'ProduitType-Pile' : return 303;
	
	    //Types de facures
	    case 'FactureType-Devis' : return 360;
	    case 'FactureType-Facture' : return 361;
	    case 'FactureType-Avoir' : return 362;
	
	    //Côtés d'oreilles
	    case 'ClientOreille-Gauche' : return 137;
	    case 'ClientOreille-Droite' : return 138;
	    case 'ClientOreille-Autre' : return 139;
	
	    //Types d'entites pour les adresses
	    case 'EntiteType-Banque' : return 1;
	    case 'EntiteType-Client' : return 2;
	    case 'EntiteType-Caisse' : return 3;
	    case 'EntiteType-Labo' : return 4;
	    case 'EntiteType-Medecin' : return 5;
	    case 'EntiteType-Fournisseur' : return 6;
	    case 'EntiteType-Produit' : return 7;
	    case 'EntiteType-Mutuelle' : return 8;
	
	    //Types d'intervenants
	    case 'IntervenantType-Audio' : return 232;
	
	    //Types de règlements
	    case 'ReglementType-Annulation' : return 218;
	    case 'ReglementType-Reglement' : return 219;
	    case 'ReglementType-Remboursement' : return 220;
	    case 'ReglementType-Acompte' : return 221;
	
	    //Moyens de reglements
	    case 'ReglementMoyen-Especes' : return 309;
	    case 'ReglementMoyen-Virement' : return 310;
	    case 'ReglementMoyen-Cheque' : return 311;
	    case 'ReglementMoyen-CreditClient' : return 312;
	    case 'ReglementMoyen-CreditOrganisme' : return 313;
	    case 'ReglementMoyen-CarteBancaire' : return 315;
	    case 'ReglementMoyen-Avoir' : return 319;
	    case 'ReglementMoyen-Inconnu' : return 320;
	
	    //Types de Statistiques
	    case 'StatType-Medecin' : return 436;
	    case 'StatType-Utilisateur' : return 437;
	    case 'StatType-CP' : return 438;
	    case 'StatType-Produit' : return 439;
	    case 'StatType-Marque' : return 440;
	    case 'StatType-Labo' : return 441;
	    case 'StatType-Ligne' : return 446;
	    case 'StatType-TrancheAge' : return 453;
	
	    //Motifs de mouvements de stock
	    case 'MvtStockMotif-Entree' : return 364;
	    case 'MvtStockMotif-Sortie' : return 365;
	    case 'MvtStockMotif-Facturation' : return 366;
	    case 'MvtStockMotif-MiseEnEssai' : return 425;
	    case 'MvtStockMotif-Avoir' : return 426;
	    case 'MvtStockMotif-RetourEssai' : return 427;
	    case 'MvtStockMotif-TransfertLabo' : return 445;
	    case 'MvtStockMotif-TransfertLaboRecep' : return 454;
	    case 'MvtStockMotif-Entree' : return 564;
	
	    //Alertes
	    case 'AlerteCaisse' : return 474;
	    case 'AlerteCheques' : return 475;
	    case 'AlerteCommandes' : return 476;
	    case 'AlerteRendezVous' : return 477;
	    case 'AlerteSeuilStk' : return 478;

	    //Statuts sociaux
	    case 'StatutSocial-AssureSocial'	:	return 190;
	    case 'StatutSocial-AyantDroit'	:	return 191;
	    case 'StatutSocial-SansCouverture'	:	return 192;
	    
	    //Relation assure
	    case 'ClientRelationAssure-Enfant'	:	return 189;
	    case 'ClientRelationAssure-Assure'	:	return 455;
	    
	    //Etat des annonces
	    case 'ArticleEtat-EnAttente'	:	return 647;
	    case 'ArticleEtat-Accepte'	:	return 648;
	    case 'ArticleEtat-Refuse'	:	return 649;
	    
	    //Types de gestion des article_contact
	    case 'ArticleContactTypeGestion-Traiter' : return 661;
	    case 'ArticleContactTypeGestion-Transferer' : return 662;
	    
	    //Types de pièces jointes sur des paragraphes
	    case 'ArticleParagrapheTypePieceJointe-Aucun' : return 701;
	    case 'ArticleParagrapheTypePieceJointe-Fichier' : return 702;
	    case 'ArticleParagrapheTypePieceJointe-LienObjet' : return 703;
	    case 'ArticleParagrapheTypePieceJointe-Diaporama' : return 752;
	    
	    //Types de lien sur les illustrations des paragraphes
	    case 'ArticleParagrapheDocLienType-Aucun' : return 704;
	    case 'ArticleParagrapheDocLienType-Url' : return 705;
	    case 'ArticleParagrapheDocLienType-ArticleInterne' : return 706;
	    
	    //Pays
	    case 'France' : return 1;
	    case 'Suisse' : return 2;
	    
		default: return 0;
	}
}

function ShowHideDiv(div){
	if($(div).style.display == 'none') $(div).style.display = '';
	else $(div).style.display = 'none';
}

function setInitFocus(){
	var rechercheAvancee = false;
	switch(location.href.substring(location.href.indexOf("?")+1, location.href.length).substring(0, location.href.substring(location.href.indexOf("?")+1, location.href.length).indexOf("&")).substring(location.href.substring(location.href.indexOf("?")+1, location.href.length).substring(0, location.href.substring(location.href.indexOf("?")+1, location.href.length).indexOf("&")).indexOf("=")+1)){
		/*****************
		** Cas intranet	**
		*****************/
		case 'int_appareils':
			if($('divOngletRecherche')){
				if($('divOngletRecherche').style.display == ''){if($('recherche_cl1_code')){$('recherche_cl1_code').focus();}}
				else if($('divOngletRechercheAvancee').style.display == ''){rechercheAvancee = true;}
			}
			break;
		case 'int_caisses':
			if($('divOngletRecherche').style.display == ''){if($('recherche_cai_nom')){$('recherche_cai_nom').focus();}}
			break;
		case 'int_client':
			if($('cl1_nom') && $('textboxcl1_nom_inputPart')){if($('textboxcl1_nom_inputPart').style.display == ''){$('cl1_nom').focus();}}
			else if($('cl1_nom') && !$('textboxcl1_nom_inputPart')) {$('cl1_nom').focus();}
			break;
		case 'int_clients':
			if($('divOngletRecherche')){
				if($('divOngletRecherche').style.display == ''){if($('recherche_cl1_nom')){$('recherche_cl1_nom').focus();}}
				else if($('divOngletRechercheAvancee').style.display == ''){rechercheAvancee = true;}
			}
			break;
		case 'int_commandes':
			if($('divOngletRecherche').style.display == ''){if($('recherche_prd_id')){$('recherche_prd_id').focus();}}
			break;
		case 'int_facture':
			if(location.href.indexOf("cli_id=") < 0 && location.href.substring(location.href.indexOf('fac_id=')+7, location.href.indexOf('fac_id=')+8) == '0' && $('cl1_idDDL')){
				$('cl1_idDDL').focus();
			}
			break;
		case 'int_factures':
			if($('divOngletRecherche')){
				if($('divOngletRecherche').style.display == ''){if($('recherche_cl1_code')){$('recherche_cl1_code').focus();}}
				else if($('divOngletRechercheAvancee').style.display == ''){rechercheAvancee = true;}
			}
			break;
		case 'int_fournisseurs':
			if($('divOngletRecherche').style.display == ''){if($('recherche_fou_nom')){$('recherche_fou_nom').focus();}}
			break;
		case 'int_fses':
			if($('divOngletRecherche').style.display == ''){if($('recherche_num_fac')){$('recherche_num_fac').focus();}}
			break;
		case 'int_medecins':
			if($('divOngletRecherche').style.display == ''){if($('recherche_med_nom')){$('recherche_med_nom').focus();}}
			break;
		case 'int_planning_liste':
			if($('divOngletRecherche').style.display == ''){if($('recherche_cli_idDDL')){$('recherche_cli_idDDL').focus();}}
			break;
		case 'int_produits':
			if($('divOngletRecherche').style.display == ''){if($('recherche_prd_code')){$('recherche_prd_code').focus();}}
			break;
		case 'int_reglements':
			if($('divOngletRecherche')){
				if($('divOngletRecherche').style.display == ''){if($('recherche_cl1_nom')){$('recherche_cl1_nom').focus();}}
			}
			break;
		case 'int_savs':
			if($('divOngletRecherche')){
				if($('divOngletRecherche').style.display == ''){if($('recherche_sav_nom')){$('recherche_sav_nom').focus();}}
				else if($('divOngletRechercheAvancee').style.display == ''){rechercheAvancee = true;}
			}
			break;
		case 'int_stocks':
			if($('divOngletRecherche').style.display == ''){if($('recherche_prd_code')){$('recherche_prd_code').focus();}}
			break;
			
			/*****************
			** Login    	**
			*****************/
		case 'login':
			if($('login_email')){$('login_email').focus();}
			break;
		default:
			break;
	}
	if(rechercheAvancee){
		if($('divSousOngletRechercheAvanceeClient').style.display == ''){
			if($('recherche_avancee_CLI_cl1_code')){$('recherche_avancee_CLI_cl1_code').focus();}
		}
	}
}



/*******************************************************
********************************************************
* _Modèles de lettre
********************************************************
*******************************************************/
function highLightField(idField){
	//Désactivation des autres fields
	for (i = 0; i < document.getElementsByTagName("div").length; i++) {
		if(document.getElementsByTagName("div")[i].className.indexOf("ModeleActive") > 0){
			document.getElementsByTagName("div")[i].className = 'divModeleUnactive';
		}
	}
	
	//activation du field sélectionné
	$(idField).className = 'divModeleActive';
	copy_to_clipboard($(idField).innerHTML);
}

function copy_to_clipboard(text){  
	return true;
}

function lettreRebuildField(id){
	$(id).value = id;
}
//Gestion du délai de libération des champs de fusion
var timerFusion;
var idFusion = null;
function raiseFusion(id){
	//Uniquement pour compatibilité IE
	if (window.ActiveXObject) {
		idFusion = id;
		timerFusion = setInterval('autoFusionsetFree()', 1000);
	}
}
function autoFusionsetFree(){
    var content = idFusion;
    if(content.indexOf('###',0) >= 0){
    	content = content.substring(0, content.length - 1);
    	$(idFusion).style.display = 'none';
    	$(content).value = content;
    	$(content).style.display = '';
    } else {
    	$(idFusion).style.display = 'none';
    	$(idFusion + '#').value = content;
    	$(idFusion + '#').style.display = '';
    }
    clearInterval(timerFusion);
    idFusion = null;
}

var timerServiceEntendre3;
function setServiceEntendre3Available(){
	timerServiceEntendre3 = setInterval("timerServiceEntendre3Release()", 3000);
	try {
		AJAXRequest('http://localhost:8092/getVersion', '', getServiceEntendre3AvailableReturn);
	}catch(err) {
		//N'a pas eu l'autorisation d'exécuter une requête externe, ne pourra donc pas dialoguer
		//avec le service, on le notifie donc au niveau de la session
		AJAXRequest('main.php?action=ajx_service_set_available', 'serviceAvailable=0', setServiceEntendre3AvailableReturn);
	}
}

function getServiceEntendre3AvailableReturn(xhr) {
	var value = getXhrValue(xhr,'EntendreVersion');
	if (value != undefined && value != '') {
		//Le service a répondu, il est bien installé sur la machine
		AJAXRequest('main.php?action=ajx_service_set_available', 'serviceAvailable=1', setServiceEntendre3AvailableReturn);
		//On teste que l'objet est bien présent sur la page (pas obligé : noah peut être activé seul)
		if($('iconVitale')){
			$('iconVitale').style.display = '';
		}
	} else {
		//Le service n'a pas répondu, il n'est pas installé sur la machine
		AJAXRequest('main.php?action=ajx_service_set_available', 'serviceAvailable=0', setServiceEntendre3AvailableReturn);
	}
}

function setServiceEntendre3AvailableReturn(xhr){
	return 0;
}

function timerServiceEntendre3Release(){
	clearInterval(timerServiceEntendre3);
	globalPageHome = false;
	//Si le loading div est toujours visible, on le libère pour donner accès à la page
	if($('loadingJS')){
		$('loadingJS').style.display = 'none';
	}
}

function ShowDivDuplicationLettre(){
	$('divDuplicationLettre').style.left = (getWindowHeight(getWindowWidth)/1.5 - (300/2)) + 'px';
	$('divDuplicationLettre').style.top = getWindowHeight() - (0.5*getWindowHeight()) + 'px';
	$('divDuplicationLettre').style.display = '';
	$('let_nouveau_nom').focus();
}

function HideDivDuplicationLettre(){
	$('divDuplicationLettre').style.display = 'none';
}


/*******************************************************
********************************************************
* Aide
********************************************************
*******************************************************/
var decalageHelpX = 10; 
var decalageHelpY = 5;
function showHelp(item) {
	//alert(mouseX);
	$(item).style.display = '';
	//alert(getOffset($(item))[0]);
	//alert(getOffset($(item))[1]);
	//alert($('icon' + item).style.top);
	$(item).style.left = (mouseX + decalageHelpX) + 'px';
	$(item).style.top = (mouseY + decalageHelpY) + 'px';
	//$(item).style.left = (getOffset($(item))[0] + decalageHelpX) + 'px';
	//alert($(item).style.left);
	if (window.event) {
		// IE : hauteur de la fenêtre + hauteur du scroll
		///COMMENT SD//$(item).style.top = (mouseY + decalageHelpY + document.documentElement.scrollTop) + 'px';
		//$(item).style.top = (getOffset($(item))[1] + decalageHelpY + document.documentElement.scrollTop) + 'px';
	} else {
		///COMMENT SD//$(item).style.top = (mouseY + decalageHelpY) + 'px';
		//$(item).style.top = (getOffset($(item))[1] + decalageHelpY) + 'px';
	}
	//$(item).style.display = '';
	showDiv(item);
}
function hideHelp(item) {
	hideDiv(item);
}

function showDiv(item) {
	$(item).style.display = "";
	//$j("#" + item).fadeIn(fadeInDelay);
	
	// Décalage à gauche si on sort à droite
	//alert(getOffset($(item))[0] + ' - ' + getSize($(item))[0] + ' - ' + getWindowWidth());
	if (getOffset($(item))[0] + getSize($(item))[0] > getWindowWidth() - 10) {
		$(item).style.left = (getWindowWidth() - getSize($(item))[0] - 10) + "px";
		decalage = 0;
		while (getOffset($(item))[0] + getSize($(item))[0] > getWindowWidth() - 20 && decalage < 500) {
			decalage += 10;
			$(item).style.left = (getWindowWidth() - getSize($(item))[0] - 10 - decalage) + "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";
	}
	//alert(getOffset($(item))[0]);
}
function showDivCenter(item) {
	// Centrage de la div
	$(item).style.display = '';
	//$j("#" + item).fadeIn(fadeInDelay);
	var posX = (getWindowWidth() - getSize($(item))[0])/2;
	//alert(posX);
	$(item).style.left = posX + 'px';
	$(item).style.top = '100px';
	
	// Affichage de la div
	showDiv(item);
}

function hideDiv(item) {
	if ($(item)) {
		$(item).style.display = "none";
		//$j("#" + item).fadeOut(fadeOutDelay);
	}
}
var aideEnligne = false;
function showHideAideEnLigne(action) {
	if($('divAlerteNouvelleAideEnLigne')){
		$('divAlerteNouvelleAideEnLigne').style.display = 'none';
		aideAppelee = true;
	}
	if ($('divAideEnLigne').style.display == '') {
		hideDiv('divAideEnLigne');
	} else {
		showDiv('divAideEnLigne');
		if (!aideEnligne) {
			aideEnligne = true;
			ajaxGetAideEnLigne(action);
		}
	}
}
function hideAideEnLigne() {
	hideDiv('divAideEnLigne');
}
function ajaxGetAideEnLigne(action){
	var action = 'main.php?action=ajx_article&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 = '';
	}
}
/*******************************************************
********************************************************
* 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 openAlertSemiRequiredConfirm(formName) {
	$('semiRequiredForm').value = formName;
	$("alertSemiRequiredConfirmBG").style.display = "";
	$("alertSemiRequiredConfirmWin").style.display = "";
	setButtonOKFocus("alertSemiRequiredConfirmWin");
}
function closeAlertSemiRequiredConfirm() {
	$('semiRequiredForm').value = '';
	$("alertSemiRequiredConfirmBG").style.display = "none";
	$("alertSemiRequiredConfirmWin").style.display = "none";
}
function semiAlertSubmitForm() {
	var formName = $('semiRequiredForm').value;
	if(formName != ''){
		//Exceptions?
		if(formName == 'formDetailFacture'){
			closeAlertSemiRequiredConfirm();
			adjustFacture(document.formDetailFacture, $('facturation_nb_ligne_max').value, true);
		} else {
			document.forms[formName].submit();
		}
	} else {
		//Erreur pas de form à valider
		//...
	}
}


function closeAlertErrorTexte() { 
	$("alertErrorTexteBG").style.display = "none";
	$("alertErrorTexteWin").style.display = "none";
}
function closeAlertConfirm() { 
	$("alertConfirmBG").style.display = "none";
	$("alertConfirmWin").style.display = "none";
}
function closeAlertInfo() { 
	$("alertInfoBG").style.display = "none";
	$("alertInfoWin").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 closeDivPourcentage() { 
	$("divPourcentage").style.display = "none";
}*/

/*
function closeAlertJSErr() { 
	$("alertJSErr").style.display = "none";
}
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();
}*/


/*******************************************************
********************************************************
* Calculatrice
********************************************************
*******************************************************/
function calculatriceVerification(entree) {
	var seulement_ceci ="0123456789[]()-+*%/.";
	var returnValue = true; 
	for(var i = 0; i < entree.length; i++){
		if(seulement_ceci.indexOf(entree.charAt(i))<0 ){
			returnValue = false;
		}
	}
	return returnValue;
}

function calculatriceResultat() {
	var x = 0;
	if(calculatriceVerification($('calculatriceAffichage').value)){
		x = eval($('calculatriceAffichage').value);
	}
	$('calculatriceAffichage').value = x;
}

function calculatriceAjouter(caracteres) {
	$('calculatriceAffichage').value = $('calculatriceAffichage').value + caracteres; 
}

function calculatriceReset(){
	$('calculatriceAffichage').value = '';
}



/*******************************************************
********************************************************
* Champs lockés
********************************************************
*******************************************************/
function unLock(objectName){
	$('textbox' + objectName + '_divPart').style.display = 'none';
	$('textbox' + objectName + '_inputPart').style.display = '';
}


/*******************************************************
********************************************************
* Clients
********************************************************
*******************************************************/
function caisseDivMutuelle(){
	if($('cai_caisse').checked == true){
		$('mut_num').style.display = '';
	}else{
		$('mut_num').style.display = 'none';
	}
}



/*******************************************************
********************************************************
* Clients
********************************************************
*******************************************************/
function clientRetourCreation(){
	$('divDoublonClient').style.display = 'none';
	$('divDetailClient').style.display = '';
	$('cl1_malgre_doublon').value = 0;
}

function getInfoFidelite(cl1Id, cl1Date){	
	AJAXRequest("main.php?action=ajx_client_fidelite&cl1_id=" + cl1Id + "&cl1_fidelite_date=" + cl1Date, '', ajaxgetClientFidelite);
}

function ajaxgetClientFidelite(xhr){
	var strSortie = '';
	if(trim(getXhrValue(xhr, 'valide')) != ''){
		if(getXhrValue(xhr, 'liste') != ''){
			var contenu = getXhrValue(xhr, 'liste');
			if(contenu.indexOf('||||') > 0){
				var tabLignes = contenu.split('ETET');
				var tabElems = null;
				var i = 0;
				var j = 0;
				var total = 0;
				strSortie = '<table border="0" width="595"><tr><td>Facture</td><td>Montant TTC</td><td>Produit</td><td>Quantite</td></tr>';
				for(i=0;i<tabLignes.length;i++){
					strSortie += '<tr>';
					tabElems = tabLignes[i].split('||||');
					for(j=0;j<tabElems.length;j++){
						if(j == 1 || j == 3){align = ' align="right"';}else{align = '';}
						strSortie += '<td' + align + '>' + tabElems[j] + '</td>';
						if(j == 1){
							total += parseFloat(tabElems[j]);
						}
					}
					strSortie += '</tr>';
				}
				strSortie += '<tr><td colspan="">TOTAL</td><td align="right">' + total.toFixed(2) + '</td><td colspan="2"></td></tr>';
				strSortie += '<tr><td colspan="4">&nbsp;</td></tr></table>';
			} else {
				strSortie = contenu;
			}
		}
		
		$('divInfoFideliteText').innerHTML = strSortie;
	}
	return 0;
}



/*******************************************************
********************************************************
* 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){
		messageErreurText(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
		messageErreurText(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 = "";
function confirmOK() {
	// Mise à jour de la valeur du champ
	if(confirmFieldName != ''){
		eval("document." + confirmFormName + "." + confirmFieldName + ".value =  " + confirmValue);
	}
	// Submit du formulaire
	eval("document." + confirmFormName + ".submit()");
}
function confirmClose() {
	$("confirmDiv").style.display = "none";
}
function closeDiv(div) {
	$(div).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() {
	// 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";
}*/


/*******************************************************
********************************************************
* Confirmation avant remplacement fichier dans document
********************************************************
*******************************************************/
function documentBeforeSubmit(){
	if($('doc_id').value > 0){
		if($('doc_chemin') && $('doc_chemin').value != ''){
			messageConfirmOKAnnuler('generique_confirmer_modif_fichier', 'formDetail', 'modif_fichier', 1);
			return false;
		}else{
			return isValidForm(document.formDetail);
		}
	}else{
		return isValidForm(document.formDetail);
	}
}

/*******************************************************
********************************************************
* Gestion des champs obligatoires de la recherche client pour la date de forfait client
********************************************************
*******************************************************/
function ManageClientSearchRequired(){
	if($('recherche_cl1_forfait_date_mois').value == "0" && $('recherche_cl1_forfait_date_annee').value == "0"){
		remRequiredDDL('recherche_cl1_forfait_date_mois');
		remRequiredDDL('recherche_cl1_forfait_date_annee');
	} else {
		addRequiredDDL('recherche_cl1_forfait_date_mois');
		addRequiredDDL('recherche_cl1_forfait_date_annee');
	}
}
// Commenté par JB le 12.05.2010 : lourd et inutile (géré dans textarea.php)
/*
function updateTextAreaCounter(){
	var forms = document.getElementsByTagName('form');

	for(var i = 0; i < forms.length; i++){

		for(var j = 0; j < forms[i].elements.length; j++){
			
			if(document.forms[i].elements[j].type == 'textarea'){
				var name = forms[i].elements[j].name;
				var tmpname = 'restcar'+name;
				var max_length = document.getElementById(tmpname).innerHTML;
				CKCount(document.forms[i].elements[j], max_length, name, "Vous avez atteint le nombre maximum de caractères autorisés.");
			}
		}
	}
}
*/



/*******************************************************
********************************************************
* Constantes
********************************************************
*******************************************************/
function getOngletActif(form) {
	//Le formulaire est-il correct?
	var valid = isValidForm(form);
	var idNbEcheances = $('nbEcheances').value;
	var idMontantMiniEcheances = $('montantMiniEcheances').value;
	var nbMinPaiementNbEcheance = parseInt($('nbMinPaiementNbEcheance').value);
	var nbMaxPaiementNbEcheance = parseInt($('nbMaxPaiementNbEcheance').value);
	$(idNbEcheances).className = 'tb';
	$(idMontantMiniEcheances).className = 'tb';
	
	if(parseInt($(idNbEcheances).value) >= nbMinPaiementNbEcheance
	&& parseInt($(idNbEcheances).value) <= nbMaxPaiementNbEcheance){
		if(parseInt($(idMontantMiniEcheances).value) >= 30){
			if(valid == true){
				//Formulaire OK, test de l'onglet actif
				var retour = -1;
				if(document.getElementById('divOngletGeneral').style.display == '') retour = 1;
				if(document.getElementById('divOngletDevisFacture').style.display == '') retour = 2;
				if(document.getElementById('divOngletAbonnement').style.display == '') retour = 3;
				if(document.getElementById('divOngletEtiquettes').style.display == '') retour = 4;
			
				//Récupération de la valeur de l'onglet actif pour réaffichage
				$('onglet_actif').value = retour;
				
				//Retour, formulaire OK
				return true;
			}else{
				//Le contenu du formulaire n'est pas correct
				return false;
			}
		} else {
			//Le montant mini des echeances est mauvais
			$(idMontantMiniEcheances).className = 'tbErreur';
			messageErreur('constantes_erreur_montant_mini_echeance');
			return false;
		}
	} else {
		//La valeur du nombre d'échéances est mauvais
		$(idNbEcheances).className = 'tbErreur';
		messageErreur('constantes_erreur_nb_echeance');
		return false;
	}
}




/*******************************************************
********************************************************
* Gestion des droits
********************************************************
*******************************************************/
function ShowHideActionGroupe(divToShow)
{
	HideAllActionGroupe();
	if(divToShow > 0){
		$("div_actg_"+divToShow).style.display = '';
		//$('actg_submit').style.display = '';
		$('actgId').value = divToShow;
	} else {
		for (i = 0; i < document.getElementsByTagName("div").length; i++) {
			if(document.getElementsByTagName("div")[i].id.indexOf("div_actg_") == 0)
				document.getElementById(document.getElementsByTagName("div")[i].id).style.display = '';
		}
	}
}

function HideAllActionGroupe(){
	for (i = 0; i < document.getElementsByTagName("div").length; i++) {
		if(document.getElementsByTagName("div")[i].id.indexOf("div_actg_") == 0)
			document.getElementById(document.getElementsByTagName("div")[i].id).style.display = 'none';
	}
	//$('actg_submit').style.display = 'none';
}



/*******************************************************
********************************************************
* Google Map
********************************************************
*******************************************************/
var googleMapMap = null;
var googleMapGeocoder = null;
var googleMapScale = 14;

//Cette fonction affiche une carte Google à partir d'une adresse postale
function googleMapShowAddress(address) {
	//Initialisation de la carte Google
	googleMapInitialize(0, 0, googleMapScale, "detail_google_map");
	
	//Transformation de l'adresse en coordonnées
	googleMapGeocoder.geocode( { 'address': address}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK) {
			//Positionnement de la carte
			googleMapMap.setCenter(results[0].geometry.location);
			//Appel du marqueur
			googleMapPutMarker(results[0].geometry.location);
		}
    });
}

//Cette fonction affiche une carte Google à partir d'une paire latitue-longitude
function googleMapShowCoordinates(coordonnees) {
	//Interprétation des coordonnées
	tbCoord = coordonnees.split(',');
	//Initialisation de la carte Google
	googleMapInitialize(parseFloat(tbCoord[0]), parseFloat(tbCoord[1]), googleMapScale, "detail_google_map");
	//Appel du marqueur
	googleMapPutMarker(new google.maps.LatLng(parseFloat(tbCoord[0]), parseFloat(tbCoord[1])));
}

//Cette fonction initialise une carte Google
function googleMapInitialize(x, y, scale, mapId) {
	//Instanciation de l'objet global googleMap
	googleMapGeocoder = new google.maps.Geocoder();
	//Création d'un objet Coordonnées Google
    var latlng = new google.maps.LatLng(x, y);
    //Paramétrage de la carte
    var myOptions = {zoom: scale, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP}
    //Alimentation du div de la page html
    googleMapMap = new google.maps.Map(document.getElementById(mapId), myOptions);
}

//Cette fonction pose un "marqueur" sur la carte Google en cours de traitement
function googleMapPutMarker(coordinates){
	//Création de l'objet MarkerImage
	var image = new google.maps.MarkerImage('img/_favicon.png',
      new google.maps.Size(20, 32),	//taille du marqueur
      new google.maps.Point(0,0),	//Origine de l'image
      new google.maps.Point(0, 32)	//Ancre de l'image
	);
	
	//Création du marqueur
	var marker = new google.maps.Marker({
        map: googleMapMap, 
        position: coordinates,
        icon: image
    });
}



/*******************************************************
********************************************************
* Header
********************************************************
*******************************************************/
function showHideLogin() {
	if ($("login").style.display == "") {
		$("login").style.display = "none";
	} else {
		$("login").style.display = "";
		$("login_email").focus();
	}
}



/*******************************************************
********************************************************
* Horaires
********************************************************
*******************************************************/
function horairesSupLigne(ligne){
	$('supLigneHorDebut').value = $('old_hor_debut_' + ligne).value;
	$('supLigneHorFin').value = $('old_hor_fin_' + ligne).value;
	$('supLigneIpId').value = $('old_ip_id_' + ligne).value;
	
	//$('confirmDivSupHoraire').style.display = '';
	messageConfirmDelete('formSupHoraire', '', '');
}

/*******************************************************
********************************************************
* Présences
********************************************************
*******************************************************/
function savePresenceException() {
	if (isValidForm(document.formExceptionSet)) {
		document.formExceptionSet.submit();
	}
}

function presenceCheckDates(item) {
	var strDateDeb = document.formExceptionSet.prx_date_deb.value;
	var strDateFin = document.formExceptionSet.prx_date_fin.value;
	if (strDateDeb != '' && strDateFin != '') {
		var arrDateDeb = strDateDeb.split('/'); 
		var arrDateFin = strDateFin.split('/'); 
		
		var dtmDateDeb = new Date(arrDateDeb[2], arrDateDeb[1], arrDateDeb[0]);
		var dtmDateFin = new Date(arrDateFin[2], arrDateFin[1], arrDateFin[0]);
		
		if (dtmDateDeb.getTime() == dtmDateFin.getTime()) {
			presenceCheckPeriodeFin(item);
		} else if (dtmDateDeb.getTime() > dtmDateFin.getTime()) {
			if (item == 0) {
				// Date deb modifiée
				document.formExceptionSet.prx_date_fin.value = document.formExceptionSet.prx_date_deb.value;
			} else {
				// Date fin modifiée
				document.formExceptionSet.prx_date_deb.value = document.formExceptionSet.prx_date_fin.value;
			}
			presenceCheckPeriodeFin(item);
		}			
	} else if (strDateDeb != '') {
		document.formExceptionSet.prx_date_fin.value = document.formExceptionSet.prx_date_deb.value;
		presenceCheckPeriodeFin(item);
	} else if (strDateFin != '') {
		document.formExceptionSet.prx_date_deb.value = document.formExceptionSet.prx_date_fin.value;
		presenceCheckPeriodeFin(item);
	}
}

function presenceCheckPeriodeFin(item) {
	if (document.formExceptionSet.prx_date_deb.value == document.formExceptionSet.prx_date_fin.value) {
		if (item == 0) {
			// Check début midi
			if (document.formExceptionSet.prm_id_periode_deb2.checked) {
				document.formExceptionSet.prm_id_periode_fin2.checked = true;
			}
		} else {
			// Check fin midi
			if (document.formExceptionSet.prm_id_periode_fin1.checked) {
				document.formExceptionSet.prm_id_periode_deb1.checked = true;
			}
		}
	}
}

/*******************************************************
********************************************************
* Méthodes de calcul
********************************************************
*******************************************************/

function methodeShowLine(){
	$('div_sup2').style.display = '';
	$('div_sup1').style.display = 'none';

	$('div_coef2').style.display = '';
	$('div_coef1').style.display = 'none';
	
	$('div_action2').style.display = '';
	$('div_action1').style.display = 'none';
	$('last_line').value = 0;
}

function methodeHideLine(){
	$('sup_0').value = '0,00';
	$('coef_0').value = '0,00';
	$('div_sup2').style.display = 'none';
	$('div_sup1').style.display = '';

	$('div_coef2').style.display = 'none';
	$('div_coef1').style.display = '';
	
	$('div_action2').style.display = 'none';
	$('div_action1').style.display = '';
	$('last_line').value = 1;
}


/*******************************************************
********************************************************
* Marques
********************************************************
*******************************************************/
function checkedMarque(val) {
	switch($('lfm_ok_'+val).checked){
		case true:
//			$('lfm_defaut_'+val).checked = true;
			break;
		case false:
			$('lfm_defaut_'+val).checked = false;
			break;
	}
}

function checkedDefaultMarque(val){
	switch($('lfm_defaut_'+val).checked){
	case true:
		$('lfm_ok_'+val).checked = true;
		break;
	}
}



/*******************************************************
********************************************************
* 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{
		messageInfoText('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"){
					messageErreurText("Impossible de supprimer cet &eacute;l&eacute;ment car c'est une adresse principale.");
				}else{
					messageConfirmDelete($(objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete').form.name, objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete', 1)
				}
			break;
			
			case 2:
				if(navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) == "1"){
					messageErreurText("Impossible de supprimer cet &eacute;l&eacute;ment car c'est un contact principal.");
				}else{
					messageConfirmDelete($(objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete').form.name, objectName + '_' + navigableElementActiveElementIndex(navigableElementActiveElement(objectName)) + '_delete', 1)
				}
			break;
		}
	} else {
		messageErreurText("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("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"){
				document.getElementsByTagName("td")[i].className = "tabActifOffCourant";
				document.getElementsByTagName("td")[i].onmouseover = "this.className=\'tabActifOffCourantOver\'";
				document.getElementsByTagName("td")[i].onmouseout = "this.className=\'tabActifOffCourant\'";
			} else {
				if(document.getElementsByTagName("td")[i].className != "tabInactif"){
					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, searchSet){
	if(searchSet){
		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, rechercheAvancee, searchSet){
	//L'onglet recherche simple est affiché, on réinitialise ce formulaire
	if(searchSet){changeWindowLocation('main.php?action=' + action + '&saction=raz&type=' + rechercheSimple);}
}

function selectActiveSearchFilter(){
	var temoin = false;
	for (j = 0; j < document.getElementsByTagName("td").length; j++) {
		if (document.getElementsByTagName("td")[j].id.indexOf("onglet_") == 0 && !temoin) {
			//Cet onglet est-il celui de la recherche courante?
			if(document.getElementsByTagName("td")[j].className == "tabActifOnCourant" && !temoin || document.getElementsByTagName("td")[j].className == "tabActifOffCourant" && !temoin || document.getElementsByTagName("td")[j].className == "tabActifOffCourantOver" && !temoin){
				temoin = true;
				if(document.getElementsByTagName("td")[j].id.substr(document.getElementsByTagName("td")[j].id.length - 6) == 'simple'){
					//Formulaire de recherche simple
					unselectOnglets('onglet_onglet_recherche_simple', 'divOngletRecherche');
				} else {
					//Formulaire de recherche avancee
					unselectOnglets('onglet_onglet_recherche_avancee', 'divOngletRechercheAvancee');
				}
			}else{
				unselectOnglets('onglet_onglet_recherche_simple', 'divOngletRecherche');
			}
		}
    }
}



/*******************************************************
********************************************************
* 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', 10000);
}

/* Affichage/Masquage de la div de recherche */
function showHideSearch() {
	var item = $("divSearch");
	if (item.style.display == "none") {
		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() {
	var item = $("divExportPdf");
	if (item.style.display == "none") {
		showDiv("divExportPdf");
	} else {
		hideDiv("divExportPdf");
	}
}

/*Activation / Désactivation de la checkbox association trame*/
function pdfManageAssociationTrame(state){
	$('cb_associer_trame').checked = state;
	$('cb_associer_trame').disabled = !state;
}

/* 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";
	}
}

/* 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 checkAll(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 uncheckAll(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;
	}
}

/*******************************************************
********************************************************
* Requêtes
********************************************************
*******************************************************/
function manageRequeteAction(){
	$('requeteSave').style.display = 'none';
	$('requeteRestore').style.display = 'none';
	$('requeteDelete').style.display = 'none';
	$('divRequeteSave').style.display = 'none';
	switch(parseInt($('requete_action').value)){
		case 1:
			$('requeteSave').style.display = '';
			break;
		case 2:
			$('divRequeteSave').style.display = '';
			break;
		case 3:
			$('requeteRestore').style.display = '';
			break;
		case 4:
			$('requeteDelete').style.display = '';
			break;
	}
}

function saveRestoreSearchFilter(){
	//Reinitialisation des valeurs
	var typeAction = $('requete_action').value;
	$('requete_nom').value = '';
	$('req_nom').value = 0;
	$('requete_id').value = 0;
	$('req_id').value = 0;
	$('req_del').value = 0;
	
	if(parseInt(typeAction) == 1){
		//Sauver sous
		$('requete_nom').value = $('form_req_nom').value;
		$('req_nom').value = 1;
	} else if(parseInt(typeAction) == 2){
		//Sauver
		$('req_update').value = 1;
	} else if(parseInt(typeAction) == 3){
		//Restaurer
		$('requete_id').value = $('form_req_id').value;
		$('req_id').value = 1;
	} else {
		//Supprimer
		$('req_del').value = 1;
		$('requete_id').value = $('form_req_id_supp').value;
		$('req_id').value = 1;
	}
	//Et validation du formulaire
	document.formSearchAvance.submit();	
}

function checkRequeteName(){
	//Fonction appellée par le onChange de la DDLAutoComplete
	var reqNom = $('form_req_nom').value;

	//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("main.php?action=ajx_requete", "reqNom=" + reqNom, ajaxUpdateRequete);	
}

//Fonction appelée en asynchrone sur retour du flux
function ajaxUpdateRequete(xhr) {
	if(getXhrValue(xhr, 'valide') != ''){
		if(parseInt(getXhrValue(xhr, 'existe')) == 0){
			//Pas de doublon, on enregistre
			saveRestoreSearchFilter();
		} else {
			//Doublon, on propose d'écraser
			$('divNameRequete').innerHTML = '<b>' + $('form_req_nom').value + '</b>. ' + $('requeteRemplacementMessage').value; 
			$('requeteSave').style.display = 'none';
			$('requeteReplace').style.display = '';
		}
	}
}

function requeteRenommer(){
	$('requeteSave').style.display = '';
	$('requeteReplace').style.display = 'none';
}

function requeteEcraser(){
	$('requete_action').value = 2;
	saveRestoreSearchFilter();
}






/*******************************************************
********************************************************
* TIPS
********************************************************
*******************************************************/

function ChangeImage(div){
	if($(div).style.display == 'none') $(div).style.display = '';
	else $(div).style.display = 'none';
}


/*******************************************************
********************************************************
* Gestion du navigateur et des coordonnï¿½es de la souris
********************************************************
*******************************************************/
var mouseX = 0;
var mouseY = 0;
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMouseCoordinates;

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 sï¿½lectionnï¿½s 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 requête 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;
}
/**
 * Exécute 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
		}
	}
}


function checkedDefautLabo(){
	var inputs = document.getElementsByTagName('input');
	for(i=0; i<inputs.length; i++){
		if(inputs[i].type == 'radio'){
			if(inputs[i].checked){
				$('lul_ok_'+inputs[i].value).checked = true;
			}
		}
	}
}

function closeUtiAlert(){
	$("utiAlertConfirmBG").style.display = "none";
	$("utiAlertConfirmWin").style.display = "none";
}

function showPassword(){
	$('showPassword1').style.display = 'none';
	$('showPassword2').style.display = '';
}

function alerteOnClick(alerte){
	var prmId;
	if(alerte == 0){
		//Initialisation des champs obligatoires
		var inputs = document.getElementsByTagName('INPUT');
		for(var i = 0; i < inputs.length; i++){
			if(inputs[i].type == 'checkbox' && inputs[i].id.indexOf('lua_ok_') > -1){
				prmId = inputs[i].id.substr(7, 3);
				if($('prm_alerte_' + prmId)){
					if(inputs[i].checked){
						addRequiredDDL('prm_alerte_' + prmId);
					}else{
						remRequiredDDL('prm_alerte_' + prmId);
					}
				}
			}
		}
	}else{
		//Clic sur une checkbox
		switch(alerte){
			case '711': //Anniversaire appareil
				if($('lua_ok_' + alerte).checked){
					//On rend obligatoire le parametre
					addRequiredDDL('prm_alerte_' + alerte);
				}else{
					//Le parametre n'est pas obligatoire
					remRequiredDDL('prm_alerte_' + alerte);
				}
			break;
			default:
			break;
		}
	}
}


/*************************************************************
**************************************************************
* Généralité - validation du formulaire avec vérification
**************************************************************
**************************************************************/
function submitForm(form){
	var valid = isValidForm(form);
	
	if(valid == true){
		if(form.name == 'formProd') UnlockedForm(form.name);
		eval("document."+ form.name + ".submit();");
	}
}


//Fonction permetant de modifier le format du champs numsecu lors du focus
function onFocusNumSecu(name){
	var value = $(name).value;
	value = value.replace(/\s+/g,"");
	$(name).value = value;
}

/*************************************************************
**************************************************************
* Div de création d'un client - Vérification des champs
**************************************************************
**************************************************************/
// Cette fonction affiche le bloc de création d'un client
function showDivClientCreation(id){
	//$('divClientCreation').style.left = (getWindowHeight(getWindowWidth)/1.5 - (300/2)) + 'px';
	//$('divClientCreation').style.top = getWindowHeight() - (0.2*getWindowHeight()) + 'px';
	if(id != -1){
		showDivCenter('divClientCreation' + id);
	} else {
		showDivCenter('divClientCreation');
	}
	//$('divClientCreation' + id).style.display = '';
	
}

// Cette fonction masque le bloc de création d'un client
function hideDivClientCreation(id) {
	if(id != -1){
		remRequiredDDL('cl1_creation_civilite_' + id);
		remRequiredTextBox('cl1_creation_nom_' + id);
		remRequiredTextBox('cl1_creation_prenom_' + id);
		remRequiredDateBox('cl1_creation_date_naissance_' + id);
	
		$('cl1_creation_civilite_' + id).options[0].selected = true;
		$('cl1_creation_nom_' + id).value = '';
		$('cl1_creation_prenom_' + id).value = '';
		$('cl1_creation_date_naissance_' + id).value = '';
	
		clientManageRequiredCreationFields(id);
		
		$('divClientCreation' + id).style.display = 'none';
	} else {
		remRequiredDDL('cl1_creation_civilite');
		remRequiredTextBox('cl1_creation_nom');
		remRequiredTextBox('cl1_creation_prenom');
		remRequiredDateBox('cl1_creation_date_naissance');
	
		$('cl1_creation_civilite').options[0].selected = true;
		$('cl1_creation_nom').value = '';
		$('cl1_creation_prenom').value = '';
		$('cl1_creation_date_naissance').value = '';
	
		clientManageRequiredCreationFields(id);
		
		$('divClientCreation').style.display = 'none';
	}
}

// Cette fonction gère les champs obligatoires du pavé informations assuré
function clientManageRequiredCreationFields(id){
	// Au moins un champ du bloc est-elle renseignée?
	if(id != -1){
		if ($('cl1_creation_civilite_' + id).selectedIndex != 0
				|| $('cl1_creation_nom_' + id).value != ''
				|| $('cl1_creation_prenom_' + id).value != ''
				|| $('cl1_creation_date_naissance_' + id).value != '') {
			// Tous les champs de l'encart sont obligatoire mais pas la ddl du client assuré
			addRequiredDDL('cl1_creation_civilite_' + id);
			addRequiredTextBox('cl1_creation_nom_' + id);
			addRequiredTextBox('cl1_creation_prenom_' + id);
			addRequiredDateBox('cl1_creation_date_naissance_' + id);
		} else {
			// Tous les champs de l'encart sont facultatifs mais pas la ddl du client assuré qui est obligatoire
			remRequiredDDL('cl1_creation_civilite_' + id);
			remRequiredTextBox('cl1_creation_nom_' + id);
			remRequiredTextBox('cl1_creation_prenom_' + id);
			remRequiredDateBox('cl1_creation_date_naissance_' + id);
		}
	} else {
		if ($('cl1_creation_civilite').selectedIndex != 0
				|| $('cl1_creation_nom').value != ''
				|| $('cl1_creation_prenom').value != ''
				|| $('cl1_creation_date_naissance').value != '') {
			// Tous les champs de l'encart sont obligatoire mais pas la ddl du client assuré
			addRequiredDDL('cl1_creation_civilite');
			addRequiredTextBox('cl1_creation_nom');
			addRequiredTextBox('cl1_creation_prenom');
			addRequiredDateBox('cl1_creation_date_naissance');
		} else {
			// Tous les champs de l'encart sont facultatifs mais pas la ddl du client assuré qui est obligatoire
			remRequiredDDL('cl1_creation_civilite');
			remRequiredTextBox('cl1_creation_nom');
			remRequiredTextBox('cl1_creation_prenom');
			remRequiredDateBox('cl1_creation_date_naissance');
		}
	}
}

//Cette fonction gère les champs obligatoires de la création d'un client dans le planning
function clientManageRequiredCreationFieldsPlanning(id){
	// Au moins un champ du bloc est-elle renseignée?
	if(id != -1){
		if ($('cl1_creation_civilite_' + id).selectedIndex != 0
				|| $('cl1_creation_nom_' + id).value != ''
				|| $('cl1_creation_prenom_' + id).value != '') {
			// Tous les champs de l'encart sont obligatoire mais pas la ddl du client assuré
			addRequiredDDL('cl1_creation_civilite_' + id);
			addRequiredTextBox('cl1_creation_nom_' + id);
			addRequiredTextBox('cl1_creation_prenom_' + id);
		} else {
			// Tous les champs de l'encart sont facultatifs mais pas la ddl du client assuré qui est obligatoire
			remRequiredDDL('cl1_creation_civilite_' + id);
			remRequiredTextBox('cl1_creation_nom_' + id);
			remRequiredTextBox('cl1_creation_prenom_' + id);
		}
	} else {
		if ($('cl1_creation_civilite').selectedIndex != 0
				|| $('cl1_creation_nom').value != ''
				|| $('cl1_creation_prenom').value != '') {
			// Tous les champs de l'encart sont obligatoire mais pas la ddl du client assuré
			addRequiredDDL('cl1_creation_civilite');
			addRequiredTextBox('cl1_creation_nom');
			addRequiredTextBox('cl1_creation_prenom');
		} else {
			// Tous les champs de l'encart sont facultatifs mais pas la ddl du client assuré qui est obligatoire
			remRequiredDDL('cl1_creation_civilite');
			remRequiredTextBox('cl1_creation_nom');
			remRequiredTextBox('cl1_creation_prenom');
		}
	}
}

/*************************************************************
**************************************************************
* Stats
**************************************************************
**************************************************************/
function statsSearch() {
	if (isValidForm(document.formSearch)) {
		document.formSearch.submit();
	}
}

/*************************************************************
**************************************************************
* Stats back office : gestion de l'affichage des labos en fonction des groupements
**************************************************************
**************************************************************/
function statsGroupementChange() {
	var itemGro;
	var itemLab;

	// Décochage de tous les labos
	for (var i = 0; i < document.getElementsByTagName('input').length; i++) {
		itemLab = document.getElementsByTagName('input')[i];
		if (itemLab.id.indexOf('recherche_gro_lab_ids') == 0) {
			itemLab.checked = false;
		}
	}
	// Cochage des labo des groupements cochés
	for (var i = 0; i < document.getElementsByTagName('input').length; i++) {
		itemGro = document.getElementsByTagName('input')[i];
		if (itemGro.id.indexOf('recherche_gro_ids') == 0) {
			if (itemGro.checked) {
				// Pour chaque gropement coché
				for (var j = 0; j < document.getElementsByTagName('input').length; j++) {
					itemLab = document.getElementsByTagName('input')[j];
					if (itemLab.id.indexOf('recherche_gro_lab_ids') == 0) {
						if (itemLab.value.split('_')[0] == itemGro.value) {
							itemLab.checked = true;
						}
					}
				}
			}
		}
	}
}



/*************************************************************
**************************************************************
* Labo back office
**************************************************************
**************************************************************/
function laboAccepterModif() {
	document.formLaboAccepter.submit();
}
function laboRefuserModif() {
	document.formLaboRefuser.submit();
}



/*************************************************************
**************************************************************
* Utilisateur back office
**************************************************************
**************************************************************/
function utilisateurAccepterModif() {
	document.formUtilisateurAccepter.submit();
}
function utilisateurRefuserModif() {
	document.formUtilisateurRefuser.submit();
}



/*************************************************************
**************************************************************
* Modèles de lettres
**************************************************************
**************************************************************/
function lettreManageType() {
	$('rub_id_web').value = 0;
	$('rub_id_ext').value = 0;
	$('trRubWeb').style.display = 'none';
	$('trRubExt').style.display = 'none';
	remRequiredDDL('rub_id_web');
	remRequiredDDL('rub_id_ext');
	
	
	if($('arty_id').value == 10/*Internet*/){
		$('trRubWeb').style.display = '';
		addRequiredDDL('rub_id_web');
	} else if($('arty_id').value == 11/*Extranet*/){
		$('trRubExt').style.display = '';
		addRequiredDDL('rub_id_ext');
	}
}

/*************************************************************
**************************************************************
* Gestion du diaporama d'un article
**************************************************************
**************************************************************/
var _diapoCurrent = 1;
var _diapoCount = 0;
var _diapoTimer;
function diapoStart() {
	_diapoTimer = setInterval("diapoNext()", diapoDelay);
}
function diapoStop() {
	clearInterval(_diapoTimer);
	$('diaporamaBoutonPause').style.display = 'none';
	$('diaporamaBoutonLecture').style.display = '';
}
function diapoPlay() {
	diapoNext();
	diapoStart();
	$('diaporamaBoutonLecture').style.display = 'none';
	$('diaporamaBoutonPause').style.display = '';
}
function diapoNext() {
	$('diapoDiv' + _diapoCurrent).style.display = 'none';
	if (_diapoCurrent == _diapoCount) {
		_diapoCurrent = 1;
	} else {
		_diapoCurrent ++;
	}
	$('diapoDiv' + _diapoCurrent).style.display = '';
}
function diapoPrevious() {
	$('diapoDiv' + _diapoCurrent).style.display = 'none';
	if (_diapoCurrent == 1) {
		_diapoCurrent = _diapoCount;
	} else {
		_diapoCurrent --;
	}
	$('diapoDiv' + _diapoCurrent).style.display = '';
}
function diapoNextClic() {
	diapoStop();
	diapoNext();
}
function diapoPreviousClic() {
	diapoStop();
	diapoPrevious();
}

/*************************************************************
**************************************************************
* Appel ajax pour le maintient de la session
**************************************************************
**************************************************************/
var sessionMaintienDelai = 120000;
var sessionMaintienTimer = 0;

function getSessionMaintien() {
	var action = 'main.php?action=ajx_session';
	AJAXRequest(action, '', getSessionMaintienReturn);
}
function getSessionMaintienReturn(xhr) {
	var html = getXhrValueHTML(xhr);
	if (html != undefined && html != '') {
		if (html.indexOf('<!-- Valide -->') > 0) {
			sessionMaintienTimer = setTimeout("getSessionMaintien()", sessionMaintienDelai);
		}
	}
}

/*******************************************************
********************************************************
* END OF FILE
********************************************************
*******************************************************/

