	N=0;ac=Array();	exr="";function checkFile(t){		with(t.value){exr=substr(Math.max(lastIndexOf('/'),lastIndexOf('\\'))+1);exr=exr.substr(0,exr.lastIndexOf("."));x=substr(lastIndexOf('.')+1)}		if(x=='qif'||x=='ciel'||x=='imo')with(t.form){type.value=x;exercice.value=exr;op.value='parse';submit()}		else{			document.getElementById("chooseTyp").style.visibility="visible"			alert('Please check the appropriate radio button:ciel or imo or qif')		}	}	function getAll(t){		with(t){			var t="";			var s=noS.options;for(i=1;i<s.length;i++)t+=s[i].text.substr(0,8)+s[i].text.substr(9)+"\n"			var s=nxS.options;for(i=1;i<s.length;i++)t+=s[i].text.substr(0,8)+s[i].text.substr(9)+"\n"			t+="IMO E\n"			for(i=0;i<ord.length;i++){j=ord[i];t+=cmt[j].replace(/<br>/gi,"\n")+ttl[j][1]+"\n"}txa.value=t;			return t		}	}	saved=1;function saveFile(t){		if(exercice=="skeleton"){			exercice=prompt("Veuillez fournir un exercice au format 'nom-exercice'.","nom-"+year)			var ex=exercice.split("-");			if(ex[0]==""||parseInt(ex[1])<1900||parseInt(ex[1])!=ex[1]||exs.indexOf(exercice)>-1){				exercice="skeleton";alert(exs.indexOf(exercice)>-1?"Cet exercice existe déjà. Vous devez le choisir, puis le modifier afin de l'enregistrer":"Le nom fournit n'est pas correct.")			}else{					t.elements["exercice"].value=exercice					with(document.getElementById("selChPj")){						options[options.length]=new Option(exercice)						selectedIndex=options.length-1					}			}		}		if(exercice!="skeleton"){			with(t){				getAll(t)				target="ifm";op.value='save';type.value='imo';submit();			}			saved=1		}	}	function exporter(t,ty){		with(t){			getAll(t)			op.value='export';type.value=ty;submit();		}	}	function onLd(){Ec=0;if(lines.length==1)ord[0]=0;if(ord.length>0)valuesLoaded();an0=exercice.substr(exercice.indexOf("-")+1);an1=(if1.nm1?an0-1:0)}	function valuesLoaded(){		populateList();getAllSoldes()		nfoTxt=document.getElementById("nfo").innerHTML		clr=document.getElementById("L0").style.color		parseLine(0)		document.forms[0].save.style.display="block"	}	function delOp(n,o){		for(i=o;i<lines[n].length-1;i++)lines[n][i]=lines[n][i+1]		lines[n].pop();		populateList();parseLine(n);Op=(o!=lines[n].length?o:o-1);showOp(n,Op)	}	function selLine(n){		if(Ec>-1&&Ec<ord.length&&document.getElementById("L"+Ec))document.getElementById("L"+Ec).style.color=clr;		if(document.getElementById("L"+n))document.getElementById("L"+n).style.color="red";Ec=n	}	function add1(){		n=ord.length		for(var i=n;i>N+1;i--)ord[i]=ord[i-1];ord[N+1]=n;		ttl[n]=ttl[ord[N]]		lines[n]=lines[ord[N]];		cmt[n]=""		populateList();parseLine(n)	}	function del(){		var ok=ord[N]!=Ec		if(N<ord.length-1)cmt[ord[N+1]]+=cmt[ord[N]]		for(var i=N;i<ord.length-1;i++)ord[i]=ord[i+1]		ord.pop();		populateList();		if(ok){selLine(Ec)}else{selLine(ord[(N<ord.length?N:N-1)])}	}	function up(){		var i=ord[N];var j=ord[N-1]		a=cmt[i];cmt[i]=cmt[j];cmt[j]=a		ord[N]=j;ord[N-1]=i		populateList();selLine(Ec)	}	function down(){		var i=ord[N];var j=ord[N+1]		a=cmt[i];cmt[i]=cmt[j];cmt[j]=a		ord[N]=j;ord[N+1]=i		populateList();selLine(Ec)	}	function msOvMnu(i,th,ev){		N=i;A=th.style;		with(document.getElementById('mnu').style){			zIndex=5;display='block';top=document.getElementById('lst').offsetTop+th.offsetTop-document.getElementById('lst').scrollTop;left=ev.clientX+9		}		document.getElementById("mnuDw").style.display=i!=ord.length-1?"block":"none"		document.getElementById("mnuUp").style.display=i>0?"block":"none"		return false	}	function populateList(){//alert(ttl.length+" "+ord.length)		tx="";for(var i=0;i<ord.length;i++){			var j=ord[i];t="x";if(ttl[j])if(ttl[j][1])t=(ttl[j][1]).toString().replace(/ /g,"&nbsp;")			tx+=	"<a title=\"Click to edit\" href=\"javascript:editCmt("+j+")\" style=\"color:black\">"+cmt[j]+"</a>"+					"<a title=\"Click to edit\" id=L"+j+" href=\"javascript:parseLine("+j+")\""+						" onmouseover=\"msOvMnu("+i+",this,event)\""+						" onmouseout=\"selLine(Ec)\""+					//	" onmouseup=\"document.getElementById('lst').style.zIndex=0;document.getElementById('sas').style.zIndex=1;return false\""+					">"+						t+					"</a><br>"		}		document.getElementById("lst").innerHTML=tx;		document.getElementById('mnu').style.display="none"	}	function editCmt(j){		var t=cmt[j].replace(/<br>/gi,"\n")		document.getElementById("cmtTxt").value=t.substr(0,t.length-1)		document.getElementById("cmtJ").value=j		document.getElementById("cmtEdt").style.display="block"		document.getElementById("cmtTxt").focus()	}	function parseLine(n){		getValues(n,0);		with(document.forms[0]){			elements["jn"].value=jnv			elements["n1"].value=tx		}		selLine(n);showLine(n,0)	}	function getValues(n,i){		l=lines[n][i];nov=l[0];aav=l[1];mmv=l[2];jjv=l[3];dav=l[4];vav=l[5];dvv=l[6];lbv=l[7];rfv=l[8];		l=ttl[n];jnv=l[0];tx=l[1]	}	function showLine(n,m){		var mod=mode;mode="d";initSoldes();		t=	"<table border=0 cellspacing=0 cellpadding=3 align=center width=100%>"+				"<tr>"+					"<td align=center>Devise</td><td align=center>Date</td>"+					"<td>&nbsp;</td>"+						"<td align=right><i>Solde Compte</i></td><td align=center>Compte</td><td>Libellé compte</td>"+						""+					"<td>&nbsp;</td>"+						"<td align=right>Crédit</td><td align=right>Débit</td><td align=right><i>Solde</i></td>"+					"<td>&nbsp;</td>"+					"<td>Libellé Opération</td><td>Ref</td>"+				"</tr>"		s=0;for(i=0;i<lines[n].length;i++){			getValues(n,i);getSolde(nov);			s+=parseInt(vav);var v=nm2d(vav)			t+="<tr>"+					"<td align=center>"+dvv+"</td>"+					"<td align=center>"+jjv+"/"+mmv+"/20"+aav+"</td>"+					"<td>&nbsp;</td>"+						"<td align=right><i>"+nm2ds(sld[nov])+"</i></td>"+						"<td align=center><a href=\"javascript:planComptable('"+nov+"')\" title=\"Afficher le compte\">"+nov+"</a></td>"+						"<td>"+getNomCompte(nov)+"</td>"+					"<td>&nbsp;</td>"+					"<td align=right>"+(vav>0?v:"&nbsp;")+"</td>"+					"<td align=right>"+(vav<0?v:"&nbsp;")+"</td>"+					"<td align=right><i>"+(vav!=""?nm2ds(s):"")+"</i></td>"+					"<td>&nbsp;</td>"+					"<td>"+						(lines[n].length>1?"<a href=\"javascript:delOp("+n+","+i+")\" title=\"Supprimer cette opération\">-</a> ":"")+						"<a href=\"javascript:showOp("+n+","+i+")\" id=E"+n+"O"+i+"no title=\"Afficher cette opération\">"+lbv+"</a>"+					"</td>"+					"<td>"+rfv+"</td>"+				"</tr>"		}		t+="</table>"		document.getElementById("lst").style.display="none"		document.getElementById("nfo").innerHTML=nfoTxt+t		setOption("jnS",jnv);Ec=n;Op=0;showOp(n,m)		mode=mod		document.getElementById("lst").style.height=((ns?innerHeight-9:document.body.clientHeight)-document.getElementById("mnFrm").offsetHeight)+"px"		document.getElementById("lst").style.display="block"	}	function showOp(n,i){		document.getElementById("E"+Ec+"O"+Op+"no").style.color=clr;getValues(n,i);Ec=n;Op=i;document.getElementById("E"+n+"O"+i+"no").style.color="red"		with(document.forms[0]){no.value=nov;aa.value=aav;mm.value=mmv;jj.value=jjv;va.value=(va!=""?vav/100:"");dv.value=dvv;lb.value=lbv;rf.value=rfv}		setOption("noS",nov);setOption("nxS",nov);setOption("dvS",dvv)		setOption("aaS",aav);setOption("mmS",mmv);setOption("jjS",jjv)		document.getElementById("tvS").disabled=(i>0?false:true)	}	mode="d";function nm2d(v,d){		if(mode!="d")v=100*Math.round(v/100)		var u=Math.abs(v);var x=parseInt(u/100);var y=u-x*100;if(y.toString().length<2)y="0"+y;		var z=x.toString();x="";while(z.length){var l=Math.max(0,z.length-3);x=(z.length>3?" ":"")+z.substr(l)+x;z=z.substr(0,l)}		return x+(mode!="d"?"":"."+y)	}	function nm2ds(u,d){var w=nm2d(u,d);return (w!="0.00"&&w!="0"&&u<0?"-":"")+w}	function getInputs(){		with(document.forms[0]){			if(va.value.substr(0,1)=="*"&&Op>0)eval("document.forms[0].va.value="+(lines[Ec][0][5]/100)+va.value)			if(va.value.substr(0,1)=="=")eval("document.forms[0].va.value=Math.round("+va.value.substr(1)+")")			jnv=jn.value;			nov=no.value;			aav=aa.value;			mmv=mm.value;			jjv=jj.value;			vav=parseInt(va.value*100);			dvv=dv.value			lbv=lb.value;			rfv=rf.value			n1v=n1.value		}		}	function checkValues(){		ok=""		for(var i=0;i<nov.length;i++){var c=nov.substr(i,1);if(parseInt(c)!=c)ok="no"}		if(nov>"89999999"||nov<"00000000"||nov.length<8)ok="no";		if(ok==""){			x=document.getElementById("nxS");y=document.getElementById("noS");			j=0;with(y)for(var i=1;i<options.length;i++)if(options[i].value==nov){i=options.length;j=i}			if(!j){ // compte non utilisé				if(x){					var okFound=0;for(var i=0;i<x.options.length;i++){						if(x.options[i].text.substr(0,8)==nov){ // le compte existe dans les inutilisés							okFound=1;							insOption("noS",nov,x.options[i].text)							delOption("nxS",i);i=x.options.length						}					}					if(!okFound){						var txt=prompt("Ce compte n'existe pas\nVeuillez saisir un nom svp");						if(txt)insOption("noS",nov,nov+" "+txt);else ok="no"					}				}			}		}		for(var i=0;i<aav.length;i++){var c=aav.substr(i,1);if(parseInt(c)!=c)ok="aa"}		if(aav>"99"||aav<"00")ok="aa";if(aav.length<2)aav="0"+aav;		for(var i=0;i<mmv.length;i++){var c=mmv.substr(i,1);if(parseInt(c)!=c)ok="vv"}		if(mmv>"12"||mmv<"01")ok="mm";if(mmv.length<2)aav="0"+mmv;		for(var i=0;i<jjv.length;i++){var c=jjv.substr(i,1);if(parseInt(c)!=c)ok="jj"}		if(jjv>"31"||jjv<"01")ok="jj";if(jjv.length<2)aav="0"+jjv;		if(jjv=="31"&&(mmv=="04"||mmv=="06"||mmv=="09"||mmv=="11"))ok="jj"		if(jjv>"29"&&mmv=="02")ok="jj"		if(vav!=parseInt(vav))ok="va"		//if(lbv=="NOUVEAU")ok="lb"		if(ok!=""){alert(ok+"="+eval(ok+"v")+" n'est pas correcte");document.forms[0].elements[ok].focus()}		okCheck=ok!=""?false:true	}	function savOp(){		getInputs();checkValues();if(okCheck){			setValues(Ec,Op)			if(Op==lines[Ec].length-1&&vav!=""){				Op+=1;				lines[Ec][Op]=Array(nov,aav,mmv,jjv,aav+mmv+jjv,0,dvv,lbv,rfv);ttl[Ec][1]+=nov+aav+mmv+jjv+(lbv?"|"+lbv:"")+(rfv?"|"+rfv:"")+(lbv||rfv?"|":"")			}			showLine(Ec,Op)		}	}	function saveLine(){		getInputs();		tx=n1v;		if(tx.substr(0,1)!="#"){			analyseLine(Ec,tx)			if(okCheck){				ttl[Ec]=Array(jnv,n1v);				if(ord.length==0){					ord[0]=0;valuesLoaded()				}else{						document.getElementById("L"+Ec).innerHTML=tx;parseLine(Ec);				}			}		}else{			cmt[Ec]=tx+"<br>"+cmt[Ec];			populateList()		}	}	function analyseLine(n,t){ //depuis le texte		jnv=t.substr(0,2);var tx=t.substr(2);var x=tx.split("| ")		ok=1;rf0="";da0="";lb0="";dv0="";lines[n]=Array();s=0;for(i=0;i<x.length;i++){			u=x[i];v=u.split("|");t=v[0];			nov=t.substr(0,8);t=t.substr(8)			w=Math.max(t.indexOf("+"),t.indexOf("-"))			dav=da0;if(w==6||(w<0&&t.length>5)){dav=t.substr(0,6);t=t.substr(6)}			aav=dav.substr(0,2);mmv=dav.substr(2,2);jjv=dav.substr(4,2)			w=(t!=""?parseInt(t):0);if(i==x.length-1)w=-s;vav=(w>0&&t!=""?"+":"")+w;s+=w;			dvt=t.replace(vav,"");dvv=dvt!=""?dvt:dv0			lbv=lb0;if(v.length>1)if(v[1]!=lb0&&v[1]!="")lbv=v[1];			rfv=rf0;if(v.length>2)if(v[2]!=rf0)rfv=v[2];			if(ok){rf0=rfv;dv0=dvv;da0=dav;aa0=aav;mm0=mmv;jj0=jjv;lb0=lbv;no0=nov;va0=vav}ok=0;			checkValues();			if(okCheck){lines[n][i]=Array(nov,aav,mmv,jjv,dav,vav,dvv,lbv,rfv)}else{i=x.length}		}	}	function setValues(n,i){		lines[n][i]=Array(nov,aav,mmv,jjv,aav+mmv+jjv,vav,dvv,lbv,rfv)		rf0="";da0="";lb0="";dv0="";t="";for(j=0;j<lines[n].length;j++){			getValues(n,j);			t+=nov			if(dav!=da0)t+=dav			var w=parseInt(vav);if(j<lines[n].length-1||j==0)t+=(w>=0&&vav!=""?"+":"")+w			if(dvv!=dv0)t+=dvv			t+="|"			if(lbv!=lb0)t+=lbv			t+="|"			if(rfv!=rf0)t+=rfv+"|";			t+=" "			t=t.replace(/\|\| /g,"| ")			if(j==0){rf0=rfv;dv0=dvv;da0=dav;aa0=aav;mm0=mmv;jj0=jjv;lb0=lbv;no0=nov;va0=vav}		}		t=t.substr(0,t.length-2)		ttl[n]=Array(jnv,t);document.forms[0].n1.value=jnv+t;document.getElementById("L"+n).innerHTML=jnv+t	}
