// JavaScript Document
function confirmDelete()
{
        reponse=confirm('Etes-vous sur de vouloir supprimer ?');
        if(reponse) return true;
        else return false;
}
//Fonction pour vérifier que le formulaire est correctement rempli avec en paramètre les champs obligatoires
function verify_form(formulaire)
{

 //On parcourt le formulaire pour tester et détecter si ils sont vides ou non
 for(i=1;i<arguments.length;i++)
 {
  if(formulaire.elements[arguments[i]].value=='')
  {
   alert('Merci de remplir tous les champs suivis d\'une étoile.');
   return;
  }
 }
 formulaire.submit();
}
//
//Fonction pour retailler la fenêtre (IE only)
function ensureSize(image,wnd,xPadding,yPadding){
 if (navigator.userAgent.indexOf('MSIE')!=-1) {
  var rX=image.clientWidth+xPadding+20;
  var rY=image.clientHeight+yPadding+28;
  if(rX<200)
    rX=200;
  if(rY<100)
    rY=100;
  if(rY>(screen.height-50))
    rY=screen.height-100;
  wnd.resizeTo(rX,rY);
 }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
	return false;
}

/*function open_close(id){
	if( eval('d'+id+'.style.display') == "block" ) {
		eval('d'+id+'.style.display = "none"');
	}
	else {
		eval('d'+id+'.style.display = "block"');
	}
}*/
//
/*function open_close(id) 
{
	id = "d"+id;
	if (document.getElementById) 
	{
		if(document.getElementById(id).style.display=="none") document.getElementById(id).style.display="block";
		else document.getElementById(id).style.display="none";
	} 
	else if (document.all) 
	{
		if(document.all[id].style.display=="none") document.all[id].style.display="block";
		else document.all[id].style.display="none";
	} 
	else if (document.layers) 
	{
		if(document.layers[id].display=="none") document.layers[id].display="block";
		else document.layers[id].display="none";
	} 
} 
*/
function montre_cache(tab_montre,tab_cache) {
	// on montre les elements 
	if(tab_montre)
	for(var i=0;i<tab_montre.length;i++) {
		if (document.getElementById(tab_montre[i]).style.display) {
			if(document.getElementById(tab_montre[i]).style.display=="none") document.getElementById(tab_montre[i]).style.display="block";
		}
	}
	// on cache les elements
	if(tab_cache)
	for(var j=0;j<=tab_cache.length;j++) {
		if (document.getElementById(tab_cache[j])) {
			if(document.getElementById(tab_cache[j]).style.display=="block") document.getElementById(tab_cache[j]).style.display="none";
		}
	}
}

function open_close(id){
           if(document.getElementById('d'+id).style.display == "block" ) {
              document.getElementById('d'+id).style.display = "none";
           }
           else {
		document.getElementById('d'+id).style.display = "block";
           }
}

function open_close2(id){
           if(document.getElementById(id).style.display == "block" ) {
              document.getElementById(id).style.display = "none";
           }
           else {
		document.getElementById(id).style.display = "block";
           }
}

function cache(id){
	if (document.getElementById(id)) {
		if(document.getElementById(id).style.display=="block") document.getElementById(id).style.display="none";
		else document.getElementById(id).style.display="none";
	}

}

function view(id){
	if (document.getElementById(id)) 
	{
		if(document.getElementById(id).style.display=="none") document.getElementById(id).style.display="block";
		else document.getElementById(id).style.display="block";
	} 

}

//Fonctions du menu
function montre(id,id_var_cache) 
{
	//Memorisation de l'etat (masque/affiché) dans un champ caché
	if (document.getElementById(id_var_cache)) 
	{
		if(document.getElementById(id_var_cache).value=="0") document.getElementById(id_var_cache).value="1";
		else document.getElementById(id_var_cache).value="0";
	}

	if (document.getElementById(id)) 
	{
		if(document.getElementById(id).style.display=="none") document.getElementById(id).style.display="block";
		else document.getElementById(id).style.display="none";
	} 
	else if (document.all) 
	{
		if(document.all[id].style.display=="none") document.all[id].style.display="block";
		else document.all[id].style.display="none";
	} 
	else if (document.layers) 
	{
		if(document.layers[id].display=="none") document.layers[id].display="block";
		else document.layers[id].display="none";
	} 
} 
//Fonctions du menu EOF

//Fonctions du menu dans recherche_all
function plus_moins(id,id_image) 
{
	if (document.getElementById(id_image)) 
	{
		if(document.getElementById(id).style.display=="none")
			document.getElementById(id_image).src='images/plus.png';
		else 
			document.getElementById(id_image).src='images/moins.png';
	} 
} 
//Fonctions du menu EOF

//Fonctions Globale permettant de changer d'image au click
function images_plus_moins(id,id_image,nom_image,nom_image2) 
{
	if (document.getElementById(id_image) && document.getElementById(id)) 
	{
		if(document.getElementById(id).style.display=="none")
			document.getElementById(id_image).src='images/'+nom_image;
		else 
			document.getElementById(id_image).src='images/'+nom_image2;
	} 
} 
//Fonctions du menu EOF


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
/*function open_close(id){
alert(d01.name);
	if( eval('d'+id+'.style.display') == "block" ) {
									eval('d'+id+'.style.display = "none"');
	}
	else {
									eval('d'+id+'.style.display = "block"');
	}
}*/

function goto_action(id,idTheme){
//        document.gotoaction.num_action.value = id;
	document.getElementById('gotoaction').idTheme.value = idTheme;
	document.getElementById('gotoaction').idaction.value = id;
	document.getElementById('gotoaction').submit();
}
function go_to(sens,step)
{
	if(sens!=0 && document.getElementById('page'))
		document.getElementById('page').value = step + sens;
	else if(document.getElementById('page'))
		document.getElementById('page').value = 1;
	document.getElementById('filtre').submit();
}

function go_to_page(page){
        document.getElementById('page').value = page;
        document.getElementById('filtre').submit();
}

function switch_to_equipement(id,from){
        document.location = "rechercher_equipement.jsp?page=1&id="+id+"&from="+from;
}

function switch_to_action(id,from){
        document.location = "rechercher_action.jsp?page=1&id="+id+"&from="+from;
}

function switch_to_acteur(id,from){
        document.location = "rechercher_acteur.jsp?page=1&id="+id+"&from="+from;
}

function switch_to_lieu(id,from){
        document.location = "rechercher_lieu.jsp?page=1&id="+id+"&from="+from;
}

function switch_to_materiel(id,from){
        document.location = "rechercher_materiel.jsp?page=1&id="+id+"&from="+from;
}

function switch_to_all(id,from){
        var winall = window.open("rechercher_all.jsp?id="+id+"&from="+from,'all','width=740,height=400,resizable=1,scrollbars=1');
        winall.focus();
}

function openFenetre(url,name,params)
{
        fen=window.open(url,name,params);
        fen.focus();
}
function login_func(){
        if(document.login_form.mot_passe.value != "" && document.login_form.login_name.value != "" )
        {
                document.login_form.todo.value = "login";
                document.login_form.submit();
        }
        else alert("Merci de saisir votre nom d\'utilisateur et votre mot de passe.");
}

function logout_func(){
        document.login_form.todo.value = "logout";
        document.login_form.submit();
}

function valid_identify()
{
        if(window.identifyForm.profil.value=="" || window.identifyForm.localisation.value=="")
        {
                alert('Merci de choisir un profil et une localisation.');
                return false;
        }
        else
        {
                return true;
        }
}



function PopupCentrer(page,largeur,hauteur,options)
{
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  winName = window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
  winName.focus();
}

function PopMod()
{
  PopupCentrer("pass_remembering.jsp",'400','150','');
}

function validConfirmOuvCompte()
{
  valid = true;
  textErreur = '';
 //Test des champs obligatoires
 if(document.personForm.givenName.value=="")
 {
  textErreur = 'Prénom\n';
  valid = false;
 }
 if(document.personForm.sn.value=="")
 {
  textErreur += 'Nom\n';
  valid = false;
 }
 if(document.personForm.mail.value=="")
 {
  textErreur += 'Courriel\n';
  valid = false;
 }
 if(document.personForm.description.value.length == 0)
 {
  textErreur += 'Vos attentes\n';
  valid = false;
 }

 //Affichage du message d'erreur
 if(valid == false)
 {
  alert('Les champs suivants sont obligatoires : \n'+textErreur);
  return false
 }
 else
 {
  return true;
 }
}


function resume_action(idaction)
{
 fenetre = window.open('fiche_action.jsp?top=2&num_action=&titre=&idTheme=&idaction='+idaction,'rapportAction','width=420,height=420,scrollbars=yes');
 fenetre.focus();
}

function resume_action(idaction,dossier_racine)
{
 fenetre = window.open(dossier_racine+'fiche_action.jsp?top=2&num_action=&titre=&idTheme=&idaction='+idaction,'rapportAction','width=420,height=420,scrollbars=yes');
 fenetre.focus();
}

function consulter_doc(){
        document.getElementById('menuForm').action = "consulter_doc.jsp";
        document.getElementById('menuForm').submit();
}

// Recuperation d'une requete XMLHttpRequest
function file(fichier)
{
	if(window.XMLHttpRequest) // FIREFOX
	xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
	return(false);
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4) return(xhr_object.responseText);
	else return(false);
}


///
var blnOk=true;

function Chargement() {

  if(document.body.style.backgroundColor!="") { blnOk=false; }
  if(document.body.style.color!="") { blnOk=false; }
  if(document.body.style.marginTop!="") { blnOk=false; }
  if(document.getElementById) {
    with(document.getElementById("texte").style) {
      if(position!="") { blnOk=false; }
      if(top!="") { blnOk=false; }
      if(left!="") { blnOk=false; }
      if(width!="") { blnOk=false; }
      if(height!="") { blnOk=false; }
      if(zIndex!="") { blnOk=false; }
      if(margin!="") { blnOk=false; }
      if(padding!="") { blnOk=false; }
      if(visibility!="") { blnOk=false; }
    }
  }
  else{
  blnOk=false;
  }

  if(blnOk) {
    with(document.body.style) {
      backgroundColor="#333";
      color="#FFF";
      marginLeft="12.2em";
    }
    
    with(document.getElementById("access").style) {
      position="absolute";
      top="8em";
      left="1em";
      width="10em";
      margin="0";
    }
    
    with(document.getElementById("texte").style) {
      margin="0";
      padding="1em";
      backgroundColor="#FFF";
      color="#333";
    }
    
    for(i=1;i<=3;i++) {
      with(document.getElementById("menu"+i).style) {
        position="absolute";
        top=(((i-1)*2)+1)+"em";
        left="1em";
        width="10em";
        height="1.2em";
        textAlign="center";
        margin="0";
        padding="0";
        zIndex="2";
      }
    }
    
    for(i=1;i<=3;i++) {
      with(document.getElementById("ssmenu"+i).style) {
        position="absolute";
        top=(((i-1)*2)+1)+"em";
        left="11.2em";
        width="12em";
        margin="0";
        padding="0";
        zIndex="3";
      }
    }
    
    with(document.getElementById("copy").style) {
      backgroundColor="#333";
      color="#FFF";
    }
    
    CacherMenus();
  }
}

function MontrerMenu(strMenu) {  
  if(blnOk) {
    CacherMenus();
    
    document.getElementById(strMenu).style.visibility="visible";
  }
}

function CacherMenus() {
  if(blnOk) {
    for(i=1;i<=3;i++) {
      with(document.getElementById("ssmenu"+i).style) {
        visibility="hidden";
      }
    }
  }
}

//Enleve l'indicatif au debut de num de telephone par rapport a la liste deroulante des indicatifs
function cleanPhoneNumber(phone, indicatif)
{
	if(indicatif.value == phone.value.substring(0,indicatif.value.length))
		phone.value = phone.value.substring(indicatif.value.length,phone.value.length);
		
	//Suppression du point au debut du num de tel
	if(phone.value.substring(0,1) == ".") phone.value = phone.value.substring(1,phone.value.length);
		
}

////////////////////////////////////////////////////////
 // plutot que de contrôler à posteriori le contenu d'un champ de    //
 //  saisie pour voir s'il ne contient que les caractères autorisés,    //
 //  contrôle au fûr et à mesure en           //
 //  rejetant immédiatement les caractères interdits.                    //
 // on n'autorise que la saisie de Chiffres //
 ////////////////////////////////////////////////////
function SUC(champ) //~~ initialisation ~~ Saisir Uniquement des Chiffres
//~~~~~~~~~~~~~~~~~~~~~~~~~~ #        #                             #
{
 this.champ=champ;
 var Lui=this;
 var ie = false; /*@cc_on ie = true; @*/
 if ( ie ) {
     this.champ.onkeypress = Lui.IE;
    }
 else  { 
     this.champ.onkeyup = function(e)
      {
       Lui.FF(this, e);
      }
    }
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SUC.prototype.IE=function() //~~ pour Internet Explorer ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
 if ( event.keyCode<0x30 || event.keyCode>0x39 )
 {
  event.returnValue= false;
 }
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SUC.prototype.FF=function(zone,evt) //~~ pour FireFox ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
 if ( evt.which<0x30 || evt.which>0x39 )
 {
  zone.value=zone.value.replace(/[^0-9]/g,"");
 }
}

///


function verifAboMailing()
{
	if(document.getElementById('mailing_mail')==null || document.getElementById('mailing_mail').value=='')
	{
		alert('Veuillez saisir votre courriel.');
		document.getElementById('mailing_mail').focus();
		return false;
	}
	else if(testAdrMail(document.getElementById('mailing_mail').value)==false)
	{
		alert('Votre courriel est incorrect.');
		document.getElementById('mailing_mail').focus();
		return false;
	}
	else if(checkSelect('formAbo')==false)
	{
	  	alert("Veuillez sélectionner une lettre à laquelle vous désirez vous abonner.");
		document.getElementById('mailing_mail').focus();
		return false;
	}
	else
		return true;
}


/*
 * Test pour verifier que l'internaute a bien coche au moins un type de mailing lors de son inscription
 * */
function checkSelect(detailform){

	  form = document.getElementById(detailform);
	  inputs = form.getElementsByTagName("input");
	  count = 0;
	  for(i=0 ; i<inputs.length ; i++){
	    if(inputs[i].type=="checkbox" && inputs[i].checked==true){
		  count++;
		}
	  }

	  if(count == 0){
	  	return false;
	}
	return true;
}
/*
 * */

//Début de fonction : testAdrMail
//Entrée : adrMail - (String) - Email à analysé.
//Renvoyé : true ou false - (Boolean) - Vrai si l'email est correct sinon Faux

function testAdrMail(adrMail) {

//déclaration et initialisation des variables
adrMailLength=adrMail.length; // longueur de la chaîne adrMail
caractOk="_.-0123456789abcdefghijklmnopqrstuvwxyz"; // caratères corect d'une adresse mail
var posArrobas=adrMail.indexOf('@',1); // position du premier Arrobas
var posPoint=adrMail.lastIndexOf('.',adrMailLength); // position du dernier point
var posCaractFaux=adrMail.indexOf('..',posArrobas+1); // position d'un caractère faux ('..' ou ' ')
var caract=0; // caractère extrait de la chaîne adrMail (utilisée par les boucles while)
var caractFaux=adrMail.charAt(0)+adrMail.charAt(posArrobas-1)+adrMail.charAt(posArrobas+1)+adrMail.charAt(posPoint-1);
var posCaract=0; // position du caractère à extraire de la chaîne adrMail (utilisée par les boucles while)
var posCaractOk=0; // position du caractère extrait de la chaîne adrMail (utilisée par les boucles while)
var posCaractNon=-1;
var retour=false; // l'adresse e-mail est considérée comme fausse au début

//début du teste
//s'il n'existe pas de caractère '..' alors on teste s'il existe un espace dans la chaîne adrMail
if (posCaractFaux!=-1 || adrMail.indexOf(' ',0)!=-1 || adrMail.indexOf('--',0)!=-1 || adrMail.indexOf('__',0)!=-1) {
posCaractFaux=0;
}

//Teste les points ou - ou _ au début de l'adrMail, autour de l'arrobas et autour du dernier point
for (posCaract;posCaract<4;posCaract++) {
caract=caractFaux.charAt(posCaract);
posCaractNon=caractOk.lastIndexOf(caract,2);
if (posCaractNon!=-1) {
   posCaractFaux=0;
   break;
}
}
//si l'adresse mail contient au moins 1 caractère et qu'elle comporte un arrobas
//et qu'elle comporte un point et que l'arrobas est avant le dernier point
//et qu'elle ne contient pas de '..' ou d'espace et que après le dernier point il y est 2,3 ou 4 caractères
//et qu'il n'y est pas de point autour de l'arrobas et que l'adresse ne commence pas par un point
//Alors
if (adrMailLength>0 && posArrobas!=-1 && posPoint!=-1 && posArrobas<posPoint && posCaractFaux==-1 && adrMailLength-posPoint-1>=2 && adrMailLength-posPoint-1<=4) {

// extraction d'un caractère et teste s'il existe dans la chaîne "_.-0123456789abcdefghijklmnopqrstuvwxyz"
// S'il n'existe pas alors posCaract=-1 donc au prochain 'tour' on passe aux autres boucles (qui ne s'effecturont pas)
// Si il existe on continue la boucle jusqu'au caractère avant l'arrobas et on passe à la boucle while suivante

adrMail=adrMail.toLowerCase();
posCaract=0;

while (posCaract<posArrobas && posCaractOk!=-1) {
     caract=adrMail.charAt(posCaract);
     posCaractOk=caractOk.indexOf(caract,0);
     posCaract++;
}
posCaract++; // on passe l'arrobas

// sur le même principe qu'au dessus mais pour la partie entre l'arrobas et le dernier point
// le test ce fait sur les caractères ".-0123456789abcdefghijklmnopqrstuvwxyz"
// caractOk.indexOf(caract,1) on ne teste plus l'underscore
while (posCaract<posPoint && posCaractOk!=-1) {
     caract=adrMail.charAt(posCaract);
     posCaractOk=caractOk.indexOf(caract,1);
     posCaract++;
}
posCaract++; // on passe le point

// sur le même principe qu'au dessus mais pour la partie entre le dernier point et la fin
// le test ce fait sur les caractères "abcdefghijklmnopqrstuvwxyz"
// caractOk.indexOf(caract,13) on ne teste plus que des lettres
while (posCaract<adrMailLength && posCaractOk!=-1) {
     caract=adrMail.charAt(posCaract);
     posCaractOk=caractOk.indexOf(caract,13);
     posCaract++;
} // fin de la boucle while

// durant le parcour de l'adresse mail si n'y avait pas de caractère interdit
// posCaractOk a changer plusieurs fois de valeur mais na jamais eu la valeur -1
// donc l'adresse est bonne
if (posCaractOk!=-1) {
  retour=true;
}
}
return retour; // renvoi le résultat (true ou false)
} // fin de la fonction

/**
 * Fonction qui ajoute un mot clés en fonction d'une liste déroulante sur une entité (document, ...)
 */
function addKeyword($_idSelect)
{
	var keywords = document.getElementById($_idSelect).parentNode.getElementsByTagName('INPUT');
	var content = document.getElementById($_idSelect).parentNode.innerHTML;
	var selectedKeywordIndex = document.getElementById($_idSelect).options.selectedIndex;
	var selectedKeyword = document.getElementById($_idSelect).options[selectedKeywordIndex];
	for (var i = 0; i < keywords.length; i++)
	{
		// Si l'option a déjà été selectionnée, annulation de l'ajout
		if (parseInt(keywords[i].value) == parseInt(selectedKeyword.value))
		{
			document.getElementById($_idSelect).options.selectedIndex = 0;
			return false;
		}
	}
	if(selectedKeywordIndex != 0)
	{
		var newKeyword = '<p>' + selectedKeyword.innerHTML + '&nbsp;<a href="#" onclick="removeKeyword(\'' + $_idSelect + '\', \'' + selectedKeyword.value + '\');return false;"><img src="../images/btn_ico_supprimer.png" class="delete" alt="X" /></a><input type="hidden" name="keywords_' + $_idSelect + '" value="' + selectedKeyword.value + '" /></p>';
		content  = newKeyword + content;
		document.getElementById($_idSelect).parentNode.innerHTML = content;
	}
	document.getElementById($_idSelect).options.selectedIndex = 0;
	return false;
}
/**
 * Fonction qui supprime un mot clés d'une entité (document, ...)
 */
function removeKeyword($_idSelect, $_idKeyword)
{
	var keywords = document.getElementById($_idSelect).parentNode.getElementsByTagName('INPUT');
	for (var i = 0; i < keywords.length; i++)
	{
		if (keywords[i].value == $_idKeyword)
			keywords[i].parentNode.parentNode.removeChild(keywords[i].parentNode);
	}
	return false;
}

