var splitter='|';
var firstLetter = 'A';
var asciiStart = firstLetter.charCodeAt(0);
var yellow = '#FFEC19';//#'ffff66'


function openMaxPopup(url, name)
{
	width = screen.availWidth-100;
	//height = screen.availHeight - 100;
	
			leftoffset = (screen.availWidth-width)/2; 
		//topoffset = (screen.availHeight-height)/2; 
	
	//window.open(url, name, 'toolbar=NO,top=0,left=0,location=NO,status=YES,menubar=NO,resizable=YES,scrollbars=YES,outerHeight=' + screen.availHeight + ',outerWidth=' + screen.availWidth);//width=' + width + ',height=' + height);// + screen.availWidth-50 + ',height=' + screen.availHeight-50);

window.open(url, name, 'toolbar=NO,top=0,left=0,location=NO,status=YES,menubar=no,resizable=YES,scrollbars=YES,outerHeight=' + screen.availHeight + ',width=' + width +  ",left="+leftoffset);//width=' + width + ',height=' + height);// + screen.availWidth-50 + ',height=' + screen.availHeight-50);

}


/**
var objectID = 'Div_Timer';

var aDOM = 0, ieDOM = 0, nsDOM = 0; 

var stdDOM = document.getElementById;

var IE = document.all;
var NS6 = false;
var FF = false;

if(document.getElementById && navigator.appName == "Netscape")
  NS6 = true;

if(document.getElementById && navigator.appName == "FireFox")
  FF = true;



function xDOM(objectId, wS) {


	var obj;

	if(IE)
	{
		//alert('Microsoft');
		obj = document.all[objectID];//document.all[objectId];
	}
	if (NS6)
	{
		//alert('Netscape');
		obj = document.getElementById(objectId).style;
		//obj = document.layers[objectId];
	}

		
	return obj;

}


function moveObjTo(objectID,x,y) {

	var objs = xDOM(objectID,1); 
	objs.left = x; 
	
	if(NS6)
		objs.top = y;
	else
	{
		alert(document.getElementById('Div_Timer').style.top);//alert(document.getElementByID('Div_Timer').clientTop);
		document.getElementById('Div_Timer').style = new style;
		document.getElementById('Div_Timer').style.top = y;
		//document.getElementByID('Div_Timer').top=y;
	}
}

function pageWidth() {

	var width = 0;

	if(window.innerWidth != null)
		width = window.innerWidth;
	else
	{
		if(document.body != null)
			width = document.body.clientWidth;	
		else
			width = null;
	}

	return width;
}

function posLeft() {

return 
	typeof window.pageXOffset != 'undefined' ? 
		window.pageXOffset:
		document.documentElement.scrollLeft? 
			document.documentElement.scrollLeft:
			document.body.scrollLeft? 
				document.body.scrollLeft:0;
}

function posTop() {
var top = 0;
if(window.pageYOffset != 'undefined')
	top = window.pageYOffset;
else if(document.documentElement.scrollTop)
	top = document.documentElement.scrollTop;
else if(document.body.scrollTop)
	top = document.body.scrollTop;
else
	top = 0;
return top;
}

var xxx = 0; 
var yyy = 0;

function start() {

if(document.getElementById('Div_Timer') != null)
{
	var w = 350;//objWidth('Div_Timer');
	var h = 50;//objHeight('Div_Timer');
	xxx = Math.floor(pageWidth()-250);
	//if(navigator.appName.indexOf('Microsoft') != -1)
	//{
		//alert('Microsoft');
		//yyy=20 + posTop();
	//}
	//else
	//{
		//alert('Nonmirco');
		yyy=20;
	//}
	//yyy = 20;
	moveit();
	//setObjVis('Div_Timer','visible');
}
}


function moveit() {

var x = Math.floor(pageWidth()-250);//(posLeft()+xxx) + 'px';
var y = (posTop()+yyy) + 'px';
//alert('scroll x:' + x + 'scroll y:' + y);
moveObjTo('Div_Timer',x,y);

}

//function toggleDisplay(objectID) {var objs = xDOM(objectID,1); var vis = objs.display; objs.display = (vis == "block") ? 'none' : 'block';start(); return false;}


//var ag = navigator.userAgent.toLowerCase();var isG = (ag.indexOf('gecko') != -1);var isR=0;if (isG) {t = ag.split('rv:'); isR = parseFloat(t[1]);}if ( isR) setInterval('moveit()',50);
                                   
**/

//answer id:  the cell id of the hidden input which stores the answer for hte panel
//answer type:  the answer type of the question, eg. Letter..
//position: position of the cell in the array of answers
//maxPosition:  the maximum possible position of a cell in an array of answers
//rootCellID: the root cell  
function alter(answerID,answerType,position,maxPosition,rootCellID)
  {	
		var rootIDString=rootCellID.id;
		
		//array of cell id strings
		var cellID = new Array();
		var counter = 1;
		
		//Array of string answers 
		//For 'Letter' then A,B,C,D
		//For 'Number' then 1,2,3,4 etc.
		var answer = new Array();
			
		//take out the question number at the end
		var rootPrefix = rootIDString.substring(0,rootIDString.length-1);

		for (i = 1; i <= maxPosition; i++)
		{
			if (i == position)
			{
				if (answerType=='Letter')
				{
					answer[i]=String.fromCharCode(asciiStart+i-1);
				}
				else if (answerType=='Number')
				{
					answer[i]=String(i);
				}
			}
			else if (i != position)
				{
					cellID[counter]= rootPrefix + String(i);
					counter=counter+1;
				}
		}
				
		//if the value of this cell is the value of answer[position]
		//as determined above, then remove the background colour -- this 
		//is if you click on an answer, it removes it from being an answer
    	if (document.forms[0].elements[answerID].value == answer[position]) 
		{
			rootCellID.bgColor = '';
			document.forms[0].elements[answerID].value = '';
		}
		else  //setting the new answer
		{
			rootCellID.bgColor = yellow;
			document.forms[0].elements[answerID].value = answer[position];
		
			//make sure all the other cells are not coloured
			for (i = 1; i <= maxPosition-1; i++)
			{
				try
				{
				(document.getElementById(cellID[i]) != null)? document.getElementById(cellID[i]).bgColor = '' : null;
				}
				catch(errorObject)
				{
				alert('error = ' + errorObject.description);
				}
			}
		}			
 }
 
function alterwrong(answerID,answerType,position,maxPosition,rootCellID)
  {	
		var rootIDString=rootCellID.id;
		var cellID = new Array();
		var counter = 1;
		var answer = new Array();
			
		var rootPrefix = rootIDString.substring(0,rootIDString.length-1);

		for (i = 1; i <= maxPosition; i++)
		{
			if (i == position)
			{
				if (answerType='Letter')
				{
					answer[i]=String.fromCharCode(asciiStart+i-1);
				}
				else if (answerType='Number')
				{
					answer[i]=String(i);
				}
			}
			else if (i != position)
				{
					cellID[counter]= rootPrefix + String(i);
					counter=counter+1;
				}
		}
				
		  
    	if (document.forms[0].elements[answerID].value == answer[position]) 
		{
			rootCellID.bgColor = '';
			document.forms[0].elements[answerID].value = '';
		}
		else
		{
			rootCellID.bgColor = '#ff0000';
			document.forms[0].elements[answerID].value = answer[position];
		
			for (i = 1; i <= maxPosition-1; i++)
			{
				try
				{
				(document.getElementById(cellID[i]) != null)? document.getElementById(cellID[i]).bgColor = '' : null;
				}
				catch(errorObject)
				{
				alert('error = ' + errorObject.description);
				}
			}
		}			
 }
 

function confirmFinish(message)
{   var agree=confirm(message);
     if (agree)
	   return true ;
     else
	   return false ;
}

function confirmTimed(message)
{   
	if (timeLeft>0)
	{
		var agree=confirm(message);
		if (agree)
		return true ;
		else
		return false ;
	}
}

var tbarray = new Array();
var counterarray = new Array();

function textAddHidden(source, fieldID) {
	if (source.bgColor=='#ffffff')	{
        source.bgColor=yellow;
	    var jssplit = source.id.split(splitter);
		var lineid = jssplit[1];
		var positionid = jssplit[2];
		var loopcounter1=0;
		var loopcounter2=0;
		if (!(tbarray[lineid])) 
		{
			tbarray[lineid]= new Array();
			counterarray[lineid]=1
		}
		else 
		{
		     counterarray[lineid]+=1
		}
		tbarray[lineid][counterarray[lineid]]=positionid;
		var field = document.forms[0].elements[fieldID];
		if (parseInt(positionid) < parseInt(tbarray[lineid][1])) 
		{
			field.value = source.innerHTML + field.value;
			for (loopcounter2=counterarray[lineid];loopcounter2>=1;loopcounter2--)
			{
				tbarray[lineid][loopcounter2]=tbarray[lineid][loopcounter2-1];		
			}
			tbarray[lineid][1]=parseInt(positionid);
		}
		else if (parseInt(positionid) > parseInt(tbarray[lineid][1]) && parseInt(positionid) < parseInt(tbarray[lineid][counterarray[lineid]-1]))
		{
			for (loopcounter1=0;loopcounter1<counterarray[lineid];loopcounter1++)
			{
				if (parseInt(positionid) < parseInt(tbarray[lineid][loopcounter1])) 
				{
					field.value = field.value.substring(0,loopcounter1-1) + source.innerHTML + field.value.substring(loopcounter1-1);
					for (loopcounter2=counterarray[lineid];loopcounter2>=loopcounter1;loopcounter2--)
					{
						tbarray[lineid][loopcounter2]=tbarray[lineid][loopcounter2-1];		
					}
					tbarray[lineid][loopcounter1]=parseInt(positionid);
					loopcounter1=counterarray[lineid];
				}
			}
		}
		else
		{
			field.value += source.innerHTML;
		}
	}
}
function textAddAnagram(source, fieldID) {
	if (source.bgColor=='#ffffff')	{
        source.bgColor=yellow;
	    var jssplit = source.id.split(splitter);
		var lineid = jssplit[1];
		var positionid = jssplit[2];
		var loopcounter1=0;
		var loopcounter2=0;
		if (!(tbarray[lineid])) 
		{
			tbarray[lineid]= new Array();
			counterarray[lineid]=1
		}
		else 
		{
		     counterarray[lineid]+=1
		}
		tbarray[lineid][counterarray[lineid]]=positionid;
		var field = document.forms[0].elements[fieldID];
		field.value += source.innerHTML;
	}
}
function textErase(fieldID) {
	    var jssplit = fieldID.split(splitter);
		var lineid = jssplit[1];
		var linename = jssplit[0];
		var field = document.forms[0].elements[fieldID];
		if (field.value.length != 0) {
			field.value = field.value.substring(0, field.value.length - 1);
			var cellident=new String(linename + splitter + lineid + splitter + tbarray[lineid][counterarray[lineid]]); 
			document.getElementById(cellident).bgColor='#ffffff';
			tbarray[lineid].length=tbarray[lineid].length-1;
			counterarray[lineid]-=1;
		}
}

var periodselected= new Array();

function textAddNumerical(source, fieldID) {
	var jssplit = source.id.split(splitter);
	var lineid = jssplit[1];
	var positionid = jssplit[2];
	if (periodselected[lineid]==false || positionid!="Period")
	{
		if (!(tbarray[lineid])) 
		{
			periodselected[lineid]=false;

			tbarray[lineid]= new Array();
			counterarray[lineid]=1
		}
		else 
		{
			 counterarray[lineid]+=1
		}
		tbarray[lineid][counterarray[lineid]]=positionid;
		var field = document.forms[0].elements[fieldID];
		field.value += source.innerHTML;
		if (positionid=="Period") 
		{
			periodselected[lineid]=true;
		}
	}
}

function textEraseNumerical(fieldID) {
	var jssplit = fieldID.split(splitter);
	var lineid = jssplit[1];
	var linename = jssplit[0];
	var field = document.forms[0].elements[fieldID];
	if (field.value.length != 0) 
	{
		if (field.value.substring(field.value.length - 1,field.value.length)==".") 
		{
			periodselected[lineid]=false;
		}
		field.value = field.value.substring(0, field.value.length - 1);
		tbarray[lineid].length=tbarray[lineid].length-1;
		counterarray[lineid]-=1;
	}
}

var timerValue;
var timeLeft;
var time1 = new Date();
var oldTime;

function statusTimer(timeIsUpStr, secondsRemainStr, minutesRemainStr)
{
	var time1 = new Date();
	time1 = time1.getTime();
		
	timeLeft=(timerValue-(Math.floor((time1-oldTime)/1000)));

	
	if (timeLeft < 1) { 
		window.status = timeIsUpStr;
		//document.getElementById('Div_Timer').innerHTML = timeIsUpStr;
		alert(timeIsUpStr) 
		//document.formQuestions.elements['timedsubmit'].value = 'YES' 
		//document.getElementById('SectionPanel_submitID').focus();
		document.getElementById('SectionPanel_Btn_Submit').click();
	} 
	else { 
		curmin = Math.floor(timeLeft / 60) 
		cursec = timeLeft % 60 
		curtime = ''
		
		var oldMinRemStr = minutesRemainStr;
		var oldSecRemStr = secondsRemainStr;
		
		if (cursec < 10) cursec = '0' + cursec 
		if (curmin!=0) 
		{
			minutesRemainStr = minutesRemainStr.replace('**currentminutes**', curmin);
			minutesRemainStr = minutesRemainStr.replace('**currentseconds**', cursec);
			curtime = minutesRemainStr;
			//curtime = curmin + ':' + cursec + ' remaining' 
		}
		else 
		{
			secondsRemainStr = secondsRemainStr.replace('**currentseconds**', cursec);
			curtime = secondsRemainStr;
			//curtime = cursec + ' seconds remaining' 
		}
		
		window.status = curtime 
		//document.getElementById('Div_Timer').innerHTML = curtime;

		setTimeout("statusTimer('" + timeIsUpStr + "', '" + oldSecRemStr  + "', '" + oldMinRemStr + "')",1000); 
	} 
}

function showAll(divWaiting,divQuestions,timeIsUpStr, secondsRemainStr, minutesRemainStr) 
{
	if (document.getElementById)
	{
		oldTime = new Date();
		oldTime = oldTime.getTime();
		//if (timerValue>0) {timerValue=10}

		if (document.getElementById(divWaiting) != null)
		{
			document.getElementById(divWaiting).style.visibility = 'hidden';
			document.getElementById(divQuestions).style.visibility = 'visible';
		}
		document.body.style.cursor = 'default';
	}
	if (timerValue > 0)
	{
		setTimeout("statusTimer('" + timeIsUpStr + "', '" + secondsRemainStr  + "', '" + minutesRemainStr + "')",1000); 
	}
} 

function onLoad(divWaiting,divQuestions,timeIsUpStr, secondsRemainStr, minutesRemainStr)
{	
	showAll(divWaiting,divQuestions,timeIsUpStr, secondsRemainStr, minutesRemainStr);
	try 
	{	
		window.opener.document.forms.refresh1.submit()
	} 
	catch (e) 
	{
	}
}