// mlscheckregionareachange.js
// see MLSSearchHeader.js and MLSListingInput.js
// for declaration of variables 
// currentRegion, currentArea, regionInit, areaInit, subdivisionInit
// Version 1.03 FD 03/11/02 
// ** Fixed a bug that caused the subdivisionField to be initialized with the deleted version
// ** (did not update objElements["Subdivisions_PB"].value with what is in the subFill field)
// 
// MR 8/17/02

// checks if the Region has changed when Areas had been put in already.
function checkRegionChange(calledFrom, regionFillIn, areaFillIn)
{
	// Get reference to this page's Elements collection
	var objElements = document.InputForm.elements;

	var regionFill = objElements[regionFillIn];
	var areaFill = objElements[areaFillIn];
	var regionText = objElements["RegionText"].value;
	var areaText = objElements["AreaText"].value;
	var areaText2 = objElements["AreaText2"].value;
	var areasPB = objElements["Areas_PB"].value; // for public, so getParam works
	var regionsPB = objElements["Regions_PB"].value;
	var doCheck = true;

	var crcCurrentRegion = currentRegion;
	var crcCurrentArea = currentArea;
	var crcRegionInit = regionInit;
	var crcSubdivisionInit = subdivisionInit;


	if(regionFillIn != 'Region_Fill_In')
	{
		switch(regionFillIn)
		{
			case 'Region_Fill_In_1':
			{
				crcCurrentRegion = currentRegion1;
				crcRegionInit = regionInit1;
				break;
			}
			case 'Region_Fill_In_2':
			{
				crcCurrentRegion = currentRegion2;
				crcRegionInit = regionInit2;
				break;
			}
			case 'Region_Fill_In_3':
			{
				crcCurrentRegion = currentRegion3;
				crcRegionInit = regionInit3;
				break;
			}
			case 'Region_Fill_In_4':
			{
				crcCurrentRegion = currentRegion4;
				crcRegionInit = regionInit4;
				break;
			}
			default:
			{
				crcCurrentRegion = "";
				crcRegionInit = "";
				break;
			}
		}
	}

	if(areaFillIn != 'Area_Fill_In')
	{
		switch(areaFillIn)
		{
			case 'Area_Fill_In_1':
			{
				crcCurrentArea = currentArea1;
				break;
			}
			case 'Area_Fill_In_2':
			{
				crcCurrentArea = currentArea2;
				break;
			}
			case 'Area_Fill_In_3':
			{
				crcCurrentArea = currentArea3;
				break;
			}
			case 'Area_Fill_In_4':
			{
				crcCurrentArea = currentArea4;
				break;
			}
			default:
			{
				crcCurrentArea = "";
				break;
			}
		}
	}

	// Debugging Code
	var dbg = false;
	//var dbg = true;

	// Debugging Code
	if(mgSessionNumber == 151749769 || objElements["IsPublic"].value == 'Y')
	{
		//dbg = true;
	}

	// Debugging Code
	if(dbg) crcDebugInfo('Begin', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
						regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined", currentRegion,
						currentRegion1, currentRegion2, currentRegion3, currentRegion4,
						crcCurrentRegion, regionInit, crcRegionInit, objElements["Areas_PB"].value,
						areaFill ? areaFill.value : "undefined", currentArea, currentArea1, currentArea2, currentArea3,
						currentArea4, crcCurrentArea, subdivisionInit, crcSubdivisionInit);

	if(!objElements[regionFillIn]) doCheck = false;
	if(calledFrom == 'OpenHouses') doCheck = true;

	if(doCheck)
	{
		// Debugging Code
		if(dbg) crcDebugInfo('doCheck', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
							regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined", currentRegion, currentRegion1, currentRegion2, currentRegion3,
							currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
							objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea, currentArea1,
							currentArea2, currentArea3, currentArea4, crcCurrentArea, subdivisionInit,
							crcSubdivisionInit);

		// Initialize Region & Area fields
		//if(crcCurrentRegion == crcRegionInit && (crcRegionInit == regionText || crcRegionInit == ''))
		if(crcRegionInit == '' && regionFill.value == '' && crcCurrentRegion == crcRegionInit)
		{
			// Debugging Code
			if(dbg) crcDebugInfo('1', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
								currentRegion, currentRegion1, currentRegion2, currentRegion3,
								currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4,
								crcCurrentArea, subdivisionInit, crcSubdivisionInit);

			if(objElements["IsPublic"].value == 'Y')
			{
				regionFill.value = regionText
			}

			crcCurrentRegion = regionFill.value;
			updateCurrentRegion(regionFillIn, crcCurrentRegion);

			if(regionFillIn == "Region_Fill_In")
			{
				objElements["Regions_PB"].value = crcCurrentRegion;
			}

			if(objElements["IsPublic"].value == 'Y')
			{
				areaFill.value = areaText2;
			}

			crcCurrentArea = areaFill.value;
			updateCurrentArea(areaFillIn, crcCurrentArea);
			if(areaFillIn == "Area_Fill_In")
			{
				objElements["Areas_PB"].value = crcCurrentArea;
			}

			return true;

		}
		// if only the region changes without changes to area field
		// and no area has been selected
		else if(crcCurrentRegion != regionFill.value && crcCurrentArea == areaFill.value &&
				(crcCurrentArea == areaText || crcCurrentArea == areaText2 || crcCurrentArea == ''))
		{
			// Debugging Code
			if(dbg) crcDebugInfo('2', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
								currentRegion, currentRegion1, currentRegion2, currentRegion3,
								currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4,
								crcCurrentArea, subdivisionInit, crcSubdivisionInit);

			crcCurrentRegion = regionFill.value;
			updateCurrentRegion(regionFillIn, crcCurrentRegion);
			if(regionFillIn == "Region_Fill_In")
			{
				objElements["Regions_PB"].value = crcCurrentRegion;
			}

			if(objElements["IsPublic"].value == 'Y')
			{
				if(crcCurrentRegion != '' && crcCurrentRegion == regionText ||
					crcCurrentRegion.indexOf("-") != -1 || crcCurrentRegion.indexOf(",") != -1)
				{
					areaFill.value = areaText2;
				}
				else
				{
					areaFill.value = areaText;
				}
			}

			crcCurrentArea = areaFill.value;
			updateCurrentArea(areaFillIn, crcCurrentArea);

			if(areaFillIn == "Area_Fill_In")
			{
				objElements["Areas_PB"].value = crcCurrentArea;
			}

			return true;
		}
		// region change and a user value is in area
		else if(regionFill.value != crcCurrentRegion && crcCurrentArea != areaText &&
				crcCurrentArea != areaText2 && crcCurrentArea != "")
		{
			// Debugging Code
			if(dbg) crcDebugInfo('3', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
								currentRegion, currentRegion1, currentRegion2, currentRegion3,
								currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4,
								crcCurrentArea, subdivisionInit, crcSubdivisionInit);

			var areaL = objElements["AreaLabel"] ? objElements["AreaLabel"].value : mgAreaLabel ? mgAreaLabel : 'AREA';

			if(confirm(' The '+objElements["RegionLabel"].value +' selection has changed. Discard current '+areaL+' and continue?'))
			{
				crcCurrentRegion = regionFill.value;
				updateCurrentRegion(regionFillIn, crcCurrentRegion);
				if(regionFillIn == "Region_Fill_In")
				{
					objElements["Regions_PB"].value = crcCurrentRegion;
				}

				// Debugging Code
				if(dbg) crcDebugInfo('3a', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
									regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
									currentRegion, currentRegion1, currentRegion2, currentRegion3,
									currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
									objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
									currentArea1, currentArea2, currentArea3, currentArea4,
									crcCurrentArea, subdivisionInit, crcSubdivisionInit);

				if(objElements["IsPublic"].value == 'Y')
				{
					if(crcCurrentRegion != '' && crcCurrentRegion == regionText ||
						crcCurrentRegion.indexOf("-") != -1 || crcCurrentRegion.indexOf(",") != -1)
					{
						areaFill.value = areaText2;
					}
					else
					{
						areaFill.value = areaText;
					}
				}
				else
				{
					areaFill.value = "";
				}

				crcCurrentArea = areaFill.value;
				updateCurrentArea(areaFillIn, crcCurrentArea);

				if(areaFillIn == "Area_Fill_In")
				{
					objElements["Areas_PB"].value = crcCurrentArea;
				}

				// Debugging Code
				if(dbg) crcDebugInfo('3b', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
									regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
									currentRegion, currentRegion1, currentRegion2, currentRegion3,
									currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
									objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
									currentArea1, currentArea2, currentArea3, currentArea4,
									crcCurrentArea, subdivisionInit, crcSubdivisionInit);

				//reset the subdivision
				if(objElements["Subdivision_Fill_In"] && objElements["SubdivisionType"] &&
					(objElements["SubdivisionType"].value == 'E' ||
					 objElements["SubdivisionType"].value == 'V' ||
					 objElements["SubdivisionType"].value == 'N'))
				{
					objElements["Subdivision_Fill_In"].value = crcSubdivisionInit == (objElements["SubdivisionText"].value) ? crcSubdivisionInit : '';
				}

				return true;
			}
			// cancel, reset to old values
			else
			{
				// Debugging Code
				if(dbg) crcDebugInfo('4', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
									regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
									currentRegion, currentRegion1, currentRegion2, currentRegion3,
									currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
									objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
									currentArea1, currentArea2, currentArea3, currentArea4,
									crcCurrentArea, subdivisionInit, crcSubdivisionInit);

				regionFill.value = crcCurrentRegion;
				if(regionFillIn == "Region_Fill_In")
				{
					objElements["Regions_PB"].value = crcCurrentRegion;
				}

				areaFill.value = crcCurrentArea;
				if(areaFillIn == "Area_Fill_In")
				{
					objElements["Areas_PB"].value = crcCurrentArea;
				}

				// to enable area field again if all regions are unchecked
				RegionFillIn_onBlur(regionFillIn, areaFillIn);

				return false;
			}
		}
		// tabbed out of field, update region and area
		else
		{
			// Debugging Code
			if(dbg) crcDebugInfo('5', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
								currentRegion, currentRegion1, currentRegion2, currentRegion3,
								currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4,
								crcCurrentArea, subdivisionInit, crcSubdivisionInit);

			crcCurrentRegion = regionFill.value;
			updateCurrentRegion(regionFillIn, crcCurrentRegion);
			regionsPB = crcCurrentRegion;

			// Debugging Code
			if(dbg) crcDebugInfo('5a', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
								currentRegion, currentRegion1, currentRegion2, currentRegion3,
								currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4,
								crcCurrentArea, subdivisionInit, crcSubdivisionInit);

			if(crcCurrentRegion == crcRegionInit)
			{
				if(objElements["IsPublic"].value == 'Y')
				{
					if(crcCurrentRegion != '' && crcCurrentRegion == regionText ||
						crcCurrentRegion.indexOf("-") != -1 || crcCurrentRegion.indexOf(",") != -1)
					{
						areaFill.value = areaText2;
					}
					else
					{
						if(areaFill.value == areaText2)
						{
							areaFill.value = areaText;
						}
					}
				}

				crcCurrentArea = areaFill.value;
				updateCurrentArea(areaFillIn, crcCurrentArea);
				if(areaFillIn == "Area_Fill_In")
				{
					objElements["Areas_PB"].value = crcCurrentArea;
				}
			}

			return true;
		}
	}
	else
	{
		// Debugging Code
		if(dbg) crcDebugInfo('noCheck', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
							regionText, objElements["Regions_PB"].value, regionFill ? regionFill.value : "undefined",
							currentRegion, currentRegion1, currentRegion2, currentRegion3,
							currentRegion4, crcCurrentRegion, regionInit, crcRegionInit,
							objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
							currentArea1, currentArea2, currentArea3, currentArea4,
							crcCurrentArea, subdivisionInit, crcSubdivisionInit);

			return true;
	}
}

// checks if the Area has changed when Subdivisions had been put in already.
function checkAreaChange(calledFrom, regionFillIn, areaFillIn)
{
	// Get reference to this page's Elements collection
	var objElements = document.InputForm.elements;

	var areaFill = objElements[areaFillIn];
	var subFill = objElements["Subdivision_Fill_In"];
	var areaText = objElements["AreaText"].value;
	var areaText2 = objElements["AreaText2"].value;
	var subdivisionText = "";
	var areasPB = objElements["Areas_PB"].value; // for public, so getParam works
	var regionsPB = objElements["Regions_PB"].value;
	var doCheck = true;

	var cacCurrentArea = currentArea;
	var cacAreaInit = areaInit;
	var cacSubdivisionInit = subdivisionInit;

	if(areaFillIn != 'Area_Fill_In')
	{
		switch(areaFillIn)
		{
			case 'Area_Fill_In_1':
			{
				cacCurrentArea = currentArea1;
				cacAreaInit = areaInit1;
				break;
			}
			case 'Area_Fill_In_2':
			{
				cacCurrentArea = currentArea2;
				cacAreaInit = areaInit2;
				break;
			}
			case 'Area_Fill_In_3':
			{
				cacCurrentArea = currentArea3;
				cacAreaInit = areaInit3;
				break;
			}
			case 'Area_Fill_In_4':
			{
				cacCurrentArea = currentArea4;
				cacAreaInit = areaInit4;
				break;
			}
			default:
			{
				crcCurrentArea = "";
				cacAreaInit = "";
				break;
			}
		}
	}

	// Debugging Code
	var dbg = false;
	//var dbg = true;

	if(mgSessionNumber == 701675461 || objElements["IsPublic"].value == 'Y')
	{
		//dbg = true;
	}

	// Debugging Code
	if(dbg)
	{
		// create variables to debug listing input
		var currentRegion1 = '';
		var currentRegion2 = '';
		var currentRegion3 = '';
		var currentRegion4 = '';

		var currentArea1 = '';
		var currentArea2 = '';
		var currentArea3 = '';
		var currentArea4 = '';

		cacDebugInfo('Begin', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
						objElements["Regions_PB"].value, currentRegion, currentRegion1,
						currentRegion2, currentRegion3, currentRegion4, regionInit,
						objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea, currentArea1,
						currentArea2, currentArea3, currentArea4, cacCurrentArea, areaInit,
						cacAreaInit, subdivisionInit, cacSubdivisionInit);
	}
	if(!objElements["Subdivision_Fill_In"] ||
		(objElements["SubdivisionType"] && objElements["SubdivisionType"].value == 'F'))
	{
		doCheck = false;
	}

	if(doCheck)
	{
		subdivisionText = objElements["SubdivisionText"].value;

		// Debugging Code
		if(dbg) cacDebugInfo('doCheck', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
							objElements["Regions_PB"].value, currentRegion, currentRegion1,
							currentRegion2, currentRegion3, currentRegion4, regionInit,
							objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea, currentArea1,
							currentArea2, currentArea3, currentArea4, cacCurrentArea, areaInit,
							cacAreaInit, subdivisionInit, cacSubdivisionInit);

		// init cacCurrentArea
		if(cacCurrentArea == cacAreaInit && (cacAreaInit == areaText || cacAreaInit == areaText2))
		{
		// Debugging Code
		if(dbg) cacDebugInfo('1', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
							objElements["Regions_PB"].value, currentRegion, currentRegion1,
							currentRegion2, currentRegion3, currentRegion4, regionInit,
							objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea, currentArea1,
							currentArea2, currentArea3, currentArea4, cacCurrentArea, areaInit,
							cacAreaInit, subdivisionInit, cacSubdivisionInit);

			cacCurrentArea = areaFill.value;
			updateCurrentArea(areaFillIn, cacCurrentArea);
			areasPB = cacCurrentArea;
		}
		// In case only the region changes and the area, but not the subdivision
		else if(areaFill.value.indexOf(cacCurrentArea) == -1 &&
				((subFill.value == cacSubdivisionInit || subFill.value == '') &&
					cacSubdivisionInit == subdivisionText))
		{
		// Debugging Code
		if(dbg) cacDebugInfo('2', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
							objElements["Regions_PB"].value, currentRegion, currentRegion1,
							currentRegion2, currentRegion3, currentRegion4, regionInit,
							objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea, currentArea1,
							currentArea2, currentArea3, currentArea4, cacCurrentArea, areaInit,
							cacAreaInit, subdivisionInit, cacSubdivisionInit);

			cacCurrentArea = areaFill.value;
			updateCurrentArea(areaFillIn, cacCurrentArea);
			areasPB = cacCurrentArea;
		}
		// prompt to accept changes
		else if(areaFill.value != cacCurrentArea && areaFill.value != areaText &&
				areaFill.value != areaText2 &&
				(subFill.value != cacSubdivisionInit || cacSubdivisionInit != subdivisionText) && subFill.value != '')
		{
			var areaL = objElements["AreaLabel"] ? objElements["AreaLabel"].value : mgAreaLabel ? mgAreaLabel : 'AREA';

			if(confirm (' The '+areaL+' has changed. Discard current '+objElements["SubdivisionsLabel"].value+' selection and continue?'))
			{
				cacCurrentArea = areaFill.value;
				updateCurrentArea(areaFillIn, cacCurrentArea);
				areasPB = cacCurrentArea;

			// Debugging Code
			if(dbg) cacDebugInfo('3', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								objElements["Regions_PB"].value, currentRegion, currentRegion1,
								currentRegion2, currentRegion3, currentRegion4, regionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4, cacCurrentArea,
								areaInit, cacAreaInit, subdivisionInit, cacSubdivisionInit);

				if(objElements["Subdivision_Fill_In"] && objElements["SubdivisionType"])
				{
					subFill.value = (objElements["SubdivisionType"].value == 'E' ||
									(objElements["SubdivisionType"].value == 'N' &&
									 subFill.disabled == true) ||
									(objElements["SubdivisionType"].value == 'V' &&
									(cacCurrentArea == areaText || cacCurrentArea == areaText2 ||
									cacCurrentArea == ''))) ? subdivisionText : '';
					objElements["Subdivisions_PB"].value = subFill.value;
				}

			// Debugging Code
			if(dbg) cacDebugInfo('4', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								objElements["Regions_PB"].value, currentRegion, currentRegion1,
								currentRegion2, currentRegion3, currentRegion4, regionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4, cacCurrentArea,
								areaInit, cacAreaInit, subdivisionInit, cacSubdivisionInit);

				return true;
			}//cancel
			else
			{
				areaFill.value = cacCurrentArea;
				areasPB = cacCurrentArea;
				return false;
			}
		}
		else
		{
			// Debugging Code
			if(dbg) cacDebugInfo('5', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
								objElements["Regions_PB"].value, currentRegion, currentRegion1,
								currentRegion2, currentRegion3, currentRegion4, regionInit,
								objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
								currentArea1, currentArea2, currentArea3, currentArea4, cacCurrentArea,
								areaInit, cacAreaInit, subdivisionInit, cacSubdivisionInit);

			cacCurrentArea = areaFill.value;
			updateCurrentArea(areaFillIn, cacCurrentArea);
			areasPB = cacCurrentArea;
		}
	}
	else
	{
		// Debugging Code
		if(dbg) cacDebugInfo('6', dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
							objElements["Regions_PB"].value, currentRegion, currentRegion1,
							currentRegion2, currentRegion3, currentRegion4, regionInit,
							objElements["Areas_PB"].value, areaFill ? areaFill.value : "undefined", currentArea,
							currentArea1, currentArea2, currentArea3, currentArea4, cacCurrentArea,
							areaInit, cacAreaInit, subdivisionInit, cacSubdivisionInit);

		cacCurrentArea = areaFill.value;
		updateCurrentArea(areaFillIn, cacCurrentArea);
		if(areaFillIn == "Area_Fill_In")
		{
			objElements["Areas_PB"].value = objElements[areaFillIn].value;
		}
		return true;
	}
}

function updateCurrentRegion(regionFillIn, crcCurrentRegion)
{
	switch(regionFillIn)
	{
		case 'Region_Fill_In':
		{
			currentRegion = crcCurrentRegion;
			break;
		}
		case 'Region_Fill_In_1':
		{
			currentRegion1 = crcCurrentRegion;
			break;
		}
		case 'Region_Fill_In_2':
		{
			currentRegion2 = crcCurrentRegion;
			break;
		}
		case 'Region_Fill_In_3':
		{
			currentRegion3 = crcCurrentRegion;
			break;
		}
		case 'Region_Fill_In_4':
		{
			currentRegion4 = crcCurrentRegion;
			break;
		}
	}
}

function updateCurrentArea(areaFillIn, crcCurrentArea)
{
	switch(areaFillIn)
	{
		case 'Area_Fill_In':
		{
			currentArea = crcCurrentArea;
			break;
		}
		case 'Area_Fill_In_1':
		{
			currentArea1 = crcCurrentArea;
			break;
		}
		case 'Area_Fill_In_2':
		{
			currentArea2 = crcCurrentArea;
			break;
		}
		case 'Area_Fill_In_3':
		{
			currentArea3 = crcCurrentArea;
			break;
		}
		case 'Area_Fill_In_4':
		{
			currentArea4 = crcCurrentArea;
			break;
		}
	}
}

function crcDebugInfo(description, dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
						regionText, Regions_PB, regionFillValue, currentRegion, currentRegion1,
						currentRegion2, currentRegion3, currentRegion4, crcCurrentRegion, regionInit,
						crcRegionInit, Areas_PB, areaFillValue, currentArea, currentArea1,
						currentArea2, currentArea3, currentArea4, crcCurrentArea, subdivisionInit,
						crcSubdivisionInit)
{
			var objElements = document.InputForm.elements;

			// Debugging Code
			alert('Debug Region change (' + description + ')' +
					'\ndbg = ' + dbg +
					'\nsession = ' + mgSessionNumber +
					'\ncalled from = ' + calledFrom +
					'\nregionFillIn = ' + regionFillIn +
					'\nareaFillIn = ' + areaFillIn +
					'\n' +
					'\nregionText = ' + regionText +
					'\nRegions_PB = ' + Regions_PB +
					'\nregionFill = ' + regionFillValue +
					'\ncurrentRegion = ' + currentRegion +
					'\ncurrentRegion1 = ' + currentRegion1 +
					'\ncurrentRegion2 = ' + currentRegion2 +
					'\ncurrentRegion3 = ' + currentRegion3 +
					'\ncurrentRegion4 = ' + currentRegion4 +
					'\ncrcCurrentRegion = ' + crcCurrentRegion +
					'\nregionInit = ' + regionInit +
					'\ncrcRegionInit = ' + crcRegionInit +
					'\n' +
					'\nAreas_PB = ' + Areas_PB +
					'\nareaFill = ' + areaFillValue +
					'\ncurrentArea = ' + currentArea +
					'\ncurrentArea1 = ' + currentArea1 +
					'\ncurrentArea2 = ' + currentArea2 +
					'\ncurrentArea3 = ' + currentArea3 +
					'\ncurrentArea4 = ' + currentArea4 +
					'\ncrcCurrentArea = ' + crcCurrentArea +
					'\n' +
					'\nsubdivisionInit = ' + subdivisionInit +
					'\ncrcSubdivisionInit = ' + crcSubdivisionInit +
					'\n' +
					'\nindex = ' + areaFillValue.indexOf(crcCurrentArea) +
					'\ncrcCurrentRegion = ' + crcCurrentRegion + '\tchanging to ' + regionFillValue);
}

function cacDebugInfo(description, dbg, mgSessionNumber, calledFrom, regionFillIn, areaFillIn,
						Regions_PB, currentRegion, currentRegion1,
						currentRegion2, currentRegion3, currentRegion4, regionInit,
						Areas_PB, areaFillValue, currentArea, currentArea1,
						currentArea2, currentArea3, currentArea4, cacCurrentArea,
						areaInit, cacAreaInit, subdivisionInit, cacSubdivisionInit)
{
			// Debugging Code
			var objElements = document.InputForm.elements;

			alert('Debug Area change (' + description + ')' +
					'\ndbg = ' + dbg +
					'\nsession = ' + mgSessionNumber +
					'\ncalled from = ' + calledFrom +
					'\nregionFillIn = ' + regionFillIn +
					'\nareaFillIn = ' + areaFillIn +
					'\n' +
					'\nRegions_PB = ' + Regions_PB +
					'\ncurrentRegion = ' + currentRegion +
					'\ncurrentRegion1 = ' + currentRegion1 +
					'\ncurrentRegion2 = ' + currentRegion2 +
					'\ncurrentRegion3 = ' + currentRegion3 +
					'\ncurrentRegion4 = ' + currentRegion4 +
					'\nregionInit = ' + regionInit +
					'\n' +
					'\nAreas_PB = ' + Areas_PB +
					'\nareaFill = ' + areaFillValue +
					'\ncurrentArea = ' + currentArea +
					'\ncurrentArea1 = ' + currentArea1 +
					'\ncurrentArea2 = ' + currentArea2 +
					'\ncurrentArea3 = ' + currentArea3 +
					'\ncurrentArea4 = ' + currentArea4 +
					'\ncacCurrentArea = ' + cacCurrentArea +
					'\nareaInit = ' + areaInit +
					'\ncacAreaInit = ' + cacAreaInit +
					'\n' +
					'\nSubdivision Text = ' + objElements["SubdivisionText"].value +
					'\nSubdivision Type = ' + objElements["SubdivisionType"].value +
					'\nsubdivisionInit = ' + subdivisionInit +
					'\ncacSubdivisionInit = ' + cacSubdivisionInit +
					'\n'+
					' Subdivision fill = ' + (objElements["Subdivision_Fill_In"] && objElements["SubdivisionType"] &&
					(objElements["SubdivisionType"].value == 'E' || objElements["SubdivisionType"].value == 'V' || objElements["SubdivisionType"].value == 'N') ? objElements["Subdivision_Fill_In"].value : 'no subdivision')
					);
}
