
var N2=2*N
// var solu=""
// var sols = sols7
// -----------------------------------------------------------

function efface() {
	for(var i=0; i<N2; i++) {
		document.frm[i].value=""
	}
	//document.frm.liste.value = ""
}
function effaceliste() {
	document.frm.liste.value = ""
}
function toint(s) {
	var u = s.replace(/^\s+/,"")
	u = u.replace(/\s+$/,"")
	return parseInt(u)
}


function teste() {
	var s0="", s1="", s2="", s3="", test=true, test1=true,total=0, somme
	var tb=new Array(), t = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
	for(var i=0; i<N2; i++) {
		var a = toint(document.frm[i].value)
		
		if(a.toString()=="NaN") a=0
		document.frm[i].value = a
		tb[i]=a
		tb[i+N2] = a
		t[a]++
		if(a<1 || a>N2)s2 += a+" "
		total+=a
	}
	somme = Math.floor(2*total/N)
	for(var i=1; i<=N2; i++) {
		if(t[i]==0) s0 += i+" "
	}
	for(var i in t) {
		if(t[i]>1) s1 += i+" "
	}
	if(s0 !="" || s1!="" || s2!="") test = false
	for(i=0; i<N; i++) {
		var n = tb[2*i]+tb[2*i+1]+tb[2*i+3]+tb[2*i+4]
		s3+= n+" "
		if(n!=somme) {
			test1 = false
		}
	}
	
	var result = ""

	if(test == false) {
		if(s0 !="") result += "Les entiers suivants ne sont pas utilisés "+s0+"<br>"
		if(s1 !="") result += "Les entiers suivants sont utilisés plusieurs fois : "+s1+"<br>"
		if(s2 !="") result += "Les entiers suivants ne sont pas dans l'intervalle [1, 12] : "+s2+"<br>"

	} 
	if(test1==false) {
		result += "Les sommes ne sont pas toutes égales à "+somme
	}
	if(test1==false) {
		result = "<u>Erreur</u><br>"+result+"<br>"+ 
		" "
	} else {
		if(test==true) {
			result = "Une solution utilisant les entiers de 1 à "+N2+" est trouvée : <br>"
		} else if(s1=="") {
			result = "une solution qui n'est pas dans l'intervalle [1, "+N2+"] est trouvée : <br>"
		}
		for(var i=0; i<N2; i++) result += tb[i]+" "
	}
	//result += s3
	document.getElementById("commentaire").innerHTML = result
}

function demo(s) {
	document.frm.liste.value=s
	place()
	teste()
}

function aleatoire() {
        var k = Math.floor(sols.length*Math.random())

        var t = sols[k].split(/\s+/g)
        var r = 2*Math.floor(N*Math.random())
        var sens = (Math.random()<0.5)
        var u = new Array()
        if(sens) {
        for(var i=0; i<N2; i++) {
//              u[i] = (sens)? t[(i+r)%N2] :  t[N2-1-(i+r)%N2]
                u[i] =  t[(i+r)%N2]
        }
        } else {
        for(var i=0; i<N2; i++) {
//              u[i] = (sens)? t[(i+r)%N2] :  t[N2-1-(i+r)%N2]
                u[i] =  t[N2-1-(i+r+1)%N2]
        }

        }
	return u
}

function hasard() {
	var u = aleatoire()
	var s = u[0]+""
	for(var i=1; i<N2; i++) {
		s += " "+u[i]
	}
	document.frm.liste.value = s

//	document.frm.liste.value = sols[k]
	place()
	teste()
	delete(u)
}

function solution() {
	var sol = solu.split(/\s+/g)
	for(var i=0;i<N2;i++) {
		document.frm[i].value = sol[i]
	}
}

function place() {
	var u = document.frm.liste.value
	u = u.replace(/^\s+/,"")
	u = u.replace(/\s+$/,"")
	u = u.replace(/\s+/g," ")
	document.frm.liste.value = u
	var t = u.split(/\s+/g)
	efface()
	for(var i=0; i<t.length && i<N2; i++) 
		document.frm[i].value = t[i]
}

function bij() {
	var t = new Array(N2)
	for(var i=0; i<N2; i++) t[i]=i
	for(var i=11; i>0; i--) {
		var j = Math.floor((i+1)*Math.random())
		var a = t[j]
		t[j]=t[i]
		t[i]=a
	}
	return t
}

var encours = new Array()

function partiel(k) {
        var t = bij()
	var u = aleatoire()

	for(var i=0; i<N2; i++)
		encours[i] = u[i]
        for(var i=0; i<k; i++)
                u[t[i]]=""
        effaceliste()
        efface()
        for(var i=0; i<N2; i++)document.frm[i].value = u[i]
        delete(t)
        delete(u)
}

function reponse() {
	for(var i=0; i<N2; i++)document.frm[i].value = encours[i]
}

