// CivXplorer Layer Grouping
// Suzanne Fliege
// PlanSight, LLC
// contains functions to supported grouped layers in the overlay dropdown.

//******************************************************************************
// master variables - don't change here
groupedlayersAvailable = true;
var groupedName = new Array();  // alias to display in layer menu
var groupedID = new Array();  // expects format to be "grouped-xxxxxxxx" or "subgroup-xxxxxxxxx"
var groupedType = new Array();  // use "overlay" "orthoimg" "optional" or "subgroup"
var groupedIDs = new Array();  // list of layers by ID in AXL, or subgroup name(s)
var groupedVisible = new Array(); // whether group starts as visible (optional only!), if not specified, then false by default
//******************************************************************************

//******************************************************************************
// Customizable variables containing groups related info
groupedName[0] = "Property Dimensions";  // alias to display in layer menu
groupedID[0] = "grouped-taxmap";  // expects format to be "grouped-xxxxxxxx"
groupedType[0] = "optional";  // use "overlay" "orthoimg" or "optional"
groupedIDs[0] = new Array("grouped-taxmap-labels","grouped-taxmap-lotlines");  // list of layers in the group, by ID value from AXL

groupedName[1] = "Topography";  // alias to display in layer menu
groupedID[1] = "grouped-topo";  // expects format to be "grouped-xxxxxxxx"
groupedType[1] = "optional";  // use "overlay" "orthoimg" or "optional"
groupedIDs[1] = new Array("grouped-topo-10foot","grouped-topo-2foot");  // list of layers in the group, by ID value from AXL

groupedName[2] = "Elections";  // alias to display in layer menu
groupedID[2] = "grouped-elections";  // expects format to be "grouped-xxxxxxxx"
groupedType[2] = "overlay";  // use "overlay" "orthoimg" or "optional"
groupedIDs[2] = new Array("grouped-elections-precincts","grouped-elections-polling");  // list of layers in the group, by ID value from AXL

//******************************************************************************
// do not edit below here
//******************************************************************************
// get indexes for group layers
var groupedIndexes = new Array();
function getGroupedIndexes() {
	for (var j=0;j<groupedIDs.length;j++) {
		var tempIdxAry = new Array();
		for (var k=0;k<groupedIDs[j].length;k++) {
			for (var i=0;i<LayerID.length;i++) {
				if (groupedIDs[j][k] == LayerID[i]) tempIdxAry[k] = i;
			}
		}
		groupedIndexes[j] = tempIdxAry;
	}
	return false;
}

// add grouped layers to TOC lists
function AddGroupedLayers() {
	for (i=0;i<groupedID.length;i++) {
		if ((groupedType[i] == "overlay") || (groupedType[i] == "orthoimg")) {
			tocOverlayList[tocOverlayList.length] = new Array(groupedName[i],groupedID[i],groupedType[i],groupedID[i]);
			groupedVisible[i] = false;
		} else { // optional
			tocOptionalList[tocOptionalList.length] = new Array(groupedName[i],groupedID[i],groupedID[i],"false");
			if (groupedVisible[i] == null) groupedVisible[i] = false;
		}
	}
	return false;
}

// turn off all grouped overlay layers
function TurnGroupOverlaysOff() {
	for (var j=0;j<groupedID.length;j++) {
		if ((groupedType[j] == "overlay") || (groupedType[j] == "orthoimg")) {
			for (var k=0;k<groupedIndexes[j].length;k++) {
				LayerVisible[groupedIndexes[j][k]] = "false";
			}
		}
	}
	return false;
}

// turn on specified group overlay layer
function TurnGroupOverlayOn(theGroup) {
	for (var i=0;i<groupedID.length;i++) {
		if (groupedID[i] == theGroup) {
			tocOverlayCurrent = theGroup;
			tocOverlayCurrentType = groupedType[i];
			for (var k=0;k<groupedIndexes[i].length;k++) {
				LayerVisible[groupedIndexes[i][k]] = "true";
			}
		}
	}
	return false;
}

// turn on specified group optional layer
function TurnGroupOptionalOn(theGroup) {
	for (var i=0;i<groupedID.length;i++) {
		if (groupedID[i] == theGroup) {
			for (var k=0;k<groupedIndexes[i].length;k++) {
				LayerVisible[groupedIndexes[i][k]] = "true";
			}
		}
	}
	return false;
}

// turn off specified group optional layer
function TurnGroupOptionalOff(theGroup) {
	for (var i=0;i<groupedID.length;i++) {
		if (groupedID[i] == theGroup) {
			for (var k=0;k<groupedIndexes[i].length;k++) {
				LayerVisible[groupedIndexes[i][k]] = "false";
			}
		}
	}
	return false;
}

// add layers to optional list
function getOptionalGroupList(theGroup) {
	var tempString = ""
	for (var i=0;i<groupedID.length;i++) {
		if (groupedID[i] == theGroup) {
			for (var k=0;k<groupedIndexes[i].length;k++) {
				tempString += '<tr><td colspan="3"></td>';
				tempString += '<td class="tocLayerSmall" align="left"><img src="images/CXsubfoldercontent.gif" align="middle">' + LayerName[groupedIndexes[i][k]] + '</td>';
				tempString += '</tr>';
			}
		}
	}
	return tempString;
}
