var N=6
var N2=2*N
function efface() {
	for(var i=0; i<12; 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);
	for(var i=0; i<12; i++) {
		var a = toint(document.frm[i].value)
		
		if(a.toString()=="NaN") a=0
		document.frm[i].value = a
		tb[i]=a
		tb[i+12] = a
		t[a]++
		if(a<1 || a>12)s2 += a+" "
		total+=a
	}
	somme = Math.floor(total/3)
	for(var i=1; i<=12; 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<6; 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>"+ 
		"En utilisant les nombres de 1 à 12, il y a 80 solutions à une symétrie ou une rotation près, "+
		"ce qui fait 960 dispositions possibles des nombres sur la figure. Il y a beaucoup d'autres solutions utilisant des entiers hors de l'intervalle [1, 12]."
	} else {
		if(test==true) {
			result = "Une solution utilisant les entiers de 1 à 12 est trouvée : <br>"
		} else if(s1=="") {
			result = "une solution qui n'est pas dans l'intervalle [1, 12] est trouvée : <br>"
		}
		for(var i=0; i<12; i++) result += tb[i]+" "
	}
	//result += s3
	document.getElementById("commentaire").innerHTML = result
}
function demo(s) {
	document.frm.liste.value=s
	place()
	teste()
}

function hasard() {
	var k = Math.floor(sols.length*Math.random())
	document.frm.liste.value = sols[k]
	place()
	teste()
}

function solution() {
	var sol = [12,4,7,2,8,6,11,9,3,1,5,10]
	for(var i=0;i<12;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<12; i++) 
		document.frm[i].value = t[i]
}

function bij() {
	var t = new Array(12)
	for(var i=0; i<12; 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
}

function partiel(k) {
        var t = bij()
        var m = Math.floor(sols.length*Math.random())
        var s = sols[m]
        s = s.replace(/\s+$/,"")
        var u = s.split(/\s+/g)
        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)
}


