
function complg(s, l) {
	var s1 = s;
	while(s1.length<l) s1 = " "+s1;
	return s1
}
function compld(s, l) {
        var s1 = s;
        while(s1.length<l) s1 += " ";
        return s1
}

function blc(n) {
	var s="";
	for(i=0; i<n; i++) s +=" "
	return s;
}
function trait(n) {
	var s=""
	for(var i=0; i<n; i++) s += "-"
	return s;
}

function division(a, b, k) {
	var st="", st1
	var sa= new String(a), sb= new String(b), l = sa.length, t=sb.length;
	var s0 = sa, gche=l+k;
	s0 = "  "+compld(s0, gche) + "| "+sb
	st = s0+"\n"
	var diviseur =""
	var reste=[]
	for( p=0, u=0; p<k ; p++) {
		var c=((p<l)? parseInt(sa.charAt(p)) : 0)
		u = 10*u + c
		r = u%b;
		reste[p]=complg((""+u),p+1)
		reste[p]=compld(reste[p],gche)
		divis = (u-r)/b
		u=r;
		if(p==l) {
			diviseur+= ","
			if(diviseur.charAt(0)==",") {
				diviseur = "0"+diviseur
			}
		}
		if(diviseur!="" || divis!=0)
			diviseur += divis
	}
	st += "  "+reste[0] + "|"+(trait(k+5))+"\n"
	st += "  "+reste[1]+"| "+diviseur+"\n"
	for(i=2; i<k; i++)
		st += "  "+reste[i]+"|\n"
	return st
}


function affdivision(a, b, k) {
	document.diveuclide.f.value=a+" / "+b+"   "+k
	var s=division(a, b, k)
	euclide.innerHTML="<pre class='euc'>"+s+"</pre>"

}
	
function diveffectue() {
	var s=document.diveuclide.f.value
	s = s.replace(/[^0-9\/\s]+/ig,"")
	s = s.replace(/^\s+/g,"")
	s = s.replace(/\s+$/g,"")
	s = s.replace(/\s+$/g," ")
	s = s.replace(/\s*\/\s*$/g," / ")
	document.diveuclide.f.value=s;
	var t = s.split(/[\/\s]+/)
	var k=30;
	if(t[2]!=null && parseInt(t[2])>1) k = parseInt(t[2])
	k = (k>60)? 60 : k
	affdivision(t[0], t[1], k)
}

function divefface() {
	euclide.innerHTML=""
	document.diveuclide.f.value=""
}

function divhasard() {
	var a=5+Math.floor(5000*Math.random()),
	b=2+Math.floor(7000*Math.random());
	document.diveuclide.f.value=a+" / "+b+"   "
	diveffectue()
}

