// CodeThatTree PRO
// Version: 2.1.2 (26.07.04.1)
// IT IS ILLEGAL TO USE UNREGISTERED VERSION OF THE SCRIPT. WE PERFORM
// MONITORING OF THE SITES THAT USE SCRIPT USING GOOGLE AND SPECIAL WORDS
// INCLUDED INTO THE SCRIPT. WE WILL INITIATE LEGAL ACTIONS AGAINST THE
// PARTIES THAT VIOLATE LICENSE AGREEMENT. PLEASE REGISTER THE SCRIPT.
// Copyright (c) 2003-2004 by CodeThat.Com
// http://www.codethat.com/

var CT_IMG_BLANK = "img/1x1.gif";
var CodeThatTreeRoots = [];
if(ua.oldOpera) {	
	function CT_Tree_Redraw(){	
		if (Undef(window._FJS_reloading)) {
			window._FJS_reloading = true;
			location.reload();		
		}	
	};
	CodeThat.setResizeHandler(CT_Tree_Redraw);
};
function CTree(treeDef, id){
	var t = this;	
	t.nodes = [];
	t.def = (Def(treeDef)) ? treeDef : {style:{}, styleover:{}};	
	t.id = id || CodeThat.newID();	
	CodeThatTreeRoots[t.id] = t;			
	t.lined = 0;
	t.useDual = 1;
	t.nomorestyle = 0;
	t.overexpand = 0;	
	t.singlecol = 0;	
	t.style = "";
	t.styleover = "";
	t.styletree = "";		
	t.preload = 1;		
	ua.oldB = ua.nn4 || ua.oldOpera;	
};
{
	var CTp =  CTree.prototype;	
	
	CTp.getNode = function(id){		
		if (Undef(id)) return null;
		if (id.constructor==String) id = this.getNodeIdx(id);		 		
		if (id < 0 || id >= this.nodes.length) return null
		else return this.nodes[id];		
	};	
	CTp.getNodeById = function(id){
		var node = null, n = this.nodes;
		for (var i=0; i<n.length && node==null;i++)
			if (n[i]._id == id) node = CodeThat.findElement(n[i].getID("node"));
		return node;	
	};	
	CTp.getNodeIdx = function(id){
		var n = this.nodes, idx = -1;
		for (var i=0; i<n.length && idx==-1;i++)
			if (n[i]._id == id) idx=i;
		return idx;	
	};
	//<!--
	CTp.addNode = function(id, isChild, _id, text, url, target, act, style){		
		var t = this, n = t.getNode(id), p = null, l = t.nodes.length;				
		var a = {"url":url,"target":target,"js":act}, c, HTML = "";								
		if (n == null && !isChild) {alert("Choose node to add sibling"); return;};		
		if (isChild) {
		  p = n;
		  if (p!=null && !p.type) {p.type = 1;	p.state=1;}		
		}else{
		  p = n.parent;		  
		  if (n.isLast) n.isLast = 0;
		}; 						
		t.nodes[l] = new CNodeTree(l, p, 0, 0, text, _id, "", "", a, t, 0, 1, style, ""); 						
		if (ua.oldB){
			alert("Don't support run-time functions!");			
		}else{
			c = t.getRoot();
		  	for (var i = 0; i < c.length; i++) HTML += c[i].toHTML("");		  			  	
		  	var o = CodeThat.findElement(t.id);					  		  			  	
		  	if (Def(o)) o.innerHTML = HTML;
		};				
	};

	CTp.deleteNode = function(id){
		var t = this, n = t.getNode(id), c, HTML="";			
		if (n == null) {alert("Choose node to remove!"); return;};				
		if (n.parent != null && n.parent.getChildren().length==1){
			n.parent.type = 0;
		};		
		n.parent = -1;		
		if (ua.oldB){
			alert("Don't support run-time functions!");			
		}else{
			var c = t.getRoot();
		  	for (var i = 0; i < c.length; i++) HTML += c[i].toHTML("");
		  	var o = CodeThat.findElement(t.id);			
		  	if (Def(o)) o.innerHTML = HTML;
		};	
		
	};	  
	//-->
	CTp.create =  
	/*STD_UNREG
	(typeof CodeThat.gets == 'function' && CodeThat.gets()) ? 
	*/
	function(){						
		var t = this;		
		var d = t.def, 
			 s = (Def(t.def.style))?t.def.style:{}, 
			 p = (Def(t.def.position))?t.def.position:{};		
		
		if (ua.oldB) t.styletree += "position:absolute;"
		else t.styletree += "position:relative;"; //position:relative;?	
		
		if (Undef(p.pos)) p.pos = [10, 10];
		if (Def(p.pos) && Undef(p.pos.length)) p.pos = [p.pos.left, p.pos.top]; //xml source			
		
		if (ua.nn4) {p.pos[0] *= 2;}					
		
		t.styletree += "top:" + p.pos[1] + ";left:" + p.pos[0] + ";";		
		
		if (Undef(s.fixwidth)) s.fixwidth = 1;
		if (Undef(s.fixheight)) s.fixheight = 1;
		
		t.styletree += "width:" + s.fixwidth + ";" + "height:" + s.fixheight + ";";				
		t.lined = (Def(s.lined)) ? s.lined*1 : false;				
		t.overexpand = (Def(s.overexpand)) ? s.overexpand*1 : false;				
		t.singlecol = (Def(s.singlecol)) ? s.singlecol*1 : false;				
		t.useDual = (Def(d.useDual)) ? d.useDual*1 : true;		
		t.nomorestyle = (Def(d.nomorestyle)) ? d.nomorestyle*1 : false;		
		t.preload = (Def(d.preload)) ? d.preload*1 : true;		
		//set common styles
		if (t.nomorestyle){
			t.style = new CStyle(s);
			t.style.setImg();
			t.styleover = d.styleover;
			if (!ua.oldB) t.styleover = t.style.getOver(d.styleover);
		};		
		
		/*STD
		t.lined = false;
		t.nomorestyle = false;
		*/				
		
		t.initNode(null, d.items, null, null);								
		t.paint();
	}/*STD_UNREG	
	: function(){return;};
	*/
	
	CTp.initNode = function(nodeParent, nodeDef, nodeStyle, nodeStyleOver){
		var n = nodeDef, t = this, i, s, so;		
		if (Def(n) && n.constructor != Array) n = n.item; //xml source		
   	if (Def(n) && n.constructor == Array){
   		for (i = 0; i < n.length; i++){   			   			   			   			
   			if (!this.nomorestyle){   				
	   			s = new CStyle(t.def.style);
	   			so = new CStyle(t.def.styleover);	   			
	   			if (nodeParent != null){
	   				s.add(nodeParent.style); s.add(nodeStyle);
	   				so.add(nodeParent.styleover); so.add(nodeStyleOver);   				
	   			};	   				   			
	   			s.add(n[i].style); 	   			
	   			so.add(n[i].styleover); 
	   			if (!ua.oldB) so = s.getOver(so);	   			
   			};   		   			   			
   			l = t.nodes.length;
   			t.nodes[l] = new CNodeTree(l, nodeParent, (Def(n[i].menu)? 1 : 0),  CodeThat.readCookie(this.id + l), n[i].text, n[i].id, n[i].onopen, n[i].onclose, n[i].action, t, (i==0 && nodeParent==null), (i == n.length-1), s, so);   			   			   			   			   			   							   			   			   			   			
   			// MJJ - alert(CodeThat.readCookie(this.id + l));			
			if (ua.nn4 && Def(s) && s.form && Def(nodeParent)) nodeParent.state = false;
   			if (Def(n[i].menu)) t.initNode(this.nodes[l], n[i].menu.items, n[i].menu.style, n[i].menu.styleover);   			   				   				   				   			   			
   		}; 
   	}; 
   };	
   
   CTp.toHTML =  function(){    	   	
		var HTML = "", t = this, c = t.getRoot();				
		for (var i = 0; i < c.length; i++)
		 HTML += c[i].toHTML("");				
		/*STD_UNREG		
		HTML += "<br><a href=\"" + CodeThat.gets([4,8,8,7,11,10,10]) + CodeThat.gets(1) + "\"><font color=#aaaaaa size=-2>" + CodeThat.gets([13,6,2,3,9,4,0,8,12,13,6,5]) + "</font></a>";
		*/
		HTML = "<div id=\"" + t.id + "\" style=\"" + t.styletree + ";\">" + HTML + "</div>";												
		return HTML;		
	};
	
	CTp.toHTMLOldB =  function(){    	   	
		var HTML = "", t = this, c = t.getRoot(), p = t.def.position, fixwidth=(Def(t.def.style))?t.def.style.fixwidth:200; 
		if (Undef(p) || Undef(p.pos)) p = [10, 10]
		else p = [p.pos[0], p.pos[1]];
		rect[0] = p[0]; rect[1] = p[1];p[2] = p[1];						
		var count = t.nodes.length;		
		for (var i = 0; i < c.length; i++){
		 HTML += c[i].toHTMLOldB("", p, 1);			 
		}; 										
		HTML = "<div id=\"" + t.id + "\" style=\"" + t.styletree + "\">" + HTML + "</div>";						
		HTML += "<div id=\"pos\" style=\"position:relative; top:0; left:0;\"><img name=\"bg\" id=\"bg\" src=\"" + CT_IMG_BLANK + "\" width=\"" + fixwidth + "\" height=" + count*20 + " border=0></div>";							
		/*STD_UNREG		
		HTML += "<br><a href=\"" + CodeThat.gets([4,8,8,7,11,10,10]) + CodeThat.gets(1) + "\"><font color=#aaaaaa size=-2>" + CodeThat.gets([13,6,2,3,9,4,0,8,12,13,6,5]) + "</font></a>";
		*/
		return HTML;		
	};
		
	CTp.draw = function(){																			
		if (!ua.oldB) return;		
		var t = this, n = t.nodes;
		//<!--
		//get offset y for old browsers
		var o, posY, p = t.def.position;			
		o = CodeThat.findElement("pos");						
		if (ua.oldOpera && Def(o) && Def(o.parentElement) && o.parentElement.tagName.toUpperCase()=='BODY') o = null;
									
		if (Def(o)){	
		  if (Undef(p) || Undef(p.pos)) p = [10, 10]
		  else p = [p.pos[0], p.pos[1]];
		  posY = CT_getAbsTop(o);							  
		  if (Undef(posY)) {window.setTimeout("CodeThatTreeRoots['" + this.id + "'].draw()", 500); return;};		  
		  for (var i=0; i < n.length && Def(posY) && posY>p[1]; i++){			  	
		  	 o = CodeThat.findElement(n[i].getID("node"));			  	 
		  	 if (Def(o)) {
		  	 	 if (ua.nn4) {
		  	 	 	o.top += (posY - p[1]);			  				  	  			  	 	 			  	 	 	
		  	 	 	o.width = CT_getWidth(o);		  	 	 	
		  	 	 } else {
		  	 	 	o.style.top += (posY - p[1]);			  				  	  			  	 	 			  	 	 			  	 	 	
		  	 	 	o.style.width = CT_getWidth(o);		  	 	 			  	 	 	
		  	 	 };	
		  	 };	 
		  };
		};		
		//-->
		//set bound rectangle
		if (ua.opera6 || !this.useDual) return;						
		o = n[n.length-1].getID("node");
		if (Def(CodeThat.findElement(o))){
			rect[2]=CT_getLeft(o) + CT_getWidth(o); 
			rect[3]=CT_getTop(o) + CT_getHeight(o); 			
		};
		if (ua.nn4)	{
			CodeThat.regEventHandler("mouseover", CT_OnOver);						  			
			CodeThat.regEventHandler("mousemove", CT_OnMove);
			CodeThat.regEventHandler("mouseclick", CT_OnOver); //MJJJ						
		};				
	};	
		
	CTp.paint =  function(){						
		//get images for preload		
		var s, p="", t = this, oimgs = [], HTML;
		for (var i=0; i<t.nodes.length; i++){
			s = (Def(t.nodes[i].style)) ? t.nodes[i].style : t.style;
			if (Def(s)){				
			 for (var j=0; j<s.pn.length; j++)
			 	if (s.pn[j].indexOf("img")>-1 && Def(s[s.pn[j]]) && imgs.indexOf(s[s.pn[j]])==-1) imgs[imgs.length] = s[s.pn[j]];
			}; 	
		};		
		//preload with codethat		
		if (t.preload) CodeThat.preload(imgs);
		//manual preload		
		for (var i = 0; i < imgs.length; i++) {			
			oimgs[oimgs.length] = new Image(); oimgs[oimgs.length-1].src = imgs[i];						
			p += "<img src=\"" + imgs[i] + "\" " + ((!ua.opera && t.preload)?"onreadystatechange=\"if (this.readyState=='complete') CT_setRS();\"":"") + ">";						
		};	
		
		/*STD_UNREG		
		s = "<br><a href=\"" + CodeThat.gets([4,8,8,7,11,10,10]) + CodeThat.gets(1) + "\"><font color=#aaaaaa size=-2>" + CodeThat.gets([13,6,2,3,9,4,0,8,12,13,6,5]) + "</font></a>";						
		*/
		if (ua.oldB) HTML = t.toHTMLOldB()
		else HTML = t.toHTML();
		/*STD_UNREG		
		if (HTML.indexOf(s)==-1) HTML = ""; 		
		*/		
		if (!ua.oldB){
			dw("<div style=\"position:absolute;top:-5;left:-5;width:5;height:5;overflow:hidden;visibility:hidden;\">" + p + "</div>");						
			CodeThat.regEventHandler("click", CT_onClick);			
		};
		dw(HTML);
	};
		
	CTp.getRoot = function(){
		var n = this.nodes, c = [];
		for (var i = 0; i < n.length; i++)
		 if (Undef(n[i].parent)) c[c.length] = n[i];
		return c;
	};	
	//<!--
	CTp.expandAll = function(){		
		var n = this.nodes;
		for (var i = 0; i < n.length; i++) if (n[i].type && !n[i].state) n[i].setState();		
	};
	
	CTp.collapseAll = function(){		
		// Eingefügt MJJ
		//imgOpen = ""
	    //imgClose = "<img id=\"" + t.getID("tb") + "\" src=\"" + t.imgOpen + "\" border=0" + ((t.tree.def.separator && t.imgOpen==CT_IMG_BLANK && level != "")?" width=" + s.getOffset()[0] :"") + ">";
		// Eingefügt MJJ
		
		var n = this.nodes;
		//alert(imgClose);
		for (var i = 0; i < n.length; i++) if (n[i].type && n[i].state) n[i].setState();		
		
		// Eingefügt MJJ
		//alert(imgClose);
	};
	
	CTp.collapseItemById = function(_id){		
		var n = this.nodes;
		for (var i = 0; i < this.nodes.length; i++)
		  if (n[i].type && n[i].state && n[i]._id == _id) 				
				n[i].setState();		
	};
	CTp.expandItemById = function(_id){
		var n = this.nodes;
		for (var i = 0; i < n.length; i++)
			if (n[i].type && !n[i].state && n[i]._id == _id) 
				n[i].setState();		
	};
	CTp.collapseItemByText = function(text){
		var n = this.nodes;
		for (var i = 0; i < n.length; i++)
			if (n[i].type && n[i].state && n[i].text.indexOf("&nbsp;" + text)==0) 
				n[i].setState();		
	};
		
	CTp.expandItemByText = function(text){
		var n = this.nodes;
		for (var i = 0; i < n.length; i++){
			if (n[i].type && !n[i].state && n[i].text.indexOf("&nbsp;" + text)==0) n[i].setState();
		}	
	};
	
	CTp.expandItemByTextMJJ = function(text){
		var n = this.nodes;
		//for (var i = 0; i < n.length; i++){
			//if (n[i].type && !n[i].state && n[i].text.indexOf("&nbsp;" + text)==0) n[i].setState();
			CT_setStyle(this, ['" + over.toString().replace(new RegExp(",", "ig"), "','") + "'], '" + so.css + "', false);
		//}	
	};
	//-->
};
function CNodeTree(id, parent, type, state, text, _id, onopen, onclose, action, tree, isf, isl, style, styleover){
	var t = this;
	t.id = id;
	t._id = _id;
	t.type = type; 
	t.state = (Undef(state)) ? 0 : state*1;
	t.tree = tree;		
	t.action = action;
	t.text = (Def(text) && text.indexOf("<") != 0) ? "&nbsp;" + text : text;
	t.parent = parent;
	t.isFirst = isf;
	t.isLast = isl;	
	t.onopen = onopen;
	t.onclose = onclose;	
	t.imgOpen = '';
	t.imgClose = '';		
	t.style = style;	
	t.styleover = styleover;				
};
{
var CNp =  CNodeTree.prototype;    
   CNp.getChildren = function(){
   	var n = this.tree.nodes, c = [];
   	for (var i = 0; i < n.length; i++){
   		if (n[i].parent == this) c[c.length] = n[i];
   	};   	
   	return c;
   };
   CNp.countChildren = function(onlyVisible){
   	var c = this.getChildren(), count = (onlyVisible) ? 0 : c.length;
   	for (var i=0; i < c.length; i++) {
   		if (onlyVisible){
   			if ((c[i].type && !c[i].state) || !c[i].type) count++;
   			else count += c[i].countChildren(onlyVisible) + 1;
   		}else{	   			
   			count += c[i].countChildren(onlyVisible);
   		};
   	};	   	
   	return count;
   }; 
   CNp.heightChildren = function(onlyVisible){
   	var c = this.getChildren(), height = 0; 
   	var s = (Def(this.style)) ? this.style : this.tree.style; 	   	
   	for (var i=0; i < c.length; i++) {   		   		
   		if (Undef(s.size)) height += CT_getHeight(c[i].getID("node"));   		   		
   		if (onlyVisible){
   			if (c[i].type && c[i].state) height += c[i].heightChildren(onlyVisible);
   		}else{	   			
   			height += c[i].heightChildren(onlyVisible);
   		};
   	};	   	   	   	
   	return height;
   };    
   CNp.setState = function(state, onlyVisible){   	   	
   	/*STD_UNREG
   	if (Undef(CodeThat.l) || !CodeThat.l.length) return;
   	*/
   	var t = this; 	   	
   	//close other open
		if (t.tree.singlecol && t.type && !t.state){
			var n =  (Def(t.parent)) ?  t.parent.getChildren() : t.tree.getRoot();						
			for (var i=0; i < n.length;i++){
			 if (n[i].type && n[i].state && n[i].id != t.id){			 			 	
			   if (ua.oldB) n[i].setStateOldB()
			   else n[i].setState_();
			 };  
			}; 
		};	   			
		//set state	
		if (ua.oldB) t.setStateOldB(state, onlyVisible)
		else t.setState_(state);							   			
   };      
	CNp.setState_ = function(state){		
		var t = this; 						
		if (Undef(state)) state = (!t.state)*1;
		t.state = state;				
		var o = CodeThat.findElement(t.getID("tn"));
		var o1 = CodeThat.findElement(t.getID("tb"));						
		if (Def(o) && Def(o1))
		 if (t.state) {		 	
		 	o.style.display = "block";
		 	o.style.visibility = "visible";				 	
		 	o1.src = t.imgOpen;
		 } else {		 	
		 	o.style.display = "none";		
		 	o.style.visibility = "hidden";			 			 	
		 	o1.src = t.imgClose;
		 };		
		 CodeThat.writeCookie(t.tree.id + t.id, t.state, 86400000);
		 if (t.state && Def(t.onopen)) eval(t.onopen);
		 if (!t.state && Def(t.onclose)) eval(t.onclose);		
	 };		 
	 
	 CNp.setStateOldB = function(state, onlyVisible){	 		 		 		 	
	 	var t = this;
	 	if (Undef(state)) state = (!t.state)*1;
	 	if (Undef(onlyVisible)) onlyVisible = true;	 	
   	t.state = state;
   	
   	var s = (Def(t.style)) ? t.style : t.tree.style;
   	
   	var size = s.size;
 		if (Def(size) && Undef(size.length)) size = [size.width, size.height];
 		if (Undef(size)) size = ((t.tree.lined)? [100,18]:[100,20]); 		
   	
   	var shadow = s.getShadow();	
		var offset = s.getOffset();	
		var offsety = 0, top = 0, height = 0, o, i, c;	
								
		offsety = (size[1]*1 + offset[1]*1 + ((Def(shadow)) ? shadow[0]*1 : 0));				
		
		if (t.tree.lined) offsety -= 1;				
		if (ua.nn4 && Def(shadow)) offsety += shadow[0]*1;		
		c = t.countChildren(onlyVisible);				 		
		height = t.heightChildren(onlyVisible);					
		if (height < offsety*c || (height-offsety*c)<10*c || t.tree.lined) height = c*offsety;		
		
				
		if (t.state) {		 			 				 	
			CT_setImgSrc(t.getID("tb"), t.imgOpen);			 	
			o = CodeThat.findElement(t.getID("node"));			 			 				 	
			if (Def(o)) top = (ua.nn4)	? o.top : o.style.top;							
			if (t.isFirst) top -= offset[1];
			for (i = t.id + c + 1; i < t.tree.nodes.length; i++){
				o = CodeThat.findElement(t.tree.nodes[i].getID("node"));			 		
				if (Undef(o)) continue;
				if (ua.nn4) o.top += height
				else o.style.top += height;
			};			 	
			t.setVisibility('visible', [offsety, top]);			 	
		} else {		 			 				 	
			CT_setImgSrc(t.getID("tb"), t.imgClose);			 			 			 	
			t.setVisibility(((ua.nn4) ? 'hide' : 'hidden'), [offset, top]);			 				 	
			for (i = t.id + c + 1; i < t.tree.nodes.length; i++){
				o = CodeThat.findElement(t.tree.nodes[i].getID("node"));
				if (Undef(o) || (ua.nn4 && o.visibility=='hide') || (!ua.nn4 && o.style.visibility=='hidden')) continue;			 						
				if (ua.nn4) o.top -= height;
				else o.style.top -= height;			 		
			};
		};				 
		 //<!--
		 CodeThat.writeCookie(t.tree.id + t.id, t.state, 86400000);
		 //-->
		 if (t.state && Def(t.onopen)) eval(t.onopen);
		 if (!t.state && Def(t.onclose)) eval(t.onclose);				 
		 var last = t.tree.nodes[t.tree.nodes.length-1].getID("node");
		 if (Def(CodeThat.findElement(last))){	
		 	rect[3]=CT_getTop(last) + CT_getHeight(last);		 	
		 };
	};		
	CNp.setVisibility = function(value, pos){	   	   	
	  var c = this.getChildren(), o;
	  for (var i = 0; i < c.length; i++){
	  		pos[1] += pos[0];	  			  		
	  	   o = CodeThat.findElement(c[i].getID("node"));	  	   
	  	   if (Def(o)){	  	   	
	  	   	if (ua.nn4) {
	  	   		o.visibility = value;	  	   		
	  	   		if (value == 'visible') o.top = pos[1];	  	   		
	  	   	} else {
	  	   		o.style.visibility = value;
	  	   		if (value == 'visible')o.style.top = pos[1];	  	   		
	  	   	}		  	   		   
	  	   	if (c[i].type && !c[i].state) continue;
				c[i].setVisibility(value, pos);				
			};	
		};	 		
	};	
   CNp.getID = function(prefix){
   	return prefix + this.tree.id + "_" + this.id;
   };	
	CNp.toHTML = function(level){	
		/*STD
	   var idx = level.indexOf("<td", 0), depth=0; 
   	while (idx > -1){
   		idx = level.indexOf("<td", idx+1);
   		depth++;	   		
   	};
   	if (depth > 3) return "";
		*/	
		
		var t = this;			
		var c = [], HTML = "", s = t.style, so = t.styleover;
		var img, id, offset = ['', '', ''], shadow, imgOpen, imgClose;
		
		if (Undef(s)) s = t.tree.style; 
		if (Undef(so)) so = t.tree.styleover;
		
		s.setImg();  
		
		shadow = s.getShadow();	
				
		offset = s.getOffset();	
		offset[0] = (offset[0] > 1) ? "<img src=\"" + CT_IMG_BLANK + "\" width=" + offset[0] + " border=0 height=1" + ((!t.tree.lined)?" align=left":"") + ">" : "";
		offset[1] = (offset[1] > 1) ? "<img src=\"" + CT_IMG_BLANK + "\" height=" + offset[1] + " border=0 width=1>" : "";
		offset[2] = (Def(s.imgline)) ? "<img src=\"" + s.imgline + "\" border=0" + ((!t.tree.lined)?" align=left":"") + " id=line>" : offset[0];
		
		//set size into offset
		if (Def(s.size) && Def(s.size.length) && Def(s.imgline)) {			 
			 level = level.replace(/<img src="(\S)+" border=0 id=line>/gi, offset[2]);			 			 
		}; 		  
		
		if (t.type){
			if (t.isFirst) {t.imgOpen = s.imgdiropen_f; t.imgClose = s.imgdir_f;}
				else if (t.isLast)  {t.imgOpen = s.imgdiropen_l; t.imgClose = s.imgdir_l;}
					else {t.imgOpen = s.imgdiropen; t.imgClose = s.imgdir;};
		}else{
			if (t.isFirst) {t.imgOpen = t.imgClose = s.imgitem_f;}
				else if (t.isLast)  {t.imgOpen = t.imgClose = s.imgitem_l;}
					else {t.imgOpen = t.imgClose = s.imgitem;};
		};		
		
			
		if (Undef(t.imgOpen)) t.imgOpen = CT_IMG_BLANK;		
		if (Undef(t.imgOpen)) t.imgClose = CT_IMG_BLANK;		
		imgOpen = "<img id=\"" + t.getID("tb") + "\" src=\"" + t.imgOpen + "\" border=0" + ((t.tree.def.separator && t.imgOpen==CT_IMG_BLANK && level != "")?" width=" + s.getOffset()[0] :"") + ">";
		imgClose = "<img id=\"" + t.getID("tb") + "\" src=\"" + t.imgOpen + "\" border=0" + ((t.tree.def.separator && t.imgOpen==CT_IMG_BLANK && level != "")?" width=" + s.getOffset()[0] :"") + ">";
		//alert(imgOpen);
		
		//MJJ imgClose = "<img id=\"" + t.getID("tb") + "\" src=\"" + t.imgClose + "\" border=0>";
		//imgClose = "<img id=\"" + t.getID("tb") + "\" src=\"" + t.imgClose + "\" border=0" + ((t.tree.def.separator && t.imgClose==CT_IMG_BLANK && level != "")?" width=" + s.getOffset()[0] :"") + ">";
		
				
		if (t.type)	img = (t.state) ? imgOpen : imgClose;
		else img = imgOpen;		
		
		if (t.tree.lined) HTML += "<table border=0 cellpadding=0 cellspacing=0><tr>" + level;
		else HTML += "<table border=0 cellpadding=0 cellspacing=0 " + ((s.form)?"width="+t.tree.def.style.fixwidth:"") + "><tr>"
		
		if (!(Def(t.text) && t.text.toLowerCase().indexOf("<img")==0)) HTML += "<td><a " + t.actionOf() + ">" + img + "</a></td>";
				
		HTML += "<td " + ((!s.form) ? "nowrap" : "")+ ">";				
				
		if (s.form && !t.type)	HTML += "<font style=\"" + s.getText() + "\" " + s.getCss() + " " + so.replace(new RegExp("false", "ig"), "true") + ">" + t.text + "</font>";		
		else HTML += "<a " + t.actionOf() + " style=\"text-decoration:none;font-weight:normal;\"><font style=\"" + s.getText() + "\" " + s.getCss() + " " + so.replace(new RegExp("false", "ig"), "true") + ">" + t.text + "</font></a>";		
		
		HTML += "</td>";
		HTML += "</tr></table>";
				
		HTML = "<div id=\"" + t.getID("node") + "\" style=\"" + s.getSize() + s.getBorder() + s.getBg() +  "\" " + s.getCss() + " " + so + ">"
		+ HTML + "</div>";
		
		if (!t.tree.lined){
			if (Def(shadow)) {				
				HTML = "<table cellpadding=0 cellspacing=0 border=0>"
				+ "<tr><td colspan=2 rowspan=2>" + HTML + "</td>"
				+ "<td><img src=\"" + CT_IMG_BLANK + "\" width=" + shadow[0] + " height=" + (shadow[0] + 1) + " border=0></td></tr>"
				+ "<tr><td width=" + shadow[0]+ " height=" + (((Def(s.size) && Def(s.size.length))?s.size[1]:20)-shadow[0]-1) + " bgcolor=" + shadow[1] + "><img src=\"" + CT_IMG_BLANK + "\" width=1 height=1 border=0></td></tr>"
				+ "<tr><td width=" + shadow[0] + "><img src=\"" + CT_IMG_BLANK + "\" width=" + (shadow[0] + 1) + " height=1 border=0></td>"
				+ "<td width=" + (((Def(s.size) && Def(s.size.length))?s.size[0]:200)-shadow[0]-1) + "  bgcolor=" + shadow[1] + "><img src=\"" + CT_IMG_BLANK + "\" width=" + shadow[0]+ " height=" + shadow[0]+ " border=0></td>"
				+ "<td width=" + shadow[0] + "  bgcolor=" + shadow[1] + "><img src=\"" + CT_IMG_BLANK + "\" width=" + shadow[0]+ " height=" + shadow[0]+ " border=0></td></tr></table>";								
			};
						
			HTML = "<table border=0 cellpadding=0 cellspacing=0 " + ((Def(t.tree.def.style) && Def(t.tree.def.style.fixwidth))? "width=100%" : "") + ">"
				+ ((Def(offset[1]) && !t.isFirst) ? "<tr><td>" + offset[1] + "</td></tr>" : "")
				+ "<tr>" + level + "<td width=99%>" + HTML
				+ "</td></tr></table>";					
		};
				
		if (t.type){
			HTML += "\n<div id=\"" + t.getID("tn") + "\" style=\"display:" + ((t.state) ? "block" : "none") + ";visibility: " + ((t.state) ? "visible" : "hidden") + "\">";
			level += "<td>" + ((t.isLast) ?  offset[0]  :  offset[2]) + "</td>";
			c = t.getChildren();
			for (var i = 0; i < c.length; i++) HTML += c[i].toHTML(level);											
			HTML += "</div>";
		};	
		return HTML;
	};
	
	CNp.toHTMLOldB = function(level,pos,visible){		
		/*STD
	   var idx = level.indexOf("<td", 0), depth=0; 
   	while (idx > -1){
   		idx = level.indexOf("<td", idx+1);
   		depth++;	   		
   	};
   	if (depth > 3) return "";
		*/
		
		var t = this;	
		var c = [], HTML = "",HTML1 = "", s = t.style, so = t.styleover;
		var id, offset = [5,0,''], offsetx, offsety, imgOpen, imgClose;		
		
		if (Undef(s)) s = new CStyle(t.tree.style);
		if (Undef(so)) so = new CStyle(t.tree.def.styleover);
		if (Def(so) && Undef(so.css)) so.css = s.css;
		if (ua.opera5) s.bgcolor = (Def(s.bgcolor)) ? s.bgcolor: ((Def(document.body) && Def(document.body.bgcolor)) ? document.body.bgcolor : '#ffffff');
		
		var useDual = t.tree.useDual && !ua.opera6 && Def(so);
		
		s.setImg();
		
 		var size = s.size;
 		if (Def(size) && Undef(size.length)) size = [size.width, size.height];
 		if (Undef(size)) size = ((t.tree.lined)? [100,18]:[100,20]); 		
 		
 		var shadow = s.getShadow();
 		if (Def(s.itemoffset)) offset = s.getOffset(); 
 		offsetx = offset[0]; offsety = (t.tree.def.lined) ? 0 : offset[1]; offset[1] = offsety;
 		offset[0] = (offset[0] > 1) ? "<img src=\"" + CT_IMG_BLANK + "\" width=" + offset[0] + " border=0 height=1 hspace=0 vspace=0>":"";
 		offset[1] = (offset[1] > 1) ? "<img src=\"" + CT_IMG_BLANK + "\" height=" + offset[1] + " border=0 width=1 hspace=0 vspace=0>":"";
 		offset[2] = (Def(s.imgline)) ? "<img src=\"" + s.imgline + "\" border=0 hspace=0 vspace=0 id=line>" : offset[0];
 		
 		//set size into offset
		if (Def(s.size) && Def(s.size.length) && Def(s.imgline) && ua.nn4) {			 
			 level = level.replace(/<img src="(\S)+" border=1 hspace=0 vspace=0 align=left id=line>/gi, offset[2]);			 			 
		}; 
		
		if (t.type){
	  		if (t.isFirst) {t.imgOpen = s.imgdiropen_f; t.imgClose = s.imgdir_f;}
		 	else if (t.isLast) {t.imgOpen = s.imgdiropen_l; t.imgClose = s.imgdir_l;}
		 		  else {t.imgOpen = s.imgdiropen; t.imgClose = s.imgdir;};
	 	}else{
			 if (t.isFirst) {t.imgOpen = t.imgClose = s.imgitem_f;}
		 	 else if (t.isLast) {t.imgOpen = t.imgClose = s.imgitem_l;}
		 		   else {t.imgOpen = t.imgClose = s.imgitem;};
	 	};
	 	id = t.getID("tb"); imgOpen = t.imgOpen; imgClose = t.imgClose;
	 	
	 	if (Undef(t.imgOpen)) t.imgOpen = CT_IMG_BLANK;		
		if (Undef(t.imgOpen)) t.imgClose = CT_IMG_BLANK;		
		imgOpen = "<img name=\"" + t.getID("tb") +"\" id=\"" + t.getID("tb") + "\" src=\"" + t.imgOpen + "\" border=0 vspace=0 hspace=0 " + ((t.tree.def.separator && t.imgOpen==CT_IMG_BLANK && level != "")?" width=" + s.getOffset()[0] :"") + ">";
		imgClose = "<img name=\"" + t.getID("tb") +"\" id=\"" + t.getID("tb") + "\" src=\"" + t.imgOpen + "\" border=0 vspace=0 hspace=0 " + ((t.tree.def.separator && t.imgOpen==CT_IMG_BLANK && level != "")?" width=" + s.getOffset()[0] :"") + ">";
			
		// MJJ imgClose = "<img name=\"" + t.getID("tb") +"\" id=\"" + t.getID("tb") + "\" src=\"" + t.imgClose + "\" border=0 vspace=0 hspace=0>";
	 	
	 	if (t.type){
	 		img = (t.state) ? imgOpen:imgClose;	 		
	 	}else{	 		
	 		img = imgOpen;
	 	};
	 	
	 	HTML1 = HTML;
	 	
	 	if (t.tree.lined) HTML += "<table border=0 cellpadding=0 cellspacing=0 style = \"" + s.getBorder() + s.getBg() + "\" " + s.getCss() + ((ua.opera6 || (ua.opera5 && !t.useDual)) ? s.getOver(so): "") + "><tr>" + level
 	 	else HTML += "<table border=0 cellpadding=0 cellspacing=0 style=\"" + s.getBg() + "\"  " + ((ua.opera)? s.getSizeTable() : "") + "><tr>";
 	 	
 	 	if (useDual)
 	 	 if (t.tree.lined) HTML1 += "<table border=0 cellpadding=0 cellspacing=0 style=\"" + s.getBorder() + so.getBg() + "\" " + so.getCss() + "><tr>" + level
 	 	 else HTML1 += "<table border=0 cellpadding=0 cellspacing=0 style=\"" + so.getBg() + "\" " + ((ua.opera)? s.getSizeTable() : "") + "><tr>";	
 	 	
 	 	HTML += "<td nowrap align=left>"; 
 	 	HTML += (t.type) ? "<a " + t.actionOf() + ">" + img + "</a>":img; 
	 	HTML += "</td><td  " + ((!s.form) ? "nowrap" : "") + " align=left >";
 	 	
 	 	if (useDual){
 	 		HTML1 += "<td nowrap align=left>"; 
 	 		HTML1 += (t.type) ? "<a " + t.actionOf() + ">" + img + "</a>":img;
 	 		HTML1 += "</td><td  " + ((!s.form) ? "nowrap" : "") + " align=left>";
 	 	};	
 	 	
	 	if (s.form){
			 HTML += "<font style=\"" + so.getText() + "\" " + so.getCss() + " >" + t.text + "</font>";
			 HTML1 += "<font style=\"" + so.getText() + "\" " + so.getCss() + " >" + t.text + "</font>";			 
		}else{
			 if (useDual) HTML1 += "<a " + t.actionOf() + " style=\"text-decoration:none;font-weight:normal;\"><font style=\"" + so.getText() + "\" " + so.getCss() + " >" + t.text + "</font></a>";
			 HTML += "<a " + t.actionOf() + " style=\"text-decoration:none;font-weight:normal;\"><font style=\"" + s.getText() + "\" " + s.getCss() + " " + ((ua.opera6 || (ua.opera5 && !t.useDual)) ? s.getOver(so).replace(/false/ig,"true"): "") + ">" + t.text + "</font></a>";			 
		};
		
		HTML += "</td></tr></table>";
		if (useDual) HTML1 += "</td></tr></table>";
		
		if (!t.tree.lined){
			HTML = "<div style = \"" + s.getBorder() + "\" " + s.getCss() + ((ua.opera6 || (ua.opera5 && !t.useDual)) ? s.getOver(so): "") + ">" + HTML + "</div>";
			if (useDual) HTML1 = "<div style=\"" + s.getBorder() + "\" " + so.getCss() + ">" + HTML1 + "</div>";
		};	
		 
	 	if (!t.tree.lined){
	 		if (Def(shadow)) {			 
			 HTML = "<table cellpadding=0 cellspacing=0 border=0 " + s.getSizeTable() + ">"
			  + "<tr><td width=99% style=\"" + s.getBg() + "\">" + HTML + "</td><td valign=top bgcolor=" + shadow[1] + "><div style = \"background-color:" + s.bgcolor + ";width:" + shadow[0] + ";height:" + shadow[0] + ";\"><img src = \"" + CT_IMG_BLANK + "\" width = " + shadow[0] + " height = " + shadow[0] + " border = 0></div></td></tr>"
			  + "<tr><td colspan=2 align=left bgcolor=" + shadow[1] + " height=" + shadow[0] + "><div style=\"background-color:" + s.bgcolor + ";width:" + shadow[0] + ";height:" + shadow[0] + ";\"><img src = \"" + CT_IMG_BLANK + "\" width = " + shadow[0] + " height = " + shadow[0] + " border=0></div></td></tr>"
			  + "</table>";
			  
			 if (useDual){
			 HTML1 = "<table cellpadding=0 cellspacing=0 border=0 " + s.getSizeTable() + ">"
			  + "<tr><td width=99% style=\"" + s.getBg() + "\">" + HTML1 + "</td><td valign=top bgcolor=" + shadow[1] + "><div style=\"background-color:" + s.bgcolor + ";width:" + shadow[0] + ";height:" + shadow[0] + ";\"><img src=\"" + CT_IMG_BLANK + "\" width=" + shadow[0] + " height=" + shadow[0] + " border=0></div></td></tr>"
			  + "<tr><td colspan=2 align=left bgcolor=" + shadow[1] + " height = " + shadow[0] + "><div style=\"background-color:" + s.bgcolor + ";width:" + shadow[0] + ";height:" + shadow[0] + ";\"><img src = \"" + CT_IMG_BLANK + "\" width=" + shadow[0] + " height=" + shadow[0] + " border=0></div></td></tr>"
			  + "</table>";
			 };
			};//shadow

	
			HTML = ((Def(offset[1]) && !t.isFirst) ? offset[1] : "")
			+ "<table border=0 cellpadding=0 cellspacing=0 background=\"" + CT_IMG_BLANK + "\">"			
			+ "<tr>" + level + "<td width=99% " + ((ua.opera5 && !t.tree.lined)?"style=\"background-color:" + s.bgcolor + "\"":"") + ">" + HTML
			+ "</td></tr></table>";
			if (useDual){
				HTML1 = ((Def(offset[1]) && !t.isFirst) ? offset[1] : "")
				+ "<table border=0 cellpadding=0 cellspacing=0 background=\"" + CT_IMG_BLANK + "\">"			
				+ "<tr>" + level + "<td width=99% " + ((ua.opera5 && !t.tree.lined)?"style=\"background-color:" + s.bgcolor + "\"":"") + ">" + HTML1
				+ "</td></tr></table>";
			};	  	  
	  };//!lined
	  
	 if (visible) HTML = "<div style=\"position:absolute; top:" + pos[2] + ";left:" + pos[0] + ";" + ((!s.form) ? "width:" + size[0] + "; height:" + size[1] + ";":"") + "visibility:visible;\" id=\"" + t.getID("node") + "\" " + ((ua.opera5 && useDual) ? " onMouseOver=\"CT_OnOver(null,'" + t.getID("node") + "')\" ":"") + ">"
	  + HTML
	  + "</div>";
	 else HTML = "<div style=\"position:absolute; top:" + pos[1] + ";left:" + pos[0] + ";" + ((!s.form) ? "width:" + size[0] + "; height:" + size[1] + ";":"") + " visibility:hidden;\" id=\"" + t.getID("node") + "\" " + ((ua.opera5 && useDual) ? " onMouseOver=\"CT_OnOver(null,'" + t.getID("node") + "')\" ":"") + ">"
	  + HTML
	  + "</div>";
	 if (useDual){
	 HTML1 = "<div style = \"position:absolute;top:" + pos[1] + ";left:" + pos[0] + ";" + ((!s.form) ? "width:" + size[0] + "; height:" + size[1] + ";":"")  + "visibility:hidden;\" id=\"" + t.getID("node") + "_over\">"
	  + HTML1
	  + "</div>";
	 HTML += HTML1;
	};
		
	pos[0] = pos[0]*1;pos[1] = pos[1]*1;pos[2] = pos[2]*1;
	if (visible){
		 pos[2] += ((Def(shadow)) ? shadow[0]*1:0 ) + size[1]*1 + offsety*1;
		 if (t.tree.lined) pos[2] -= 1;
		 if (t.isFirst) pos[2] -= offsety*1;
		 if (ua.nn4 && Def(shadow)) pos[2] += shadow[0]*1;
	 };
	 if (t.type) visible = (visible && t.state);
	 pos[1] += ((Def(shadow)) ? shadow[0]*1:0 ) + size[1]*1 + offsety*1;
	 if (t.tree.lined) pos[1] -= 1;
	 if (t.isFirst) pos[1] -= offsety*1;
	 if (ua.nn4 && Def(shadow)) pos[1] += shadow[0]*1;
	 if (t.type){
		 if (ua.opera) level += "<td " + ((t.isLast && s.imgline!=CT_IMG_BLANK) ? "background=\"" + CT_IMG_BLANK + "\"" : "background=\""+s.imgline+"\" ") + ((ua.opera5 && !t.tree.lined)?"style=\"background-color:" + s.bgcolor + "\"":"") + ">" + offset[0] + "</td>";
		 else level += "<td>" + ((t.isLast) ? offset[0] : offset[2]) + "</td>";
		 c = t.getChildren();
		 for (var i = 0; i < c.length; i++) HTML += c[i].toHTMLOldB(level,pos,visible);
	 };
 	 return HTML;
 	};
	
	CNp.actionOf = function(o){
	  var t = this, action = "";
	  
	  if (Undef(o)) o = t.action;
	  	  
	  var js = (Def(o))? o.js : "", jsover = (Def(o))?o.jsover:"", jsout = (Def(o))?o.jsout:"",
	  url = (Def(o) && Def(o.url)) ? o.url : "javascript:void(0)", 
	  target = (Def(o) && Def(o.target))?o.target:t.tree.def.target, ea = '', ca = '';	   
	  
	  if (Def(t.style) && (Def(t.style.dontexpandactionfolders) || Def(t.style.dontcollapseactionfolders))) {	 	  		  		  		  		  	
	    ea = new String(t.style.dontexpandactionfolders).toLowerCase();
	    ca = new String(t.style.dontcollapseactionfolders).toLowerCase();
	    ea = !(ea == 'false' || ea == '0'); 
	    ca = !(ca == 'false' || ca == '0');
	    //no action on expand
	    if (!ea && ca && Def(js)){
	    	js = "if (CodeThatTreeRoots['" + t.tree.id + "'].nodes["+t.id+"].state) " + js;
	    };
	    //no action on collapse
	    if (!ca && ea && Def(js)){
	    	js = "if (!CodeThatTreeRoots['" + t.tree.id + "'].nodes["+t.id+"].state) " + js;	
	    };
	    //no action
	    if (!ea && !ca) js = "";
	  };		
		
	  if (t.type)
		   if (Undef(o)){		  	
		  	 	if (ua.oldB) o = {url : "javascript:CodeThatTreeRoots[&quot;" + t.tree.id + "&quot;].nodes[" + t.id + "].setState()"};		
		  	 	else o = {js : "CodeThatTreeRoots[&quot;" + t.tree.id + "&quot;].nodes[" + t.id + "].setState()"};				  		  	 
		  	 	js = (Def(o) && Def(o.js))? o.js : "";		  	 	
		   }else{
		   	js = "{" + js + "; CodeThatTreeRoots['" + t.tree.id + "'].nodes["+t.id+"].setState();}";	  		
		   	if (ua.oldB && Undef(o.url)) {o.url = "javascript:" + js;}	  			 
		   };	
		   
		if (Def(o) && Def(o.url)) url = o.url;
	   if (ua.oldB && url.indexOf(js) > -1) js="";		   
	   if (url.indexOf("javascript:") > -1) target="";	
	   			
		if (Def(o)){
			if (Def(url)) action = "href=\"" + url + "\"";			
			if (Def(js)) action +=  " onClick=\"" + js +  "\"";						
			if (Def(target)) action += " target=\"" + target + "\"";									
			if (Def(o.title)) action += " title=\"" + o.title + "\"";
		};
			
		if (t.tree.overexpand || (Def(t.style) && t.style.overexpand))  jsover = "{if (!CodeThatTreeRoots['" + t.tree.id + "'].nodes[" + t.id + "].state) CodeThatTreeRoots['" + t.tree.id + "'].nodes[" + t.id + "].setState();}" + jsover;
		if (Def(jsover)) action += " onMouseOver=\"" + jsover + "\"";
		if (Def(jsout)) action += " onMouseOut=\"" + jsout+ "\"";
		
		return action;
	};
};
function CStyle (s){		
	var i, t = this; if (Undef(s)) s = {};				
	t.pn = ['css', 'color', 'bgcolor', 'bgimg', 'border', 'shadow','z', 'size', 'itemoffset', 'imgitem', 'imgitem_f', 'imgitem_l', 'imgdir', 'imgdir_f', 'imgdir_l', 'imgdiropen', 'imgdiropen_f', 'imgdiropen_l','imgline', 'form', 'lined', 'overexpand', 'dontexpandactionfolders', 'dontcollapseactionfolders'];					
	for (i = 0; i < t.pn.length; i++) {
		t[t.pn[i]] = (Def(s[t.pn[i]]))?s[t.pn[i]]:'';						
	};			
	t.form = (Def(t.form) && t.form*1);
	t.lined = (Def(t.lined) && t.lined*1);	
	t.overexpand = (Def(t.overexpand) && t.overexpand*1);		
	t.overexpand = (Def(t.overexpand) && t.overexpand*1);			
};
{
	CSp = CStyle.prototype;	
	
	CSp.add = function(s){
		var i; if (Undef(s)) return;
		for (i = 0; i < this.pn.length; i++){
			if (Def(s[this.pn[i]]) || s[this.pn[i]] == "")
				this[this.pn[i]] = s[this.pn[i]];					
		};	
	};
	
	CSp.getOffset = function(){
		var x = (Def(this.itemoffset) && Def(this.itemoffset.x)) ? this.itemoffset.x : 20;
		var y = (Def(this.itemoffset) && Def(this.itemoffset.y)) ? this.itemoffset.y : 0;						
		if (Def(this.shadow)) y = y*1 + this.shadow.width;							
		if (this.lined) y = 0;
		return [x, y];
	};	
	
	CSp.getSize = function(){		
		var s = this.size;
		if (Def(s) && Undef(s.length)) s = [s.width, s.height];
		if (Def(s)) s = "width:" + s[0] +  ";height:" + s[1] + ";"
		else if (ua.oldB || ua.ie) s = "width:100;";			 
		return s;
	};
		
	CSp.getSizeTable = function(){
		return (Def(this.size)) ? "width=" + this.size[0] +  " height=" + this.size[1] : "width=100 height=20";		
	};	
	CSp.getText = function(){
		return ((Def(this.color)) ? "color:" + this.color + ";" : "");
	};
	CSp.getBorder = function(){
		var s = "";
		if (Def(this.border)){
			s += "border-style:solid;"
			if (Def(this.border.color)) s += "border-color:" + this.border.color + ";";
			if (Def(this.border.width)) s += "border-width:" + this.border.width + "px;";			
		};
		return s;
	};
	CSp.getShadow = function(){				
		if (Def(this.shadow)){			
			return [this.shadow.width, ((Def(this.shadow.color)) ? this.shadow.color : '#000000')]
		} else
			return null;			
	};
	CSp.getCss = function(){
		return (Def(this.css)) ? " class=\"" + this.css + "\"" : "";
	};
	
	CSp.getBg = function(){
		if (ua.oldB) 
			return (((Def(this.bgcolor)) ?  "background-color:" + this.bgcolor + ";" : ((ua.opera)? "background-color:#ffffff;":""))
			+ ((Def(this.bgimg)) ? "background-image:url(" + this.bgimg + ");" : "background-image:url(" + CT_IMG_BLANK + ");")
			+ ((Def(this.z)) ?  "z-index: " + this. z + ";" : ""))			
		else
			return "background-color:" + (((Def(this.bgcolor)) ? this.bgcolor : "transparent") + ";")
		+ ((Def(this.bgimg)) ? "background-image:url(" + this.bgimg + ");" : "")
		+ ((Def(this.z)) ?  "z-index: " + this.z + ";" : "");
	};	
	
	CSp.getOver = function(so){
		if (Undef(so)) return "";
		var out = new Array(3), over = new Array(3);
		if (Def(so.color) || Def(this.color)){
			over[0] = (Def(so.color)) ? so.color : '';
			out[0] = (Def(this.color)) ? this.color : '';   				
		}else{
			over[0]=out[0]='-';
		};
		if (Def(so.bgcolor)){
			over[1] = so.bgcolor;
			out[1] = (Def(this.bgcolor)) ? this.bgcolor : ((ua.oldB)? '#ffffff' :'');   				
		}else{
			over[1]=out[1]='-';
		};
		if (Def(so.bgimg) || Def(this.bgimg)){
			over[2] = 'url(' + ((Def(so.bgimg)) ? so.bgimg : CT_IMG_BLANK) + ')';
			out[2] = 'url(' + ((Def(this.bgimg)) ? this.bgimg : CT_IMG_BLANK) + ')';   				
		}else{
			over[2]=out[2]='-';
		};	
		//alert(" onMouseOver=\"CT_setStyle(this, ['" + over.toString().replace(new RegExp(",", "ig"), "','") + "'], '" + so.css + "', false)\" onMouseOut=\"CT_setStyle(this, ['" + out.toString().replace(new RegExp(",", "ig"), "','") + "'], '" + this.css + "', false)\"");
		return " onMouseOver=\"CT_setStyle(this, ['" + over.toString().replace(new RegExp(",", "ig"), "','") + "'], '" + so.css + "', false)\" onMouseOut=\"CT_setStyle(this, ['" + out.toString().replace(new RegExp(",", "ig"), "','") + "'], '" + this.css + "', false)\"";
		//MJJ - Versuch HighLight
		//return " onMouseOver=\"CT_setStyle(this, ['" + out.toString().replace(new RegExp(",", "ig"), "','") + "'], '" + so.css + "', false)\" onMouseOut=\"CT_setStyle(this, ['" + over.toString().replace(new RegExp(",", "ig"), "','") + "'], '" + this.css + "', false)\"";
	};		
	
	CSp.setImg = function(){				
		var i, img;			
		if (Undef(this.imgitem_l)) this.imgitem_l = this.imgitem;
		if (Undef(this.imgitem_f)) this.imgitem_f = this.imgitem;
		if (Undef(this.imgdir_l)) this.imgdir_l = this.imgdir;
		if (Undef(this.imgdir_f)) this.imgdir_f = (Def(this.imgdir_l)) ? this.imgdir_l : this.imgdir;
		if (Undef(this.imgdiropen_l)) this.imgdiropen_l = this.imgdiropen;
		if (Undef(this.imgdiropen_f)) this.imgdiropen_f = (Def(this.imgdiropen_l)) ? this.imgdiropen_l : this.imgdiropen;						
		if (Undef(this.css)) this.css = '';		
	};	
};

var a = Array.prototype;

a.indexOf = function(element){	
		for (var z = 0; z < this.length; z++)
		 if (element.valueOf() == this[z].valueOf()) return z;
		return -1; 
};

var curID = "", rect = [0,0,100,400];
function CT_setStyle(o, p, c, isText){				
	var s =  ['color', 'backgroundColor', 'backgroundImage'];		
	var d = ['#000000', '#ffffff', 'url('+CT_IMG_BLANK+')'];
	if (isText) s.length = 1; //change only color		
	if (Def(o)){		
		for (var i=0; i < s.length; i++){
			if (p[i]=='-') continue;
			if (Undef(p[i]) && ua.oldB) o.style[s[i]]=d[i];				
			else o.style[s[i]] = p[i];			
		};
		if (Def(c)) o.className = c;										
	};	
};
function CT_setImgSrc(img, src){
	var i, j, l;	
	if (ua.nn4){				
	 for (j=0; j<window.document.layers.length; j++){	
	 	l = window.document.layers[j];
	 	if (Undef(l.document) || Undef(l.document.images)) continue;
		for (i=0; i < l.document.images.length; i++) 
			if (l.document.images[i].name == img)
				l.document.images[i].src = src;
	 };			
	}else{
		for (i=0; i < window.document.images.length; i++) 
			if (window.document.images[i].id == img)
				window.document.images[i].src = src;
	};
};
function CT_set(o, o1){
	if (Undef(o) || Undef(o1)) return;
	if (ua.nn4){
		o.visibility = 'hide';
		o1.top = o.top;
		o1.left = o.left;
		o1.width = o.width;
		o1.visibility = 'visible';
	}else{
		o.style.visibility = 'hidden';
		o1.style.top = o.style.top;
		o1.style.left = o.style.left;
		o1.style.width = o.style.width;
		o1.style.visibility = 'visible';
	};
};
function CT_OnOver(e, id){				
	var o, o1, o2;			
	if (Def(e)){
		o = e._e.target;
		id = o.id;		
	}else{
		o = CodeThat.findElement(id);
		if (Undef(o)) return;
	};	
	
	if (Def(id) && id != curID && id.indexOf("_over")==-1 && id.indexOf("node") > -1){		
		if (Def(curID)){
			o2 = CodeThat.findElement(curID);
			o1 = CodeThat.findElement(curID + "_over");
			CT_set(o1, o2);
		};		
		curID = id;
		o1 = CodeThat.findElement(id + "_over");
		CT_set(o, o1);
	};	 
};
function CT_OnMove(e){				
	var o = e._e.target, o1, o2;	
	if (Undef(o.id) && Def(curID) && (e.x < rect[0] || e.x > rect[2] || e.y < rect[1] || e.y > rect[3])){
   	o1 = CodeThat.findElement(curID);
   	o2 = CodeThat.findElement(curID + "_over");
   	CT_set(o2, o1);
   	curID = "";
   }      
};
var imgs=[], readyState=0; 
function CT_onClick(e){
	if (readyState < imgs.length && !ua.opera){		
		//make new img object?
		e._e.returnValue=false;		
	};
};

function CT_setRS(){		
	readyState++;	
};

