var LayerName = new Array();
var LayerID = new Array();
var LayerVisible = new Array();
var ActiveLayerIndex = 0;
var ActiveLayer;
var layerCount;

function getLayers(theReply) {
	//TODO : use XML DOM parser instead to parse the response
	
	//alert("LayerInfo:\n" + theReply.length);
	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;
	//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];
					}
					//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();
	ActiveLayer = LayerID[ActiveLayerIndex];
	
	//alert(layerCount + " layers");
	displayToc();
	return false;
}
