//
//	2011.11.22	THP ajoute body_posx, y
//	2011.06.07	THP correction submitform, test sur subcmd2
//	2011.03.28	THP parametrage par metas
//		META TRACTIVESECUREDNAV = 1 : active la protection de clic sur onglet
//		META TRACTIVEONQUIT = 1 : active la protection sur sortie de dossier
//		META TRINFOLDER =) 1 : signale qu'un dossier est ouvert
//	2011.03.28	THP	cochage d'un exclusif avec reloader => reload
//	2011.03.23	THP	mise en place onbeforeunloaded / gsQuestion_onbeforeunloaded
//	2011.02.08	THP	Ajout page complet / page is complete (protection clic avant load complete)
//	2009.10.22	THP	Mise à jour grpSet
//	2009.05.05	THP	Mise à jour pg sur affichage des Acc
//	2009.02.16	JG	Ajout de FormatPhone_GroupBy2 + FormatLowerCase
//	2009.01.16	JG	Ajout de FormatFirstUpperCase
//	2009.01.15	JG	Ajout de FormatNumeric & FormatPhone
//	2008.08.07	thp	ajout de lognavcharset
//	2008.08.01	thp	ajout de showHideAmounts(bshow)
//	2008.07.02	thp	ajout l2action /switchFolder
//	2008.01.15	thp	modification submitForm pour prendre en compte thickbox
//	2008.01.07	thp	correctif pour les calculs de montant avec reactions sur les table1input
//	2008.01.03	thp	traite texte lie hidden lie montants
//	2007.04.12	thp	maj formatage pour negatifs
//
function strtrim   (s){	return s.replace(/\xA0/g," ").replace(/^\s\s*/, '').replace(/\s\s*$/, '');}
function strltrim  (s){	return s.replace(/\xA0/g," ").replace(/^\s\s*/, '');}
function strrtrim  (s){	return s.replace(/\xA0/g," ").replace(/\s\s*$/, '');}

function strreplaceAll(s,sIn,sOut)
{
	var s = strtrim(s);
	var i;
	while((i=s.indexOf(sIn)) != -1)s = s.replace(sIn,sOut);
	return s;
}
var gsCurrency="&euro;";
var gslastpagecode="";
var scrollY=0;
var body_posx = 50;
var body_posy = 50;
function _sort_chunkify(t) 
{
	var tz = [], x = 0, y = -1, n = 0, i, j;

	while (i = (j = t.charAt(x++)).charCodeAt(0))
	{
		var m = (i == 46 || (i >=48 && i <= 57));
		if (m !== n)
		{
			tz[++y] = "";
			n = m;
		}
		tz[y] += j;
	}
	return tz;
}
function _sort_extraSort (ptable, f)
{
	var lsize = ptable.length;
	var temp, i,j;

	for (i=0;i<lsize;i++)
	if(!ptable[i]._sep)
	{
		for (j=i+1;j<lsize;j++)
		if(!ptable[j]._sep)
		{
			if (f(ptable[i],ptable[j])>0)
			{
				temp = ptable[i].value;	ptable[i].value = ptable[j].value;		ptable[j].value = temp;
				temp = ptable[i].text;	ptable[i].text = ptable[j].text;		ptable[j].text = temp;
				temp = ptable[i].selected;	ptable[i].selected = ptable[j].selected;		ptable[j].selected = temp;
				temp = ptable[i]._chunk;	ptable[i]._chunk = ptable[j]._chunk;	ptable[j]._chunk = temp;
				temp = ptable[i]._sep;	ptable[i]._sep = ptable[j]._sep;		ptable[j]._sep = temp;
			}
		}
	}
}

function _sort_sort(a, b) 
{
	if(Number(a.text[0]) && Number(b.text[0])) return Number(a.text) > Number(b.text) ? 1:-1;
	return a._chunk > b._chunk ? 1:-1;
}

function _sort_sort_desc(a, b) 
{
	if(Number(a.text[0]) && Number(b.text[0])) return Number(a.text) < Number(b.text) ? 1:-1;
	return a._chunk < b._chunk ? 1:-1;
}

function sortSELECTS()
{
	var tSel = document.getElementsByTagName('SELECT');
	var j,i,s,s2;
	for(j=0; j<tSel.length;j++)
	{
		if(tSel[j].getAttribute('sort') && tSel[j].getAttribute('sort')!="")
		{
			for(i=0;i<tSel[j].options.length;i++)
			if(tSel[j].options[i].tagName.toUpperCase()=='OPTION')
			{
				s = ""+tSel[j].options[i].text;
				s = strtrim(strreplaceAll(s,"&nbsp;"," "));
				
				s2 = ""+tSel[j].options[i].value;
				s2 = strtrim(strreplaceAll(s2,"&nbsp;"," "));
				
				tSel[j].options[i]._chunk = _sort_chunkify(tSel[j].options[i].text);
				tSel[j].options[i]._sep = (s2=="") || (s=="") ||  (s.substr(0,2)=='--');
				
			//	if(tSel[j].options[i]._sep) alert ( "j i("+j+" : "+ i +") sep");
			}

			//_sort_extraSort(tSel[j].options;;
			if( tSel[j].getAttribute('sort').toLowerCase()=='desc')
					_sort_extraSort(tSel[j].options,_sort_sort_desc) 
			else	_sort_extraSort(tSel[j].options,_sort_sort) 
		}
	}
}



function calcScrollY()
{
	if (document.all) 
	{
		if (document.documentElement && document.documentElement.scrollTop) 
				scrollY = parseInt(document.documentElement.scrollTop);
		else	scrollY = parseInt(document.body.scrollTop);
	} 
	else scrollY = parseInt(window.pageYOffset);
}

function FormatPhone_GroupBy2(s){
  	var reg = new RegExp(/[^0-9]*/g);
  	s = s.replace(reg, "");
	var out = "";
	for(i=0;i<s.length;i++){
		var num = s.substr(i, 1);
		out+= num;
		if(i%2!=0) out+= " ";
	}
  	var reg = new RegExp(/[ ]$/g);
  	out = out.replace(reg, "");
	
	return out;
}


function FormatLowerCase(s){
  	s = s.toLowerCase();
	return s;
}

function FormatFirstUpperCase(s){
  	s = s.substr(0,1).toUpperCase() + s.substr(1,s.length);
	
	return s;
}

function FormatNumeric(s){
  	var reg = new RegExp(/[^0-9]*/g);
  	s = s.replace(reg, "");
	
	return s;
}

function FormatPhone(s){
  	var reg = new RegExp(/[^0-9 \.\(\)\+]*/g);
  	s = s.replace(reg, "");
	
	return s;
}

function FormatPrenom(s)
{
     var i,sout,c,c2;
     s = s.toLowerCase();
     sout=s;
     c=' ';
     for (i=0;i<s.length;i++)
     {
		 c2 = s.substr(i,1);
		 if (c==' ' || c=='-' || c=="'" || c=='_' || i==0){c2=c2.toUpperCase();sout= sout.substr(0,i)+c2+ sout.substr(i+1);}
		 c = c2;
     }
     return sout;
}

function lstCheck(field, v){
	if(!field) return;
	
	var elem = document.getElementsByName(field);
	if(!elem || elem.length==0 || (elem[0].type!='radio' && elem[0].type!='checkbox' )) return;

	for(var i=0;i<elem.length;i++)
	{
		if (elem[i].value==v)
				elem[i].checked=true;
		else	elem[i].checked=false;
	}
}

function lstSelect(pfield, v){
	if(!pfield) return;
	if(pfield.tagName.toUpperCase()!='SELECT') return;
	
	for(var i=0;i<pfield.options.length;i++)
		if (pfield.options[i].value==v){pfield.selectedIndex=i;	return;	}
}

//------------------------------------------------------

function formatNumber(vin,n)
{
var vn=10;
var v1,v2,v3,ssign;
	
	if(vin=="") return "";
	
	if (vin<0) {ssign="-";vin=-vin;}
	else {ssign="";}

//	vn=Math.pow (vn,n); not ok on conkeror
	for(var i=1;i<n;i++)	vn*=10;

	v1=eval(vin);
	v2=1.0*(v1*vn)+0.5;
	v3=Math.floor(v2);

	s=""+v3;
	if (s.length<(n+1))  s= "000000"+s;
	return ssign+parseInt(s.substr(0,s.length-n))+'.'+s.substr(s.length-2,n);
}

//------------------------------------------------------

function popupWindow(sUrl,iWidth,iHeight,bmenubar)
{
	var sOptions =
		"dependent=yes," +
		"scrollbars=yes," +
		"toolbar=no," +
		"location=no," +
		"directories=no," +
		"status=no," +
		"menubar="+(bmenubar?"yes":"no")+"," +
		"resizable=yes";

	if (iWidth) sOptions += ",width=" + iWidth  ;
	if (iHeight) sOptions += ",height=" + iHeight;

	//var windowHandle = window.open(	sUrl, "subWindow", sOptions	);

	var windowHandle = window.open(	"", "subWindow", sOptions	);
	windowHandle.document.location.href=sUrl;
	windowHandle.opener=window;
	windowHandle.focus();
	return (windowHandle);
}

//------------------------------------------------------
// ferme fenetre

function closeWindow()

{
	window.close()
	return;
}

//------------------------------------------------------
// Gestion de formulaire
//------------------------------------------------------

var tpreTotaux=0;	// total des valeurs prefinies pour les section "bloquees" sur le form en cours
var tpreTotauxHT=0;	// total des valeurs prefinies pour les section "bloquees" sur le form en cours
var tpreTotauxTVA=0;	// total des valeurs prefinies pour les section "bloquees" sur le form en cours
var tOptions=new Array();	// tableau des champs d'acquision (1 option pour 1 champs ecran) (obligatoire)
var tProfils=new Array();	// tableau des champs de profil (1 option pour 1 champs ecran) (obligatoire)
var tProfilsRequired=new Array();	// tableau des groupes de requis (1 parmi N minmum)
var tProfilsMutex=new Array();		// tableau des groupes d'exclusion mutelle(1 parmi N maximum)
var profil_reloadOnClick=false;
var tSpecialLimits=new Array();	// tableau des seuils limitation en quantite ou valeurs(optionel)


// infos systeme

var tRequired=new Array();	// tableau des groupes de requis (1 parmi N minmum)
var tMutex=new Array();		// tableau des groupes d'exclusion mutelle(1 parmi N maximum)
var tsubTotaux=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var tsubTotauxTVA=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var tsubTotauxHT=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var tConsos=new Array();		// tableau des groupes de consolidation de valeurs(1 a N)

function COption(ireq,imutex,iconso,caption,tvalues,tvaluestva)
{
	this.mireq=ireq;		// code de groupe de requis (-1 si NA)
	this.mimutex=imutex;	// code de groupe de mutuelle exclusion(-1 si NA)
	this.miconso=iconso;	// code de groupe de consolidation valorisee
	this.mpf=false;			// champs ecran
	this.mcaption=caption;	// libelle de "reclamation" (erreur ou non fourni sur oligatoire)
	this.mtvalues=tvalues;	// table des valeurs, 2 valeurs (non coche/coche) si "radio/check", n valeur si "select"
	this.mtvaluestva=tvaluestva;	// table des valeurs, 2 valeurs (non coche/coche) si "radio/check", n valeur si "select"
}

function CConsoLimits(igrp,qtemin,qtemax,valmin,valmax)
{
	this.migrp=igrp;
	this.mqtemin=qtemin;
	this.mqtemax=qtemax;
	this.mvalmin=valmin;
	this.mvalmax=valmax;
}

//------------------------------------------------------
// gestion get/set sur les champs

function ck_get()
{
	if (this.checked) return true;
	return false;
}

function ck_set(v)
{
	if (v) this.checked=true;
	this.checked=false;
}

function ra_get()
{
	if (this.checked) return true;
	return false;
}

function ra_set(v)
{
	if (v) this.checked=true;
	this.checked=false;
}

function cb_get()
{
	if (this.selectedIndex==-1) return false;
	return this.options[this.selectedIndex].value;
}

function cb_set(v)
{
	for(var i=0;i<this.options.length;i++)

		if (this.options[i].value==v)
		{
			this.selectedIndex=i;
			return;
		}
}

function tx_get()
{
	return this.value;
}

function tx_set(v)
{
	this.value=v;
}

function tx_gethidden()
{
	return this.value;
}

function tx_sethidden(v)
{
	if (v==true)
	{
		v=1;
		var p = document.getElementById('i'+this.name);
		if (p) p.src = "/res/checked.gif";
	}
	else
	if (v==false)
	{
		v='';
		var p = document.getElementById('i'+this.name);
		if (p) p.src = "/res/unchecked.gif";
	}

	this.value=v;
}

//------------------------------------------------------
// ajoute un pointeur sur l'objet tOptions[i] au 
// tableau tdatas
// dans le sous-tableau tdatas[i]

function grpSet(tdatas,i,igrp)
{
	if (igrp>=0)
	{
		if (igrp>=tdatas.length || !tdatas[igrp])
			tdatas[igrp]=new Array();
		var pgrp=tdatas[igrp];
		pgrp[pgrp.length]=tOptions[i];
		return pgrp;
	}
	return false;
}

function profil_grpSet(tdatas,i,igrp)
{
	if (igrp>=0)
	{
		if (igrp>=tdatas.length|| !tdatas[igrp])tdatas[igrp]=new Array();
		var pgrp=tdatas[igrp];
		pgrp[pgrp.length]=tProfils[i];
		return pgrp;
	}
	return false;
}

//------------------------------------------------------
 
function Mutex_grpSet(tdatas,i,tgrp)
{
	if (tgrp instanceof Array) 
	{
		var tret = new Array();
		var itest;
		for (itest=0; itest<tgrp.length;itest++)
		{
			var igrp = tgrp[itest];
			if (igrp>=0)
			{
				if (igrp>=tdatas.length || !tdatas[igrp])
					tdatas[igrp]=new Array();
				var pgrp=tdatas[igrp];
				pgrp[pgrp.length]=tOptions[i];
				tret[tret.length] = pgrp;
			}
		}
		return tret;
	}
	return false;
}

//------------------------------------------------------

function profil_fieldsInit() 
{
	for(var i=0;i<tProfils.length;i++)
	{
		var pflt=document.frm.elements["profil_ot["+i+"]"];
		tProfils[i].mi=i;
		if (!pflt)
		{
			alert("champs "+i+ " non trouve");
		}
		else
		{
			pflt.mpobj=tProfils[i];
			pflt.mpobj.mpf=pflt;

			// fonctions getset values

			if (pflt.type=="checkbox") {pflt.getv=ck_get;pflt.setv=ck_set;}
			else
			if (pflt.type=="radio") {pflt.getv=ra_get;pflt.setv=ra_set;}
			else
			if (pflt.type=="select-one") {pflt.getv=cb_get;pflt.setv=cb_set;}
			else
			if (pflt.type=="hidden")
			{
				pflt.getv=tx_gethidden;pflt.setv=tx_sethidden;
				pflt.pflttext=document.frm.elements["profil_ot["+i+"][text]"];
			}
			else
			if (pflt.type=="text") {pflt.getv=tx_get;pflt.setv=tx_set;}
			else
			{
				var pfltcheck=document.frm.elements["profil_ot["+(i-1)+"]"];
				var pfltcheck=document.frm.elements["profil_ot["+(i+1)+"]"];
				continue;
			}

			// groupage	sur requisit minimum

			pflt.mgrp=profil_grpSet(tProfilsRequired,i,tProfils[i].mireq);

			// groupage	sur exclusion mutuelle

			pflt.mmutex=profil_grpSet(tProfilsMutex,i,tProfils[i].mimutex);
		}
	}	
}
function profil_fieldsRequired()
{
	for(var i=0;i<tProfilsRequired.length;i++)
	{
		var pgrp=tProfilsRequired[i];
		if (pgrp.length>0)
		{
			var bvalid=false;
			for(var j=0;j<pgrp.length;j++)
			{
				bvalid |= (pgrp[j].mpf.getv());
			}

			if (!bvalid)
			{
				alert("Selection d'une option " + pgrp[0].mcaption+ " obligatoire");
				return false;
			}
		}
	}
	return true;
}
function profil_viewAddedInfo()
{
}
function profil_profil_viewAddedInfo()
{
}
function profil_addNoExcl()
{
	addNoExcl();
	profil_click(false);
}
function profil_click(pelt)
{

var sname =pelt.name;
var iunchecked=-99;
var i;

	if (pelt && pelt.id && pelt.id=='typesCliCheck' )
	{
		reactionAcc(pelt);
		if (!profil_reloadOnClick)return;
	}

	// gestion mutex PROFIL

	if(pelt && pelt.mmutex)
	{
		//iunchecked = Mutex_exclude(pelt);
	 
		for(i=0;i<pelt.mmutex.length;i++)
		if(pelt!=pelt.mmutex[i].mpf)
		{
			v = pelt.mmutex[i].mpf.getv();
			if (v)
			{
				var smutexName = pelt.mmutex[i].mpf.name;
				iunchecked = parseInt(smutexName.substr(2));
				pelt.mmutex[i].mpf.setv(false);
			}
		}
	}
	if (profil_reloadOnClick)
	{
		calcScrollY();

		document.gbnoreload=true;
		document.frm.subcmd.value="reload";
		if(document.frm.scrollY)	document.frm.scrollY.value=scrollY;
		submitForm(document.frm);

		return;
	}

	if (sname.substr(0,10)=="profil_ot[")
	{
		ioption = parseInt(sname.substr(2));
		for(i=0;i<tProfilsReload.length;i++)
		if  (tProfilsReload[i]==ioption || tProfilsReload[i]==iunchecked)
		{
			calcScrollY();

			document.gbnoreload=true;
			document.frm.subcmd.value="reload";
			if(document.frm.scrollY)	document.frm.scrollY.value=scrollY;
			submitForm(document.frm);

			return;
		}
	}
}

//------------------------------------------------------
// field inits
// mise en place des callback
// liage des champs "ecran" avec les structures de donnees

function fieldsInit()
{
	for(var i=0;i<tOptions.length;i++)
	{
		var pflt=document.frm.elements["o["+i+"]"];
		tOptions[i].mi=i;
		if (!pflt)
		{
			alert("champs "+i+ " non trouve");
		}
		else
		{
			pflt.mpobj=tOptions[i];
			pflt.mpobjTVA=tOptions[i];
			pflt.mpobj.mpf=pflt;

			// fonctions getset values

			if (pflt.type=="checkbox") {pflt.getv=ck_get;pflt.setv=ck_set;}
			else
			if (pflt.type=="radio") {pflt.getv=ra_get;pflt.setv=ra_set;}
			else
			if (pflt.type=="select-one") {pflt.getv=cb_get;pflt.setv=cb_set;}
			else
			if (pflt.type=="hidden")
			{
				pflt.getv=tx_gethidden;pflt.setv=tx_sethidden;
				pflt.pflttext=document.frm.elements["o["+i+"][text]"];
			}
			else
			if (pflt.type=="text") {pflt.getv=tx_get;pflt.setv=tx_set;}
			else
			{
				var pfltcheck=document.frm.elements["o["+(i-1)+"]"];
				var pfltcheck=document.frm.elements["o["+(i+1)+"]"];
				continue;
			}

			// groupage	sur requisit minimum

			pflt.mgrp=grpSet(tRequired,i,tOptions[i].mireq);

			// groupage	sur exclusion mutuelle

			pflt.mmutex=Mutex_grpSet(tMutex,i,tOptions[i].mimutex);

			// groupage	sur consolidation partielle

			imconso = tOptions[i].miconso;
			nbtst=20;
			while (nbtst>0 && !document.getElementById("subtot_"+imconso)){ imconso++; nbtst--;}
			if (!(pp=document.getElementById("subtot_"+imconso)))imconso = tOptions[i].miconso;			
			pflt.mconso=grpSet(tConsos,i,imconso);


			
			pp=document.getElementById("subtot_"+imconso);			
			if (pp && pp.innerHTML.substr(0,4)== "0.00") pp.innerHTML="";
			pp=document.getElementById("subtotTVA_"+imconso);			
			if (pp && pp.innerHTML.substr(0,4)== "0.00") pp.innerHTML="";
			pp=document.getElementById("subtotHT_"+imconso);			
			if (pp && pp.innerHTML.substr(0,4)== "0.00") pp.innerHTML="";
		}
	}	
	
	var i0,t0,s0;
	for(var i=0;i<tOptions.length;i++)
	{
		var pflt=document.frm.elements["o["+i+"]"];
		if (pflt)
		{
			// tri et cat codes
			t0 = new Array();
			for (i0=0;i0<pflt.mconso.length;i0++) t0[t0.length] = pflt.mconso[i0].mi;
			t0.sort();
			s0 = "";
			for (i0=0;i0<pflt.mconso.length;i0++)s0=s0+","+t0[i0];
			pflt.msconso=s0;
		}
	}
	
	for (i=0;i<tSpecialLimits.length;i++)
	{
		tConsos[tSpecialLimits[i].migrp].mconsolimiter=tSpecialLimits[i];
	}
	fldUpdateOffers(false);
}

//------------------------------------------------------
// en validation de formulaire
// controle que les groupes a valeur obligatoire sont affectees

function fieldsRequired()
{
	for(var i=0;i<tRequired.length;i++)
	{
		var pgrp=tRequired[i];
		if (pgrp.length>0)
		{
			var bvalid=false;
			for(var j=0;j<pgrp.length;j++)
			{
				if (pgrp[j].mpf.pflttext)
				{
						bvalid |= (pgrp[j].mpf.pflttext.value!="");
				}
				else	bvalid |= (pgrp[j].mpf.getv());
			}

			if (!bvalid)
			{
				alert("Selection d'une option " + pgrp[0].mcaption+ " obligatoire");
				return false;
			}
		}
	}
	return true;
}

//------------------------------------------------------
// lors de modification d'etat dans un champs de saisie
// controle les mutex, recalcule les valorisations (si applicable)
// le total final est reporte dans tot_up et tot_down, tot_tva, tot_ht (si presents)
// il est le cumul de  tsubTotaux et tpreTotaux
 
var excl_pCheck2
function excl_reset2()
{
  if (excl_pCheck2)  excl_pCheck2.style.visibility = "visible";
 
} 
 
function reactionAcc(pelt)
{
var itype;
var ptype;
var ptypesCHECK = getElementsByIDS ("typesCliCheck");
 if (!ptypesCHECK) return;
 
var sname =pelt.name;
 
 for (itype=0;itype < ptypesCHECK.length;itype++)
 {
  ptype = ptypesCHECK[itype];
  if (ptype.name==sname) break;
 }
 if (itype >= ptypesCHECK.length) return
 
var paccRoot = document.getElementById("acc["+itype+"]");
var bshow = pelt.checked;
 
 if (bshow) 
 {
  excl_pCheck2=paccRoot
  if(paccRoot)paccRoot.style.position = "relative";
  //if(paccRoot)paccRoot.style.visibility = "visible";
  
  setTimeout("excl_reset2()", 50);
  return;
 }
 
 if(paccRoot)paccRoot.style.visibility = "hidden";
 if(paccRoot)paccRoot.style.position = "absolute";
 
var ifld, pfld, send, lend;
 
 if (itype<=0)
   send = "acc";
 else send = "acc"+itype;
 lend = send.length;
 

 for (ifld=0; ifld<document.frm.elements.length; ifld++)
 {
  pfld =  document.frm.elements[ifld];
 

  scmp= pfld.name.substr(pfld.name.length-lend);
  if (scmp==send)
  {
   switch(pfld.type)
   {
   case 'select-one':
    pfld.selectedIndex= -1;
    break;
   case 'text':
    pfld.value="";
    break; 
   case 'checkbox':
    pfld.checked=false;
    break;
   case 'radio':
    pfld.selected=false;
    break;
   }
  }
 }
}


var tOptionsReload = new Array();
var tProfilsReload = new Array();
var tOptionsOffers = new Array();

function Mutex_exclude(pelt, tunchecked)
{
	var i, v, smutexName, itest ;
	var pfelt,bid,ii;

	if (pelt.mmutex instanceof Array) 
	{
		for (itest = 0; itest<pelt.mmutex.length;itest++)
		{
			for(i=0; i<pelt.mmutex[itest].length; i++)
			{
				if(pelt!=pelt.mmutex[itest][i].mpf)
				{
					v = pelt.mmutex[itest][i].mpf.getv();
					if (v)
					{
						smutexName = pelt.mmutex[itest][i].mpf.name;
						pelt.mmutex[itest][i].mpf.setv(false);
					//}
					//{
						bid=false;
						pfelt = pelt.mmutex[itest][i].mpf;
						if(pfelt.msconso && pfelt.msconso.length>0)
							for (ii=0;ii<tunchecked.length;ii++)
								if(pfelt.msconso==tunchecked[ii].msconso) 
								{
									//tunchecked[ii] = pfelt;
									bid=true;
									break;
								}
						if(!bid) 
							tunchecked[tunchecked.length] = pfelt;			
					}
				}
			}

		}
	}
	return tunchecked;
}
function frounder(v0)
{	
var delta;
//alert(v0+" round " + (v0 - Math.floor(v0) ));

	if (v0>0)
	{
		delta = v0 - Math.floor(v0);

		if (delta>0.98 && delta<1.0)	v0 = v0-delta +1;
		if (delta<0.02 && delta>0)		v0 = v0-delta;
	}
	else
	{
		delta = v0 - Math.ceil(v0);
		
		if (delta<-0.98 && delta>-1.0)	v0 = v0-delta-1;
		if (delta>-0.02 && delta<0)		v0 = v0-delta;
	}
	return v0;
}
function clk(pelt)
{
var sname =pelt.name;
//var iunchecked=-99;
var tunchecked=new Array();
var l = sname.length;

	if(sname.substr(l-6)=='[text]')
	{
		sname=sname.substr(0,l-6);
		pelt = document.frm.elements[sname];
	}



	if (pelt.id && pelt.id=='typesCliCheck')
	{
		reactionAcc(pelt);
		return;
	}


	var i;
	var bhaveTVA	= (tsubTotauxTVA.length>0);
	var bhaveHT		= (tsubTotauxHT.length>0);

	// gestion mutex

	if(pelt.mmutex && (pelt.mmutex instanceof Array)  && pelt.mmutex.length )
	{
		tunchecked = Mutex_exclude(pelt, tunchecked);
	}
	
	fldUpdateOffers(true);

	if(tunchecked.length )
	{

		// gestion valorisation
		
		var ic;

		for (ic = 0; ic<tunchecked.length; ic++)
		{
		var vtot=0;
		var vtotTVA=0;
		var vtotHT=0;
			pelt = tunchecked[ic];
			
			tconsos = pelt.mconso;
			var imconso = pelt.mpobj.miconso;
			if (tconsos)
			{
				for(i=0;i<tconsos.length;i++)
				{
					var pobj = tconsos[i];

					vv = tconsos[i].mpf.getv();
					if (!vv) v=0;
					else 
					if (vv==true) v=1;
					else
					if (pobj.mtvalues)	 v = parseFloat(""+vv);
					else v = parseFloat(""+vv);


					if (pobj.mtvalues)
					{
						// complement pour tableau avec hidden
						if (tconsos[i].mpf.type=="hidden")
						{
							if (tconsos[i].mpf.pflttext)
							{
								if (tconsos[i].mpf.pflttext.type=='text')
								{
									vv = tconsos[i].mpf.pflttext.value;
									vv0 = parseFloat(""+vv);
									if (isNaN(vv0)) v= 0;
									else v = vv0;
								}
							}
							vunit=pobj.mtvalues[1]*v;
							if (pobj.mtvaluestva) vunittva=pobj.mtvaluestva[1]*v;
							else vunittva=0;
							vunit = frounder(vunit);
							vunittva = frounder(vunittva);
							vtot+=vunit;
							vtotTVA+=vunittva;
							vtotHT+=(vunit-vunittva);
						}
						else
						if (tconsos[i].mpf.type=="text")
						{
							vunit=pobj.mtvalues[1]*v;
							if (pobj.mtvaluestva) vunittva=pobj.mtvaluestva[1]*v;
							else vunittva=0;
							vunit = frounder(vunit);
							vunittva = frounder(vunittva);
							vtot+=vunit;
							vtotTVA+=vunittva;
							vtotHT+=(vunit-vunittva);
						}
						else
						if (v<pobj.mtvalues.length)	
						{
							vunit=pobj.mtvalues[v];
							if (pobj.mtvaluestva) vunittva=pobj.mtvaluestva[v];
							else vunittva=0;
							vunit = frounder(vunit);
							vunittva = frounder(vunittva);
							vtot+=vunit;
							vtotTVA+=vunittva;
							vtotHT+=(vunit-vunittva);
						}
					}
					else
					{
						vtot+=v;
					}
				}


				var pcheck;
				var nbtst=20;

				while (nbtst>0 && !document.getElementById("subtot_"+imconso)){ imconso++; nbtst--;}
					//if (!document.getElementById("subtot_"+imconso))imconso = imconso; pelt

				var pobj = tconsos[0];
				var plim=tconsos.mconsolimiter;

				if (plim)
				{
					if (plim.mvalmin!=-1) if(vtot<plim.mvalmin) vtot=plim.mvalmin;
					if (plim.mvalmax!=-1) if(vtot>plim.mvalmax) vtot=plim.mvalmax;
				}	

				tsubTotaux[imconso]=vtot;
				if (bhaveTVA) 		tsubTotauxTVA[imconso]=vtotTVA;
				if (bhaveHT) 		tsubTotauxHT[imconso]=vtotHT;

				var p;

				p=document.getElementById("subtot_"+imconso);
				if (p && (vtot!=0 /*|| p.innerHTML!=""*/) ) p.innerHTML=formatNumber(vtot,2)+"&nbsp;"+gsCurrency;
				else if (p)  p.innerHTML="";
				
				p=document.getElementById("subtotHT_"+imconso);
				if (p && (vtotHT!=0 /*|| p.innerHTML!=""*/) ) p.innerHTML=formatNumber(vtotHT,2)+"&nbsp;"+gsCurrency;
				else if (p)  p.innerHTML="";

				p=document.getElementById("subtotTVA_"+imconso);
				if (p && (vtotTVA!=0 /*|| p.innerHTML!=""*/) ) p.innerHTML=formatNumber(vtotTVA,2)+"&nbsp;"+gsCurrency;
				else if (p)  p.innerHTML="";
			}
		}
	}
	else
	{
		var vtot=0;
		var vtotTVA=0;
		var vtotHT=0;
		tconsos = pelt.mconso;
		var imconso = pelt.mpobj.miconso;
		if (tconsos)
		{
			for(i=0;i<tconsos.length;i++)
			{
				var pobj = tconsos[i];

				vv = tconsos[i].mpf.getv();
				if (!vv) v=0;
				else 
				if (vv==true) v=1;
				else
				if (pobj.mtvalues)	 v = parseFloat(""+vv);
				else v = parseFloat(""+vv);


				if (pobj.mtvalues)
				{
					// complement pour tableau avec hidden
					if (tconsos[i].mpf.type=="hidden")
					{
						if (tconsos[i].mpf.pflttext)
						{
							if (tconsos[i].mpf.pflttext.type=='text')
							{
								vv = tconsos[i].mpf.pflttext.value;
								vv0 = parseFloat(""+vv);
								if (isNaN(vv0)) v= 0;
								else v = vv0;
							}
						}
						vunit=pobj.mtvalues[1]*v;
						if (pobj.mtvaluestva) vunittva=pobj.mtvaluestva[1]*v;
						else vunittva=0;
						vunit = frounder(vunit);
						vunittva = frounder(vunittva);
						vtot+=vunit;
						vtotTVA+=vunittva;
						vtotHT+=(vunit-vunittva);
					}
					else
					if (tconsos[i].mpf.type=="text")
					{
						vunit=pobj.mtvalues[1]*v;
						if (pobj.mtvaluestva) vunittva=pobj.mtvaluestva[1]*v;
						else vunittva=0;
							vunit = frounder(vunit);
							vunittva = frounder(vunittva);
						vtot+=vunit;
						vtotTVA+=vunittva;
						vtotHT+=(vunit-vunittva);
					}
					else
					if (v<pobj.mtvalues.length)	
					{
						vunit=pobj.mtvalues[v];
						if (pobj.mtvaluestva) vunittva=pobj.mtvaluestva[v];
						else vunittva=0;
							vunit = frounder(vunit);
							vunittva = frounder(vunittva);
						vtot+=vunit;
						vtotTVA+=vunittva;
						vtotHT+=(vunit-vunittva);
					}
				}
				else
				{
					vtot+=v;
				}
			}


			var pcheck;
			var nbtst=20;

			while (nbtst>0 && !document.getElementById("subtot_"+imconso)){ imconso++; nbtst--;}
				//if (!document.getElementById("subtot_"+imconso))imconso = imconso; pelt

			var pobj = tconsos[0];
			var plim=tconsos.mconsolimiter;

			if (plim)
			{
				if (plim.mvalmin!=-1) if(vtot<plim.mvalmin) vtot=plim.mvalmin;
				if (plim.mvalmax!=-1) if(vtot>plim.mvalmax) vtot=plim.mvalmax;
			}	

			tsubTotaux[imconso]=vtot;
			if (bhaveTVA) 		tsubTotauxTVA[imconso]=vtotTVA;
			if (bhaveHT) 		tsubTotauxHT[imconso]=vtotHT;

			var p;

			p=document.getElementById("subtot_"+imconso);
			if (p && (vtot!=0 /*|| p.innerHTML!=""*/) ) p.innerHTML=formatNumber(vtot,2)+"&nbsp;"+gsCurrency;
			else if (p)  p.innerHTML="";
			
			p=document.getElementById("subtotHT_"+imconso);
			if (p && (vtotHT!=0 /*|| p.innerHTML!=""*/) ) p.innerHTML=formatNumber(vtotHT,2)+"&nbsp;"+gsCurrency;
			else if (p)  p.innerHTML="";

			p=document.getElementById("subtotTVA_"+imconso);
			if (p && (vtotTVA!=0 /*|| p.innerHTML!=""*/) ) p.innerHTML=formatNumber(vtotTVA,2)+"&nbsp;"+gsCurrency;
			else if (p)  p.innerHTML="";
		}
	}

	// total recap

	var vtot= tpreTotaux;
	var vtotTVA= tpreTotauxTVA;
	var vtotHT= tpreTotauxHT;

	for (i=0;i<tsubTotaux.length;i++)
		if (tsubTotaux[i])
		{
			vtot+= tsubTotaux[i];
			if (bhaveTVA) 		vtotTVA+= tsubTotauxTVA[i];
			if (bhaveHT) 		vtotHT+= tsubTotauxHT[i];
		}
	
	p=document.getElementById("tot_up");	if (p && (vtot!=0 /* || p.innerHTML!=""*/))		
	p.innerHTML=formatNumber(vtot,2)+"&nbsp;"+gsCurrency; else if (p) p.innerHTML="";
	p=document.getElementById("tot_down");	if (p && (vtot!=0 /*|| p.innerHTML!=""*/))		
	p.innerHTML=formatNumber(vtot,2)+"&nbsp;"+gsCurrency;else if (p) p.innerHTML="";
	p=document.getElementById("tot_tva");	if (p && (vtotTVA!=0 /*|| p.innerHTML!=""*/))	
	p.innerHTML=formatNumber(vtotTVA,2)+"&nbsp;"+gsCurrency;else if (p) p.innerHTML="";
	p=document.getElementById("tot_ht");	if (p && (vtotHT!=0 /*|| p.innerHTML!=""*/))	
	p.innerHTML=formatNumber(vtotHT,2)+"&nbsp;"+gsCurrency;else if (p) p.innerHTML="";

	if (sname.substr(0,2)=="o[")
	{
		iunchecked = -99;
		var smutexName ;

		for (ii=-1;ii<tunchecked.length;ii++)
		{
			if (ii==-1)
					smutexName = sname;
			else	smutexName = tunchecked[ii].name;
			iunchecked = parseInt(smutexName.substr(2));
		
			ioption = parseInt(sname.substr(2));
			for(i=0;i<tOptionsReload.length;i++)
			if (tOptionsReload[i]==ioption || tOptionsReload[i]==iunchecked)
			{
				calcScrollY();

				document.gbnoreload=true;
				document.frm.subcmd.value="reload";
				if(document.frm.scrollY)	document.frm.scrollY.value=scrollY;
				submitForm(document.frm);
				
				showHideAmounts(vtot!=0);

				return;
				
			}
		}
	}
//alert(vtot);
	showHideAmounts(vtot!=0);

	
}

//------------------------------------------------------
function	fldUpdateOffers(bdisplay)
{
var i, v0, snotify;
var pfield, pobject, basettc, basetva, baseht;

	// gestion offres speciales {react:0,addto:4,rate:100}

	for (i=0;i<tOptionsOffers.length;i++)
	{
		document.frm.elements['oo'+tOptionsOffers[i].addto].setAttribute('ovalue', 0);	
	}

	for (i=0;i<tOptionsOffers.length;i++)
	{
		pfield = document.frm.elements['oo'+tOptionsOffers[i].react];	
		if(pfield.checked)
		{
			v = document.frm.elements['oo'+tOptionsOffers[i].addto].getAttribute('ovalue');
			v = ( v == '') ? 0 : parseFloat(v) ;
			
			pobject = pfield.mpobj;
			basettc = pobject.mtvalues[1];
			if (pobject.mtvaluestva) 
					basetva = pobject.mtvaluestva[1];
			else	basetva = 0;
			baseht = basettc - basetva;
			v += (baseht*tOptionsOffers[i].rate/100.0);
			
			document.frm.elements['oo'+tOptionsOffers[i].addto].setAttribute('ovalue', v);
		}
	}

//	var st="";
	var searchid;
	for (i=0;i<tOptionsOffers.length;i++)
	{
		v0 = document.frm.elements['oo'+tOptionsOffers[i].addto].getAttribute('ovalue');	
		v0 = frounder(v0);

		bupdated =(v0 != document.frm.elements['oo'+tOptionsOffers[i].addto].value || document.frm.elements['oo'+tOptionsOffers[i].addto].value=="");
		bfirst = (document.frm.elements['oo'+tOptionsOffers[i].addto].getAttribute('oinited')!='1');
		//if (v0=="0") v0="";
			
		if(bupdated || bfirst)
		{
			document.frm.elements['oo'+tOptionsOffers[i].addto].setAttribute('oinited','1');
			pfield = document.frm.elements['oo'+tOptionsOffers[i].addto];
			pfield.value = v0;
			searchid = pfield.getAttribute('id');
			//alert(searchid)
			//while (pfield && pfield.tagName!="TR")pfield = pfield.parentNode;
			pfield = pfield.nextSibling;
			while (pfield && (!pfield.getAttribute || pfield.getAttribute('for')!=searchid))pfield = pfield.nextSibling;
			if(pfield)pfield.style.display = (v0=="" || v0==0) ? 'none':'block';
			
			//alert(snotify);
			//if(bupdated)
			if(bdisplay)
			{
				snotify = "valInput(document.frm.elements['oo"+tOptionsOffers[i].addto+"']);clk(document.frm.elements['oo"+tOptionsOffers[i].addto+"'])";
				setTimeout(snotify,100);
			}
			else
			{
				valInput(document.frm.elements['oo'+tOptionsOffers[i].addto]);
				clk(document.frm.elements['oo'+tOptionsOffers[i].addto]);
			}
		}		
	}
	
	for (i=0;i<tOptionsOffers.length;i++)
	{
		//document.frm.elements['oo'+tOptionsOffers[i].addto].value = '';	
	}
}



//------------------------------------------------------
function 	submitForm(frm)
{
	if  (window.restrictExitPage)
	if  (window.restrictExitPage()) return ;
	document.gbnoreload=true;

//	if(window.tb_show)
//	tb_show("","/res/thickbox/loadingAnimation.gif");


	gslastpagecode=frm.subcmd.value;
	if (frm.subcmd2 && frm.subcmd2.value!="")
		gslastpagecode=frm.subcmd2.value;
	//	gslastpagecode=frm.subcmd.value;

	if(window.tb_wait)
		tb_wait();

	
	if(document.frm && document.frm.lognavcharset)
		document.frm.lognavcharset.value = document.charset;


	setTimeout("document.frm.submit()", 50);

}

//------------------------------------------------------
// gestion menu applicatif (NS6/IE4.xx+)
// utilise formulaire frm, ,champs subcmd (gopage) et subcmd2(pagecode)

var bMenuOpen=true;
var pageIsAvailable = false;
var gbcancelfolder=false;
var gsoutfolder="";
function menuact(pobj,act,pagecode,soutfolder)
{
	if (metaGetContent("TRACTIVESECUREDNAV")=="1")
		if (!pageIsAvailable) return;
	
	switch(act)
	{
	case 1:

		pobj.mclassName=pobj.className;
		pobj.className="MENUSEL";
		window.status=pobj.title;
		break;

	case 0:

		pobj.className=pobj.mclassName;
		window.status="";
		break;

	case 2:

		if(!document.frm){alert("form frm missing!"); return;}
		if (!bMenuOpen) return;
		gsoutfolder=soutfolder;
		gbcancelfolder=(soutfolder=="1");
		gslastpagecode=pagecode;
		bMenuOpen=false;
		document.frm.subcmd.value="gopage";
		document.frm.subcmd2.value=pagecode;
		submitForm(document.frm);
		break;
	}
}

//--------------------------------------------------

function gonext()
{
//	if (!validform())return;
	document.gbnoreload=true;
	document.frm.subcmd.value="next";
	submitForm(document.frm);
}

function goback()
{
//	if (!validform())return;
	document.gbnoreload=true;
	document.frm.subcmd.value="prev";
	submitForm(document.frm);
}

function onunloaded()
{
//	if (!document.gbnoreload){
//		document.gbnoreload=true;
//		document.location.href=document.location.href;
//	}
}

function	metaGetContent(skey)
{
var pmeta, smetaname, tpmeta, imeta;	

	tpmeta=document.getElementsByTagName("META");
	if(!tpmeta)		return "";
	for(imeta=0; imeta<tpmeta.length; imeta++)
	{
		pmeta = tpmeta[imeta];
		smetaname = pmeta.getAttribute("NAME");
		if (smetaname && smetaname==skey)
		{
			if (pmeta.getAttribute("CONTENT")) 	return (pmeta.getAttribute("CONTENT"));
			return "";
		}
	}
	
	return "";
}

var gsQuestion_onbeforeunloaded = "Abandonner modifications en cours";
function onbeforeunloaded(e)
{
var block = false;
var bquitpage = false;
var bclosewindow = false;
var e = e || window.event;
var spage="";
var bactiveOnQuit=false;
	bquitpage |= (gslastpagecode=='quituser')||(gslastpagecode=='userquit');

	if (metaGetContent("TRACTIVEONQUIT")!="1")
		return;
	block = (metaGetContent("TRINFOLDER")=="1");
	
	
	if (block && (bquitpage || gbcancelfolder || bclosewindow ))
	{
		setTimeout("tb_remove();", 500);
		
		bMenuOpen=true;
		e.returnValue = gsQuestion_onbeforeunloaded;
		return gsQuestion_onbeforeunloaded;
	}
	return ;
}

//--------------------------------------------------

document.onkeydown = mykeyhandler;

function mykeyhandler()
{
   if (window.event &&
		(
		 (window.event.altLeft && (window.event.keyCode == 18)) ||
		 (window.event.altRight && (window.event.keyCode == 18))
		)
	)
	{
        // try to cancel the backspace

        window.event.cancelBubble = true;
        window.event.returnValue = false;
        return false;
    }
}


//--------------------------------------------------

function l2action(pobj,act,code)
{
	switch(act)
	{
	case 1:
		pobj.mclassName=pobj.className;
		pobj.className="SEL";
		break;
	case 0:
		pobj.className=pobj.mclassName;
		break;
	case 2:
		switchFolder(code);
		break;
	}
}
function switchFolder(code)
{
	document.frm.subcmd.value="start2folder";
	if (document.frm.targetdoscode)
	{
		document.frm.targetdoscode.value=code;
		submitForm(document.frm);
	}
	else
	{
		alert("commutation de dossier impossible");
	}
}


function showHideAmounts(bshow)
{
    var i,p,sshow;

    sshow = bshow ? 'visible':'hidden';
   sshow = 'visible';

    p=document.getElementById('tittot_ht');		if(p)p.style.visibility=sshow;
    p=document.getElementById('tittot_tva');	if(p)p.style.visibility=sshow;
    p=document.getElementById('tittot_down');	if(p)p.style.visibility=sshow;
    
    for(i=0;i<100;i++)
    {
        p=document.getElementById('subtotHT_'+i);	if(p)p.style.visibility=sshow;
        p=document.getElementById('subtotTVA_'+i);	if(p)p.style.visibility=sshow;
        p=document.getElementById('subtot_'+i);		if(p)p.style.visibility=sshow;
    }
    p=document.getElementById('tot_ht');	if(p)p.style.visibility=sshow;
    p=document.getElementById('tot_tva');	if(p)p.style.visibility=sshow;
    p=document.getElementById('tot_down');	if(p)p.style.visibility=sshow;
    p=document.getElementById('tot_lib');	if(p)p.style.visibility=sshow;
}
function folderDup(skey)
{
    document.frm.subcmd.value="startdup";
    document.frm.doscode.value=skey;
    document.frm.doslogin.value="";
    document.frm.dospass.value="";
    submitForm(document.frm); 
}
// popup menu
var cm_bPopupOpened = false;
var cm_bcloseEvent = false;
var cm_pmenu = false;
var cm_pfcallBackOnClose=false;
var cm_pselectedObject=false;

function cm_out()
{
	cm_in();
	cm_bcloseEvent = setTimeout("cmClose()", 300);
}
function cmSetCBOnClose(pf)
{
	cm_pfcallBackOnClose	=	pf;
}
function cmClose()
{
	cm_in();
	if (cm_pmenu)
	{
		cm_pmenu.style.display= 'none';
		if (cm_pmenu.parentNode) cm_pmenu.parentNode.removeChild(cm_pmenu);
		cm_pmenu = false;
		if (cm_pfcallBackOnClose)
		{
			cm_pfcallBackOnClose(cm_pselectedObject);
		}
	}
	cm_bPopupOpened = false;
}
function cm_in()
{
	if(cm_bcloseEvent) clearTimeout(cm_bcloseEvent);
	cm_bcloseEvent = false;
}

function cmOpen( pobj, smenuName, pf)
{
	cmClose();
	
	if(pf) cmSetCBOnClose(pf);
	cm_pselectedObject = pobj;

	if(pobj.tagName=='TD') pobj = pobj.firstChild;
	var pMenu = document.getElementById(smenuName);
	cm_pmenu = pMenu.cloneNode(true);
	pobj.parentNode.insertBefore(cm_pmenu, pobj);
	cm_pmenu.style.display= 'block';
	cm_bPopupOpened = true;
	cm_pmenu.onmouseout=function(event){cm_out()};
	cm_pmenu.onmouseover=function(event){cm_in()};
}
function cmInit()
{
	document.body.oncontextmenu=function(){ return false;};
}
//-----------------------------------------------------------
 
var orgselect_box = false;
var orgselect_mask = false;
var orgselect_list = false;
var orgselect_orgnom=false;

function orgselect_unselectORG(){
	orgselect_Close();
	
	top.document.frm.subcmd.value = 'folderunlink';
	top.document.frm.submit();
}
function orgselect_selectORG(orgcode){
	orgselect_Close();
	
	top.document.frm.subcmd.value = 'folderlink';
	top.document.frm.subcmd3.value = orgcode;
	top.document.frm.submit();
}
function orgselect_search(){
	
	orgselect_mask = document.getElementById('orgmask');
	orgSerchString = orgselect_mask.value
	
	if(orgselect_mask.value=="") return;

	// appelle cmd.searchorganisme.inc.php / CSearchOrganisme:search
	
	ajlBatchReset();
	ajlBatchAdd(
		new Array(
			new ajlParam('cmd','production.run'),
			new ajlParam('CompName','searchorganisme'),
			new ajlParam('CompType','cmds'),
			new ajlParam('customer',document.frm.orgselect_customer.value),
			new ajlParam('mask',orgselect_mask.value),
			new ajlParam('currentorgcode',document.frm.orgselect_orgcode.value),
			new ajlParam('currentdoscode',document.frm.activedoscode .value),
			new ajlParam('ClassMethod','CSearchOrganisme:search')
		)
	);

	ajlBatchExec("ajax-transaction.php");
}

function orgselect_AjaxAnswer(pNode){
	error = ajlGetChildData(pNode, 'error')
	if(error){
		alert(error);
		return;
	}
	//var norg = ajlGetChildData(pNode, 'count');
	var shtml = ajlGetChildData(pNode, 'html');

	orgselect_list = document.getElementById('orglist');
	orgselect_list.innerHTML = unescape(shtml);
	
	orgselect_mask = document.getElementById('orgmask');
	orgselect_mask.value = orgSerchString;
}

function orgselect_Close()
{
		//orgselect_box.style.display = 'none';
		tb_remove();
}
function orgselect_Open(pclick){
	
	//orgselect_box = document.getElementById('orgselect');
	//orgselect_box.style.display = 'block';
	
	
	orgselect_orgnom = document.getElementById('orgnom');
	orgselect_mask = document.getElementById('orgmask');
	orgselect_list = document.getElementById('orglist');
	if (orgselect_orgnom){
		orgselect_mask.value = orgselect_orgnom.value;
		orgselect_search();
	}
	tb_show("","#TB_inline?&height=600&width=800&inlineId=orgselect");
}

function orgselect_Init()
{
	if (currEnvType!='admin') return;
	
	ajlInit();
	ajlAddWrapper("root/organismes", orgselect_AjaxAnswer);
	
	orgselect_orgnom = document.getElementById('orgnom');
	if (!orgselect_orgnom) return;
	
	var pspan;
	var blinked = document.frm && document.frm.orgselect_linked && (document.frm.orgselect_linked.value=="1");

	// delie / relie
	pspan	= document.createElement('span');
	pspan.innerHTML = "<A href='javascript:orgselect_Open(this)'><img style='vertical-align:bottom;' src='/imgs/orgselect2.png' border=0 width='20' height='20'></A>";
	orgselect_orgnom.parentNode.appendChild(pspan);
	//pspan.parentNode.insertBefore(orgselect_orgnom, pspan);
	
	// signal lié
	if(blinked)
	{
		pspan	= document.createElement('span');
		pspan.id = 'folderlinked';
		pspan.innerHTML="<IMG SRC='/imgs/folderslinked.png' height='20'>";
		orgselect_orgnom.parentNode.appendChild(pspan);
		//pspan.parentNode.insertBefore(orgselect_orgnom, pspan);
	}
}

var _timeout_prealertDelay =10*60;	// 10 minutes
var _timeout_next;
var _timeout_rest;
var _timeout_nextstep=1;
var _timeout_event;
var _timeout_pendingDelay;

function _timeOutApproach()
{
	_timeOutAlert();
	
	_timeout_rest =  _timeout_rest-_timeout_nextstep;
	if (_timeout_rest<0)
	{
		_timeout_event = false;
		bMenuOpen=false;
		document.frm.subcmd.value="gopage";
		document.frm.subcmd2.value="quitadmin";
		document.frm.subcmd3.value="timeout";
		submitForm(document.frm);		
		
	}
	else
	{
		_timeout_event = setTimeout("_timeOutApproach()",_timeout_nextstep*1000 );
	}
}
function _timeOutAlert()
{
	_timeout_run = true;
		var pdiv= document.getElementById('_timeout_');
		if(!pdiv)
		{
			pdiv = document.createElement("div");
			pdiv.setAttribute('id','_timeout_');
			pdiv.style.display='none';

			document.body.insertBefore(pdiv,document.body.firstChild);
		}
		if(pdiv.style.display!='block')
		{
			if (document.all)
					pdiv.style.position='absolute';
			else	pdiv.style.position='fixed';
			pdiv.style.zIndex='2000';
			pdiv.style.top='1px';
			pdiv.style.left='1px';
			pdiv.style.right='1px';
			pdiv.style.bottom='1px';
			pdiv.style.border='solid 1px #888';
			pdiv.style.backgroundColor='#f00';
			pdiv.style.color='#fff';
			pdiv.style.filter='alpha(opacity=80)';
			pdiv.style.opacity='0.8';
			pdiv.style.fontFamily='arial';
			pdiv.style.fontSize='24px';
			pdiv.style.textWeight='bold';
			pdiv.style.textAlign='center';
			pdiv.style.textDecoration='none';
			pdiv.style.display='block';
			pdiv.onmousemove=function() {_timeout_canceled();}
		}
		pdiv.innerHTML = '<br><B>'+_timeout_rest+' s<br>Inactivity shutdow<br>Coupure pour inactivit&eacute;<br></B>';
		if (document.all)
		{
			pdiv.style.width='100%';
			pdiv.style.height='100%';
			//document.body.scrollTop='0xp';
			//document.body.scrollLeft='0xp';
			window.scrollTo(0,0);
		} 
}
function _timeout_canceled()
{
	if (!_timeout_event) return;
	if (!_timeout_run) return;
 
	var pdiv= document.getElementById('_timeout_');
	if(pdiv)
		pdiv.style.display='none';
	
	if (_timeout_event) { clearTimeout(_timeout_event); _timeout_event = false; }
	
	ajlInit();
	ajlBatchReset();
	ajlBatchAdd(
		new Array(
			new ajlParam('cmd','transaction.extend')
		)
	);
	ajlBatchExec("ajax-transaction.php");
	
	pageTimeout();
}
function pageTimeout()
{
	if(sessiontimeOut<0) return;
	
	_timeout_run = false;
	var lalert = sessiontimeOut - _timeout_prealertDelay;	
	
	_timeout_rest = _timeout_prealertDelay;
	_timeout_next = _timeout_prealertDelay	;
	_timeout_pendingDelay=lalert*1000;
	
	if (_timeout_event) { clearTimeout(_timeout_event); _timeout_event = false; }
	if (lalert<0) _timeOutApproach();
	else _timeout_event=setTimeout("_timeOutApproach()", _timeout_pendingDelay);
	
	document.body.onmousemove=function(pevent)
	{
		if(!pevent) pevent= window.event;

		if (pevent.pageX || pevent.pageY)
		{
			body_posx = parseInt(pevent.pageX);
			body_posy = parseInt(pevent.pageY);
		}
		else
		{
			body_posx = parseInt(pevent.clientX)+ document.body.scrollLeft ;//+ _system_scrollReference.scrollLeft;
			body_posy = parseInt(pevent.clientY)+ document.body.scrollTop	;//+ _system_scrollReference.scrollTop;
//salert(document.body.scrollTop);
		}

		if (_timeout_event && _timeout_run) 
		{
			clearTimeout(_timeout_event); 
			_timeout_event = false; 
			_timeout_event=setTimeout("_timeOutApproach()", _timeout_pendingDelay);
		}
	}
}

function pageComplete()
{
	pageIsAvailable = true;

	if(sessiontimeOut<0) return;
	//sessiontimeOut=15;	// force timeout a 15 secondes
}


