	function MsgAlert(sMsg, sPreMsg, sPostMsg,oElem)
	{
	// sMsg		:	Message à afficher
	// sPreMsg	:	Texte affiché avant le message
	// sPostMsg	:	Texte affiché après le message	
	//------------------------------------------------------------
	// Déclaration
	//------------------------------------------------------------

	//------------------------------------------------------------
	// Code
	//------------------------------------------------------------

	// Initialisation des valeurs en cas d'absence
	if (typeof(sPreMsg) == 'undefined') {sPreMsg = '';}
	if (typeof(sPostMsg) == 'undefined') {sPostMsg = '';}	
	
	// Affichage du message
	alert(sPreMsg + sMsg + sPostMsg);
	
	if (oElem.name != "")
		{
		 try {
		 oElem.focus();}
		 catch (ex) {}
		}
	}
	
	function Est_Numerique (v){
		if (v.value == "") return true
		else return (v.value.toString() && !/\D/.test(v.value));
	}
	
	function doNada(){
		
	}
	
	function Est_Date (oElement, sFormat, iPivot, sFormatConv){
		
		if (oElement.value == "") return true
		else
		{
		// Pas de contrôle si l'élément n'a pas de valeur 
		if( !oElement.value) return true;
	
		var sDate=oElement.value;
		// Tableau du nombre de jours des mois
		var aDaysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

		// Cherche le séparateur dans la valeur saisie
		var sSepDate=sDate.charAt(sDate.search(/\D/));
		
		// Cherche le séparateur dans le format de saisie
		var sSepFormat=sFormat.charAt(sFormat.search(/[^JMA]/i));
		
		// Compare les séparateurs
		if (sSepDate!=sSepFormat){
			return false;
		}

		// Récupère les champs jour, mois, an de la date 
		var aValueJMA=sDate.split(sSepDate,3);
		var aFormatJMA=sFormat.split(sSepFormat,3);
		var iMonth,iDay,iYear;

		// Vérifie que tous les champs existent
		if (  ! aValueJMA[0]
			||! aValueJMA[1]
			||! aValueJMA[2]){
			
			return false;
		}
		// Vérifie que tous les champs sont numériques
		if (  !Est_Numerique(aValueJMA[0])
			||!Est_Numerique(aValueJMA[1])
			||!Est_Numerique(aValueJMA[2])){
			
			return false;
		}

		// Date sur 4 chiffres par défaut
		var iDateLong = 4;
		
		// Affecte les jour, mois, an en fonction du format
		// Champ 1
		switch (aFormatJMA[0].toUpperCase()){
			case "JJ" :
				iDay=aValueJMA[0];
				break;
			case "MM" :
				iMonth=aValueJMA[0];
				break;
			case "AA" :
				iDateLong = 2;
			case "AAAA" :
				iYear=aValueJMA[0];
				break;
			default :
				
				return false;
		}
		// Champ 2
		switch (aFormatJMA[1].toUpperCase()){
			case "JJ" :
				iDay=aValueJMA[1];
				break;
			case "MM" :
				iMonth=aValueJMA[1];
				break;
			case "AA" :
				iDateLong = 2;
			case "AAAA" :
				iYear=aValueJMA[1];
				break;
			default :
				
				return false;
		}
		// Champ 3
		switch(aFormatJMA[2].toUpperCase()){
			case "JJ" :
				iDay=aValueJMA[2];
				break;
			case "MM" :
				iMonth=aValueJMA[2];
				break;
			case "AA" :
				iDateLong = 2;
			case "AAAA" :
				iYear=aValueJMA[2];
				break;
			default :
				
				return false;
		}
		

		// Jour sur deux chiffres
		if( iDay.length !=2 ){
			
			return false;
		}

		// Mois sur deux chiffres
		if( iMonth.length !=2 ){
			
			return false;
		}


		// Si année pivot pour le changement de siècle
		if( iPivot && iPivot.length==2 ){
			
			// Si année saisie sur deux chiffre alors conversion à quatre chiffres
			if( iYear.length==2 ){
				iYear=((iYear>iPivot)?19:20).toString()+iYear;
				
				// Mise au format de saisie
				var sValue=aFormatJMA.join(sSepFormat).replace(/MM/i,iMonth);
				sValue=sValue.replace(/JJ/i,iDay).replace(/AA/i,iYear).replace(/AA/i,"");
				oElement.value=sValue;
			}
			
			// Sinon alors quatre chiffres
			else if( iYear.length !=4 ){
				
				return false;
			}
		}
		
		//  Si pas d'année pivot, l'année doit correspondre au format aa ou aaaa?
		else if( iYear.length != iDateLong ){			
			
			return false;
		}

		
		// Contrôle d'année bisextile
		var iDaysInMonth=(iMonth!=2)?aDaysInMonth[iMonth-1]:((iYear%4==0 && iYear%100!=0 || iYear % 400==0)?29:28);

		
		// Contrôle que les valeurs sont une date
		if(!iDay  ){
			
			return false;
		}
		if(!iMonth ){
			
			return false;
		}
		if(!iYear ){
			
			return false;
		}
		if( !(iMonth<13 && iMonth>0) ){
			
			return false;
		}		
		if( !(iDay>0 && iDay<=iDaysInMonth) ){
			
			return false;
		}
		
		// Mémorise la date au format de conversion
		if( sFormatConv  && sFormatConv != ""){
			// Mise au format
			var sValue=sFormatConv.replace(/MM/i,iMonth);
			sValue=sValue.replace(/JJ/i,iDay).replace(/AA/i,iYear).replace(/AA/i,"");
			// Affecte une propriété dynamiquement 
			oElement.aw_dateconvertie=sValue;		
		}
		
		return true;
		}
	}
	
	function DateFr2Us(date)
	/* converti une date au format FR JJ/MM/YY(YY) au format US MM/DD/YY(YY) et vice versa */
	{
		return new Date(date.replace(/^(\d\d)\/(\d\d)\//g,"$2/$1/"));
	}


	function DateSuperieure(date1,date2,bDifferenceStricte)
	 /* utilise la fonction DateFr2Us pour comparer 2 dates */
	{
		if (bDifferenceStricte) 
		{
			return (DateFr2Us(date1)>DateFr2Us(date2)) ;
		}
		else 
		{
			return (DateFr2Us(date1)>=DateFr2Us(date2)) ;
		}
	}
	
	function Est_Decimal(oElement, nDec ){
		
		if (oElement.value == "") return true
		else
		{
		// Pas de contrôle si l'élément n'a pas de valeur 
		if( oElement.value){
			
			// Nombre de chiffres après la virgule/point = nDec
			if( nDec>0 ){
				var re=new RegExp(  "^\\d+(,|.)\\d{" + nDec +"}$");
				if (!re.test(oElement.value)){
					return false;
				}

			// Nombre de chiffres après la virgule/point = 1 ou plus
			}else{
				//var re=new RegExp( "^\\d+(,|.)\\d{0}$");
				var re = new RegExp("^\\d+((,|.)\\d{1,2})?$");
				if (!re.test(oElement.value)){
					return false;
				}
			}
		}
		return true;
		}
	}
	
	function Est_Montant(oElement){
		
		if (oElement.value == "") return true
		else
		{
		// Pas de contrôle si l'élément n'a pas de valeur 
		if( oElement.value){
			var re = new RegExp("^\\d+((,|.)\\d{1,2})?$");		
			if(!re.test(oElement.value)){
				return false;
			}
		}		
		return true;
		}
	}
	
	function Est_vide(oElement)
	{
		if (oElement.value=="") return true
		else return false;
	}
	
	function Pwd_ok()
	{	
		if (document.getElementById("ucProprietaires_txPwd").value!="") {
			if (document.getElementById("ucProprietaires_txPwd2").value == document.getElementById("ucProprietaires_txPwd").value)
				return true;
			else
				{
					alert('Le Mot de passe confirme est different du Mot de passe.');
					document.getElementById("ucProprietaires_txPwd2").focus();
					return false;	
				}
		}
		else
			{
				alert("Le Mot de passe est obligatoire");
				document.getElementById("ucProprietaires_txPwd").focus();
				return false;
			}
	}
	
	function PwdClient_ok()
	{	
		if (document.getElementById("ucClients_txPwd").value!="") {
			if (document.getElementById("ucClients_txPwd2").value == document.getElementById("ucClients_txPwd").value)
				return true;
			else
				{
					alert('Le Mot de passe confirme est different du Mot de passe.');
					document.getElementById("ucClients_txPwd2").focus();
					return false;	
				}
		}
	}
	
	function checkBaisse()
	{
		var str =""
		str = "Prix en baisse est active.\nLe Nouveau prix doit etre renseigne.";
		if (document.getElementById("ucBiens_chkPxBaisse").checked)
		if (document.getElementById("ucBiens_txPrixBaisse").value=="")
		{
			MsgAlert(str,'','',document.getElementById("ucBiens_txPrixBaisse"));
			return false;
		}
		return true;
		
	}
	
	function calcPrixM2()
	{
		if ( (document.getElementById("ucBiens_txPrix").value!="") & (document.getElementById("ucBiens_txShab").value!="") )
		{
			if ( (Est_Montant(document.getElementById("ucBiens_txPrix"))) & (Est_Decimal(document.getElementById("ucBiens_txShab"))) )
			document.getElementById("ucBiens_txPrixM2").value = document.getElementById("ucBiens_txPrix").value / document.getElementById("ucBiens_txShab").value;
		}
		else
			document.getElementById("ucBiens_txPrixM2").value = "";
								
	}