<!-- frmdialog_state.js -->

<!-- *****  Internal data model from frmBrowseResults / frmBrowseCensus -->

var m_lngRegion_selIndex			= 0;
var m_lngProvince_selIndex 		= 0;
var m_lngLocal_Region_selIndex 	= 0;
var m_lngElec_Event_selIndex		= 0;
var m_lngParty_selIndex			= 0;
var m_lngYear_selIndex			= 0;
var m_lngRiding_selIndex			= 0;

var m_lngCensusMetricType_selIndex		= 0;
var m_lngCensusMetricGroup_selIndex 	= 0;
var m_lngCensusMetric_selIndex 		= 0;
var m_lngCensusYear_selIndex			= 0;
var m_strSortOrder					= "";
var m_strValueType					= "";

var m_lngParty1_selIndex			= 0;
var m_lngParty2_selIndex			= 0;

var m_strQryType				= "";
var m_lngQry_selIndex			= 0;

var m_strChartStyle				= "";
var m_lngQry					= 0;
var m_lngPane					= 0;


<!-- *****  React and Update Riding page from internal data model ***** -->

function initialize_riding_data_model(strChartStyle)
{
	////////////////////////////////////////////////////////////////////////////////////////////
	//
	//	Called at the end of the HTML Body tag in riding.php
	//
	////////////////////////////////////////////////////////////////////////////////////////////

	window.status = "initializing ...";

	m_strChartStyle = strChartStyle;

	update_form();

	window.status = "";

	return true;
}

<!-- *****  React and Update frmBrowseResults dialog from internal data model ***** -->

function initialize_data_model(strPage, lngReg, lngProv, lngLocReg, lngElec, lngParty, lngYear, strChartStyle, lngPane, lngQry)
{
	////////////////////////////////////////////////////////////////////////////////////////////
	//
	//	Called at the end of the HTML Body tag in regions_x.php, elections_x.php
	//
	////////////////////////////////////////////////////////////////////////////////////////////

	window.status = "initializing ...";
	// alert('BEFORE initializing \n' +
	// 	'm_lngRegion_selIndex is |' + m_lngRegion_selIndex + '| \n' +
	// 	'm_lngProvince_selIndex is |' + m_lngProvince_selIndex + '| \n' +
	// 	'm_lngLocal_Region_selIndex is |' + m_lngLocal_Region_selIndex + '| \n' +
	// 	'm_lngElec_Event_selIndex is |' + m_lngElec_Event_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '| \n' +
	// 	'm_lngQry_selIndex is |' + m_lngQry_selIndex + '| \n' +
	// 	'm_lngQry is |' + m_lngQry + '| \n' +
	// 	'm_lngPane is |' + m_lngPane + '|'
	// );

	if (strPage == 'reg') {
		m_strQryType = "Riding";
	} else if (strPage == 'elec') {
		m_strQryType = "Election";
	} else if (strPage == 'prty') {
		m_strQryType = "Party";
	} else if (strPage == 'fin') {
		m_strQryType = "Finance";
	}

	if (document.getElementById("selRegion") != undefined) {

		for (i = 0; i < document.getElementById("selRegion").length; i++) {
			if (document.getElementById("selRegion").options[i].value == lngReg) {
				m_lngRegion_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selProvince") != undefined) {

		for (i = 0; i < document.getElementById("selProvince").length; i++) {
			if (document.getElementById("selProvince").options[i].value == lngProv) {
				m_lngProvince_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selLocal_Region") != undefined) {

		for (i = 0; i < document.getElementById("selLocal_Region").length; i++) {
			if (document.getElementById("selLocal_Region").options[i].value == lngLocReg) {
				m_lngLocal_Region_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selElec_Event") != undefined) {

		for (i = 0; i < document.getElementById("selElec_Event").length; i++) {
			if (document.getElementById("selElec_Event").options[i].value == lngElec) {
				m_lngElec_Event_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selParty") != undefined) {

		for (i = 0; i < document.getElementById("selParty").length; i++) {
			if (document.getElementById("selParty").options[i].value == lngParty) {
				m_lngParty_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selYear") != undefined) {

		for (i = 0; i < document.getElementById("selYear").length; i++) {
			if (document.getElementById("selYear").options[i].value == lngYear) {
				m_lngYear_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selRegionQuery") != undefined) {

		for (i = 0; i < document.getElementById("selRegionQuery").length; i++) {
			if (document.getElementById("selRegionQuery").options[i].value == lngQry) {
				m_lngQry_selIndex = i;
				m_lngQry = lngQry;
				break;
			}
		}

	} else if (document.getElementById("selElectionQuery") != undefined){

		for (i = 0; i < document.getElementById("selElectionQuery").length; i++) {
			if (document.getElementById("selElectionQuery").options[i].value == lngQry) {
				m_lngQry_selIndex = i;
				m_lngQry = lngQry;
				break;
			}
		}
	} else if (document.getElementById("selPartyQuery") != undefined){

		for (i = 0; i < document.getElementById("selPartyQuery").length; i++) {
			if (document.getElementById("selPartyQuery").options[i].value == lngQry) {
				m_lngQry_selIndex = i;
				m_lngQry = lngQry;
				break;
			}
		}
	} else { m_lngQry = lngQry; }

	m_lngPane = lngPane;

	m_strChartStyle = strChartStyle;

	// alert('AFTER initializing \n' +
	// 	'm_lngRegion_selIndex is |' + m_lngRegion_selIndex + '| \n' +
	// 	'm_lngProvince_selIndex is |' + m_lngProvince_selIndex + '| \n' +
	// 	'm_lngLocal_Region_selIndex is |' + m_lngLocal_Region_selIndex + '| \n' +
	// 	'm_lngElec_Event_selIndex is |' + m_lngElec_Event_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '| \n' +
	// 	'm_lngQry_selIndex is |' + m_lngQry_selIndex + '| \n' +
	// 	'm_lngQry is |' + m_lngQry + '| \n' +
	// 	'm_lngPane is |' + m_lngPane + '|'
	// );

	update_form();

	window.status = "";

	return true;
}

<!-- *****  React and Update frmBrowseCensus dialog from internal data model ***** -->

function initialize_census_data_model(strPage, lngType, lngGroup, lngMetric, lngYear, strSortOrder, strValueType)
{
	////////////////////////////////////////////////////////////////////////////////////////////
	//
	//	Called at the end of the HTML Body tag in census_x.php
	//
	////////////////////////////////////////////////////////////////////////////////////////////

	window.status = "initializing ...";
	// alert('BEFORE initializing \n' +
	// 	'm_lngCensusMetricType_selIndex is |' + m_lngCensusMetricType_selIndex + '| \n' +
	// 	'm_lngCensusMetricGroup_selIndex is |' + m_lngCensusMetricGroup_selIndex + '| \n' +
	// 	'm_lngCensusMetric_selIndex is |' + m_lngCensusMetric_selIndex + '| \n' +
	// 	'm_lngCensusYear_selIndex is |' + m_lngCensusYear_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '|'
	// );

	if (strPage == 'cens') {
		m_strQryType = "Census";
	}


	if (document.getElementById("selCensusMetricType") != undefined) {

		for (i = 0; i < document.getElementById("selCensusMetricType").length; i++) {
			if (document.getElementById("selCensusMetricType").options[i].value == lngType) {
				m_lngCensusMetricType_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selCensusMetricGroup") != undefined) {

		for (i = 0; i < document.getElementById("selCensusMetricGroup").length; i++) {
			if (document.getElementById("selCensusMetricGroup").options[i].value == lngGroup) {
				m_lngCensusMetricGroup_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selCensusMetric") != undefined) {

		for (i = 0; i < document.getElementById("selCensusMetric").length; i++) {
			if (document.getElementById("selCensusMetric").options[i].value == lngMetric) {
				m_lngCensusMetric_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selCensusYear") != undefined) {

		for (i = 0; i < document.getElementById("selCensusYear").length; i++) {
			if (document.getElementById("selCensusYear").options[i].value == lngYear) {
				m_lngCensusYear_selIndex = i;
				break;
			}
		}
	}

	m_strSortOrder = strSortOrder;
	m_strValueType = strValueType;

	// alert('AFTER initializing \n' +
	// 	'm_lngCensusMetricType_selIndex is |' + m_lngCensusMetricType_selIndex + '| \n' +
	// 	'm_lngCensusMetricGroup_selIndex is |' + m_lngCensusMetricGroup_selIndex + '| \n' +
	// 	'm_lngCensusMetric_selIndex is |' + m_lngCensusMetric_selIndex + '| \n' +
	// 	'm_lngCensusYear_selIndex is |' + m_lngCensusYear_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '|'
	// );

	update_form();

	window.status = "";

	return true;
}

<!-- *****  React and Update frmPartyContest dialog from internal data model ***** -->

function initialize_party_contest_data_model(lngElec, lngParty1, lngParty2, lngReg, lngProv, lngLocReg)
{
	////////////////////////////////////////////////////////////////////////////////////////////
	//
	//	Called at the end of the HTML Body tag in test_misc.php
	//
	////////////////////////////////////////////////////////////////////////////////////////////

	window.status = "initializing ...";
	// alert('BEFORE initializing \n' +
	// 	'm_lngRegion_selIndex is |' + m_lngRegion_selIndex + '| \n' +
	// 	'm_lngProvince_selIndex is |' + m_lngProvince_selIndex + '| \n' +
	// 	'm_lngLocal_Region_selIndex is |' + m_lngLocal_Region_selIndex + '| \n' +
	// 	'm_lngElec_Event_selIndex is |' + m_lngElec_Event_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '| \n' +
	// 	'm_lngQry_selIndex is |' + m_lngQry_selIndex + '| \n' +
	// 	'm_lngQry is |' + m_lngQry + '| \n' +
	// 	'm_lngPane is |' + m_lngPane + '|'
	// );

	if (document.getElementById("selParty1") != undefined) {

		for (i = 0; i < document.getElementById("selParty1").length; i++) {
			if (document.getElementById("selParty1").options[i].value == lngParty1) {
				m_lngParty1_selIndex = i;
				break;
			}
		}
	}

	if (document.getElementById("selParty2") != undefined) {

		for (i = 0; i < document.getElementById("selParty2").length; i++) {
			if (document.getElementById("selParty2").options[i].value == lngParty2) {
				m_lngParty2_selIndex = i;
				break;
			}
		}
	}

	for (i = 0; i < document.getElementById("selElec_Event").length; i++) {
		if (document.getElementById("selElec_Event").options[i].value == lngElec) {
			m_lngElec_Event_selIndex = i;
			break;
		}
	}

	for (i = 0; i < document.getElementById("selRegion").length; i++) {
		if (document.getElementById("selRegion").options[i].value == lngReg) {
			m_lngRegion_selIndex = i;
			break;
		}
	}

	for (i = 0; i < document.getElementById("selProvince").length; i++) {
		if (document.getElementById("selProvince").options[i].value == lngProv) {
			m_lngProvince_selIndex = i;
			break;
		}
	}

	for (i = 0; i < document.getElementById("selLocal_Region").length; i++) {
		if (document.getElementById("selLocal_Region").options[i].value == lngLocReg) {
			m_lngLocal_Region_selIndex = i;
			break;
		}
	}

	// alert('AFTER initializing \n' +
	// 	'm_lngRegion_selIndex is |' + m_lngRegion_selIndex + '| \n' +
	// 	'm_lngProvince_selIndex is |' + m_lngProvince_selIndex + '| \n' +
	// 	'm_lngLocal_Region_selIndex is |' + m_lngLocal_Region_selIndex + '| \n' +
	// 	'm_lngElec_Event_selIndex is |' + m_lngElec_Event_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '| \n' +
	// 	'm_lngQry_selIndex is |' + m_lngQry_selIndex + '| \n' +
	// 	'm_lngQry is |' + m_lngQry + '| \n' +
	// 	'm_lngPane is |' + m_lngPane + '|'
	// );

	update_form();

	window.status = "";

	return true;
}

function update_data_model(elem)
{
	////////////////////////////////////////////////////////////////////////////////////////////
	//
	//	This function is called by event handlers of each of the Form''s elements.
	//
	//	Will be called after the ajax_clientside function "show_progress(elem)" in order to
	//	simulate client-server react-and-update behaviour, before the actual Ajax call.
	//
	////////////////////////////////////////////////////////////////////////////////////////////

	window.status = "updating ...";

	// alert('BEFORE updating \n' +
	// 	'm_lngRegion_selIndex is |' + m_lngRegion_selIndex + '| \n' +
	// 	'm_lngProvince_selIndex is |' + m_lngProvince_selIndex + '| \n' +
	// 	'm_lngLocal_Region_selIndex is |' + m_lngLocal_Region_selIndex + '| \n' +
	// 	'm_lngElec_Event_selIndex is |' + m_lngElec_Event_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '| \n' +
	// 	'm_lngQry_selIndex is |' + m_lngQry_selIndex + '| \n' +
	// 	'm_lngQry is |' + m_lngQry + '| \n' +
	// 	'm_lngPane is |' + m_lngPane + '|'
	// );

	if (elem.id == "radChartStyleExpert") {
		m_strChartStyle = 'expert';

	} else if (elem.id == "radChartStyleDefault") {
		m_strChartStyle = 'default';

	} else if (elem.id == "selLocal_Region") {
		m_lngLocal_Region_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "selProvince") {
		m_lngProvince_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

		// if (m_lngProvince_selIndex > 0) { m_lngLocal_Region_selIndex = 0; }
		m_lngLocal_Region_selIndex = 0;

	} else if (elem.id == "selRegion") {
		m_lngRegion_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

		// if (m_lngRegion_selIndex > 0) { m_lngProvince_selIndex = 0;	m_lngLocal_Region_selIndex = 0; }
		m_lngProvince_selIndex = 0;
		m_lngLocal_Region_selIndex = 0;

	} else if (elem.id == "selElec_Event") {
		m_lngElec_Event_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "selCensusMetric") {
		m_lngCensusMetric_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "selCensusMetricGroup") {
		m_lngCensusMetricGroup_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

		// if (m_lngProvince_selIndex > 0) { m_lngCensusMetric_selIndex = 0; }
		m_lngCensusMetric_selIndex = 0;

	} else if (elem.id == "selCensusMetricType") {
		m_lngCensusMetricType_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

		// if (m_lngCensusMetricType_selIndex > 0) { m_lngCensusMetricGroup_selIndex = 0;	m_lngCensusMetric_selIndex = 0; }
		m_lngCensusMetricGroup_selIndex = 0;
		m_lngCensusMetric_selIndex = 0;

	} else if (elem.id == "selCensusYear") {
		m_lngCensusYear_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "radSortOrderDesc") {
		m_strSortOrder = 'desc';

	} else if (elem.id == "radSortOrderAsc") {
		m_strSortOrder = 'asc';

	} else if (elem.id == "radValueTypePct") {
		m_strValueType = 'pct';

	} else if (elem.id == "radValueTypeRaw") {
		m_strValueType = 'raw';

	} else if (elem.id == "selParty") {
		m_lngParty_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "selParty1") {
		m_lngParty1_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "selParty2") {
		m_lngParty2_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "selYear") {
		m_lngYear_selIndex = (elem.selectedIndex != 0 ? elem.selectedIndex : 0);

	} else if (elem.id == "selRegionQuery") {
 		m_strQryType = "Riding";
		m_lngQry_selIndex = elem.selectedIndex;
		m_lngQry = (elem.options[m_lngQry_selIndex].value);

	} else if (elem.id == "selElectionQuery") {
 		m_strQryType = "Election";
		m_lngQry_selIndex = elem.selectedIndex;
		m_lngQry = (elem.options[m_lngQry_selIndex].value);

	} else if (elem.id == "selPartyQuery") {
 		m_strQryType = "Party";
		m_lngQry_selIndex = elem.selectedIndex;
		m_lngQry = (elem.options[m_lngQry_selIndex].value);

	} else if (elem.id == "reg_pane0" || elem.id == "reg_pane1" || elem.id == "reg_pane2" ||
				elem.id == "elec_pane0" || elem.id == "elec_pane1" || elem.id == "elec_pane2" ||
				elem.id == "prty_pane0" || elem.id == "prty_pane1" || elem.id == "prty_pane2" ||
				elem.id == "fin_pane0" || elem.id == "fin_pane1" || elem.id == "fin_pane2") {
		m_lngPane = elem.id.charAt(elem.id.length - 1);
		if (m_lngPane != 2) m_lngQry = 0;
	}

	// alert('AFTER updating \n' +
	// 	'm_lngRegion_selIndex is |' + m_lngRegion_selIndex + '| \n' +
	// 	'm_lngProvince_selIndex is |' + m_lngProvince_selIndex + '| \n' +
	// 	'm_lngLocal_Region_selIndex is |' + m_lngLocal_Region_selIndex + '| \n' +
	// 	'm_lngElec_Event_selIndex is |' + m_lngElec_Event_selIndex + '| \n' +
	// 	'm_strQryType is |' + m_strQryType + '| \n' +
	// 	'm_lngQry_selIndex is |' + m_lngQry_selIndex + '| \n' +
	// 	'm_lngQry is |' + m_lngQry + '| \n' +
	// 	'm_lngPane is |' + m_lngPane + '|'
	// );

	update_form();

	window.status = "";

	return true;
}

function update_form()
{
	////////////////////////////////////////////////////////////////////////////////////////////
	//
	//	This function is called by the function update_data_model(elem).
	//
	//	Will be called after the ajax_clientside function "show_progress(elem)" in order to
	//	simulate client-server react-and-update behaviour, before the actual Ajax call.
	//
	////////////////////////////////////////////////////////////////////////////////////////////

	if (document.getElementById("radChartStyleExpert") != undefined)
		document.getElementById("radChartStyleExpert").checked 		= (m_strChartStyle == 'expert');

 	if (document.getElementById("radChartStyleDefault") != undefined)
		document.getElementById("radChartStyleDefault").checked 		= (m_strChartStyle == 'default');

	if (document.getElementById("selRegion") != undefined)
		document.getElementById("selRegion").selectedIndex 			= m_lngRegion_selIndex;

	if (document.getElementById("selProvince") != undefined)
		document.getElementById("selProvince").selectedIndex 			= m_lngProvince_selIndex;

	if (document.getElementById("selLocal_Region") != undefined)
		document.getElementById("selLocal_Region").selectedIndex 		= m_lngLocal_Region_selIndex;

	if (document.getElementById("selElec_Event") != undefined)
		document.getElementById("selElec_Event").selectedIndex 		= m_lngElec_Event_selIndex;

	if (document.getElementById("selParty") != undefined)
		document.getElementById("selParty").selectedIndex 			= m_lngParty_selIndex;

	if (document.getElementById("selParty1") != undefined)
		document.getElementById("selParty1").selectedIndex 			= m_lngParty1_selIndex;

	if (document.getElementById("selParty2") != undefined)
		document.getElementById("selParty2").selectedIndex 			= m_lngParty2_selIndex;

	if (document.getElementById("selYear") != undefined)
		document.getElementById("selYear").selectedIndex 				= m_lngYear_selIndex;


	if (document.getElementById("selCensusMetricType") != undefined)
		document.getElementById("selCensusMetricType").selectedIndex 	= m_lngCensusMetricType_selIndex;

	if (document.getElementById("selCensusMetricGroup") != undefined)
		document.getElementById("selCensusMetricGroup").selectedIndex 	= m_lngCensusMetricGroup_selIndex;

	if (document.getElementById("selCensusMetric") != undefined)
		document.getElementById("selCensusMetric").selectedIndex 		= m_lngCensusMetric_selIndex;

	if (document.getElementById("selCensusYear") != undefined)
		document.getElementById("selCensusYear").selectedIndex 		= m_lngCensusYear_selIndex;

	if (document.getElementById("radSortOrderDesc") != undefined)
		document.getElementById("radSortOrderDesc").checked 			= (m_strSortOrder == 'desc');

 	if (document.getElementById("radSortOrderAsc") != undefined)
		document.getElementById("radSortOrderAsc").checked 			= (m_strSortOrder == 'asc');

	if (document.getElementById("radValueTypePct") != undefined)
		document.getElementById("radValueTypePct").checked 			= (m_strValueType == 'pct');

 	if (document.getElementById("radValueTypeRaw") != undefined)
		document.getElementById("radValueTypeRaw").checked 			= (m_strValueType == 'raw');


	if (document.getElementById("selPartyQuery") != undefined) {
		document.getElementById("selPartyQuery").selectedIndex 		= m_lngQry_selIndex;

	} else if (document.getElementById("selRegionQuery") != undefined) {
		document.getElementById("selRegionQuery").selectedIndex 		= m_lngQry_selIndex;

	} else if (document.getElementById("selElectionQuery") != undefined) {
		document.getElementById("selElectionQuery").selectedIndex 		= m_lngQry_selIndex;
	}


	if (document.getElementById("txtPane") != undefined)
		document.getElementById("txtPane").value	 				= m_lngPane;

	if (document.getElementById("txtQry") != undefined)
		document.getElementById("txtQry").value		 				= m_lngQry;

	if (document.getElementById("txtChartStyle") != undefined)
		document.getElementById("txtChartStyle").value		 		= m_strChartStyle;

	return true;
}
