function doShowQuestions ( qs_id , qscount, qsets ){	//Hide the disclaimer page - always	var disclaimerpage = $('disclaimerpage');	disclaimerpage.hide();	//Loop through the question-sets.  If the ID matches the ID to display then set display class and unset hide class		for ( qsetno=0; qsetno<=qscount; qsetno++)	{		var elementID = qsets[qsetno];		var theElement = $(elementID);		if ( qsets[qsetno] == qs_id ) { 			curr_content_page = qsetno;			if ( !(theElement==null) ){ theElement.show()};			var theLinkElement = $(elementID + "_link");			if ( !(theLinkElement==null) ){ theLinkElement.show() };		} else {			if ( !(theElement==null) ){ theElement.hide() };		}	}		setValidationFields ( qs_id );		$(legend_text).hide();	$(date_instructions).hide();	//$(no_date_instructions).show();	$(action_assess).hide();	$(action_previous).hide();	$(action_next).hide();	$(action_calculate).hide();		if ( single_use != '' && ( curr_content_page == single_use ) )	{		if ( qs_id != 'qs_Results' && qs_id != 'qs_Welcome' )		{ 			$(action_reset).show();			$(action_calculate).show(); 			$(legend_text).show()		}	}	else	{		if ( curr_content_page == 0 )		{			$('action_assess').show();			$('action_reset').hide();		}				if ( curr_content_page > 0 )		{			$(action_next).show();			$(action_reset).show();			$(legend_text).show()			$(action_previous).show();		}				if ( curr_content_page > 1 ) { $(action_previous).show(); }				if ( curr_content_page == qscount - 1 )		{			$(action_next).hide();			$(action_calculate).show();		}		if ( curr_content_page == qscount )		{			$(action_next).hide();				$(action_previous).hide();			$(legend_text).hide();		}	}		for ( date_qsetno=0; date_qsetno<=qset_date_fields.length; date_qsetno++)		{		if ( qs_id == qset_date_fields[date_qsetno] )		{			//$(no_date_instructions).hide();			$(date_instructions).show();		}	}}function doAddDateRange( field_id ){	var from_field_name = field_id + '_AddFrom';	var to_field_name = field_id + '_AddTo';	var from_date = $F( from_field_name );	var to_date = $F( to_field_name );	var url = 'agValidateDateRange?OpenAgent' ;	var pars = 'start=' + from_date + '&field=' + field_id + '&end=' + to_date + '&current=' + $F( field_id )+ '&rndm=' + Math.random();//	prompt ( 'url' , url + '&' + pars );	var date_validation_ajax = new Ajax.Request( 			url, 			{				method: 'get', 				parameters: pars, 				onComplete: dateValidationHandler			}	)}function dateValidationHandler( validation_results ){	var validationXML = validation_results.responseXML;	var validation_info = validationXML.getElementsByTagName("ValidationResults" );	var validation_node = validation_info[0].firstChild;	var sFailReasons = '';	do {		if (( validation_node.nodeType!=3)&&(validation_node.nodeType!=8))			{			if (window.ActiveXObject) { var nodevalue = validation_node.text ;	} else { var nodevalue = validation_node.textContent;}//			alert ( 'XML value ' + validation_node.nodeName + ' = ' + nodevalue );			switch ( validation_node.nodeName )			{				case "FieldID" : var field_id = nodevalue; break;				case "ValidationStatus" : var validation_status = nodevalue; break;				case "RangeStartDate" : var return_from_date = nodevalue; break;				case "RangeEndDate" : var return_to_date = nodevalue ; break;				case "Fail" : sFailReasons = sFailReasons + '\n  * ' + nodevalue; break;			}		}		validation_node = validation_node.nextSibling;	} while ( validation_node != null );//	alert ( 'Completed XML Parsing' );	if ( validation_status != 'Valid' ) {		alert ( 'Invalid Dates.  The selected Start and End dates are invalid for the following reasons:' + sFailReasons );	} else {		var date_range = return_from_date + '-' + return_to_date;		if ( $F( field_id ) == '' ){			$( field_id ).value = date_range;		} else {			$( field_id ).value = $F( field_id ) + ":" + date_range;		}		doRebuildDisplayDateRange ( field_id );		$( field_id + '_AddFrom' ).value = '';		$( field_id + '_AddTo' ).value = '';	}}function doRebuildDisplayDateRange ( field_id ){	disp_html = '';	if ( $F( field_id ).indexOf ( ':' ) > 0  ){		var date_ranges = new Array();		var date_ranges = $F( field_id ).split( ':' );		for ( date_range_count=0; date_range_count<date_ranges.length; date_range_count++)	{			var disp_html = disp_html + date_ranges[date_range_count] + "<img src='trashcan.JPG' onclick='doRemoveDateRange( \"" + field_id + "\", \""+ date_range_count + "\" );' /><br>";		}	} else if ( $F( field_id ) != ''){		disp_html = $F( field_id ) + "<img src='trashcan.JPG' onclick='doRemoveDateRange( \"" + field_id + "\", \"0\" );' />";	}	$( field_id + '_disp').innerHTML = disp_html;	return;}function doRemoveDateRange ( field_id , range_no ) {	var new_value = '';	if ( $F( field_id ).indexOf ( ':' ) > 0  ){		var date_ranges = new Array();		var date_ranges = $F( field_id ).split( ':' );		for ( date_range_count=0; date_range_count<date_ranges.length; date_range_count++)	{			if ( date_range_count != range_no ){				if ( new_value == '' ) {					new_value = date_ranges[date_range_count];				} else {					new_value = new_value + ':' + date_ranges[date_range_count];				}			}		}	}	$( field_id ).value = new_value;	doRebuildDisplayDateRange ( field_id );}function doShowDisclaimerPage(){	var disclaimerpage = $('disclaimerpage');	var welcome = $('qs_Welcome');	var prevbutton = $('action_previous');	var startbutton = $('action_assess');	var idResetButton = $('action_reset');	var nextbutton = $('action_next');	var navlinks = $('navigator_links');		var navHTML = "";		welcome.hide();	startbutton.hide();	disclaimerpage.show();	nextbutton.show();	prevbutton.show();	idResetButton.show();	$(action_print).hide();			//navHTML = navlinks.innerHTML;//	navHTML = navHTML + "<li>Disclaimer</li>";	//navlinks.innerHTML = navHTML;}function doNextPage(){	var disclaimerpage = $('disclaimerpage');	var prevbutton = $('action_previous');	$(action_print).hide();	if (disclaimerpage.style.display != "none")	{		disclaimerpage.hide();		doStartQuestions();		prevbutton.show();		return;	}	if ( curr_content_page == single_use )	{		doTestRules ( qsets[curr_content_page] , qsets[0] );	}	else	{		doTestRules ( qsets[curr_content_page] , qsets[curr_content_page+1] )	}}function doPrevPage(){	//Get stuff required	var disclaimerpage = $('disclaimerpage');	var welcome = $('qs_Welcome');	var prevbutton = $('action_previous');	var startbutton = $('action_assess');	var idResetButton = $('action_reset');	var nextbutton = $('action_next');	var firstqpage = $(qsets[1]);	var completeqs = $('legend_text');				//If we are on the Disclaimer page	if (disclaimerpage.style.display != "none")	{		//This runs most of what is in the doReset fucntion		for ( qsetno=0; qsetno<=qscount; qsetno++)		{			var elementID = qsets[qsetno];			var theLinkElement = $(elementID + "_link");			if ( !(theLinkElement==null) ){ theLinkElement.hide() };		}			document.forms[0].reset();		for ( date_range_no=0; date_range_no<=date_ranges.length; date_range_no++)		{			var elementID = date_ranges[date_range_no];			var theDisplayElement = $(elementID + "_disp");			if ( !(theDisplayElement==null) ){ theDisplayElement.innerHTML = '&nbsp;' };		}				single_use = '';		doShowHideQuestions();		doShowQuestions ( 'qs_Welcome', qscount , qsets );		var url = 'agUpdateUsage?OpenAgent' ;		var pars = 'unid=' + update_id + '&type=reset&rndm=' + Math.random();		var update_usage = new Ajax.Request(url, {method: 'get', parameters: pars});		disclaimerpage.hide();		startbutton.show();		$(action_print).show();		return;	}		if (curr_content_page == 1)	{		curr_content_page = curr_content_page - 1;		disclaimerpage.show();		prevbutton.show();		firstqpage.hide();		idResetButton.show();		completeqs.hide();		return;	}	if ( single_use != '' )	{//		doTestRules ( qsets[curr_content_page] , qsets[0] );		doShowQuestions ( qsets[0] , qscount , qsets  )	}	else	{//		doTestRules ( qsets[curr_content_page] , qsets[curr_content_page - 1] )		doShowQuestions ( qsets[curr_content_page - 1] , qscount , qsets  )	}		idResetButton.show();	prevbutton.show();}function updateResultLinks (){	var newlinks = '<ul>\n';	for ( result_link=0; result_link<=this.result_link_count; result_link++){		if ( ( single_use != '' && result_link + 1 == single_use ) || single_use == '' ){			if ( this.result_links[result_link] != '' ) {				var newlinks = newlinks + '<li>The ' + this.result_links[result_link] + ' ';				if ( qset_statuses[result_link] != 'Eligible' ) {					var newlinks = newlinks + '<span class="not_met" ><strong>HAS NOT</strong> been met</span></li>\n';				} else {					var newlinks = newlinks + '<span class="met"><strong>HAS</strong> been met</span></li>\n';				}			}		}	}	var newlinks = newlinks + '</ul>';	var result_links = $( qs_Results_links );	if ( !( result_links == null ) ){		result_links.innerHTML = newlinks;	};}function doCalculateEligibility(next_qset){	var rule_action = doTestRules ( qsets[curr_content_page] , next_qset );	var url = 'agUpdateUsage?OpenAgent' ;	var pars = 'unid=' + update_id + '&type=calc&rndm=' + Math.random();	var update_usage = new Ajax.Request(url, {method: 'get', parameters: pars})		$(action_print).show();}function doReset(){	var startbutton = $('action_assess');	var disclaimerpage = $('disclaimerpage');	// Prompt user to confirm	var answer = confirm ("Restart the Citizenship Online Calculation Tool?");	if (!answer) return;	for ( qsetno=0; qsetno<=qscount; qsetno++)	{		var elementID = qsets[qsetno];		var theLinkElement = $(elementID + "_link");		if ( !(theLinkElement==null) ){ theLinkElement.hide() };	}		document.forms[0].reset();	for ( date_range_no=0; date_range_no<=date_ranges.length; date_range_no++)	{		var elementID = date_ranges[date_range_no];		var theDisplayElement = $(elementID + "_disp");		if ( !(theDisplayElement==null) ){ theDisplayElement.innerHTML = '&nbsp;' };	}			single_use = '';	doShowHideQuestions();	doShowQuestions ( 'qs_Welcome', qscount , qsets );	var url = 'agUpdateUsage?OpenAgent' ;	var pars = 'unid=' + update_id + '&type=reset&rndm=' + Math.random();	var update_usage = new Ajax.Request(url, {method: 'get', parameters: pars});		//Get screen back to initial setup	startbutton.show();	disclaimerpage.hide();		$(action_print).show();}function doButtonAction ( curr_rb ){		doShowHideQuestions();	}function doShowAccessibilityInfo( caller_name ){	if (showAccessibility)	{		showAccessibility = false;		Element.hide ( 'accessibilityinfo');		return	}		showAccessibility = true;	leftpos = 150;;	toppos = 150;	Element.setStyle('accessibilityinfo', {position: 'absolute', top: toppos+"px", left: leftpos+"px"} );	Element.show ( 'accessibilityinfo' );}function doShowLinksInfo(caller_name){	if (showLinks)	{		showLinks = false;		Element.hide('linksinfo');	}	else	{		showLinks = true;		leftpos = 150;		toppos =150;		Element.setStyle('linksinfo', {position: 'absolute', top: toppos+"px", left: leftpos+"px"});		Element.show('linksinfo');	}}function doRecordQuestionSetAnswers(qset){	var url = 'agUpdateUsage?OpenAgent' ;	var pars = 'unid=' + update_id + '&type=ques&qset=' + qset;	var q_no = 1;	var tmp_question = $( qset + "~" + q_no );	while( tmp_question )	{			if ( $F( tmp_question.id ) ) { var q_value = $F ( tmp_question.id ) } else { var q_value = $RF ( tmp_question.id ) }			if ( q_value ) { pars=pars + '&' + q_no + '=' + q_value };			q_no++;			tmp_question = $( qset + "~" + q_no )	}	pars = pars + '&rndm=' + Math.random();	var update_usage = new Ajax.Request( 			url, 			{				method: 'get', 				parameters: pars			}	)}function doAjaxAgentTest ( qset , next_qset , url , parameters , action ){	var url = url + '?OpenAgent';	var parlist = new Array();	var par_list = parameters.split('||' );	var pars = 'unid=' + update_id	for ( par_count=0; par_count<=par_list.length; par_count++)	{		if ( $RF ( par_list[par_count] + '_yes' ) ){			par_val = $RF ( par_list[par_count] + '_yes' );		} else if ( $RF ( par_list[par_count] + '_no' ) ){			par_val = $RF ( par_list[par_count] + '_no' );		} else if ( $( par_list[par_count] ) ) {			par_val = $F( par_list[par_count] ) ;		} else{			par_val = 'null';		};		pars = pars + '&' + par_list[par_count] + '=' + par_val;	}	pars = pars + '&qset=' + qset + '&next_qset=' + next_qset + '&action=' + action + '&rndm=' + Math.random();//Comment this back in to see full parameter list//	prompt ( 'Initiating AJAX call ' , url + '&'  + pars );	var custom_rule_test = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: AjaxAgentTestResponseHandler})}function AjaxAgentTestResponseHandler ( AgentTestResults ){	var responseXML = AgentTestResults.responseXML;	var resultsInfo = responseXML.getElementsByTagName("TestResults" );	var resultsNode = resultsInfo[0].firstChild;		do	{		if (( resultsNode.nodeType!=3)&&(resultsNode.nodeType!=8))		{			if (window.ActiveXObject) { var nodevalue = resultsNode.text ;	} else { var nodevalue = resultsNode.textContent;}			if ( resultsNode.nodeName == 'action' ) {				var action = nodevalue;				//bdo			} else if ( resultsNode.nodeName == 'qset' ) {				var qset = nodevalue;			}else if ( resultsNode.nodeName == 'next_qset' ) {				var next_qset = nodevalue;			}		}		resultsNode = resultsNode.nextSibling;	} while ( resultsNode != null );	if ( action != '' ) { doRulesAction ( qset , next_qset , action ) }}function doRulesAction ( question_set , next_question_set , action ) {	if (action == 'Redirect')	{		$( qsets[curr_content_page] ).hide();				var result_links = $( qs_Results_links );				if ( !( result_links == null ) )		{			newlinks = $F( question_set + '_Results' );			result_links.innerHTML = newlinks;			$( 'qs_Results' ).show();			$(action_next).hide();			$(action_previous).hide();			$(legend_text).hide();						//Hide the Print link  temporarily - Colm Finn June 5 2008			//Resurrect the link when bug with printed result for "Already a citizen" is fixed.			//alert("Need to hide Print link now...");		}				var url = 'agUpdateUsage?OpenAgent' ;		var pars = 'unid=' + update_id + '&type=calc&redirect=' + question_set + '&rndm=' + Math.random();		var update_usage = new Ajax.Request(url, {method: 'get', parameters: pars})	}	else	{		for ( result_link=0; result_link<=this.result_link_count; result_link++)		{			var tmp_link = this.result_categories[result_link];			if (  tmp_link == question_set )			{				if ( action == 'Set>not' )				{					this.qset_statuses [result_link] = 'Not Eligible';				}				else if ( action == 'Eligible' )				{					this.qset_statuses [result_link] = 'Eligible';				}			}		}		updateResultLinks();		doShowQuestions ( next_question_set , qscount, qsets )	}}function doSetFromDate ( from_date_id , set_value ){	$( from_date_id ).value = set_value;}function doPrint ( docid  ){	doRecordQuestionSetAnswers ();	if ( single_use != '' )	{		var print_url = 'PrintForm?OpenForm&docid=' + docid + '&single=' + qsets[ single_use ] + '&statuses=' +  qset_statuses;	}	else	{		var print_url = 'PrintForm?OpenForm&docid=' + docid + '&single=&statuses=' +  qset_statuses;		}		var arg_list = "menubar=1,location=1,toolbar=1,scrollbars=1,resizable=1,width=740,height=550"	window.open ( print_url , "PrintWindow" , arg_list );}