//---------------------------------------------------------------
// dbgtData.js
// Copyright (C) 2002 David Bollinger (davebollinger@hotmail.com)
//
// Support code for the "dbGroupToc" v1.2 modification - A grouped
// table of contents for ArcIMS 3.1+ HTML viewer sites.
//
// Notice:   This code may be freely distributed, used and
//           modified provided that this comment remains intac
//---------------------------------------------------------------


//
// create the global resource object
//
var blnEbeneOrdner=true;
var blnEbeneAbc=true;
var blnEbeneThemen=true;

dbgtResource = new RESOURCE("");
dbgtResource.stringTitle = "Kartenebenen";                     // text to display as title of toc
dbgtResource.imageWidth = 18;                            // width in pixels of icons/swatches
dbgtResource.imageHeight = 18;                           // height in pixels of icons/swatches
dbgtResource.groupSpacing = 1;                           // height in pixels of blank space between groups
dbgtResource.iconPath = "images/ims/legende/";                   // path to icon images
dbgtResource.swatchPath = "images/ims/legende/";                 // path to swatch images
dbgtResource.legendPath = "images/ims/legende/";                 // path to legend images
dbgtResource.iconPixel = "icon_pixel.gif";               // single transparent pixel
dbgtResource.iconBlank = "icon_blank.gif";               // all transparent placeholder
dbgtResource.iconClosed = "icon_closed.gif";             // closed group folder
dbgtResource.iconOpened = "icon_opened.gif";             // opened group folder
dbgtResource.iconChild = "icon_pixel.gif";               // connecting line to child layer
dbgtResource.iconChildLast = "icon_pixel.gif";       // connecting line to child layer (last one)
dbgtResource.iconOrphan = "icon_orphan.gif";             // non-connecting line to an orphan ("only child") layer
dbgtResource.iconSibling = "icon_sibling.gif";           // not yet used, will make sense when nesting is implemented
dbgtResource.iconHidden = "icon_hidden.gif";             // layer not visible, unselected checkbox
dbgtResource.iconVisible = "icon_visible.gif";           // layer visible, selected checkbox
dbgtResource.iconVisscale = "icon_visscale.gif";         // layer visible, but not at this scale
dbgtResource.iconTristate = "icon_tristate.gif";         // tri-state checkbox, some layers visible
dbgtResource.iconInfo = "icon_info.png";         // info zum layer
dbgtResource.iconActive = "icon_active.gif";             // selected radio
dbgtResource.iconInactive = "icon_inactive.gif";         // unselected radio
dbgtResource.iconHelp = "icon_help.gif";                 // not currently used
dbgtResource.iconLine = "icon_pixel.gif";                 // not currently used
dbgtResource.t = "toc.";               

var tocgruppieren=true;
var xx="X";

srtlegend=1;
// SAMPLE DATA AND USAGE REMINDERS:
// 1. create the toc object, TOC( name_of_toc )
// 2. add groups to toc, GROUP( name_of_group, startup_opened )
// 3. add layers to groups, LAYER( name_of_layer, url_of_swatch_image, url_of_legend_image )//
// repeat 2 & 3 as necessary

// this sample data has been reformatted since the 1.0 release but is functionally equivalen
// existing legends defined for v1.0 should work fine with v1.2

//var srt=0;

function tocerstellen(art){
	writeProtokoll("tocerstellen");
	toc=new TOC("TABOFCONT");
	tocabc=new TOC("TABOFCONTABC");
	tocthemen=new TOC("TABOFCONTTHEMEN");
	document.getElementById("divToc").innerHTML="";
	var gruppename="";
	var old_gruppename="XXX";
	var grp = new Array();
	var r=0;
	var w=-1;
	var c=-1;
	var kr=-1;
	var maxOrdner=5;
	var i=-1;
	var j=-1;
	var legtab = new Array();
	var legtababc=new Array();
	var legtabthema=new Array();
	var arrTmp=new Array();
	var k=0;
	var pos=-1;
	var ordner="";
	var thema="";
	var arrOrdnerThema=new Array(2);
	for (var k=0;k<LayerID.length;k++) {
		if (LayerVisibleInLegend[k]=="1" && LayerBerechtigung[k]==1){
			if (LayerLegendeOrdner[k]){
					arrOrdnerThema=LayerLegendeOrdner[k].split("|");
					if (arrOrdnerThema[0]){
						arrTmp=arrOrdnerThema[0].split("°");
						if (arrTmp.length==0){
							arrTmp[0]=arrOrdnerThema[0];
						}
						for (var l=0;l<arrTmp.length;l++) {
							ordner=LayerLegendeSortierung[k]+"!!";
							ordner+=arrTmp[l]+"!!";
							ordner+=LayerSortierung[k]+"!!";
							ordner+=LayerAliasname[k]+"!!";
							ordner+=LayerID[k]+"!!";
							ordner+=String(k);
							legtab[legtab.length]+=ordner;
						}
					}
					if (arrOrdnerThema[1]){
						arrTmp=arrOrdnerThema[1].split("°");
						if (arrTmp.length==0){
							arrTmp[0]=arrOrdnerThema[1];
						}
						for (var l=0;l<arrTmp.length;l++) {
							thema="50!!";
							thema+=arrTmp[l]+"!!";
							thema+="50!!";
							thema+=LayerAliasname[k]+"!!";
							thema+=LayerID[k]+"!!";
							thema+=String(k);
							legtabthema[legtabthema.length]+=thema;
						}
					/*
					}else{
						thema="50!!";
						thema+="noch ohne!!";
						thema+="50!!";
						thema+=LayerAliasname[k]+"!!";
						thema+=LayerID[k]+"!!";
						thema+=String(k);
						legtabthema[legtabthema.length]+=thema;
					*/
					}
			}
			legtababc[legtababc.length]="!!!!!!"+LayerAliasname[k]+"!!"+LayerID[k]+"!!"+k;
		}
	}
	var name="";
	var ltab=new Array(5);
	if (legtab.length>0){
		legtab.sort();
		dbgtResource.t = "toc.";               
		toc.setOutput( divToc, divToc );
		gruppename="";
		old_gruppename="XXX";
		for (var k=0;k<legtab.length;k++) {
			ltab=legtab[k].split("!!");
			if (ltab[1] != old_gruppename) {
				r++;
				gruppename=ltab[1];
				old_gruppename=gruppename;
				kr=0;
				for(var c= 0; c <= gruppename.length; c++){
					if (gruppename.substring(c,c+1)=="^")
						kr++;
				}
				while (kr < maxOrdner-1){
					kr=0;
					gruppename+="^";//+gruppename;
					for(var c= 0; c <= gruppename.length; c++){
						if (gruppename.substring(c,c+1)=="^")
						kr++;
					}
				}
				grp[r] = toc.addGroup( new GROUP(gruppename,false) );
			}
			grp[r].addLayer( new LAYER(ltab[3],'',LayerUrlImage[ltab[5]],ltab[5]) );
		}
	}else{
		blnEbeneOrdner=false;
	}

	if (legtabthema.length>0){
		legtabthema.sort();
		dbgtResource.t = "tocthemen.";               
		tocthemen.setOutput( divTocThemen, divTocThemen );
		gruppename="";
		old_gruppename="XXX";
		for (var k=0;k<legtabthema.length;k++) {
			ltab=legtabthema[k].split("!!");
			if (ltab[1] != old_gruppename) {
				r++;
				gruppename=ltab[1];
				old_gruppename=gruppename;
				kr=0;
				for(var c= 0; c <= gruppename.length; c++){
					if (gruppename.substring(c,c+1)=="^")
						kr++;
				}
				while (kr < maxOrdner-1){
					kr=0;
					gruppename+="^";//+gruppename;
					for(var c= 0; c <= gruppename.length; c++){
						if (gruppename.substring(c,c+1)=="^")
						kr++;
					}
				}
				grp[r] = tocthemen.addGroup( new GROUP(gruppename,false) );
			}
			grp[r].addLayer( new LAYER(ltab[3],'',LayerUrlImage[ltab[5]],ltab[5]) );
		}
	}else{
		blnEbeneThemen=false;
	}
	var grp2 = new Array();
	gruppename="";
	old_gruppename="XXX";
	grp2[0] = tocabc.addGroup( new GROUP("sichtbar^^^^^",true) );
	legtababc.sort();
	dbgtResource.t = "tocabc.";               
	tocabc.setOutput( divTocAbc, divTocAbc );
	r=-1;
	for (var k=0;k<legtababc.length;k++) {
		ltab=legtababc[k].split("!!");
		r++;
		grp2[0].addLayer( new LAYER(ltab[3],'','',ltab[5]) );
	}
	
	dbgtResource.t = "toc.";               
	if (!blnTocVisible){
		resizeDivs();
	}
	writeProtokoll("tocerstellen - Ende");
	
}
function byName(a, b) {
  var anew = a[2].toLowerCase();
  var bnew = b[2].toLowerCase();
  if (anew < bnew) return -1;
  if (anew > bnew) return 1;
  return 0;
}

//naechste zeile loeschen, wenn umschaltbar ordenr/layerliste
//createtoc(rgs_toclayerliste)

