// This may end up more broadly useful but the problem of combining
// extents might need addressed.. particularly when layers from the same server
// do not advertise the same extents

function combineGroupLayers(list,src){
	var dList;
	var n = false;
	if(typeof src != "undefined" ){ dList = src; }
	else {
		if(list == 'ov'){dList = top.overviewList;}
		else {dList = top.layerList;}
		}
	var serverSet = [];
	var prevurl=dList[0].url;
	var serv = {};
	if(dList[0].isTNT){ serv.isTNT = true;}
		else {serv.isTNT = false; }
	serv.url = prevurl;
	serv.layers = [];
	serv.layers.push(dList[0]);
	serverSet.push(serv);

	for(var s=1;s<dList.length;s++){
		urlstart = dList[s].url;
		if(urlstart != prevurl){ 
			serv={};
			serv.layers=[];
			serv.url = urlstart;
			if(dList[s].isTNT){ serv.isTNT = true;}
				else {serv.isTNT = false; }
			serverSet.push(serv);
			}
		serverSet[serverSet.length-1].layers.push(dList[s]);
		}

	
	var newLayerList = [];
	var tl;
	setState("Layers combined");
	for (var ss=0;ss<serverSet.length;ss++){
		var tList = serverSet[ss].layers;
		tList = tList.reverse();
		var nl = tList.length -1;  
		var templateLayer = new clone(tList[nl]);
		if(templateLayer.groupTitle){
			templateLayer.title=templateLayer.groupTitle;
			}
		if(templateLayer.groupDesc){
			templateLayer.description =templateLayer.groupDesc;
			}
		templateLayer.name = escape(templateLayer.name);
		for(tl = nl-1;tl>-1;tl--) {
				templateLayer.name += ","+escape(tList[tl].name);
				templateLayer.style += ","+tList[tl].style;
				templateLayer.title += ","+tList[tl].title;
				for(var b=0;b<templateLayer.bounds.length;b++){
					if(templateLayer.bounds[b] && typeof(templateLayer.bounds[b]!="undefined")){
					 	var boundary = templateLayer.bounds[b];
						for(var tb=0; tb<tList[tl].bounds.length; tb++){
							if(tList[tl].bounds[b]){
								var bd = tList[tl].bounds[tb];
								templateLayer.bounds[b].extend(bd);
								}
							}
						}
					}
				}
	//	templateLayer.name = escape(templateLayer.name);	
		newLayerList.push(templateLayer);
		}

	
	return(newLayerList);
	} 

function clone(what) {
	for (i in what) {
       	 this[i] = what[i];
   	 }
}
