var _lookup=Array();
var OldValuesArray=false;
var VarLibs= new Array();


_editor_url = "/_system/_composants/_editeur/HTMLArea/";
_editor_lang = "en";
var debu_heure= new Array();
var echeance_heure= new Array();
var fin_heure= new Array();


function DesabledTimeSoficlef(objet)
{   
	debu_heure.push(document.getElementById('Debut_Heure').value);
	fin_heure.push(document.getElementById('Fin_Heure').value);
	if(objet.checked)
	{	
	document.getElementById('Debut_Heure').disabled="disabled";
	document.getElementById('Debut_Heure').value='';
	document.getElementById('Fin_Heure').disabled="disabled";
	document.getElementById('Fin_Heure').value='';
	document.getElementById('journalier').value="1";
	}
	else 
	{
		document.getElementById('Debut_Heure').disabled=false;
		document.getElementById('Fin_Heure').disabled=false;
		document.getElementById('Debut_Heure').value=debu_heure[debu_heure.length-2];
		document.getElementById('Fin_Heure').value=fin_heure[fin_heure.length-2];
		document.getElementById('journalier').value="0";
	}
}

function DesabledTime(objet)
{   
	debu_heure.push(document.getElementById('Debut_Heure').value);
	echeance_heure.push(document.getElementById('Echeance_Heure').value);
	if(objet.checked)
	{	
	document.getElementById('Debut_Heure').disabled="disabled";
	document.getElementById('Debut_Heure').value='';
	document.getElementById('Echeance_Heure').disabled="disabled";
	document.getElementById('Echeance_Heure').value='';
	document.getElementById('journalier').value="1";
	}
	else 
	{
		document.getElementById('Debut_Heure').disabled=false;
		document.getElementById('Echeance_Heure').disabled=false;
		document.getElementById('Debut_Heure').value=debu_heure[debu_heure.length-2];
		document.getElementById('Echeance_Heure').value=echeance_heure[echeance_heure.length-2];
		document.getElementById('journalier').value="0";
	}
}
 function TestValueChamps(champ)
		  {
			 // alert(champ);
			 
	if((champ=='biz.Crm.CrmActiviteTache')||(champ=='biz.Crm.CrmActiviteRdv')||(champ=='biz.Crm.CrmActiviteMeeting'))
		  {
		  HeureDebut=document.getElementById('Debut_Heure').value;
		  JourDebut=document.getElementById('Debut_Jour').value;
		  MoisDebut=document.getElementById('Debut_Mois').value;
		  AnneeDebut=document.getElementById('Debut_Annee').value;
		  
		  
		  HeureEcheance=document.getElementById('Echeance_Heure').value;
		  JourEcheance=document.getElementById('Echeance_Jour').value;
		  MoisEcheance=document.getElementById('Echeance_Mois').value;
		  AnneeEcheance=document.getElementById('Echeance_Annee').value;
		   if(HeureDebut!='')
		   {
Debut= new Date();
Debut.setTime(Date.parse(MoisDebut+'/'+JourDebut+'/'+AnneeDebut+' '+HeureDebut));
		   }
else
{
Debut= new Date();
Debut.setTime(Date.parse(MoisDebut+'/'+JourDebut+'/'+AnneeDebut+' 00:00'));
}
		  
		   if(HeureEcheance!='')
		   {
Echeance= new Date();
Echeance.setTime(Date.parse(MoisEcheance+'/'+JourEcheance+'/'+AnneeEcheance+' '+HeureEcheance));
		   }
else
{
Echeance= new Date();
Echeance.setTime(Date.parse(MoisEcheance+'/'+JourEcheance+'/'+AnneeEcheance+' 00:00'));
}

		  if(Debut>Echeance)
		  {
		  //alert('La date d\'échéance doit être supérieure ou égale à la date début. ');
		  document.getElementById('Echeance_Heure').value=HeureDebut;
		  document.getElementById('Echeance_Jour').value=JourDebut;
		  document.getElementById('Echeance_Mois').value=MoisDebut;
		  document.getElementById('Echeance_Annee').value=AnneeDebut;
		  }
		}else
		return false;
		
		   
		  }
/*function document.oncontextmenu()
{
	var s = event.srcElement.tagName;
	// For Selection Ranges, s will be UNDEFINED
	if (s && s != "INPUT" && s != "TEXTAREA" || event.srcElement.disabled || document.selection.createRange().text.length == 0)
	{
		
	}
	
	event.returnValue = false;
}*/
//-----------------------------------------------------------------
function SetPickListMultiValue(champ)
{
	var objet=document.getElementById(champ);
	var elements=document.getElementsByName('elements'+champ);
	objet.value='';
	for (var i=0; i<elements.length; i++)
	{
		if (elements[i].checked) ///////////////----------------pkoi ça marche pas :'''''(((
		{
			if (objet.value=='')
				objet.value=elements[i].value;
			else
				objet.value+=';'+elements[i].value;
		}
	}
	if (window.PickListMultiOnChange)
		PickListMultiOnChange(champ);
}
//-----------------------------------------------------------------
function PickListMultiCheckAll(champ)
{
	var objet=document.getElementById(champ);
	var elements_checkall=document.getElementById('elements_checkall_'+champ);
	var elements=document.getElementsByName('elements'+champ);
	for (var i=0; i<elements.length; i++)
	{
		elements[i].checked = elements_checkall.checked;
	}
	SetPickListMultiValue(champ);
}
//-----------------------------------------------------------------
function Enabled(e,bEnable,classe)
{
	var e=document.getElementsByName(e);
	if (e[0])
		e=e[0];
	else
		e=document.getElementById(e);
	e[0].disabled=!bEnable;
	if (classe!='')
		e[0].className=classe;
	else
	{
		if (bEnable)
			e[0].style.backgroundColor='white';
		else
			e[0].style.backgroundColor='#F8F8F8';
	}

	return bEnable;
}
//-----------------------------------------------------------------
function Visible(e, bShow)
{
	var e=document.getElementsByName(e);
	if (e[0])
		e=e[0];
	else
		e=document.getElementById(e);
	e.style.visibility = bShow ? 'visible' : 'hidden';
	return bShow;
}
//-----------------------------------------------------------------
function DivVisible(e, bShow)
{
	var e=document.getElementById(e);
	e.style.display=bShow ? 'block' : 'none';
	return bShow;
}

//-----------------------------------------------------------------
function Show(e, bShow)
{
	var e=document.getElementById(e);
	e.style.display=bShow ;
	return bShow;
}
//-----------------------------------------------------------------
function GetUrlParam( paramName )
{
	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
	var oMatch = oRegex.exec( window.top.location.search ) ;
	
	if ( oMatch && oMatch.length > 1 )
		return oMatch[1] ;
	else
		return '' ;
}
//-----------------------------------------------------------------

function openStdWin(sPath, sName, iX, iY)
{
	
	if (!iX) 
	iX = 850;
	if (!iY) 
	iY = 600;
	trouve=false;
	try
	{
		/*for(i=0;i<StdWin.length;i++)
		{
			if(!StdWin[i].closed  && StdWin[i].location.pathname+StdWin[i].location.search==sPath)
			{
				trouve=true;
				StdWin[i].location.reload();
				StdWin[i].focus();
				break;
			}
		}*/
		if(!trouve)
		{
			S=window.open(sPath, sName, "width=" + iX + ",height=" + iY + ",status=1,resizable=1,scrollbars=1");
			StdWin[count]=S;
			count++;
		}
	}
	catch(e) {}
}
//-----------------------------------------------------------------
function Trim(s)
{
	return s.replace(/^\s+|\s+$/g,'');
}
//-----------------------------------------------------------------
function FormValuesToArray()	//-------- mehDiZ
{
	var Arr = new Array();
	//-----------------------------------------------------------------
	var elms = document.getElementsByTagName('input');
	for (i in elms)
		if ( (elms[i].id || elms[i].name) && elms[i].name!='close' )
			Arr[elms[i].id+'_'+elms[i].name] = elms[i].value;
	//-------------
	var elms = document.getElementsByTagName('select');
	for (i in elms)
		if ( (elms[i].id || elms[i].name) && elms[i].name!='close' )
			Arr[elms[i].id+'_'+elms[i].name] = elms[i].value;
	//-------------
	return Arr;
}
//-----------------------------------------------------------------
function IsFormModified()	//-------- mehDiZ
{
	var Nouveau = FormValuesToArray();
	for (i in Nouveau)
		if (Nouveau[i] != OldValuesArray[i])
			return true;
	return false;
}
//-----------------------------------------------------------------
function showError(_Error)
{
	var ImageError=$('ImageError');
	if (ImageError)
	{
	    
            ImageError.innerHTML='<img src="/_common/error/imgs/'+_Error[0]+'.gif"  align="absmiddle">';
		var MessageError=$('MessageError');
		MessageError.innerHTML=_Error[1];
		$('TableErrorBox').style.display='block';
		$('ErrorBox').style.display='block';

	}
}
//-----------------------------------------------------------------
 function hideError()
{
	var ImageError=document.getElementById('ImageError');
	
	if (ImageError)
	{   
		ImageError.innerHTML='';
		var MessageError=document.getElementById('MessageError');
		MessageError.innerHTML='';
		document.getElementById('ErrorBox').style.display='none';
		document.getElementById('TableErrorBox').style.display='none';
	}
}
//-----------------------------------------------------------------
function TestSubmit(form)
{
	hideError();
	if (OldValuesArray)
	{
		IsModified = IsFormModified();
		if(IsModified)
		{
			//alert('Modifié : ' + IsModified);
		}
		else
		{
			//alert('Non modifié');
			//return false;
		}
	}
	
	var _IsError=false;
	var _messageSingular="<b>Champ obligatoire non rempli :</b>";
	var _messagePlural="<b>Champs obligatoires non remplis :</b>";
	var _nbErrors = 0;
	//-------------------------------------------
	for(var i=0;i<VarRequis.length;i++)
	{
		if(!TestVal(form,VarRequis[i],VarTypes[i]))
		{
			_nbErrors++;
			_IsError=true;
			_messageSingular=_messageSingular+" <br> - "+VarLibs[i];
			_messagePlural=_messagePlural+" <br> - "+VarLibs[i];
			if (VarTypes[i].match(/lookup/))
			{//alert(VarRequis[i]);
				$('Nom'+VarRequis[i]).className='errorFields';
			}
			else
			{
				$(VarRequis[i]).className='errorFields';
			}
			//var _Error=new Array('-3',_message);
		}
	}
	
	if(_IsError)
	{
		if (_nbErrors==1)
		{
			_Error=new Array('-3',_messageSingular);
		}
		else
		{
			_Error=new Array('-3',_messagePlural);
		}
		showError(_Error);
				//Dialog.alert('Erreur : '+_message, {windowParameters: {width:300, height:100}, okLabel: "close"});

		return false;
	}
	else
	{
		return true;
	}
}
//-----------------------------------------------------------------
function TestVal(form,val,type)
{
	if (! form.elements[val])
		return true;
	switch(type)
	{
		case 'money':
			if(Trim(form.elements[val].value)!='')
			if(parseFloat(form.elements[val].value)!=NaN)return true;
		break;
		case 'float':
			if(Trim(form.elements[val].value)!='')
			if(parseFloat(form.elements[val].value)!=NaN)return true;
		break;
		case 'integer':
			if(Trim(form.elements[val].value)!='')
			if(parseInt(form.elements[val].value)!=NaN)return true;
		break;
		case 'datetime':
		if((form.elements[val].value)!='0000-00-0 00:00')return true;
		break;
		case 'id':
		case 'text':
		case 'memo':
		case 'picklist':
		case 'picklist_multi':
		case 'owner':
		case 'lookup':
		case 'lookup_dyn':
		case 'lookup_multi':
		case 'lookup_multi_simple':
		//alert(form.elements[val].value);
			//if(Trim(form.elements[val].value)!='')return true;
			if(form.elements[val].value!='')return true;
		break;
		case 'boolean':
			return true;
		break;
		default :
			//form.elements[val].focus();
			//form.elements[val].select();
			if(form.elements[val].value!='')return true;
		break;
	}

	return false;
}
//-----------------------------------------------------------------
function test_empty(Oarray)
{
	for(i=0;i<Oarray.length / 2;i++)
	{
		Oarray[i*2].value=Trim(Oarray[i*2].value);
		if(Oarray[i*2].value==""){alert("le champ: "+Oarray[i*2+1]+" doit etre saisie.");return false;}
	}
	return true;
}
//-----------------------------------------------------------------
function test_int(Oarray)
{
	for(i=0;i<Oarray.length / 2;i++)
	{
		if(isNaN(parseInt(Oarray[i*2].value))){Oarray[i*2].value="";alert("le champ: "+Oarray[i*2+1]+" doit etre un numerique.");return false;}
	}
	return true;
}
//-----------------------------------------------------------------
function test_float(Oarray)
{
	for(i=0;i<Oarray.length / 2;i++)
	{
		if(isNaN(parseFloat(Oarray[i*2].value)) && (Trim(Oarray[i*2].value)!="")){Oarray[i*2].value="";alert("le champ: "+Oarray[i*2+1]+" doit etre un numerique.");return false;}
	}
	return true;
}
//-----------------------------------------------------------------
function test_duree(timeStr)
{
	var resultat=0;
	var nombre=0;
	//var timePat = /^(\d\d*)(.(\d\d*))?(\s*(m|min|minute|minutes|h|heure|heures|j|jour|jours|sem|semaine|semaines|mois))?$/i;
	var timePat = /^((\d\d*)(.(\d\d*))?(\s*(mois)))?\s*,?\s*((\d\d*)(.(\d\d*))?(\s*(sem|semaine|semaines)))?\s*,?\s*((\d\d*)(.(\d\d*))?(\s*(j|jour|jours)))?\s*,?\s*((\d\d*)(.(\d\d*))?(\s*(:|h|heure|heures)))?\s*,?\s*((\d\d*)?(\s*(m|min|minute|minutes))?)?$/i;

	var matchArray = timeStr.match(timePat);
	if (matchArray == null)
	{alert("Format de la dur&eacute;e invalide");return false;}

//alert(matchArray);

	//---------mois------------
	/*alert(matchArray[2]);
	alert(matchArray[4]);
	/*alert(matchArray[6]);*/
	apres_virgule=matchArray[4];
	for (i=1;i<=matchArray[4].length;i++)
		apres_virgule=apres_virgule/10;
	nombre=(1*matchArray[2]+1*apres_virgule)*60*24*30;
	resultat=resultat*1+nombre*1;
	//----------------------------

	//---------semaines------------
	/*alert(matchArray[8]);
	alert(matchArray[10]);
	/*alert(matchArray[11]);*/
	apres_virgule=matchArray[10];
	for (i=1;i<=matchArray[10].length;i++)
		apres_virgule=apres_virgule/10;
	nombre=(1*matchArray[8]+1*apres_virgule)*60*24*7;
	resultat=resultat*1+nombre*1;
	//----------------------------

	//---------jours------------
	/*alert(matchArray[14]);
	alert(matchArray[16]);
	/*alert(matchArray[16]);*/
	apres_virgule=matchArray[16];
	for (i=1;i<=matchArray[16].length;i++)
		apres_virgule=apres_virgule/10;
	nombre=(1*matchArray[14]+1*apres_virgule)*60*24;
	resultat=resultat*1+nombre*1;
	//----------------------------

	//---------heures------------
	/*alert(matchArray[20]);
	alert(matchArray[22]);
	/*alert(matchArray[24]);*/
	apres_virgule=matchArray[22];
	for (i=1;i<=matchArray[22].length;i++)
		apres_virgule=apres_virgule/10;
	nombre=(1*matchArray[20]+1*apres_virgule)*60;
	resultat=resultat*1+nombre*1; //?????????????????????????????????????????????????????????????? JOKER ????????????????????????
	//----------------------------

	//---------minutes------------
	/*alert(matchArray[26]);
	/*alert(matchArray[27]);
	alert(matchArray[29]);*/
	resultat=resultat*1+matchArray[26]*1;
	//----------------------------

	return resultat;
}
//-----------------------------------------------------------------
function duree2string(minutes)
{
	 if (minutes>=60*24*7*30) {
								r=Math.floor(minutes/(60*24*30))+' Mois';
								if (minutes%(60*24*30)>0)	r+=', '+duree2string(minutes%(60*24*30));
								return r;
							  }

	else if (minutes>=60*24*7) {
								  r=Math.floor(minutes/(60*24*7))+' Semaines';
								  if (minutes%(60*24*7)>0)	r+=', '+duree2string(minutes%(60*24*7));
								  return r;
							   }

	else if (minutes>=60*24) {
								r=Math.floor(minutes/(60*24))+' Jours';
								if (minutes%(60*24)>0)	r+=', '+duree2string(minutes%(60*24));
								return r;
							 }
	else if (minutes>=60) {
							 r=Math.floor(minutes/60)+' Heures';
							 if (minutes%60>0)	r+=', '+duree2string(minutes%60);
							 return r;
						  }
	else if (minutes>0) return Math.round(minutes)+' Minutes'; else return '';
}
//-----------------------------------------------------------------
function test_time(timeStr, returnlong)
{
	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

	var matchArray = timeStr.match(timePat);
	if (matchArray == null)
	{alert("Format de l'heure invalide");return false;}

	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }

	if (hour < 0  || hour > 23)
	{alert("L'heure doit etre entre 0 et 23"); return false;}
	
	if  (hour > 12 && ampm != null)
	{alert("Vous ne pouvez pas specifiez AM ou PM."); return false;}

	if (minute<0 || minute > 59)
	{alert ("Les minutes doivent etre entre 0 and 59."); return false;}

	if (second != null && (second < 0 || second > 59))
	{alert ("Les secondes doivent etre entre 0 and 59."); return false;}

	if ((ampm=="PM")||(ampm=="pm")) hour=hour*1+12;

	var resultat='';

	if (hour.length<2) resultat='0'+hour+':'+minute; else resultat=hour+':'+minute;
	if (returnlong)	{resultat+=':'+second;}

	return resultat;
}
 //separateur de milliers
 
function money_format(obj,decimal,separateur) {
	//alert('ffffffffff');
	
	valeur=obj.value.replace(separateur,'');
	valeur=valeur.replace(separateur,'');
	valeur=valeur.replace(separateur,'');
	valeur=valeur.replace(separateur,'');
	valeur=valeur.replace(separateur,'');
	valeur=valeur.replace(separateur,'');
	var deci=Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))) ; 
	var val=Math.floor(Math.abs(valeur));
	if ((decimal==0)||(deci==Math.pow(10,decimal))) {val=Math.floor(Math.abs(valeur)); deci=0;}
	var val_format=val+"";
	var nb=val_format.length;
	for (var i=1;i<4;i++) {
		if (val>=Math.pow(10,(3*i))) {
			val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
		}
	}
	if (decimal>0) {
		var decim=""; 
		for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";}
		deci=decim+deci.toString();
		val_format=val_format+"."+deci;
	}
	if (parseFloat(valeur)<0) {val_format="-"+val_format;}
	obj.value= val_format;
}

//-----------------------------------------------------------------
function verifier(num)
{
	var ch='09'; 
	var chaine=num;
    for (var i=0; i<chaine.length; i++) {
		 if( chaine.charCodeAt(i)<ch.charCodeAt(0))
		 return 0; 
		 if(chaine.charCodeAt(i)>ch.charCodeAt(1))
		 return 0;
	}
    return 1;
	}/**/
function ControlField(champ,dataType,par1,par2)
{
	if(champ.value=='')return;
	switch(dataType)
	{
		case 'text':
			switch(par2)
			{
				case 'id':
					return;
				break;
				case 'tel':
                    if (verifier(champ.value)==0) {alert("Le numéro de téléphone contient des caractères non autorisés");champ.value='';}
					else
					if  (champ.value.length<9)
					{alert("Le Numéro de téléphone est incorrect, saisissez huit positions numériques");
					champ.value='';}
					break;
				case 'text':
					return ;
					
				break;
				case 'email':
					return champ.value.indexOf('@')>0;
				break;
			}
			return;
		break;

		case 'time':
			champ.value=Trim(champ.value);
			return test_time(champ.value,par2);
		break;

		case 'duree':
			champ.value=Trim(champ.value);
			return test_duree(champ.value);
		break;

		case 'integer':
			champ.value=Trim(champ.value);
			if(isNaN(champ.value))
			{
				alert("La valeur saisie n'est pas un valeur numérique.");
				champ.value='';
			}
			if((champ.value.indexOf(".")>=0))
			{
				alert("La valeur saisie n'est pas un entier valide.");
				champ.value='';
			}
			if((parseInt(champ.value)<parseInt(par1))||(parseInt(champ.value)>parseInt(par2)))
			{
				alert("La valeur saisie n'est dans l'interval ["+par1+","+par2+"] .");
				
			}
			return;
		break;
		default :
			return;
		break;
	}
	champ.value='';
	champ.focus();
}
//-----------------------------------------------------------------
function getPassword(length, extraChars, firstNumber, firstLower, firstUpper, firstOther,latterNumber, latterLower, latterUpper, latterOther)
{
  var rc = "";
  if(length > 0)
    rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther, extraChars);
  for(var idx = 1; idx < length; ++idx)
  {
    rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther, extraChars);
  }
  return rc;
}
<!-- Original:  ataxx@visto.com -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function getRandomNum(lbound, ubound) {
return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
function getRandomChar(number, lower, upper, other, extra) {
var numberChars = "0123456789";
var lowerChars = "abcdefghijklmnopqrstuvwxyz";
var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var otherChars ="";// "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
var charSet = extra;
if (number == true)
charSet += numberChars;
if (lower == true)
charSet += lowerChars;
if (upper == true)
charSet += upperChars;
if (other == true)
charSet += otherChars;
return charSet.charAt(getRandomNum(0, charSet.length));
}
function getPassword(length, extraChars, firstNumber, firstLower, firstUpper, firstOther,
latterNumber, latterLower, latterUpper, latterOther) {
var rc = "";
if (length > 0)
rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther, extraChars);
for (var idx = 1; idx < length; ++idx) {
rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther, extraChars);
}
return rc;
}
// End -->


/*--------------------------Added by mehDiZ----------------------------*/

function GetName(ObjetName)
{
	var arr=ObjetName.split('.');
	return arr[arr.length-1];
}

function GetDetailPath(ObjetLongName)
{
	var ObjetName=GetName(ObjetLongName);
	ObjetLongName = ObjetLongName.replace('.','/');
	ObjetLongName = ObjetLongName.replace('.','/');
	return '/adm/'+ObjetLongName+'/'+ObjetName+'detail.php';
}

function in_array(x, Tab)
{
	retval = false;
	for (key in Tab)
		if(Tab[key] == x)
			retval = true;
	return retval;
}
//-----------------------------------------------------------------
function implode(Separateur,Tab)
{
	retval = '';
	for (key in Tab)
	{
		if(retval == '')
			retval = Tab[key];
		else
			retval += Separateur + Tab[key];
	}
	return retval;
}
//-----------------------------------------------------------------
function affectXPDL(champ,val)
{
	if(val!=null)
	{
		var elm=document.getElementsByName(champ);
		elm[0].value=val[0];
	}
}
//-----------------------------------------------------------------
function affect(champ,val)
{
	if(val!=undefined)
	{
		_lookup=val;
		var elm=document.getElementsByName('Nom'+champ);
		elm[0].value=val[1];
		elm=document.getElementById(champ);
		var key=val[0].split(':');
		elm.value=key[1];
		return true;
	}
	else
		return false;
}

///--------------------------------
/*function affect_cliquable(champ,val)
{
	if(val!=null)
	{
		alert(val[2]);
		_lookup=val;
		var elm=document.getElementById('Nom'+champ);
		elm.innerHTML='<table cellspacing=0 cellpadding=0 border="0"><tr><td><img src="/images/webapps/16/ico_16_'+val[2]+'.gif" width="16" height="16"></td><td>&nbsp;<a style="cursor:hand;" onClick="javascript:openStdWin(\'/_portal/Areas/Areas.php?ObjName='+val[2]+'&Selected='+val[0]+'\',\'\')"><u>'+val[1]+'</u></a></td></tr></table>';
		elm=document.getElementById(champ);
		var key=val[0].split(':');
		elm.value=key[1];
	}
}*/

///--------------------------------
function affect_dyn(champ,val,format)
{
	/*alert(champ);
	alert(val[0]);
	alert(val[1]);
	alert(val[2]);*/
	if(val!=null)
	{
		_lookup=val;
		//alert(val[0]);
		var key=val[0].split(':');
		if (!format)
		{
			var elm=document.getElementsByName('Objet'+champ);
			elm[0].value=val[2];
		}
		//alert('Display'+champ);
		//--------------
		var elm=document.getElementById('Nom'+champ);
		if (val[2]=='')
			elm.innerHTML='';
		else
		{
			elm.innerHTML='<table border=0 cellspacing=0 cellpadding=0><tr><td><img src="/images/webapps/16/ico_16_'+val[2]+'.gif" width="16" onclick="openStdWin(\'/_portal/Areas/Areas.php?ObjName='+val[2]+'&Selected='+key[0]+':'+key[1]+'\',\'\')"></td><td>&nbsp;<a href="javascript:openStdWin(\'/_portal/Areas/Areas.php?ObjName='+val[2]+'&Selected='+key[0]+':'+key[1]+'\',\'\')">'+val[1]+"</a></tr></table>";
		}
		elm=document.getElementsByName(champ);
		if (format)
			elm[0].value=val[2]+':'+key[1];
		else
			elm[0].value=key[1];
			
		//alert('Display'+champ);
		elm=document.getElementsByName('Display'+champ);
		elm[0].value=val[1];
		
		
	}
}
///--------------------------------
function affect_multi_whendone(multiselect,champ,val,ToDelete)
{
	if ((val!='') && (val!='||||||') )
	{
		//------------------------------- Recencement des anciennes valeurs pour ne pas les dupliquer ---------------
				var oldvalues_remix=new Array();
				var elm=document.getElementsByName(champ);
				var elementvisible=document.getElementById('Nom'+champ);
				if ( (multiselect=='0') || (ToDelete.length>0) )
				{
					elm[0].value='';
					elementvisible.innerHTML='';
				}
				if ((multiselect=='1') && (elm[0].value!='') )
				{
					var oldvalues=elm[0].value.split('|');
					for(var i=0;i<oldvalues.length;i++)
					{
						var objetgroup=oldvalues[i].split('/');
						var records=objetgroup[2].split('!');
						for(var j=0;j<records.length;j++)
						{
							var _id=records[j].split('=');
							oldvalues_remix.push(objetgroup[0]+'/'+objetgroup[1]+'/'+_id[0]);
						}
					}
				}
		//-----------------------------------------------------------------------------------------------------------
		val=val.split('|||');
		var ArrayOrganiseParClasse = val[2].split('|');
		var rows='';
		var LastObjetObjectId='';
		//-----------------------------------------------------------------------------------------------------------
		for (classe=0; classe<ArrayOrganiseParClasse.length; classe++)
		{
			var op=ArrayOrganiseParClasse[classe].split('/');
			var ObjetObjectId=op[0];
			var   KeyObjectId=op[1];
			op=op[2].split('!');
			for(var i=0;i<op.length;i++)
			{
				var x=op[i].split('=');
				if ( (!in_array(ObjetObjectId+'/'+KeyObjectId+'/'+x[0], oldvalues_remix)) && (!in_array(ObjetObjectId+'/'+KeyObjectId+'/'+x[0], ToDelete)) )
				{
					if (elm[0].value=='')
						elm[0].value =      ObjetObjectId+'/'+KeyObjectId+'/'+op[i];
					else
						elm[0].value += '|'+ObjetObjectId+'/'+KeyObjectId+'/'+op[i];
						
					rows+='<tr><td width="16"><input type="checkbox" name="elements'+champ+'" value="'+ObjetObjectId+'/'+KeyObjectId+'/'+op[i]+'"></td><td><img src="/images/webapps/16/ico_16_'+ObjetObjectId+'.gif" width="16"></td><td>&nbsp;<a title="'+ObjetObjectId+'/'+KeyObjectId+'/'+x[0]+'" style="cursor:hand;" onClick="javascript:openStdWin(\'/_portal/Areas/Areas.php?ObjName='+ObjetObjectId+'&Selected='+KeyObjectId+':'+x[0]+'\',\'\')"><u>'+x[1]+"</u></a></td></tr>";
					LastObjetObjectId=ObjetObjectId;
				}
			}
		}
		if (multiselect=='1')
		{
			elementvisible.innerHTML+='<table border=0 cellspacing=0 cellpadding=0>'+rows+'</table>';
		}
		else
			elementvisible.innerHTML='<table border=0 cellspacing=0 cellpadding=0>'+rows+'</table>';
	}
}//*********************
function affect_multi_whendone_Edit(multiselect,champ,val,ToDelete)
{
	if ((val!='') && (val!='||||||') )
	{
		
		
		val=val.split('|||');
		var ArrayOrganiseParClasse = val[2].split('|');
		var rows='';
		var elm=document.getElementsByName(champ);
		var elementvisible=document.getElementById('Nom'+champ+'Add');
		var LastObjetObjectId='';
		//-----------------------------------------------------------------------------------------------------------
		
		for (classe=0; classe<ArrayOrganiseParClasse.length; classe++)
		{
			
			var op=ArrayOrganiseParClasse[classe].split('/');
			var ObjetObjectId=op[0];
			var   KeyObjectId=op[1];
			op=op[2].split('!');
			
			for(var i=0;i<op.length;i++)
			{
				
				var x=op[i].split('=');
				
						
					rows+=x[1]+",";
				
				
			}
		}
		if (multiselect=='1')
		{
			elementvisible.value+=rows;
		}
		else
			elementvisible.value=rows;
	}
}
///--------------------------------
function affect_multi(multiselect,champ,val)
{
	if(val!=null)
	{
		var myConn = new XHConn();
		if (!myConn) alert("XMLHTTP not available. verifier votre explorer.");
		var fnWhenDone = function fnWhenDoneFun(oXML)
			{
           
				affect_multi_whendone(multiselect, champ, oXML.responseText, new Array());
			}
		
		if (multiselect=='1')
			myConn.connect("/_system/_composants/_lookup/Exec.php", "POST", "ObjName="+val[0]+"&champ="+val[1]+"&keys="+val[2], fnWhenDone);
		else
		{
			var _temp = val[1].split(':');
			affect_multi_whendone(multiselect, champ, "'"+_temp[1]+"'"   +'|||'+   val[2]   +'|||'+   val[0] + '/' + _temp[0] + '/' + _temp[1] + '=' + val[2], new Array() );
		}
	}
}
function affect_multi_Edit(multiselect,champ,val)
{
	if(val!=null)
	{
		var myConn = new XHConn();
		if (!myConn) alert("XMLHTTP not available. verifier votre explorer.");
		var fnWhenDone = function fnWhenDoneFun(oXML)
			{ 
			//alert(oXML.responseText);
				affect_multi_whendone_Edit(multiselect, champ, oXML.responseText, new Array());
			}
		
		if (multiselect=='1')
			myConn.connect("/_system/_composants/_lookup/Exec_Email.php", "POST", "ObjName="+val[0]+"&champ="+val[1]+"&keys="+val[2], fnWhenDone);
		else
		{
			var _temp = val[1].split(':');
			affect_multi_whendone(multiselect, champ, "'"+_temp[1]+"'"   +'|||'+   val[2]   +'|||'+   val[0] + '/' + _temp[0] + '/' + _temp[1] + '=' + val[2], new Array() );
		}
	}
}
//--------------------------- Suppression pour les Lookup multi -----------------------------

function DeleteSelectedLookupMultiLigneCourante(datas,checkbox)
{
	var value=checkbox.value;
	var _LIGNE = checkbox.parentNode.parentNode;
	_LIGNE.parentNode.removeChild(_LIGNE);
	//------------
	var oldvalues = datas.value.split('|');
	var resultat='';
	for (var i=0; i<oldvalues.length; i++)
	{
		if (oldvalues[i]!=value)
		{
			if (resultat=='')
				resultat = oldvalues[i];
			else
				resultat += '|'+oldvalues[i];
		}
	}
	return resultat;
}
///--------------------------------
function DeleteSelectedLookupMulti(champ)
{
	var ToDelete = new Array();
	var elm=document.getElementsByName(champ);
	var elements=document.getElementsByName('elements'+champ);
	if(elements.length>0)
	{
		var _temp = new Array();
		for (var i=elements.length-1 ; i>=0 ; i--)
		{
			var e = elements[i];
			if (e.type == 'checkbox')
				if(e.checked)
				{
					elm[0].value = DeleteSelectedLookupMultiLigneCourante(elm[0],e);
					e.value='';
				}
		}
	}
}
//----------------------------------------------------------------------------------
function affect_nom_whendone(champ,val)
{
	var elementvisible=document.getElementById('Nom'+champ);
	elementvisible.value=val;
}

//----------------------------------------------------------------------------------

function affect_multi_simple_whendone(champ,val)
{
	if ( (val!='') && (val!='||||||') )
	{
		//-----------------------------------------------------------------------------------------------------------
		val=val.split('|||');
		var op=val[2].split('/');
		var ObjetObjectId=op[0];
		var   KeyObjectId=op[1];
		op=op[2].split('!');
		var elm=document.getElementsByName(champ);
		var elementvisible=document.getElementById('Nom'+champ);
		if (elm[0].value!='')
			var oldvalues=elm[0].value.split(';');
		else
			var oldvalues= new Array();
		var rows='';
		var refresh=false;
		for(var i=0;i<op.length;i++)
		{
			var x=op[i].split('=');
			if (! in_array(x[0], oldvalues))
			{
				refresh=true;
				if (elm[0].value!='') elm[0].value += ';';
				elm[0].value += x[0];
				rows+='<tr><td width="16"><input type="checkbox" name="elements'+champ+'" value="'+x[0]+'"></td><td><img src="/images/webapps/16/ico_16_'+ObjetObjectId+'.gif" width="16"></td><td>&nbsp;<a title="'+ObjetObjectId+'/'+KeyObjectId+'/'+x[0]+'" style="cursor:hand;" onClick="javascript:openStdWin(\'/_portal/Areas/Areas.php?ObjName='+ObjetObjectId+'&Selected='+KeyObjectId+':'+x[0]+'\',\'\')"><u>'+x[1]+"</u></a></tr>";
			}
		}
		if (refresh)
		{
			elementvisible.innerHTML+='<table border="0" cellspacing="0" cellpadding="0">'+rows+'</table>';
		}
	}
}
///--------------------------------
function affect_multi_simple(champ,val)
{
	if(val!=null)
	{
		var myConn = new XHConn();
		if (!myConn) alert("XMLHTTP not available. verifier votre explorer.");
		var fnWhenDone = function fnWhenDoneFun(oXML){affect_multi_simple_whendone(champ, oXML.responseText);};
		myConn.connect("/_system/_composants/_lookup/Exec.php", "POST", "ObjName="+val[0]+"&champ="+val[1]+"&keys="+val[2], fnWhenDone);
	}
}

///--------------------------------
function affect_with_key(objet,champ,key)
{
	var myConn = new XHConn();
	if (!myConn) alert("XMLHTTP not available. verifier votre explorer.");
	var fnWhenDone = function fnWhenDoneFun(oXML){affect_nom_whendone(champ,oXML.responseText);};
	myConn.connect("/_system/_composants/_lookup/Exec_Default.php", "POST", "ObjName="+objet+"&key="+key, fnWhenDone);
}

//--------------------------- Suppression pour les Lookup multi simples -----------------------------

function DeleteSelectedLookupMultiSimpleLigneCourante(datas,checkbox)
{
	var value=checkbox.value;
	var _LIGNE = checkbox.parentNode.parentNode;
	_LIGNE.parentNode.removeChild(_LIGNE);
	//------------
	var oldvalues = datas.value.split(';');
	var resultat='';
	for (var i=0; i<oldvalues.length; i++)
	{
		if (oldvalues[i]!=value)
		{
			if (resultat=='')
				resultat = oldvalues[i];
			else
				resultat += ';'+oldvalues[i];
		}
	}
	return resultat;
}
///--------------------------------
function DeleteSelectedLookupMultiSimple(champ)
{
	var ToDelete = new Array();
	var elm=document.getElementsByName(champ);
	var elements=document.getElementsByName('elements'+champ);
	if(elements.length>0)
	{
		var _temp = new Array();
		for (var i=elements.length-1 ; i>=0 ; i--)
		{
			var e = elements[i];
			if (e.type == 'checkbox')
				if(e.checked)
				{
					elm[0].value = DeleteSelectedLookupMultiSimpleLigneCourante(elm[0],e);
					e.value='';
				}
		}
	}
}
/*---------------------------------------------------------------------------*/
	function TestTime(champ, returnlong)
	{
		var objet=document.getElementsByName(champ);
		var nomobjet=document.getElementsByName('Nom'+champ);

		if(nomobjet[0].value!='')
		{
			var val=ControlField(nomobjet[0],'time','',returnlong);
			if(val!=false)
				objet[0].value=val;
			else
				nomobjet[0].value=objet[0].value;
		}
		//alert(objet[0].value);
	}
///--------------------------------
	function MaxDays(Annee, Mois)
	{
		if (Annee==0000 && Mois==00)
		{
			return 31;
		}
		Mois--;
		var MoisLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		var r = MoisLength[Mois];
		if ( (Mois==1) && ((Annee % 4)==0) ) r++;
		return r;
	}
///--------------------------------
	function FillDays(champ)
	{
		var Annee=document.getElementsByName(champ+'_Annee');
		var Mois=document.getElementsByName(champ+'_Mois');
		var Jour=document.getElementsByName(champ+'_Jour');

		if(!Jour[0].options)	//--- picklist jour hidden
		{
			//Jour.value='01';
			return;
		}

		var CurrentJour=Jour[0].value;

		var Max = MaxDays(Annee[0].value, Mois[0].value);
		Jour[0].options.length=0;
		Jour[0].options[0]=new Option(' ',0);
		
		for(i=1;i<10;i++)
			Jour[0].options[i]=new Option('0'+i,'0'+i);
		for(i=10;i<=Max;i++)
			Jour[0].options[i]=new Option(i,i);
		if (CurrentJour>Max)
		{
			Jour[0].selectedIndex=Max;
		}
		else
		{
			Jour[0].selectedIndex=CurrentJour;
		}
	}
///--------------------------------
function SetDateCompo(champ)
	{
		
		
		var emptyDate=false; //Added by Abdelraouf : pour les dates vides, qui posent probleme dans oracle
		var temoin = 3 ;
		
		var Heure=document.getElementsByName(champ+'_Heure');
		var Annee=document.getElementsByName(champ+'_Annee');
		if (Annee[0].value=='0000' || Annee[0].value=='')
		{
			temoin--;
			
			
		}
		var Mois=document.getElementsByName(champ+'_Mois');
		if (Mois[0].value=='00' || Mois[0].value=='')
		{
			temoin--;

			
		}
		var Jour=document.getElementsByName(champ+'_Jour');		
		if (Jour[0].value=='00' || Jour[0].value=='')
		{
			temoin--;
			
		}
		var DateCompo=document.getElementsByName(champ);
		if (temoin == 0)
		{
			emptyDate = false;
			DateCompo[0].value='';
		}
		else
		{
			DateCompo[0].value=Annee[0].value+'-';
			DateCompo[0].value+=Mois[0].value+'-';		
			DateCompo[0].value+=Jour[0].value;
			DateCompo[0].value+=' '+Heure[0].value;
		}
	
	}
///--------------------------------
	function ReloadDateCompo(champ)
	{
		var Heure=document.getElementsByName(champ+'_Heure');
		var Annee=document.getElementsByName(champ+'_Annee');
		var Mois=document.getElementsByName(champ+'_Mois');
		var Jour=document.getElementsByName(champ+'_Jour');
		var DateCompo=document.getElementsByName(champ);
		
		var arr=DateCompo[0].value.split(' ');
		var arrday=arr[0].split('-');
		
		for(var i=0;i<Annee[0].options.length;i++)
		{
			if(Annee[0].options[i].value==arrday[0])
				Annee[0].selectedIndex=i;
		}
		
		for(var i=0;i<Mois[0].options.length;i++)
		{
			if(Mois[0].options[i].value==arrday[1])
				Mois[0].selectedIndex=i;
		}
		
		for(var i=0;i<Jour[0].options.length;i++)
		{
			if(Jour[0].options[i].value==arrday[2])
				Jour[0].selectedIndex=i;
		}
	}	

///--------------------------------function GetValById

function GetValsByIds(_id)
{
	
	if(_id=='') return;
	if(_id=="undefined") return;
	alert(_id);
	var _arr=_id.split("|");
	var _val;
	var _ret="";
	for(var _i=0;_i<_arr.length;_i++)
	{
		_val=document.getElementsByName(_arr[_i]);
		if (!_val[0])
		{
			alert(_arr[_i]);
		}

		if(_ret=="")
			_ret=_val[0].value;
		else
			_ret+='*'+_val[0].value;
	}
	return _ret;
}

///--------------------------------
// Fonction pour la comparaison de deux dates

function isLessOrEaqual(deb,fin)
{ 
	
      if (parseInt(deb[2])<parseInt(fin[2])) {
         return true;
         }
      else {
         if ((parseInt(deb[2])== parseInt(fin[2])) && (parseInt(deb[1])<parseInt(fin[1]))){
            return true;
         }
         else {
            if ((parseInt(deb[2])== parseInt(fin[2])) && (parseInt(deb[1])==parseInt(fin[1])) && (parseInt(deb[0])<=parseInt(fin[0]))){
            return true;
            }
         }
      }
      
	return false;
}
/*function verifier(num)
{
	var chaine=num;
    for (var i=0; i<chaine.length; i++) {
		 if( chaine.charCodeAt(i)<'')||(chaine.charCodeAt(i)<''){return 0;} 
	}
    return 1;
	}*/