/* Modifie liste2 en fonction de la valeurs de liste1
*/
function modifListe(url,liste){
  var l1 = document.getElementById(liste);
  var previous_value = l1.value;
  if(l1){
  	
  	var xhr_object = null;
  
	  if(window.XMLHttpRequest){ // Firefox
	    xhr_object = new XMLHttpRequest();
	  } else if(window.ActiveXObject){ // Internet Explorer
	    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	  } else { // XMLHttpRequest non supporté par le navigateur
	    return;
	  }
  	  	
  	xhr_object.open("GET", url, false);
  	xhr_object.send(null);
  	if(xhr_object.readyState == 4){
	    var nouvelle_liste = xhr_object.responseText.split("|");
	    l1.options.length = 0;
	    for(i=0;i<nouvelle_liste.length;i++){
	    	valeur_courante = nouvelle_liste[i].split("@");
	      if(previous_value == valeur_courante[0]){
	      	var select = true;
				} else {
					var select = false;
				}
	      l1.options[l1.options.length] = new Option(valeur_courante[1],valeur_courante[0],select);
			}
	  }
	}
}

function openAddPopup(url){
	window.open(url,"systeme","directories=no,status=no,toolbar=no,width=300,height=350");
}

function activerDate(champ){
	var value = document.getElementById(champ).checked;
	if(value){
		value = true;
	} else {
		value = false;
	}
	
	document.getElementById(champ+"_jour").disabled = value;
	document.getElementById(champ+"_mois").disabled = value;
	document.getElementById(champ+"_an").disabled = value;
}

var keylist="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
var passLenght = 6;

function generatePass(){
	var pass = "";
	for (i=0;i<passLenght;i++)
	pass += keylist.charAt(Math.floor(Math.random()*keylist.length))
	return pass;
}

/* Modifie liste2 en fonction de la valeurs de liste1
*/
function modifListeTypo(liste1,liste2){
  var l1    = document.getElementById(liste1);
  var l2    = document.getElementById(liste2);
  if(l1 && l2){
  	var index = l1.selectedIndex;
  	var bien_type = l1.value;
  	
  	var xhr_object = null;
  
	  if(window.XMLHttpRequest){ // Firefox
	    xhr_object = new XMLHttpRequest();
	  } else if(window.ActiveXObject){ // Internet Explorer
	    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	  } else { // XMLHttpRequest non supporté par le navigateur
	    return;
	  }
  	

  	xhr_object.open("GET", "get_bien_typo.php?type="+bien_type, false);
	  xhr_object.send(null);

	  if(xhr_object.readyState == 4){
	    var nouvelle_liste = xhr_object.responseText.split("|");
	    l2.options.length = 0;
	    if(nouvelle_liste.length == 1 && nouvelle_liste[0] == ""){
	    	l2.options[0] = new Option("Aucune","0");
			} else {
	    	for (i=0;i<nouvelle_liste.length;i++){
	      	valeur_courante = nouvelle_liste[i].split("@");
	      	l2.options[l2.options.length] = new Option(valeur_courante[1],valeur_courante[0]);
	    	}
	    }
	  }
	}
}

/* CONTROLES */

function verif_date(champ){
	var jour = document.getElementById(champ+"_jour").value;
	var mois = document.getElementById(champ+"_mois").value;
	var an = document.getElementById(champ+"_an").value;
	
	if(isNaN(jour)){
		alert("Le jour doit être un entier");
		document.getElementById(champ+"_an").value = "";
		document.getElementById(champ+"_jour").focus();
		return false;
	}
	
	if(isNaN(an)){
		alert("L'année doit être un entier");
		document.getElementById(champ+"_an").value = "";
		document.getElementById(champ+"_an").focus();
		return false;
	}
	
	if (an > 3000 || an < 2007){
		alert("L'année ne peut être inférieure à 2007");
		document.getElementById(champ+"_an").value = "";
		document.getElementById(champ+"_an").focus();
		return false;
	}
	
	choix="";
	if (an-(parseInt(an/4)*4)==0){
		choix="bi"
	}
	
	if (an-(parseInt(an/4)*4)==0&&an-(parseInt(an/100)*100)==0){
		choix=""
	}
		
	if (an-(parseInt(an/4)*4)==0&&an-(parseInt(an/400)*400)==0){
		choix="bi"
	}
		
	switch (mois){
		case "01":
			if(jour<1 || jour>31){
				alert("La valeur correspondant au jour est invalide.\nLe mois de janvier comporte 31 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "02":
			if(choix=="bi"){
				if(jour<1 || jour>29){
					alert("La valeur correspondant au jour est invalide.\nLe mois de février comporte 29 jours car l'année choisie est bissextile.");
					document.getElementById(champ+"_jour").value = "";
					document.getElementById(champ+"_jour").focus();
					return false;
				}
			}	else{
				if(jour<1 || jour>28){
					alert("La valeur correspondant au jour est invalide.\nLe mois de février comporte 28 jours car l'année choisie n'est pas bissextile.");
					document.getElementById(champ+"_jour").value = "";
					document.getElementById(champ+"_jour").focus();
					return false;
				}
			}
		break;
		case "03":
			if(jour<1 || jour>31){
				alert("La valeur correspondant au jour est invalide.\nLe mois de mars comporte 31 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "04":
			if(jour<1 || jour>30){
				alert("La valeur correspondant au jour est invalide.\nLe mois d'avril comporte 30 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "05":
			if(jour<1 || jour>31){
				alert("La valeur correspondant au jour est invalide.\nLe mois de mai comporte 31 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "06":
			if(jour<1 || jour>30){
				alert("La valeur correspondant au jour est invalide.\nLe mois de juin comporte 30 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "07":
			if(jour<1 || jour>31){
				alert("La valeur correspondant au jour est invalide.\nLe mois de juillet comporte 31 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "08":
			if(jour<1 || jour>31){
				alert("La valeur correspondant au jour est invalide.\nLe mois d'août comporte 31 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "09":
			if(jour<1 || jour>30){
				alert("La valeur correspondant au jour est invalide.\nLe mois de septembre comporte 30 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "10":
			if(jour<1 || jour>31){
				alert("La valeur correspondant au jour est invalide.\nLe mois d'octobre comporte 31 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "11":
			if(jour<1 || jour>30){
				alert("La valeur correspondant au jour est invalide.\nLe mois de novembre comporte 30 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
		case "12":
			if(jour<1 || jour>31){
				alert("La valeur correspondant au jour est invalide.\nLe mois de décembre comporte 31 jours.");
				document.getElementById(champ+"_jour").value = "";
				document.getElementById(champ+"_jour").focus();
				return false;
			}
		break;
	}
	return true;
}

/**
 * Vérifie l'antérieurité d'une date para rapport à une autre
 */
function verifAnt(champ,comp,message){
	if(verif_date(champ) == false){
		return false;
	} else {
		var date_ant = document.getElementById("date").value;
		var jour_ant = document.getElementById(comp+"_jour").value;
		var mois_ant = document.getElementById(comp+"_mois").value;
		var an_ant = document.getElementById(comp+"_an").value;

		var jour = document.getElementById(champ+"_jour").value;
		var mois = document.getElementById(champ+"_mois").value;
		var an = document.getElementById(champ+"_an").value;
		if(parseInt(an+mois+jour) < parseInt(an_ant+mois_ant+jour_ant)){
			alert(message);
			document.getElementById(champ+"_jour").focus();
			return false;
		}
		
		return true;
	}
}

function verifMail(champ){
	var value = document.getElementById(champ).value;
	
	if (value.indexOf("@") != "-1" &&
    value.indexOf(".") != "-1" &&
    value != "")
    return true;

	return false;
}

function verifPass(champ1,champ2){
  // Référence vers les champs du formulaire
  var pass1 = document.getElementById(champ1);
  var pass2 = document.getElementById(champ2);
  
  // Définit si le mot de passe contient au moins 1 chiffre
  var hasChiffre = false;
  var i = 0;
  
/*  // On parcours l'ensemble des caractères du mot de passe pour vérifier si ce dernier contient bien un chiffre
  while(!hasChiffre && i <pass1.value.length){
    if(47 < pass1.value.charCodeAt(i) && pass1.value.charCodeAt(i) < 58){
      hasChiffre = true;
    }
    i++;  
  }*/
  
  // On vérifie la longueur du mot de passe
  if(pass1.value.length < 6){
    alert("Votre mot de passe doit contenir au minimum 6 caractères");
    pass1.focus();
    return false;
  }
  /*else if(!hasChiffre){ // On vérifie s'il contient bien un chiffre
    alert("Votre mot de passe doit contenir au moins un chiffre");
    pass1.focus();
    return false;
  }*/
  else if(pass1.value != pass2.value){ // On vérifie si les deux mot de passe sont identiques
    alert("Les deux mots de passe sont différents");
    pass1.value = pass2.value = "";
    return false;
  }
  return true;
}

function limiteur(element,limit){
	var champ = document.getElementById(element)
	if(champ.value.length > limit){
		alert("Vous avez atteind le nombre maximum de caractères autorisé pour ce champ.")
		champ.value = champ.value.substring(0, limit);
	}
}


/******************************************************************************/

/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
*
* Modifié par NETAGIS
***********************************************/

var offsetxpoint=-20; //Customize x offset of tooltip
var offsetypoint=-40; //Customize y offset of tooltip
var ie=document.all;
var w3c=document.getElementById && !document.all;
var enabletip=false;
if (ie||w3c)
var tipobj;

function ietruebody(){
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function ddrivetip(thetext){
	if (w3c||ie){
		tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "";
	  tipobj_content=document.all? document.all["dhtmltooltipcontent"] : document.getElementById? document.getElementById("dhtmltooltipcontent") : "";
		if(thetext != ""){
	    tipobj_content.innerHTML=thetext;
	    enabletip=true;
	    return false;
	  }
	}
}

function positiontip(e){
  if(enabletip){
    var curX=(w3c)?e.pageX : event.clientX+ietruebody().scrollLeft;
    var curY=(w3c)?e.pageY : event.clientY+ietruebody().scrollTop;
    //Find out how close the mouse is to the corner of the window
    var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20;
    var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20;
    
    var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000;
  
    //if the horizontal distance isn't enough to accomodate the width of the context menu
    if (rightedge<tipobj.offsetWidth)
      //move the horizontal position of the menu to the left by it's width
      tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px";
    else if (curX<leftedge)
      tipobj.style.left="5px";
    else
      //position the horizontal position of the menu where the mouse is positioned
      tipobj.style.left=curX+offsetxpoint+"px";
    
    //same concept with the vertical position
    if (bottomedge<tipobj.offsetHeight)
      tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px";
    else
      tipobj.style.top=curY+offsetypoint+"px";
    tipobj.style.visibility="visible";
  }
}

function hideddrivetip(){
	if (w3c||ie){
		enabletip=false;
	  tipobj.style.visibility="hidden";
	  tipobj.style.left="-1000px";
	  tipobj.style.backgroundColor='';
	  tipobj.style.width='';
	}
}

document.onmousemove=positiontip;

