//********************** constants ******************************
function clearVisibleLayer()
{
	g_strVisibleLayers = "";
}

function setGroupVisible(nGroupIndex, bVisible)
{
	if (nGroupIndex >= 0 && nGroupIndex < gFeatureGroups.length)
	{
		var group = gFeatureGroups[nGroupIndex];
		group.bVisible = bVisible;

		for (var i = 0; i < group.aryFeatures.length; i++)
			group.aryFeatures[i].bVisible = bVisible;
	}
}

function UpdateLayerStatusStrings()
{
	var strInvisibleLayers = "";
	var strInactiveLayers = "";
	var strAreaLayers = "";
	for (var i = 0; i < gFeatureGroups.length; i++)
	{
		for (var j = 0; j < gFeatureGroups[i].aryFeatures.length; j++)
		{
			var fea = gFeatureGroups[i].aryFeatures[j];
			if (fea.strFeatureID.match(/^countyap/i))	// set visible photo
				fea.bVisible = (fea.strFeatureID == g_selectedPhotoId ? gFeatureGroups[i].bVisible : false);

			if (!fea.bVisible)
				strInvisibleLayers += fea.strFeatureID + ",";
			
			if (!fea.bActive)
				strInactiveLayers += fea.strFeatureID + ",";
				
			if (fea.strFeatureType == "area")
				strAreaLayers += fea.strFeatureID + ",";
		}
	}
	
	// re order the layer ids
	var ilayers = strInvisibleLayers.split(',');
	var areaLayers = strAreaLayers.split(',');
	var orderLayers = gLayersOrder.split(',');
	g_strVisibleLayers = "";
	gLayerParams = "";
	for (var i = 0; i < orderLayers.length; i++) {
		var match = false;
		for (var j = 0; !match && j < ilayers.length; j++)
		{
			if (orderLayers[i] == ilayers[j])
				match = true;
		}
		if (match) continue;
		 
		g_strVisibleLayers += orderLayers[i] + ",";
		
		var found = false;
		for (var j = 0; j < areaLayers.length; j++) {
			if (orderLayers[i] == areaLayers[j]) {
				found = true;
				break;
			}
		}
		if (found) { // area feature
			if (g_bFill)
				gLayerParams += "fill:true,";
			else
				gLayerParams += "fill:false,";
		}
		else {
			if (orderLayers[i] == "countyap")
				gLayerParams += "opacity="+g_strPhotoOpacity;
			else if (orderLayers[i] == GEO_TIFF_LAYER_ID) {
				if (g_strImageID == null || g_strImageID == "")
					gLayerParams += "opacity:"+g_strGeotiffOpacity;
				else
					gLayerParams += "opacity:"+g_strGeotiffOpacity+";name:"+g_strImageID;
			}
			gLayerParams += ",";
		}		
	}
	g_strInactiveLayers = strInactiveLayers;
	return g_strVisibleLayers;
}

function reloadSVGMap()
{
	UpdateLayerStatusStrings();

	var vSVGImage = getSvgURL(SVG_IMAGE_URL, SVG_TEMPLATE, vMapWidth, vMapHeight, vCenterLong, vCenterLat, vScale, g_strVisibleLayers);

	RefreshSVG(top.MainMapFrame.MapImageID, vSVGImage);
}
