var LayerName = new Array();
var LayerID = new Array();
var LayerVisible = new Array();
var LayerType = new Array();
var LayerSwatch = new Array(); // added 20060627
var ActiveLayerIndex = 0;
var ActiveLayer;
var layerCount;

function getLayers(theReply) {
    debug("aimsLayers.js:getLayers");
	//TODO : use XML DOM parser instead to parse the response
	
	debug("LayerInfo: " + theReply);
	var theReplyUC = theReply.toUpperCase();
	var startpos = 0;
	var endpos = 0;
	var pos = -1;
	var lpos = 1;
	var epos = 1;
	var zpos=1;
	var zpos2 = 1;
	var tempString="";
	var visString = "";
	var typeString="";
	var fieldString = "";
	var testString = "";
	var testString2 = "";
	var minString = "";
	var maxString = "";
	var dQuote='"';
	
	layerCount = 0;
	LayerName.length=1;
	LayerVisible.length=1;
	LayerID.length=1;
	LayerSwatch.length=1; // added 20060627
	LayerType.length=1; // added 20060317
	
	//alert("Processing LayerInfo");
	lpos = theReplyUC.indexOf("<LAYERINFO",zpos);
	
	while (lpos > -1) {
		//alert("<LAYERINFO - pos " + lpos );
			
		if (lpos != -1) {
				
			zpos = theReplyUC.indexOf("</LAYERINFO",lpos);
			//alert("</LAYERINFO - pos " +  zpos);
			if (zpos!=-1) {
				pos = theReplyUC.indexOf("NAME=",lpos);
				if (pos != -1) {
					startpos = pos + 6;
					endpos = theReply.indexOf(dQuote, startpos);
					tempString = theReply.substring(startpos,endpos);
					tempString = tempString.replace(/&apos;/g, "'");
					LayerName[layerCount] = tempString;
					startpos = theReplyUC.indexOf("VISIBLE=",lpos);
					if (startpos != -1) {
						startpos = startpos + 9;
						endpos = startpos + 4;
						visString = theReply.substring(startpos,endpos);
					}
					startpos = theReplyUC.indexOf("ID=",lpos);
					if ((startpos != -1) && (startpos<zpos)) {
						startpos = startpos + 4;
						endpos = theReply.indexOf(dQuote, startpos);
						tempString = theReply.substring(startpos,endpos);
						tempString = tempString.replace(/&apos;/g, "'");
						LayerID[layerCount] = tempString;
					} else {
						LayerID[layerCount] = LayerName[layerCount];
					}
					startpos = theReplyUC.indexOf("<FCLASS TYPE=",lpos);
					if ((startpos != -1) && (startpos < zpos)) {
						startpos = startpos + 14;
						endpos = theReply.indexOf(dQuote, startpos);
						tempString = theReply.substring(startpos,endpos);
						LayerType[layerCount] = tempString;
					} else {
						LayerType[layerCount] = "unknown";
					}
					LayerSwatch[layerCount] = null;
					//alert(LayerID[layerCount]);
					if (visString=="true") {LayerVisible[layerCount] = 1} else {LayerVisible[layerCount] = 0};
						//alert("Layer " + layerCount + ": " + LayerName[layerCount]);
						layerCount += 1;
						endpos = zpos;
					lpos = theReplyUC.indexOf("<LAYERINFO",zpos);
				} else {
					lpos = -1;
				}
			}
		}
		//alert("LayerInfo processed");
	}
	LayerName.reverse();
	LayerVisible.reverse();
	LayerID.reverse();
	LayerType.reverse();
	LayerSwatch.reverse();
	ActiveLayer = LayerID[ActiveLayerIndex];
	
	//alert(layerCount + " layers");
	displayToc();
	return false;
}
