//
//	2009.05.05	TH	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
//

var gsCurrency="&euro";

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[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]=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]=new Array();
		var pgrp=tdatas[igrp];
		pgrp[pgrp.length]=tProfils[i];
		return pgrp;
	}
	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

	if(pelt && pelt.mmutex)
	{
		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)
	{
		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);

		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)
		{
			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);

			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=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="";
		}
	}	

	for (i=0;i<tSpecialLimits.length;i++)
	{
		tConsos[tSpecialLimits[i].migrp].mconsolimiter=tSpecialLimits[i];
	}
}

//------------------------------------------------------
// 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();
 
function clk(pelt)
{
var sname =pelt.name;
var iunchecked=-99;
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)
	{
		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);
			}
		}
	}

	// gestion valorisation

	if (pelt.mconso)
	{
		var vtot=0;
		var vtotTVA=0;
		var vtotHT=0;

		for(i=0;i<pelt.mconso.length;i++)
		{
			var pobj = pelt.mconso[i];

			vv = pelt.mconso[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 (pelt.mconso[i].mpf.type=="hidden")
				{
					if (pelt.mconso[i].mpf.pflttext)
					{
						if (pelt.mconso[i].mpf.pflttext.type=='text')
						{
							vv = pelt.mconso[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;
					vtot+=vunit;
					vtotTVA+=vunittva;
					vtotHT+=(vunit-vunittva);
				}
				else
				if (pelt.mconso[i].mpf.type=="text")
				{
					vunit=pobj.mtvalues[1]*v;
					if (pobj.mtvaluestva) vunittva=pobj.mtvaluestva[1]*v;
					else vunittva=0;
					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;
					vtot+=vunit;
					vtotTVA+=vunittva;
					vtotHT+=(vunit-vunittva);
				}
			}
			else
			{
				vtot+=v;
			}
		}

		var imconso = pelt.mpobj.miconso;

		if (document.getElementById)
		{
			var pcheck;
			var nbtst=20;

			while (nbtst>0 && !document.getElementById("subtot_"+imconso)){ imconso++; nbtst--;}
			if (!document.getElementById("subtot_"+imconso))imconso = pelt.mpobj.miconso
		}


		var pobj = pelt.mconso[0];
		var plim=pelt.mconso.mconsolimiter;

		if (plim)
		{
			//if (plim.mqtemin!=-1)
			//if (plim.mqtemax!=-1)
			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;

		if (document.getElementById)
		{
			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];
		}
	}

	if (document.getElementById)
	{
		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[")
	{
		ioption = parseInt(sname.substr(2));
		for(i=0;i<tOptionsReload.length;i++)
		if (tOptionsReload[i]==ioption || tOptionsReload[i]==iunchecked)
		{

			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);

			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 	submitForm(frm)
{
	if  (window.restrictExitPage)
	if  (window.restrictExitPage()) return ;
	document.gbnoreload=true;

//	if(window.tb_show)
//	tb_show("","/res/thickbox/loadingAnimation.gif");

	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;

function menuact(pobj,act,pagecode)
{
	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;
		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 onbeforeunloaded()
{
//	if (!document.gbnoreload){
//		window.event.returnValue = window.caption;
//	}
}

//--------------------------------------------------

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';

    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); 
}
