var ncols=5, npions=2*ncols,
idim=50, largeur=60;
var total=0;
var solutions = [];
function writesols(){
//if(solutions.length==0) return
var s="<pre>"
for(x in solutions) {
	s += x+"\n";
}
s += "</pre>"
document.getElementById("commt").innerHTML=s

}

window.onload = function(){
        for(var i=0;i<10;i++) {
                var u = "p"+(2*i)
                makeDraggable(document.getElementById(u));
                u = "p"+(2*i+1)
                makeDraggable(document.getElementById(u));
        }
}

function toint(u) {
	return (u==null)? null : parseInt(u.replace(/px$/,""));
}
function testeGame() {
	var tx=[], ty = []
	var mini=10000000, maxi=-1000000,ymini=10000000,ymaxi=-1000000000,xmoy=0,ymoy=0, a=0;
	for(var i=0; i<ncols; i++) {
		for(var j=0; j<2; j++) {
			
			var u = "p"+a
			tx[a]=toint(document.getElementById(u).style.left)
			xmoy +=tx[a]
			if(tx[a]<mini) mini = tx[a]
			if(tx[a]>maxi) maxi = tx[a]
			ty[a]=toint(document.getElementById(u).style.top)
			ymoy += ty[a]
			if(ty[a]<ymini) ymini = ty[a]
                        if(ty[a]>ymaxi) ymaxi = ty[a]
			a++;
		}
	}
//	alert(tx)
	var rang = [];
	var rang2 = []
	for(var i=0; i<npions; i++) {
		rang[i] =0;
		for(var j=0; j<npions; j++) {
			if(i != j && tx[j] < tx[i]) rang[i]++
		}
	}
//	alert("rang  "+rang)
	for(var i=0; i<npions; i++) {
		rang2[rang[i]]=i;
	}
//	alert("rang2  "+rang2)
	var decal=Math.floor((maxi-mini)/(npions-1))
	if(decal<10) decal=10;
	if(decal>100) decal=100;
	var ymean=Math.floor((ymini+ymaxi)/2);
	for(var i=0; i<npions; i++) {
		var u = "p"+rang2[i];
		document.getElementById(u).style.top=ymean;
		document.getElementById(u).style.left=mini+i*decal;
	}
//alert("---------");
	var tdec=[], d, ecrts=[];
	var liste = []
	for(var i=0; i<ncols; i++) {
		d = Math.abs(rang[2*i]-rang[2*i+1])
		liste[rang[2*i]] = d;
		liste[rang[2*i+1]] = d;
		tdec[i] = d
		if(ecrts[d]==null) ecrts[d]=1
		else ecrts[d]++
	}
//	alert(tdec)
	var unique=true;
	var s = "";
	var ecmin=1000;
	var ecmax=-1;
	for(var d in ecrts) {
		if(d< ecmin) ecmin=d
		if(d>ecmax) ecmax=d;

		if(ecrts[d] != 1) {
			s += "la distance "+d+" est utilisée par "+ecrts[d]+" paires<br />"
			unique=false;
		}
	}
//	alert(ecrts)
var s1="";
for(var i=0; i<npions; i++) {
	s1 += liste[i]+" "
}
	addit="";
	if(unique) {
		var total1=0;
		if(ecmax-ecmin==ncols-1) {
			if(ecmin==1) {
				s += "Très très bien !<br />La suite est de Skolem<br />"
				addit="Skolem"
				total1 = 100*ncols;
			} else if(ecmin==2) {
				s += "Parfait !<br />La suite est de Langford<br />"
				addit="Langford"
				total1 = 50*ncols;
			} else {
				s += "Excellent !<br />La suite est de Langford avec un défaut "+(ecmin-1)+" (la plus petite distance est "+ecmin+")<br />"
				addit="Langford defect"
				total1 = 40*ncols;
			}
		} else {
			var sts=ecmax-ecmin-4
			sts = (sts<0)?0:sts
			s += "Très bien vu !<br />Les distances sont toutes différentes mais leur suite est irrégulière<br />"
				+"La suite est du type Skolem-proche<br />"
				+"Le nombre de sauts insérés entre les distances est de "+sts+"<br />";
				addit="near-Skolem"
				total1 = 10*ncols;
		}
		s1 +=addit;
		if(solutions[s1] !=1) {
			solutions[s1]=1;
			s1 += "  (Nouvelle solution)<br />"
			total += total1
			document.getElementById("total").innerHTML = "Nombre total de points <strong>"+total+"</strong>";
		}

	} else {
		s += "En tenant compte des informations, essayez de vous rapprocher d'une suite de Skolem ou de Langford.<br />" +
			"Vous pouvez ne modifier les positions que de seulement quelques pions de la ligne.<br />"
	}
	s += "La valeur de la suite est <br />"+s1+"<br />"
	//alert(s);
	document.getElementById("commt").innerHTML=s;
}


function setcols(n) {
	n = parseInt(n);
	if(n<1) n=1
	if(n>10) n=10;
	document.frm.nc.value=n
	ncols = n
	npions = 2*n
	var largeur = Math.floor(300/n)
	var y 
	if(document.getElementById("p0").style.top) y= document.getElementById("p0").style.top
	else y="500px"

	for(var i=0; i<n; i++) {
		for(var j=0; j<2; j++) {
			u="p"+(2*i+j)
		document.getElementById(u).style.display="inline"
		document.getElementById(u).style.left=(150+(2*i+j)*largeur)+"px";
		document.getElementById(u).style.top=y;
		}
	}
	for(var i=n; i<10; i++) {
		for(var j=0; j<2; j++) {
                        u="p"+(2*i+j)
			document.getElementById(u).style.display="none"
			document.getElementById(u).style.top=y;
		}
	}
	
}

