AttachEvent(window, "load", init);

var questions = new Array();
var items = new Array();
var positions = new Array();
var currentitem;
var mode = getQueryVariable("mode");

function question(obj)
{
	this.obj = obj;
	this.foldups = new Array();
}

function init()
{
	//var tags = (document.all) ? document.all : document.getElementsByTagName("*");
	assign(tags);
	
	// hides loader 
	var loader = document.getElementById("loading");
	if (loader)
	{
		loader.style.display = "none";
		var tag = document.getElementById("itemrelease");
		if ( (tag != undefined) && (tag != null) )
		{
			tag.style.display = "block";
		}	
		
	}

	// display first item
	if (items.length > 0)
	{
	
		currentitem = 0;
		if ((mode != undefined) && (mode == "loadtest") )
		{
			var futItem = -1;
			var tags1 = document.getElementById("itemList");
			if (tags1 != null) {
				var tags = tags1.getElementsByTagName("*");
				for (i=0;i<tags.length; i++)
				{
					if (tags[i].className == "futureItem")
					{
						//review(tags[i].id);
						futItem = tags[i].id;
						break;
					}
				}
			}
			
			if (futItem == -1)
			{
				//items[currentitem].style.display = "block";
				done();
				var tag = document.getElementById(currentitem+1);
				if (tag != null) tag.className = "currentItem";
			}
			else
			{
				shownext("none");
				currentitem = futItem -1;
			}
			
		}
		
		if ((mode != undefined) && ( (mode == "saveallresponses") || (mode == "crresponses") || (mode == "missedquestions") || (mode == "printtest") ) )
		{
			for (k=0; k<items.length; k++)
			{
				items[k].style.display = "block";
			}
			
		}
		else //if ((mode != undefined) && (mode != "loadtest") )
		{		
			var tag = document.getElementById(currentitem+1);
			setNavigation(currentitem+1, false)
			if (tag != null) {
				tag.className = "currentItem";
			}
			//tag.disabled = false;
		
			var tags = getElementsByClassName("currentItem");
			for (i=0;i<tags.length; i++)
			{
				id = currentitem+1;
				if (tags[i].id == id.toString())
				{
					tags[i].disabled = false;
					var tags1 = tags[i].getElementsByTagName("*");
					for (j=0;j<tags1.length; j++)
					{
						tags1[j].disabled = false;
					}
					
				}
			}
		}	
		items[currentitem].style.display = "block";
		//var tag = document.getElementById(currentitem+1);
		//tag.className = "currentItem"; 
		//setNavigation(currentitem+1,false)		

	}
}


function scoreURL(id)
{
	document.forms[0].action = "PTReport.aspx?mode=scorertraining&item_id=" + cr[id];
	document.forms[0].submit();		

}

function decide(status)
{

	var tag;
	
	tag = document.getElementById("itemList");
	tag.style.display = status;

	tag = document.getElementById("location");
	tag.style.display = status;
	
	tag = document.getElementById("welcomeFull");
	tag.style.display = status;
	
	tag = document.getElementById("navButtons");
	tag.style.display = status;

	
}



function assign(tags) 
{
	
	// This works but seems slower
	// Optimize again later
	
	var tag = getElementsByClassName("item");
	for (i=tag.length-1;i>=0;i--)
	{
		var q = new question(tag[i]);
		questions.push(q);
		items.push(tag[i]);
	}
	
	var tag = getElementsByClassName("futureItem");
	for (i=0;i<tag.length;i++)
	{
		var tags1 = tag[i].getElementsByTagName("*");
		for (j=0;j<tags1.length; j++)
		{
			tags1[j].disabled = true;
		}

	}	
	
	var tag = getElementsByClassName("passagehide");
	for (i=0;i<tag.length;i++)
	{
		charTrunc(tag[i], 2, "...");
		//questions[questions.length-1].foldups.push(tag[i]);
	}	

	
	var tag = document.getElementById("buttonNext");
	if ( (tag != undefined) && (tag != null) )
	{
		if (mode != "loadtest")
		{
			tag.style.display = "none";
		}
	}	
	
	
	var tag = document.getElementById("welcomeFull");
	if ( (tag != undefined) && (tag != null) )
	{
		if (mode != "scoretest")
		{
			tag.style.display = "none";
		}
	}	

	// print specific item 
	var tag = getElementsByClassName("printAll");
	for (i=0;i<tag.length;i++)
	{
		var tags1 = tag[i].getElementsByTagName("*");
		for (j=0;j<tags1.length; j++)
		{
			tags1[j].onclick = function() { window.print(); }
		}

	}	
}

function printTest()
{
	window.print();
}

function done()
{

	var tag;
	
	tag = document.getElementById("welcomeFull");
	tag.style.display ="block";
	
	tag = document.getElementById("navButtons");
	tag.style.display = "none";

	tag = document.getElementById("endTest");
	tag.style.display = "none";

	changeitemmode(currentitem,"none");

}




function changeitemmode(id,mode)
{
	var tags;
	tags = items[id].getElementsByTagName("*");
	for (var i=0; i<tags.length;i++) 
	{
		if (  (tags[i].className == "maincontent"))
		{
			tags[i].style.display = mode;
			break;
		}
	}
	
	return;

}

function noScore()
{
	return;
}


function noSave()
{
	return;
}

function noReview(id)
{
	return;
}


function setButtonSave(val, status)
{
	var tags, tag;
	tags = getElementsByClassName("notActive");
	if (tags != null)
	{
		for (i=0; i<tags.length;i++)
		{

			tags[i].id = val;
			tags[i].disabled = status;
			if (!status){
				tags[i].href = "javascript: save();";
			}
			else
			{
				tags[i].href = "javascript:noSave();"
			}

		}
	}

}

function setNavigation(id, status)
{
	var tags = getElementsByClassName("futureItem");
	if (tags != null)
	{
		for (i=0;i<tags.length; i++)
		{
			if (tags[i].id == id.toString())
			{
				var tags1 = tags[i].getElementsByTagName("*");
				for (j=0;j<tags1.length; j++)
				{
					
					tags1[j].href = "javascript: review("+id.toString() + ")";
					tags1[j].disabled = status;
				}
				
			}
		}
	}
}


function onlinetest() 
{
	if (items.length>0) 
	{
		
		currentitem=0;
		setNavigation(currentitem+1, false);
		decide("none");
		changeitemmode(0,"block")
		items[0].style.display = "block";
		mark("currentItem");
	
	}
	else
	{
		alert("There are no items.");
	}
}


function hover(evt)
{
	evt = (evt) ? evt : ((window.event) ? event : null);
	if (this.className.indexOf("hide") > -1) 
	{
		if (evt.type == "mouseover") 
		{
			this.style.borderWidth = "1px";
			this.style.borderStyle = "dashed";
			this.style.borderColor = "#6BBEEF";
			this.style.backgroundColor = "#F7F7F7";
		}
		else if (evt.type == "mouseout")
		{
			this.style.border = "";
			this.style.borderWidth = "";
			this.style.borderStyle = "";
			this.style.borderColor = "";
			this.style.backgroundColor = "";
		}
	}
}

function printtest(evt) 
{
	//could use a hyperlink instead 
	// this is the original
	//changeitemmode(0,"block")
	if (document.forms[0].action.indexOf("mode=decide") > 0){
		act = document.forms[0].action.replace("mode=decide","mode=printtest");
		document.forms[0].action = act;	
	}
	document.forms[0].submit();
	return true;
	
}


function foldup(obj) //
{
	if ( (obj != undefined) && (obj.id != undefined) )
	{
		obj.style.borderWidth = "";
		obj.style.borderStyle = "";
		obj.style.borderColor = "";
		obj.style.backgroundColor = "";
		if (obj.className.indexOf("hide") > -1) 
		{
			obj.className = obj.className.replace("hide","");
		}
		else
		{
			obj.className += "hide";
		}
	}
	else
	{
	
		this.style.borderWidth = "";
		this.style.borderStyle = "";
		this.style.borderColor = "";
		this.style.backgroundColor = "";
		if (this.className.indexOf("hide") > -1) 
		{
			this.className = this.className.replace("hide","");
		}
		else
		{
			this.className += "hide";
		}
	}
}


function shownext(status)
{
	var tags="";
	var input = "";
	var status1 = "none";
	
	if (status=="none")
	{
		status1 = "block";
	}
	
	//for (j=0;j<items.length; j++)
	//{
		
		tags = document.getElementById("navButtons");
		tags.style.display = "block";
		
		tags = document.getElementById("buttonNext");

		if (tags != undefined)
		{
			if (tags != null )
			{	
				tags.style.display = status;
				var input = tags.getElementsByTagName("*");
				for (var i=0; i<input.length; i++)
				{
					input[i].style.display = status;
				}
			}
		}
		
		tags = "";
		input = "";
		tags = document.getElementById("buttonSave");
		if (tags != undefined)
		{
			if (tags != null )
			{	
				tags.style.display = status1;
				var input = tags.getElementsByTagName("*");
				for (var i=0; i<input.length; i++)
				{
					input[i].style.display = status1;
				}
			}
		}
		
		tags = "";
		input = "";
		tags = document.getElementById("buttonSkip");
		if (tags != undefined)
		{
			if (tags != null )
			{	
				tags.style.display = status1;
				var input = tags.getElementsByTagName("*");
				for (var i=0; i<input.length; i++)
				{
					input[i].style.display = status1;
				}
			}
		}
		
		tag = document.getElementById("endTest");
		if (tag != null) tag.style.display = "block";

	//}

}

function save() // formally save(id);
{
	//this is not correct
	//Should call fn with the actual QId
	var QId = currentitem+1;
	
	var attempted = false;
	var QType = "";
	var QITSKey;
	var selection = items[currentitem].getElementsByTagName("input"); //this.frmQuestions;
	for (var i=0; i<selection.length; i++) {
		if (selection[i].id.toString().indexOf("QtnType") == 0)
		{
			QId = selection[i].value;
			QType = selection[i].getAttribute("qtntype"); //qtntype;
			QITSKey = selection[i].getAttribute("ITSKey");
			break;
		}
	}
	selection = items[currentitem].getElementsByTagName("*")
	var myType;
	var correctAns = -1;
	var selectedAns = "";

	for (var i=0; i<selection.length; i++) {
        myType = selection[i].type;
        if (myType == 'radio'){
			QType = "MC";
			if (selection[i].name == "Q_MC_"+QId) {
				if (trim(selection[i].getAttribute("qanswer")) != -1)
				{
					correctAns = selection[i].getAttribute("qanswer");
				}
				
				if (selection[i].checked != selection[i].defaultChecked) {
					//correctAns = selection[i].qanswer;
					selectedAns =  selection[i].value.toString().substr(0,selection[i].value.toString().indexOf("__"));
					attempted = true;
				}
			}
        }else if (myType == 'textarea'){
			QType = "CR";

			if (trim(selection[i].value).length != 0)
			{
				if (trim(selection[i].value).length > 4000 )
				{
					alert("Response cannot be more than 4000 characters.");
					return;
				}
				else
				{
					selectedAns = trim(selection[i].value);
					attempted = true;
				}
			}
        }
	
	}
	
	
	if (attempted) 
	{
		if ( (QType == "MC") && (correctAns == -1))
		{
			alert("This question has no answer");
			shownext("block");
		}
		else
		{
			saveresponse(QITSKey, QType, selectedAns,correctAns);
			answerSkippedQuestion(currentitem)
			showrationale(QId,QType,selectedAns,correctAns);
			shownext("block");
		}
	
	}
	else
	{
		alert ("You must attempt this question");
	}
	
	
	
}

function saveresponse(id,type,response,mckey)
{
	//var query = "saveresponses.aspx?mode=save&ItemId="+ id + "&ItemType=" + type + "&ItemResponse=" + response + "&ItemMCKey=" + mckey;
	//alert(query);
	//alert(parent.window.frames['saveframe'].location);
	//parent.window.frames['saveframe'].location = query;
	
	var query = "saveresponses.aspx?mode=save";
	// savefrmae should be an id for IE and a name for standard browsers
	parent.window.frames['saveframe'].document.forms[0].action = query;
	parent.window.frames['saveframe'].document.forms[0].ItemId.value = id;
	parent.window.frames['saveframe'].document.forms[0].ItemType.value = type;
	parent.window.frames['saveframe'].document.forms[0].ItemResponse.value = response;
	parent.window.frames['saveframe'].document.forms[0].ItemMCKey.value = mckey;
	parent.window.frames['saveframe'].document.forms[0].submit();


}

function showrationale(QId,QType, selectedAns, correctAns)
{


	var j,k;
	var tag="";
	var QAns="", CAns="", realAns="";
	var elt;
	var tags;
	var length;
	 
	//for (j=0;j<items.length; j++)
	//{
	//tags = items[j].getElementsByTagName("*");
	j = currentitem;
	tag="";
	if (QType == "MC")
	{
		tags = items[j].getElementsByTagName("input"); // change this to same ID for CR and MC Qtn?
		length = tags.length;
		for (i=0;i<length;i++)
		{
			if (tags[i] != null )
			{
			    //myType = tags[i].type;
				if (tags[i].getAttribute('type') == 'radio'){
					tag = tags[i].id.substring(0,6)+QId+"__";
					if(tags[i].id.toString().indexOf(tag) == 0)
					{
						tags[i].disabled = true;
					}
				}
			}
		}


		tag= "";
		tag = "hide_"+QId+ "_" + QId; //selectedAns;
		var ansTag = "ans_"+QId+ "_" + correctAns; //realAns;	
		var selTag = "img_"+QId+ "_" + selectedAns;	
		var tags = items[j].getElementsByTagName("*");
		var length = tags.length;
		var oldSubstr, strName,elm, elts, src;
		
		//alert(selTag + " :correctAns-->" + correctAns + ":ansTag-->" + ansTag + ":selectedAns-->" + selectedAns);
		
		for (i=0;i<length;i++)
		{

			if ( (tags[i] != null) && (tags[i].id != null) && (tags[i].id == tag)  )
			{
					
					
				var elem = tags[i].getElementsByTagName("*");
				for (j=0; j<elem.length; j++)
				{
					if (elem[j].className == "rightwrong") 
					{
						var elts = elem[j].getElementsByTagName("*");
						for (k=0; k<elts.length; k++)
						{
							img_id = "img_"+QId+ "_" +  correctAns;
							
							var src;
							if (document.images[img_id] != null)
							{ 
								src  = document.images[img_id].src;
							}
							var oldSubstr;
							if (src != null)
							{
								oldSubstr = src.substring(src.lastIndexOf('/')+1,src.lastIndexOf('.')) +'.';
							}
							
							if (elts[k].id == img_id){
								if (oldSubstr != null)
								{
									strName = src.replace(oldSubstr,"arrow.");
									document.images[img_id].src = strName;
									tags[i].className = "option";
									tags[i].onclick = foldup;
								}
							}
							else if (elts[k].id == selTag )
							{
								if (oldSubstr != null)
								{
									strName = src.replace(oldSubstr,"x.");
									document.images[elts[k].id].src = strName;
									tags[i].className = "optionhide";
									tags[i].onclick = foldup;
								}
							}
							else if (elts[k].id.indexOf("img_"+QId) == 0 )
							{
								tags[i].className = "optionhide";
								tags[i].onclick = foldup;
							}
						}
						
					}
				}
					
			}
		}
		
		
		
		
	}
	else if(QType == "CR")
	{
		tags = items[j].getElementsByTagName("textarea"); // change this to same ID for CR and MC Qtn?
		length = tags.length;
		for (i=0;i<length;i++)
		{
			
			if (tags[i] != null )
			{
	
				//else if (tags[i].getAttribute('type') == 'textarea')
				//{
				tags[i].disabled = true;
				tag = tags[i].id.substring(0,6)+QId+"__";
				if(tags[i].id.toString().indexOf(tag) == 0)
				{
					
					elt=null;
					var tag1 = "hide_"+QId+ "_" + QId;
					if (tag1 != null) elt =  document.getElementById(tag1);
					
					if (elt != null){
						elt.className = "optionhide";
						elt.onclick = foldup;
					}
					
					elt=null;
					var expected = "hide_CRExpected_"+QId;
					if (expected != null) elt =  document.getElementById(expected);
					if (elt != null){
						elt.style.display = "block";
					}
						
					
				}
				//}
			}
		}
	}


}


function moveNext(color) 
{
	var isAnswered;
	if (currentitem < items.length-1) 
	{
		items[currentitem].style.display = "none";
		mark(color);
		
		currentitem++;
		setNavigation(currentitem+1, false);
		items[currentitem].style.display = "block";
		mark("currentItem");

		changeitemmode(currentitem,"block")
		items[currentitem].style.display = "block";
		mark("currentItem");
		
		isAnswered = answered(currentitem);
		
		if (isAnswered)
		{
			shownext("block");
		}
		else
		{
			shownext("none");
			setButtonSave('notActive',true);
		}

	}
	else
	{
		done();
	}
	
}

function savecrquestions(evt) 
{
	var success = 0;
	var  i;
	var items = "?";
	
	this.form.action = this.form.action + items + "mode=savecrquestions";

}


function reset()
{
	resetQtns();	
	loadSkippedQuestion(currentitem);
	moveNext("skippedItem");
}


function resetQtns()
{
	var QId = currentitem+1;
	var QType = "";
	var myType;
	var selection;
	
	selection= items[currentitem].getElementsByTagName("input"); //this.frmQuestions;
	
	for (var i=0; i<selection.length; i++) {
		if (selection[i].id.toString().indexOf("QtnType") == 0)
		{
			QId = selection[i].value;
			QType = selection[i].getAttribute("qtntype"); //qtntype;
			break;
		}
	}
	
	selection = items[currentitem].getElementsByTagName("*")

	for (var i=0; i<selection.length; i++) {
		myType = selection[i].type;
		if ( (myType != null) && (myType == 'radio')) {
			QType = "MC";
			if (selection[i].name == "Q_MC_"+QId)
			{
				selection[i].checked = selection[i].defaultChecked;
			}
		}else if ( (myType != null) && (myType == 'textarea')){
			QType = "CR";
			if (trim(selection[i].value).length != 0)
			{
				selection[i].value = ""
			}
		}
	
	}
}


function score()
{
	var attempted = false;

	selection = document.forms[0]; //document.frmQuestions;

	var correct=0, total=0;
	var myType;
	for (var i=0; i<selection.elements.length; i++) {
        myType = selection.elements[i].getAttribute("type");
        if ((myType != null) && ((myType == 'radio') || (myType == 'textarea')) ){
			selection.elements[i].disabled = false;
        }
	}

//	document.frmQuestions.action = "questions.aspx?mode=score";
//	document.frmQuestions.submit();		

	document.forms[0].action = "questions.aspx?mode=score";
	document.forms[0].submit();		

}



function mark(color)
{
	
	var tag;
	tag = document.getElementById((currentitem+1).toString());
	if (tag != null) tag.className = color;
	
}

function review(elem)
{
	
	if (elem<1) return; // for 'No Skipped Items" selection
	var val = elem-1;
	var isAnswered = false;
	var tag, nextStyle="block";

	//decide("block");
	
	tag = document.getElementById("welcomeFull");
	if (tag != null) tag.style.display = "none";

	changeitemmode(currentitem, "block")
	setNavigation(elem,false);

	if (elem != val)
	{
		items[currentitem].style.display = "none";
		
		
		isAnswered = answered(currentitem);

		tag2 = "";
		tag2 = document.getElementById("buttonNext");
		if (tag2 != undefined)
		{
			if (tag2 != null )
			{	
				nextStyle = tag2.style.display;
				//alert(nextStyle);
			}
		}


		if ((isAnswered) && (nextStyle == "block"))
		{
			mark('pastItem'); //white
		}
		else
		{
			loadSkippedQuestion(currentitem)
			resetQtns();	
			mark('skippedItem'); //white
		}
		
		
		//mark('pastItem'); //white
		currentitem=val;
		items[currentitem].style.display = "block";
		mark('currentItem');
		
		isAnswered = answered(currentitem);



		
		if (isAnswered)
		{
			shownext("block");
		}
		else
		{
			shownext("none");
			setButtonSave('notActive', true);
		}
	
	}
	
}


function answered(QId)
{
	var tags;
	var isAnswered = false;
	tags = items[QId].getElementsByTagName("input");
	for (i=0; i<tags.length;i++)
	{
		if(tags[i].getAttribute('type')=='radio'){
			if (tags[i].checked)
			{
				isAnswered = true;
				break;
			}
		}
		//tags[i].className = elem[i].className.replace(/hide/g, "");
	}
	
	if (!isAnswered) //possibly not MC item
	{
		tags = items[QId].getElementsByTagName("textarea");
		for (i=0; i<tags.length;i++)
		{
				if (trim(tags[i].value).length != 0)
				{
					isAnswered = true;
					break;
				}
		}
	}
	
	return isAnswered;
}

		

function saveas() 
{
	//document.execCommand('SaveAs', false, 'anotherfilename.mht');
	//document.location.href="savehtml.aspx";
	var link = items[currentitem].getElementsByTagName("a");
	
	a = document.body.createTextRange()
	a.moveToElementText(link[3])
	a.execCommand("Copy")
}


function expandQtn(QId) 
{
	var elem = questions[currentitem].foldups;
	for (i=elem.length-1;i>=0;i--)
	{
		//alert(elem[i].className);
		elem[i].className = elem[i].className.replace(/hide/g, "");
	}
}



function charTrunc(passage, num, endstring)
{
	var parent = passage;
	passage = passage.childNodes[2];
	var html = passage.innerHTML.toLowerCase();
	passage.oldHTML = passage.innerHTML;
	var idx = 0;
	
	/*
	TODO:
	Get all paragraphs into a collection, for each one that has text
	insert into the current passage (ignore images to).
	*/	
	
	/* count how many paragraphs that have text */
	p = passage.getElementsByTagName("p");
	var passcnt = 0;
	var textreader = (document.getElementsByTagName("body")[0].innerText);
	for (j=0;j<p.length;j++)
	{
		//str = p[j].innerText.replace(/\s/g,"");
		str = (textreader) ? p[j].innerText.replace(/\s/g,"") : p[j].textContent.replace(/\s/g,"");
		if (str.length>0)
		{
			passcnt++;
			if (passcnt==num)
			{
				num = j+1;
				break;
			}
		}
	}
	
	/* gets innerHTML string index of last paragraph with text */
	while (num-- > 0)
	{
		idx = html.indexOf("</p>", idx) + 4;
	}
	
	/* if index found then replace the current innerHTML with the shortened version */
	if (idx > 0)
	{
		passage.innerHTML = passage.innerHTML.substring(0,idx - 4) + "</p><p>&nbsp</p><p>(Click to read...)</p>";
	}
	else
	{
		passage.innerHTML = "";
	}

	/* This sets onclick for adding/removing the paragraph */
	parent.onclick = function() 
	{
		tmp = this.childNodes[2].innerHTML;
		this.childNodes[2].innerHTML = this.childNodes[2].oldHTML;
		this.childNodes[2].oldHTML = tmp;

		this.style.borderWidth = "";
		this.style.borderStyle = "";
		this.style.borderColor = "";
		this.style.backgroundColor = "";
		if (this.className.indexOf("hide") > -1) 
		{
			this.className = this.className.replace("hide","");
		}
		else 
		{
			this.className += "hide";
		}
	}
	
}


function noPostBack(sNewFormAction)
{
	//alert(document.forms[0].name);
    if(document.layers) //The browser is Netscape 4
    {
        document.layers['overwrap'].document.forms[0].__VIEWSTATE.name = 
                                                           'NOVIEWSTATE';
        document.layers['overwrap'].document.forms[0].action = 
                                                     sNewFormAction;
    }
    else //It is some other browser that understands the DOM
    {
        document.forms[0].action = sNewFormAction;
        document.forms[0].__VIEWSTATE.name = 'NOVIEWSTATE';
    }
    document.forms[0].submit();
}


// debug util for releasing an items height-width
function image(img)
{	
	img.onclick = function()
	{
		if (this._width>0 && this._height>0)
		{
			this.setAttribute("width", this._width);
			this.setAttribute("height", this._height);
			this._width = 0;
			this._height = 0;
		}
		else
		{
			this._width = this.getAttribute("width");
			this._height =  this.getAttribute("height");
			
			this.setAttribute("width", this._width/72*96);
			this.setAttribute("height", this._height/72*96);
			//this.removeAttribute("width");
			//this.removeAttribute("height");
				
			//alert("Width: " + this.getAttribute("width") + " Height: " + this.getAttribute("height"));
		}
	}
}


function RTrim(sString) 
{
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
	sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function LTrim(sString) 
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	return sString;
}

function trim(sString) 
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function itempositions(elem)
{
	var input = elem.getElementsByTagName("h3");
	if (input) 
	{
		for (j=input.length-1;j>=0;j--)
		{
			var str = input[j].firstChild.nodeValue;
		}
	}
}


function loadSkippedQuestion(newOption)
{

	var selSkippedQtn, s;
	selSkippedQtn = document.forms[0].skippedQtns;
	if (selSkippedQtn) {
		if (selSkippedQtn.disabled == true) selSkippedQtn.disabled = false;
		
		
		if (newOption >= 0)
		{
			var exists = 0;
			for (s=0; s<selSkippedQtn.length; s++)
			{
				if (selSkippedQtn.options[s].value == newOption+1)
				{
					exists = 1;
					break;
				}
			}
			if (exists==0)
				selSkippedQtn.options[selSkippedQtn.length] = new Option(newOption+1,newOption+1);
			
		}
		selSkippedQtn.selectedIndex = 0;
	}

}


function onSkipQuestion()
{

	var oOption = document.createElement("OPTION");
	oOption.text="Ferrari";
	oOption.value="4";
	oSelect.add(oOption);


}

function answerSkippedQuestion(optionId)
{
	var selSkippedQtn;
	selSkippedQtn = document.forms[0].skippedQtns;
	if (optionId >= 0)
	{
		for (i = selSkippedQtn.length; i > 0; i--)
		{
			if (selSkippedQtn.options[i-1].value == optionId+1)
			{
				selSkippedQtn.options[i-1] = null;
				break;
			}
		}
	}
		
	selSkippedQtn = document.forms[0].skippedQtns;
	if (selSkippedQtn.length == 1) selSkippedQtn.disabled = true;
	
}

function KeyPressed()
{
	var btn = document.getElementById("btnLogin");
	if (btn != null)
		btn.disabled = false;

}

function showHelp()
{
  var w = document.getElementById('helpDialog');
  if (w) w.style.display = 'block';
  
}
function closeHelp() {
  var w = document.getElementById('helpDialog');
  if (w) w.style.display = 'none';
}
