insertStyleSheet("/lls/assets/styles/int-type.css");

var evt = new universalEvent();
var answers = document.getElementById("type-answers").firstChild.nodeValue.split(",");
var rd = document.getElementById("response-div");
var evaled=new Array();

function init() {
	var b,d,i=0,e,lng;
	lng = findLongest(answers);
	if (lng < 4) lng = 4;
	while (d=document.getElementById("pos-" + (++i))) {
		evaled[i]=false;
		e = document.createElement("input");
		e.setAttribute("type","text");
		e.setAttribute("size",lng.toString());
		e.setAttribute("maxlength",lng.toString());
		e.setAttribute("id","txt-"+i);
		e.className="int-type-txt";
		e.onkeypress=reactivate;
		d.appendChild(e);
		d.appendChild(createBut(i));
		d.style.whiteSpace="nowrap";
	}
	i=0;	
	while (b=document.getElementById("but-clear-fill-"+(++i)))
	{
		e=document.createElement("input");
		e.setAttribute("type","button");
		e.setAttribute("class","response");
		e.setAttribute("value","Clear answers");
		e.setAttribute("id","clearanswerFill-button-"+(i));
		e.onclick=clearanswerFill;
		b.appendChild(e);
	}
}
	
function clearanswerFill()
{
	var i=0,d,e;
	while (d=document.getElementById("pos-" + (++i))) 
	{
		// clear the input text boxes
		e=document.getElementById("txt-" +i);
		e.value="";
		e.disabled=false;
		
		// reset the button image icon
		t=document.getElementById("txt-but-"+i);
		t.parentNode.replaceChild(createBut(i),t);
				
		if (rd)	{
			rd.style.display="none";
		}
	}
	

}
function createBut(num) {
		var e;
		
		e=document.createElement("span")
		e.setAttribute("id","txt-but-"+num);
		//e.appendChild(document.createTextNode("(" + num + ")"));
			//p=document.createElement("a");
			//p.setAttribute("href","javascript:evaluate();");
		//e.appendChild(p);			
			p=document.createElement("img");
			p.setAttribute("src","assets/images/checkanswer.gif");
			p.setAttribute("id","fb-img-"+num);
			p.setAttribute("alt","Check answers");
			p.className="fb-img";
		e.appendChild(p);
		e.className="int-type-fbbut";
		e.onclick=evaluate;
		return e;
}

function reactivate(e) {
	evt.refresh(e);
	n=parseInt(evt.evtSrcId.substr(evt.evtSrcId.lastIndexOf("-")+1));
	//alert(evt.evtSrcId.substr(evt.evtSrcId.lastIndexOf("-")));
	if (evaled[n]) {
		t=document.getElementById("txt-but-"+n);
		t.parentNode.replaceChild(createBut(n),t);
		evaled[n]=false;
	}
}

function findLongest(arr) {
	var i,lng=0;
	for (i=0;i<arr.length;i++) if (arr[i].length > lng) lng=arr[i].length;
	return lng;
}

function evaluate(e) {
	evt.refresh(e);
	var n,txt,cd,i,t,e;
	txt=document.getElementById("txt-" + (n=parseInt(evt.evtSrcId.substr(evt.evtSrcId.lastIndexOf("-")+1))));
	if (txt =="") return false;
	if (rd)	{
		rd.style.display="block";
		insertAfter(rd,findTopInlineNode(evt.evtSrc));
		for (i=0;i<rd.childNodes.length;i++) {
			if (rd.childNodes[i].nodeName.toLowerCase() == "span") rd.childNodes[i].style.display="none";
		}
	}
	var re = new RegExp(answers[n-1],"i");
	if (txt.value.match(re) && txt.value.length == answers[n-1].length) {
		cd=document.getElementById("correct-" + n);
		if (cd) {
			rd.appendChild(cd);
			cd.style.display="inline";
		}
		txt.disabled=true;
		txt.className="txt-disabled";
		t=document.getElementById("txt-but-"+n);
		t.parentNode.replaceChild(e=newTickGraphic(correct),t);
		//alert (e);
		e.id = "txt-but-"+n;
		evaled[n]=true;
	}
	else {
		cd=document.getElementById("incorrect-" + n);
		if (cd) {
			rd.appendChild(cd);
			cd.style.display="inline";
		}
		t=document.getElementById("txt-but-"+n);
		t.parentNode.replaceChild(e=newTickGraphic(incorrect),t);
		//alert (e);
		e.id = "txt-but-"+n;
		evaled[n]=true;
	}
}

var correct=new Image(25,25);
correct.src="assets/images/correct.gif";

var incorrect=new Image(25,25);
incorrect.src="assets/images/incorrect.gif";

function newTickGraphic(type) {
	var img;
	img=document.createElement("img");
	img.src=type.src;
	img.setAttribute("alt"," ");
	img.setAttribute("width","25");
	img.setAttribute("height","25");
	img.style.verticalAlign="middle";
	return img;
}

init();
