window.onload = initAllQuizzes;

var initHTML = ["",""];
var answers = ["3","1","4","2"]; // used for part 2 of question only

function initAllQuizzes()
{
	for (var i = 0; i < 2; i++)
	{
		initQuiz(i + 1);
	}
}

function initQuiz(containerId)
{
	initHTML[(containerId - 1)] = xGetElementById("container" + containerId).innerHTML;

	if (containerId == 2)
	{
		for (var i = 0; i < 5; i++)
		{
			var elem;
			
			// Set up drag capability
			elem = xGetElementById("drag_" + ( i + 1));
			xEnableDrag("drag_" + (i + 1), fnDragStart, fnDrag, fnDragEnd);
			elem.initX = xLeft(elem);
			elem.initY = xTop(elem);
	
			// Set up drag capability for false items
			elem = xGetElementById("drag_f_" + ( i + 1));
			xEnableDrag("drag_f_" + (i + 1), fnDragStart, fnDrag, fnDragEnd);
			elem.initX = xLeft(elem);
			elem.initY = xTop(elem);
		}
	}
}

function fnDragStart(ele, mdx, mdy)
{
  var container =  ele.offsetParent;
	while (container.parentNode && (container.id.indexOf('container')==-1)) container = container.offsetParent;
	ele.offL = 0;
	ele.offR = 0;
	ele.offT = 0;
	ele.offB = 0;
	ele.bL = xPageX(container)-xPageX(ele);
	ele.bT = xPageY(container)-xPageY(ele);
	ele.bR = ele.bL+xWidth(container)-xWidth(ele);
	ele.bB = ele.bT+xHeight(container)-xHeight(ele);
	ele.style.clear = "left";
	ele.style.zIndex = 10;
}

function fnDrag(ele, mdx, mdy)
{
  ele.offL+=mdx;
  ele.offT;
	var x = Math.min(ele.bR,Math.max(ele.bL,ele.offL));
	var y = Math.min(ele.bB,Math.max(ele.bT,ele.offT));

	
	xMoveTo(ele, x, y);
}


function fnDragEnd(ele, mx, my)
{
	var ret;
	var sep;
	var num;
	
	ret = fnValidTarget(ele.id, mx, my);

	if (ret == null)
	{
		ele.className = "quiz_drag";
		xSlideTo(ele, ele.initX, ele.initY, 250);
	}
	else
	{
		sep = ret.id.indexOf("_");
		num = ret.id.substring(sep + 1);

		ret.innerHTML = ele.innerHTML;
		ret.className = "quiz_drop_correct";
		xDisableDrag(ele);
		xGetElementById("ans_" + num).style.visibility = "hidden";
	}
}

function fnValidTarget(id, mx, my)
{
	var elem;
	var ret = null;
	var sep = id.indexOf("_");
	var num = id.substring(sep + 1);
	
	for (var i = 0; i < 5; i++)
	{
		elem = xGetElementById("drop_" + ( i + 1));
		if (mx >= xPageX(elem) && mx <= (xPageX(elem) + xWidth(elem)))
		{
			if (my >= xPageY(elem) && my <= (xPageY(elem) + xHeight(elem)))
			{
				sep = elem.id.indexOf("_");
				if (elem.id.substring(sep + 1) == num)
				{
					ret = elem;
				}
			}
		}
	}
	return ret;
}

function fnResetQuestion(containerId)
{
	xGetElementById("container" + containerId).innerHTML = initHTML[(containerId - 1)];
	initQuiz(containerId);
}

function fnCheckAnswers()
{
	var selectedValue = "";
	var selectedText = "";
	var selectedText2 = "";
	var responseText = "";
	var responseText2 = "";
	var attemptCount = 0;

	// CHECK ALL QUESTIONS ANSWERED
	for (var i = 0; i < 4; i++)
	{
		if (xGetElementById("select_" + (i + 1)).selectedIndex > 0)
		{
			attemptCount++;
		}
	}
	if (attemptCount < 4)
	{
		window.alert("You must make a selection for all question parts.");
		return;
	}
	
	// CHECK ANSWERS
	for (var i = 0; i < 4; i ++)
	{
		selectedValue = xGetElementById("select_" + (i + 1))[xGetElementById("select_" + (i + 1)).selectedIndex].value;
		selectedText = xGetElementById("select_" + (i + 1))[xGetElementById("select_" + (i + 1)).selectedIndex].text;
		if (selectedValue != answers[i])
		{
			responseText = "<div class='quiz_answer_incorrect'>" + selectedText + "</div>";
			responseText += "<div class='quiz_answer'>(The correct answer is:<br/>\'" + xGetElementById("select_" + (i + 1)).options[parseInt(answers[i])].text + "\')</div>";
			xGetElementById("chk" + (i + 1)).setAttribute("src", "/res/coResourceImport/modules/en-images/ans_wrong.gif");
		}
		else
		{
			responseText = "<div class='quiz_answer_correct'>" + selectedText + "</div>";
			xGetElementById("chk" + (i + 1)).setAttribute("src", "/res/coResourceImport/modules/en-images/ans_right.gif");
		}
		xGetElementById("answer_" + (i + 1)).innerHTML = responseText;
	}
}
