/* Please edit these values only */

//Date of the puzzle
Temps1 = "Du 4 Février au"
Temps2 = "10 Février 2012"

//The string indicating letters to be left out
QuesString = "I*A*TM*L**O***AP***TP****I*****A**OM************HL**PIHM**O*****P***TL**L*O*P*MT*";

//The complete string
SolnString = "IHAPTMOLRROLIHAPMTMTPLROAIHPLHTAIROMTRIOMPHALOAMHLRTPIHMTAOLIRPAPRMITLHOLIORPHMTA";

//The letters to be used
Letters = "AHILMOPRT";
Letter2 = "A H I L M O P R T";

//The Puzzle number
PuzNo = 200;

//The Hint
HintTxt = "Le retour de Jésus-Christ";

//The Did you know section
DidUKnow = "Lors de Son retour, Jésus rassemblera Ses fidèles qui célébreront «avec chants de triomphe, et une joie éternelle couronnera leur tête.» (Ésaïe 51:11). Dieu nous invite à participer à cet événement triomphal. Quelle sera notre réponse?"

//Solution
SolnStr = "TRIOMPHAL";

/* Do not change script beyond this point */
QStrArr = QuesString.split(""); SStrArr = SolnString.split(""); LArr = Letters.split("");

var TimerCtrl=""; var tempStore =""; var setCtrl;

function ShowSoln() {
	for (i=0; i<9; i++) {
		for (j=0; j<9; j++) {
			Obj = document.getElementById(i+" "+j);
			if (QStrArr[i*9 + j] == '*') {
				Obj.firstChild.nextSibling.innerHTML = SStrArr[i*9 + j];
				Obj.firstChild.nextSibling.style.display="block";
				Obj.lastChild.style.display="none";
				}
			}
		}

	document.getElementById("DYK1").style.visibility = "visible";
	document.getElementById("DYK2").style.visibility = "visible";
	document.getElementById("LetterHead").innerHTML = "Solution";
	document.getElementById("LetterBody").innerHTML = SolnStr;
				
	}

function IncrementTimer() {
	Obj = document.getElementById("timer");
	Hrs = Number(Obj.innerHTML.charAt(0)) * 10 + Number(Obj.innerHTML.charAt(1)); 
	Min = Number(Obj.innerHTML.charAt(5)) * 10 + Number(Obj.innerHTML.charAt(6)); 
	Sec = Number(Obj.innerHTML.charAt(10)) * 10 + Number(Obj.innerHTML.charAt(11)); 
	Sec++;
	if (Sec==60) { Min++; Sec-=60; }
	if (Min==60) { Hrs++; Min-=60; }
	Obj.innerHTML = ((Hrs<10) ? "0"+Hrs : Hrs) + " h " +((Min<10) ? "0"+Min : Min) + " : " + ((Sec<10) ? "0"+Sec : Sec);
	}

function callTimer() {
	Obj = document.getElementById("StrRst");
	if ( Obj.innerHTML == "Débuter") {
		Obj.innerHTML = "Réinitialiser";
		TimerCtrl = setInterval(IncrementTimer, 1000);
		}
	else {
		Obj.innerHTML="Débuter";
		clearInterval(TimerCtrl);
		document.getElementById("timer").innerHTML = "00 h 00 : 00";
		document.getElementById("Pause").innerHTML = "Pause";
		TimerCtrl = "";
		}		 
	}

function pauseTimer() {
	Obj = document.getElementById("Pause");
	if ( Obj.innerHTML == "Pause" && TimerCtrl != "") {
		clearInterval(TimerCtrl);
		Obj.innerHTML = "Continuer";
		TimerCtrl="";
		}
	else {
		TimerCtrl = setInterval(IncrementTimer, 1000);
		Obj.innerHTML = "Pause";
		}
	}

function Check(Caller) {
	clearTimeout(setCtrl);
	if (Caller == undefined) Caller=0;
	ResultObj = document.getElementById("ChCong");
	isNotCorrect = 0; isEmpty=0; total=0;
	for (i=0; i<9; i++) {
		for (j=0; j<9; j++) {
			Obj = document.getElementById(String(i+" "+j));
			if ( QStrArr[ i*9 + j ] == '*') {
				if ( Obj.firstChild.nextSibling.innerHTML != SStrArr [i*9 + j] && Obj.firstChild.nextSibling.innerHTML != "") { 							isNotCorrect++;
					if (Caller!=1) Obj.className="wcellwrong";
					}
				if (Obj.firstChild.nextSibling.innerHTML == "") isEmpty++;
				total++;
				}
			}
		}

	Finished = 0;
	if (isEmpty == total && Caller == 0) {
		ResultObj.innerHTML = "Vous n’avez encore inscrit aucune lettre.";
		ResultObj.className = "empty";
		}
	else if (isNotCorrect==0 && isEmpty!=0 && Caller == 0) {
		ResultObj.innerHTML = "Tout va bien jusqu’ici. Il vous reste " + isEmpty + ((isEmpty==1)? " cellule" : " cellules") + " à remplir.";
		ResultObj.className = "halfempty";
		}
	else if (isNotCorrect != 0 && Caller == 0) {
		ResultObj.innerHTML = "Au moins une erreur détectée. Corrigez les cellules rouges.";
		ResultObj.className = "wrong";
		}
	else if (Caller == 1 && (isNotCorrect>0 || isEmpty>0) ) {
		//Do nothing
		}
	else {
		ResultObj.innerHTML = "Félicitations !";
		ResultObj.className = "right";
		clearInterval(TimerCtrl); Finished = 1;
		document.getElementById("DYK1").style.visibility = "visible";
		document.getElementById("DYK2").style.visibility = "visible";	
		document.getElementById("LetterHead").innerHTML = "Solution";
		document.getElementById("LetterBody").innerHTML = SolnStr;
		}		

	if (Finished != 1)
		setCtrl = setTimeout ( "ResultObj.innerHTML = 'Ai-je bien rempli la grille jusqu’ici ?'; ResultObj.className = 'check'; ", 5000 );
	}

function menuOn(Event, Obj) {
	if (Obj.className != "optionscellletter") {
		i = (Obj.parentNode.parentNode.parentNode.parentNode.id.charAt(0));
		Obj.className=("optionscellh"+( (i==4)? "c" : "" ));
		}
	}

function menuOut(Event, Obj) {
	nextDiv = Obj.parentNode.parentNode.parentNode.nextSibling;
	notesTable = nextDiv.nextSibling;
	var ReqdElStr = "notesTable.firstChild.firstChild";
	var Number = Letters.indexOf(Obj.innerHTML);
	for (i=0; i< Math.floor(Number / 3); i++)
		ReqdElStr+=".nextSibling";
	ReqdElStr+=".firstChild";
	for (i=0; i< (Number % 3); i++)
		ReqdElStr+=".nextSibling";
	if ( !( ((eval(ReqdElStr).className)) == "notescellh" || ((eval(ReqdElStr)).className) == "notescellhc" || Obj.className == "optionscellletter")  ) {
		i = (Obj.parentNode.parentNode.parentNode.parentNode.id.charAt(0));
		Obj.className=("optionscell"+( (i==4)? "c" : "" ));
		}
	}

function checkFilled(Obj) {
	var isFilled = 0;
	Node = Obj.firstChild.firstChild;
	for (i=0; i<3; i++) {
		Node = Node.firstChild; 
		for (j=0; j<3; j++) {
			if (Node.className == "notescellh" || Node.className == "notescellhc") { isFilled++; }
			if (j!=2) { Node = Node.nextSibling; }
			}
		Node = Node.parentNode.nextSibling;
		}
	return ((isFilled == 0) ? 0 : 1);		
	}

function ToggleClassNotes (Obj) {
	if (Obj.className == "notescell") Obj.className = "notescellh"; 
	else if (Obj.className == "notescellc") Obj.className = "notescellhc";
	else if (Obj.className == "notescellh") Obj.className = "notescell";
	else if (Obj.className == "notescellhc") Obj.className = "notescellc";           
	}

function ShowT (Obj) {
	nextDiv = Obj.firstChild.nextSibling;
	optionsTable = nextDiv.previousSibling;

	if (nextDiv.innerHTML != "") {

		var ReqdElStr = "optionsTable.firstChild.firstChild";
		var Number = Letters.indexOf(nextDiv.innerHTML);
		for (i=0; i< Math.floor(Number / 3); i++)
			ReqdElStr+=".nextSibling";
		ReqdElStr+=".firstChild";
		for (i=0; i< (Number % 3); i++)
			ReqdElStr+=".nextSibling";	
		eval(ReqdElStr).className = "optionscellletter";

		}
	Obj.firstChild.style.display = "block";
	Obj.firstChild.nextSibling.style.display = "none";
	Obj.lastChild.style.display = "none";
	}

function HideT (Obj, Event) {
	Obj.firstChild.style.display = "none";
	if (Obj.firstChild.nextSibling.innerHTML!="") { Obj.firstChild.nextSibling.style.display="block";  }
	else if (checkFilled(Obj.lastChild)) { Obj.lastChild.style.display = "block";  }  
	}

function SetVal (Event, Obj) {
	if (TimerCtrl=="") {
		document.getElementById("StrRst").innerHTML = "Réinitialiser";
		document.getElementById("Pause").innerHTML = "Pause";
		TimerCtrl = setInterval(IncrementTimer, 1000);
		} 

	nextDiv = Obj.parentNode.parentNode.parentNode.nextSibling;
	notesTable = nextDiv.nextSibling;	
	optionsTable = nextDiv.previousSibling;	

	if (nextDiv.innerHTML != "") {
		var ReqdElStr = "optionsTable.firstChild.firstChild";
		var Number = Letters.indexOf(nextDiv.innerHTML);
		for (i=0; i< Math.floor(Number / 3); i++)
			ReqdElStr+=".nextSibling";
		ReqdElStr+=".firstChild";
		for (i=0; i< (Number % 3); i++)
			ReqdElStr+=".nextSibling";	
		eval(ReqdElStr).className = ("optionscell"+ ((optionsTable.parentNode.id.charAt(0)==4)? "c" : "") );
		}

	if (nextDiv.parentNode.className == "wcellwrong") 
		nextDiv.parentNode.className = "wcell" + ((nextDiv.parentNode.id.charAt(0)==4) ? "c":"");

	if (!Event.shiftKey) {	
		isC = (notesTable.parentNode.id.charAt(0) == 4)? "c" : "";

		currNode = notesTable.firstChild.firstChild.firstChild; currNode.className = "notescell"+ isC; 
		currNode = currNode.nextSibling; currNode.className = "notescell"+ isC; 
		currNode = currNode.nextSibling; currNode.className = "notescell"+ isC; 
		currNode = notesTable.firstChild.firstChild.nextSibling.firstChild; currNode.className = "notescell"+ isC; 
		currNode = currNode.nextSibling; currNode.className = "notescell"+ isC; 
		currNode = currNode.nextSibling; currNode.className = "notescell"+ isC; 
		currNode = notesTable.firstChild.firstChild.nextSibling.nextSibling.firstChild; currNode.className = "notescell"+ isC; 
		currNode = currNode.nextSibling; currNode.className = "notescell"+ isC; 
		currNode = currNode.nextSibling; currNode.className = "notescell"+ isC; 

		currNode = optionsTable.firstChild.firstChild.firstChild; currNode.className = "optionscell" + isC;
		currNode = currNode.nextSibling; currNode.className = "optionscell" + isC;
		currNode = currNode.nextSibling; currNode.className = "optionscell" + isC;
		currNode = optionsTable.firstChild.firstChild.nextSibling.firstChild; currNode.className = "optionscell" + isC;
		currNode = currNode.nextSibling; currNode.className = "optionscell" + isC;
		currNode = currNode.nextSibling; currNode.className = "optionscell" + isC;
		currNode = optionsTable.firstChild.firstChild.nextSibling.nextSibling.firstChild; currNode.className = "optionscell" + isC;
		currNode = currNode.nextSibling; currNode.className = "optionscell" + isC;
		currNode = currNode.nextSibling; currNode.className = "optionscell" + isC;

		if (nextDiv.innerHTML == Obj.innerHTML) { nextDiv.innerHTML = ""; }
		else {	nextDiv.innerHTML = Obj.innerHTML; 	}

		Obj.parentNode.parentNode.parentNode.style.display="none";
		notesTable.style.display="none";
		nextDiv.style.display="block";
			
		}
	else {
		nextDiv.innerHTML = "";
		ReqdElStr = "notesTable.firstChild.firstChild";
		var Number = Letters.indexOf(Obj.innerHTML);
		for (i=0; i< Math.floor(Number / 3); i++)
			ReqdElStr+=".nextSibling";
		ReqdElStr+=".firstChild";
		for (i=0; i< (Number % 3); i++)
			ReqdElStr+=".nextSibling";
		ToggleClassNotes(eval(ReqdElStr));
		}

	Check(1);
	}

with (document) {
	write('<table class="container">');
	write('<tr><td>');

	write('<table class="leftcol">');	
	write('<tr><td class="header">Wordoku Biblique Hebdo</td></tr>');
	write('<tr><td class="datecell">' + Temps1 + '<br>' + Temps2 + '</td></tr>');
	write('<tr><td class="emptycell"></td></tr>');
	write('<tr><td class="theader">Cyberspace Ministry</td></tr>');
	write('<tr><td class="linkcell"><a href="http://cyberspaceministry.org" class="tablelink" target="_blank">cyberspaceministry.org</a></td></tr>');
	write('<tr><td class="emptycell"></td></tr>');
	write('<tr><td class="puzname">Puzzle No. ' + PuzNo + '</td></tr>');
	write('<tr><td class="emptycell"></td></tr>');
	write('<tr><td class="hintheader">Indice</td></tr>');
	write('<tr><td class="hintbody">' + HintTxt + '</td></tr>');
	write('<tr><td class="emptycell"></td></tr>');
	write('<tr><td class="lettersheader" id="LetterHead">Lettres</td></tr>');
	write('<tr><td class="lettersbody" id="LetterBody">' + Letter2 + '</td></tr>');
	write('<tr><td class="emptycell"></td></tr>');
	write('<tr><td class="diduknowheader" id="DYK1">Le Saviez-Vous ?</td></tr>');
	write('<tr><td class="diduknow" id="DYK2">' + DidUKnow + '</td></tr>');
	write('<tr><td class="emptycell"></td></tr>');
	write('<tr><td class="copyr">&copy; Cyberspace Ministry</td></tr>');
	write('</table>');

	write('</td><td><small><small>&nbsp;</small></small></td><td>');	
	}

document.write('<table class="wordoku" onselectstart="return false;" id="wordoku">');

for (i=0; i<9; i++) {
	document.write("<tr>");
	for (j=0; j<9; j++) {
		borderRightTxt = (((j+1)%3)==0)? "border-right-width: 3px;" : "";
		borderBottomTxt = (((i+1)%3)==0)? "border-bottom-width: 3px;" : "";
		if (QStrArr[i*9 + j] != '*') 
			document.write("<td class=\"wcellf"+( (i==4)? "c" : "" ) +"\" id=\""+(i)+" "+(j)+"\" style=\""+ borderRightTxt + borderBottomTxt +"\">"+QStrArr[i*9+j]+"</td>");	
		else {
			with (document) {
				write("<td class=\"wcell"+( (i==4)? "c" : "" ) +"\" id=\""+(i)+" "+(j)+"\" style=\""+ borderRightTxt + borderBottomTxt +"\" onmouseover=\"ShowT(this);\" onmouseout=\"HideT(this, event)\" onclick=\"ShowT(this)\">");
				write("<table class=\"optionstable"+( (i==4)? "c" : "" )+"\">");
				for (k=0; k<3; k++) {
					write("<tr>");
					for (l=0; l<3; l++) {
						write("<td class=\"optionscell"+( (i==4)? "c" : "" )+"\" onmouseover=\"menuOn(event, this);\" onmouseout=\"menuOut(event, this);\" onclick=\"SetVal(event, this)\">");
						write(LArr[k*3+l]+"</td>");
						}
					write("</tr>");
					}
				write("</table>");
				write("<div class=\"letter\"></div>");
				write("<table class=\"notesletters" +( (i==4)? "c" : "" ) + "\">");
				for (k=0; k<3; k++) {
					write("<tr>");
					for (l=0; l<3; l++) {
						write("<td class=\"notescell"+( (i==4)? "c" : "" )+"\" >");
						write(LArr[k*3+l]+"</td>");
						}
					write("</tr>");
					}
				write("</table>");
				write("</td>");
				}
			}
		}
	document.write("</tr>");
	}

document.write("</table>");

with (document) {
write("<table class='lilspace'>");
write("<tr><td class=\"emptycel2\"></td></tr>");
write("</table>");

write("<table class='extramsg'>");
write("<tr>");
write("<td class='button' id='StrRst' onmouseover='this.className=\"buttonh\";' onmouseout='this.className=\"button\";' onclick=\"callTimer();\">Débuter</td>");
write("<td class='button' id='Pause' onmouseover='this.className=\"buttonh\";' onmouseout='this.className=\"button\";' onclick=\"pauseTimer();\">Pause</td>");
write("<td class='timer' id='timer'>00 h 00 : 00</td>");
write("</tr><tr>");
write("<td colspan='3' class='check' id='ChCong' onclick='Check()' onmouseover=\"if (this.className=='check') {this.className='checkh';}\" onmouseout=\"if (this.className=='checkh') {this.className='check';}\">Ai-je bien rempli la grille jusqu’ici ?</td>");
write("</tr><tr>");
write("<td colspan='3' class='soln' onclick='ShowSoln()' onmouseover='this.className=\"solnh\";' onmouseout='this.className=\"soln\";'>J’abandonne... Veuillez me montrer la solution.</td>");
write("</tr>");
write("</table>");

write("</td></tr></table>");
}


/*  Made for Cyberspace Ministry   */
/*         by Kunal Bhalla         */
/*     bhalla.kunal@gmail.com      */
/*  Edited by Cyberspace Ministry  */
/*  Copyright Cyberspace Ministry  */

