// 2009-10-12 [AP] Diese Funktion darf nur über die UDF DSSortingCode() aufgerufen werden
function dsfillsortselect (thisname,name,id,si,delim){
	dff=document.getElementById(thisname);
	for(i=dff.length; i>=0; i--)
		dff.options[i] = null
	elements=name.split(delim);
	value=id.split(delim);							
	for(i=0;i<elements.length;i++){
		dff.options[i]=new Option(elements[i],value[i].toLowerCase());
	}
	dff.selectedIndex=si;								
}			

//Dialog
var Dialog={
	container:null,
	content:null,
	shadow:null,
	classicshadowbox:'<table id="dsdlg_shadow" cellpadding="0" cellspacing="0">\
				<tbody>\
					<tr><td class="dsdlg_shadow_top_left">&nbsp;</td><td class="dsdlg_shadow_top">&nbsp;</td><td class="dsdlg_shadow_top_right">&nbsp;</td></tr>\
					<tr><td  class="dsdlg_shadow_left">&nbsp;</td>\<td class="dsdlg_shadow_middle">&nbsp;</td>\<td  class="dsdlg_shadow_right">&nbsp;</td></tr>\
					<tr><td class="dsdlg_shadow_bottom_left">&nbsp;</td><td class="dsdlg_shadow_bottom">&nbsp;</td><td class="dsdlg_shadow_bottom_right">&nbsp;</td></tr>\
				</tbody>\
			</table>',
	classicbox:'<div id="dsdlg_info" class="dsdlg_info_middle">\
				<div align="left" class="dsdlg_top"><div id="dsdlg_close"></div></div>\
				<div id="dsdlg_content"></div>\
				<div id="dsdlg_footer"></div>\
		</div>',
	shadowUnder: function(element) {
		var offset = element.cumulativeOffset();
		var dimensions = element.getDimensions();
		var style = {
			  left: (offset[0]-20) + 'px',
			  position: "absolute",
			  top: (offset[1]-20) + 'px',
			  zIndex: element.getStyle('zIndex') - 1
			};
		this.shadow.show();
		this.shadow.setStyle(style);
		this.shadow_middle.width=(dimensions.width-22) + 'px';
		this.shadow_middle.height=(dimensions.height-22) + 'px';
	  },
	blueshadowbox:'<table id="dsdlg_blue_shadow" cellpadding="0" cellspacing="0">\
				<tbody>\
					<tr><td class="dsdlg_blue_shadow_top_left">&nbsp;</td><td class="dsdlg_blue_shadow_top">&nbsp;</td><td class="dsdlg_blue_shadow_top_right">&nbsp;</td></tr>\
					<tr><td  class="dsdlg_blue_shadow_left">&nbsp;</td>\<td class="dsdlg_blue_shadow_middle">&nbsp;</td>\<td  class="dsdlg_blue_shadow_right">&nbsp;</td></tr>\
					<tr><td class="dsdlg_blue_shadow_bottom_left">&nbsp;</td><td class="dsdlg_blue_shadow_bottom">&nbsp;</td><td class="dsdlg_blue_shadow_bottom_right">&nbsp;</td></tr>\
				</tbody>\
			</table>',		
	bluebox:'<div id="dsdlg_blue_info" class="dsdlg_blue_info_middle">\
				<div align="left" class="dsdlg_blue_top"></div>\
				<div id="dsdlg_blue_content"></div>\
				<div id="dsdlg_blue_footer"></div>\
		</div>',
	iefix:null,
	design:'classic',
	parentDIV:null,
	timeout:null,
	effect:null,
	stopclose:null
};
Dialog.visible=function(){
	return Dialog.container.visible();
};

Dialog.ajaxMsg=function(url,design){
	clearTimeout(this.stopclose);	
	this.init(design);	
	new Ajax.Request(url, {
		method:'get',
		onComplete:function(transport) {			
			Dialog.content.update(transport.responseText);
		}
	});
};

Dialog.divMsg=function(divid,design){
	clearTimeout(this.stopclose);
	this.init(design);
	this.content.update($(divid).innerHTML);
};


Dialog.setMsg=function(msg,design){
	clearTimeout(this.stopclose);	
	this.init(design);
	this.content.update(msg);
};
Dialog.setFooter=function(text,design){
	clearTimeout(this.stopclose);
	this.init(design);
	this.footer.update(text);
};

Dialog.setSize=function(){
	
};
Dialog.setBounds=function(event){
	var left=Event.pointerX(event);
	var top=Event.pointerY(event);
	this.container.style.left=left+"px";
	this.container.style.top=top+"px";
	var clickX=event.clientX;
	var clickY=event.clientY;
	var contWidth=this.container.getWidth();
	var contHeight=this.container.getHeight();
	var viewWidth=document.viewport.getWidth();
	var viewHeight=document.viewport.getHeight();
	if(clickX+contWidth>=viewWidth)
		left=left-contWidth;
	if(clickY+contHeight>=viewHeight)
		top=top-contHeight;
	this.container.style.left=left+"px";
	this.container.style.top=top+"px";
};
Dialog.init=function(design){
	Dialog.close();
	this.design=design;
	if(!this.design || this.design=='classic'){
		$(document.body).insert(this.classicbox);
		$(document.body).insert(this.classicshadowbox);
	
		this.container=$("dsdlg_info");
		this.content=$("dsdlg_content");
		this.footer=$("dsdlg_footer");
		this.shadow=$("dsdlg_shadow");
		this.shadow_middle=$$(".dsdlg_shadow_middle")[0];		
		$("dsdlg_close").observe("click",function(){Dialog.close()});
		this.shadow.hide();
	}
	else if(this.design=='blue'){
		$(document.body).insert(this.bluebox);
		$(document.body).insert(this.blueshadowbox);		
		
		this.container=$("dsdlg_blue_info");
		this.content=$("dsdlg_blue_content");
		this.footer=$("dsdlg_blue_footer");
		this.shadow=$("dsdlg_blue_shadow");
		this.shadow_middle=$$(".dsdlg_blue_shadow_middle")[0];		
		this.shadow.hide();
	}
	
	this.container.hide();

	/*this.iefix = new Dialog.Shirm();
	this.iefix.positionUnder("dlg_info");*/
	this.container.style.left=(document.viewport.getWidth()/2-this.container.getWidth()/2)+"px"; 
	this.container.style.top=(document.viewport.getHeight()/2-this.container.getHeight()/2)+"px";
	//this.iefix.setBounds(document.viewport.getDimensions());
	//this.iefix.setBounds({top:0,left:0});
};
Dialog.info=function(event,onclose){
	var that=this;
/*	if(!this.container){
		this.init(event);
	}*/
	if(onclose)
		this.onclose=onclose;
	this.container.show();

	if(event){
		this.setBounds(event);
	}
	/*if(this.iefix){
		this.iefix.show();
		this.iefix.positionUnder("dlg_info");
	}*/
	if((!IE || IE>=7) && this.shadow)
		this.shadowUnder(this.container);
	
	if(event){
		document.observe("mousedown",function(e){
			if(that.container.visible()){
				var py=that.container.cumulativeOffset().top;
				var px=that.container.cumulativeOffset().left;
				var pyh=py+that.container.getHeight();
				var pxw=px+that.container.getWidth();
		
				var posY=Event.pointerY(e);
				var posX=Event.pointerX(e);
				if(!((posY>=py && posY<pyh) && (posX>px && posX<pxw)))
					Dialog.close();
			}
		});
	}
};

Dialog.infoonMouseover=function(parentDIV,timeout,effect){
	if(this.container.visible())
		return;
	this.timeout=timeout;
	this.effect=effect;	
	this.parentDIV=$(parentDIV);
	Dialog.info();
	document.observe("mousemove",Dialog.closeonMouseout);	
};


Dialog.closeonMouseout=function(e){
/*	if(this.parent)
		this.parent.stopObserving("mouseout",this.closeonMouseout);
	this.container.stopObserving("mouseout",this.closeonMouseout);
*/	
	if(Dialog.container.visible()){
		var py=Dialog.container.cumulativeOffset().top;
		var px=Dialog.container.cumulativeOffset().left;
		var pyh=py+Dialog.container.getHeight();
		var pxw=px+Dialog.container.getWidth();

		var pdivy=Dialog.parentDIV.cumulativeOffset().top;
		var pdivx=Dialog.parentDIV.cumulativeOffset().left;
		var pdivyh=py+Dialog.parentDIV.getHeight();
		var pdivxw=px+Dialog.parentDIV.getWidth();

		var posY=Event.pointerY(e);
		var posX=Event.pointerX(e);
		if(!((posY>=pdivy && posY<pdivyh) && (posX>pdivx && posX<pdivxw)) && !((posY>=py && posY<pyh) && (posX>px && posX<pxw))){
			Dialog.stopclose=setTimeout('Dialog.close(effect)',Dialog.timeout);
			document.stopObserving("mousemove",Dialog.closeonMouseout);	
		}
	}
}

Dialog.close=function(){
	if(this.onclose){
		this.onclose();
		this.onclose=null;
	}
/*	if(this.container){
		this.setFooter("");
		this.setMsg("");
		this.container.hide();
	}*/
	if(this.shadow){
		this.shadow.remove();
		this.shadow=null;
	}
	if(this.container){
	  this.container.remove();
	  this.container=null;
	}
	
};
//END Dialog

Dialog.Shirm=Class.create({
	  
	  initialize: function() {
		/*if(ie){
			this.element = new Element("iframe", {
			  "class": "dlg_overlay",
			  "src": "#",
			  "frameborder": 0
			});
		}else{*/
			this.element=new Element("div",{ "class": "dlg_overlay"	});			
		/*};*/
		$(document.body).insert(this.element);
		this.element.hide();
	  },
	  hide: function() {
		this.element.hide();
		return this;
	  },
	
	  show: function() {
		this.element.show();
		return this;
	  },
	  
	  positionUnder: function(element) {
		var element = $(element);
		var offset = element.cumulativeOffset();
		var dimensions = element.getDimensions();
		var style = {
			  left: offset[0] + 'px',
			  top: offset[1] + 'px',
			  width: dimensions.width + 'px',
			  height: dimensions.height + 'px',
			  zIndex: element.getStyle('zIndex') - 1
			};
		this.show()
		this.element.setStyle(style);
	
		return this;
	  },
	  positionOver: function(element) {
		var element = $(element);
		var offset = element.cumulativeOffset();
		var dimensions = element.getDimensions();
		var style = {
			  left: offset[0] + 'px',
			  top: offset[1] + 'px',
			  width: dimensions.width + 'px',
			  height: dimensions.height + 'px',
			  zIndex: element.getStyle('zIndex') + 1
			};
		this.element.show()	
		this.element.setStyle(style);
	
		return this;
	  },
	
	  setBounds: function(bounds) {
		for (prop in bounds) {
		  bounds[prop] += 'px';
		}
		this.element.setStyle(bounds);
		return this;
	  },

	  destroy: function() {
		if (this.element)
		  this.element.remove();
	
		return this;
	  }
});


/* mouseover Prototype JS MEnu used by DL Helicopter */
var Menu = Class.create();
Menu.prototype = {
	
	initialize: function(idOrElement, name, customConfigFunction) {
		this.name = name;
		this.type = "menu";
		this.closeDelayTimer = null;
		this.closingMenuItem = null;
		this.config();
		if (typeof customConfigFunction == "function") {
			this.customConfig = customConfigFunction;
			this.customConfig();
		}
		this.rootContainer = new MenuContainer(idOrElement, this);
	},
	
	config: function() {
		this.collapseBorders = true;
		this.quickCollapse = true;
		this.closeDelayTime = 300;
	}
}





var MenuContainer = Class.create();
MenuContainer.prototype = {
	
	initialize: function(idOrElement, parent) {
		this.type = "menuContainer";
		this.menuItems = [];
		this.init(idOrElement, parent);
	},

	init: function(idOrElement, parent) {
		this.element = $(idOrElement);
		this.parent = parent;
		this.parentMenu = (this.type == "menuContainer") ? ((parent) ? parent.parent : null) : parent;
		this.root = parent instanceof Menu ? parent : parent.root;
		this.id = this.element.id;

		if (this.type == "menuContainer") {
			if (this.element.hasClassName("level1")) 
				this.menuType = "horizontal";
			else if (this.element.hasClassName("dssubmenus_1") || this.element.hasClassName("submenus_1")) 
				this.menuType = "dropdown";
			else 
				this.menuType = "flyout";
	
			if (this.menuType == "flyout" || this.menuType == "dropdown") {
				this.isOpen = false;
				Element.setStyle(this.element, {
					position: "absolute",
					top: "0px",
					left: "0px",
					visibility: "hidden"
				});
			}
			else {
				this.isOpen = true;
			}
		}
		else {
			this.isOpen = this.parentMenu.isOpen;
		}

		var childNodes = this.element.childNodes;
		if (childNodes == null) return;
	
		for (var i = 0; i < childNodes.length; i++) {
			var node = childNodes[i];
			if (node.nodeType == 1) {
				if (this.type == "menuContainer") {
					if (node.tagName.toLowerCase() == "li") {
						this.menuItems.push(new MenuItem(node, this));
					}
				}
				else {
					if (node.tagName.toLowerCase() == "ul")
						this.subMenu = new MenuContainer(node, this);
				}
			}
		}
	},

	getBorders: function(element) {
		var ltrb = ["Left","Top","Right","Bottom"];
		var result = {};
		for (var i = 0; i < ltrb.length; ++i) {
			if (this.element.currentStyle)
				var value = parseInt(this.element.currentStyle["border"+ltrb[i]+"Width"]);
			else if (window.getComputedStyle)
				var value = parseInt(window.getComputedStyle(this.element, "").getPropertyValue("border-"+ltrb[i].toLowerCase()+"-width"));
			else
				var value = parseInt(this.element.style["border"+ltrb[i]]);
			result[ltrb[i].toLowerCase()] = isNaN(value) ? 0 : value;
		}
		return result;
	},

	open: function() {
		if (this.root.closeDelayTimer) window.clearTimeout(this.root.closeDelayTimer);
		this.parentMenu.closeAll(this);
		this.isOpen = true;
		if (this.menuType == "dropdown") {
			Element.setStyle(this.element,{
				left: (Position.positionedOffset(this.parent.element)[0]) + "px",
				top: (Position.positionedOffset(this.parent.element)[1] + Element.getHeight(this.parent.element)) + "px"
			});
	  	}
		else if (this.menuType == "flyout") {
			var parentMenuBorders = this.parentMenu ? this.parentMenu.getBorders() : new Object();
			var thisBorders = this.getBorders();
			if ((Position.positionedOffset(this.parentMenu.element)[0] + this.parentMenu.element.offsetWidth + this.element.offsetWidth + 20) > (window.innerWidth ? window.innerWidth : document.body.offsetWidth)) {
				Element.setStyle(this.element,{
					left: (- this.element.offsetWidth - (this.root.collapseBorders ?  0 : parentMenuBorders["left"])) + "px"
				});
			}
			else {
				Element.setStyle(this.element,{
					left: (this.parentMenu.element.offsetWidth - parentMenuBorders["left"] - (this.root.collapseBorders ?  Math.min(parentMenuBorders["right"], thisBorders["left"]) : 0)) + "px"
				});
			}
			Element.setStyle(this.element,{
				top: (this.parent.element.offsetTop - parentMenuBorders["top"] - this.menuItems[0].element.offsetTop) + "px"
			});
		}
		Element.setStyle(this.element,{visibility: "visible"});
	},

	close: function() {
		Element.setStyle(this.element,{visibility: "hidden"});
		this.isOpen = false;
		this.closeAll();
	},

	closeAll: function(trigger) {
		for (var i = 0; i < this.menuItems.length; ++i) {
			this.menuItems[i].closeItem(trigger);
		}
	}
}


var MenuItem = Class.create();
Object.extend(Object.extend(MenuItem.prototype, MenuContainer.prototype), {
							
	initialize: function(idOrElement, parent) {
		var menuItem = this;
		this.type = "menuItem";
		this.subMenu;
		this.init(idOrElement, parent);
		if (this.subMenu) {
			this.element.onmouseover = function() {
				menuItem.subMenu.open();
			}
		}
		else {
			if (this.root.quickCollapse) {
				this.element.onmouseover = function() {
					menuItem.parentMenu.closeAll();
				}
			}
		}
		var linkTag = this.element.getElementsByTagName("A")[0];
		if (linkTag) {
			linkTag.onfocus = this.element.onmouseover;
			this.link = linkTag;
			this.text = linkTag.text;
		}
		if (this.subMenu) {
			this.element.onmouseout = function() {
				if (menuItem.root.openDelayTimer) window.clearTimeout(menuItem.root.openDelayTimer);


if (menuItem.root.closeDelayTimer) window.clearTimeout(menuItem.root.closeDelayTimer);



eval(menuItem.root.name + ".closingMenuItem = menuItem");
				menuItem.root.closeDelayTimer = window.setTimeout(menuItem.root.name + ".closingMenuItem.subMenu.close()", menuItem.root.closeDelayTime);
			}
		}
	},
	
	openItem: function() {
		this.isOpen = true;
		if (this.subMenu) { this.subMenu.open(); }
	},
	
	closeItem: function(trigger) {
		this.isOpen = false;
		if (this.subMenu) {
			if (this.subMenu != trigger) this.subMenu.close();
		}
	}
});

/* END mouseover Prototype JS MEnu used by DL Helicopter */

 
 /** 
 * @description		prototype.js based context menu
 * @author        Juriy Zaytsev; kangax [at] gmail [dot] com; http://thinkweb2.com/projects/prototype/
 * @version       0.6
 * @date          12/03/07
 * @requires      prototype.js 1.6
*/
//Start
if (Object.isUndefined(Proto)) { var Proto = { } }

Proto.MenuObjects=new Array();

Proto.Menu = Class.create({
	initialize: function() {
		var e = Prototype.emptyFunction;
		this.ie = Prototype.Browser.IE;
		this.options = Object.extend({
			selector: '.contextmenu',
			className: 'protoMenu',
			pageOffset: 25,
			fade: false,
			zIndex: 100,
			beforeShow: e,
			beforeHide: e,
			beforeSelect: e,
			mouseevent: 'contextmenu' //rightclick:contextmenu, leftclick:click, onMouseover:mouseover
		}, arguments[0] || { });
		this.shim = new Element('iframe', {
			style: 'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none',
			src: 'javascript:false;',
			frameborder: 0
		});
		this.options.fade = this.options.fade && !Object.isUndefined(Effect);
		this.container = new Element('div', {className: this.options.className, style: 'display:none'});

		document.observe('click', function(e) {
			if (this.container.visible() && !e.isRightClick()) {
				this.options.beforeHide(e);
				if (this.ie) this.shim.hide();
				this.container.hide();
			}
		}.bind(this));

		var that=this;
		$$(this.options.selector).each(function(element){
			element.observe(that.options.mouseevent,function(e){
				if (Prototype.Browser.Opera && !e.ctrlKey) {
					return;
				}
				that.show(e,element);
			});
		});
		
		
		
		/*$$(this.options.selector).invoke('observe', Prototype.Browser.Opera ? 'click' : this.options.mouseevent, function(e){
			if (Prototype.Browser.Opera && !e.ctrlKey) {
				return;
			}
			this.show(e);
		}.bind(this));*/
		

		Proto.MenuObjects[Proto.MenuObjects.length]=this;
	},
	show: function(e,element) {
		if(this.options.menuItems.split('_')[0]=='menu')
			alert(1);
		else
			this.options.evalmenuItems=eval(this.options.menuItems);
		var list = new Element('ul');
		var that=this;
		optionlist='';
		if(element.attributes.optionlist)
			var optionlist=eval(element.attributes.optionlist.value);
		this.options.evalmenuItems.each(function(item) {
			if((!item.check) || (eval('optionlist[0].'+item.check))){
				list.insert(
					new Element('li', {className: item.separator ? 'separator' : ''}).insert(
						item.separator 
							? '' 
							: Object.extend(new Element('a', {
								href: 'javascript:dynasite()',
								title: item.name,
								className: (item.className || '') + (item.disabled ? ' disabled' : ' enabled')
							}), { _callback: item.callback })
							.observe('click', 
								function(e){
									that.onClick(e,element)
								}
							)
							.observe(this.options.mouseevent, Event.stop)
							.update(item.name)
					)
				)
			}
		}.bind(this));
		this.container.innerHTML='';
		$(document.body).insert(this.container.insert(list).observe(this.options.mouseevent, Event.stop));
		if (this.ie) { $(document.body).insert(this.shim) }		
		
		Proto.MenuObjects.each(function(thisitem) {
			thisitem.options.beforeHide(e);
			if (thisitem.ie) thisitem.shim.hide();
			thisitem.container.hide();  
		});		
		
		Event.stop(e);
		this.options.beforeShow(e);
		var x = Event.pointer(e).x,
			y = Event.pointer(e).y,
			vpDim = document.viewport.getDimensions(),
			vpOff = document.viewport.getScrollOffsets(),
			elDim = this.container.getDimensions(),
			elOff = {
				left: ((x + elDim.width + this.options.pageOffset) > vpDim.width 
					? (vpDim.width - elDim.width - this.options.pageOffset) : x) + 'px',
				top: ((y - vpOff.top + elDim.height) > vpDim.height && (y - vpOff.top) > elDim.height 
					? (y - elDim.height) : y) + 'px'
			};
		this.container.setStyle(elOff).setStyle({zIndex: this.options.zIndex});
		if (this.ie) { 
			this.shim.setStyle(Object.extend(Object.extend(elDim, elOff), {zIndex: this.options.zIndex - 1})).show();
		}
		this.options.fade ? Effect.Appear(this.container, {duration: 0.25}) : this.container.show();
		this.event = e;
	},
	onClick: function(e,element) {
		e.stop();
		if (e.target._callback && !e.target.hasClassName('disabled')) {
			this.options.beforeSelect(e);
			if (this.ie) this.shim.hide();
			this.container.hide();
			e.target._callback(this.event,element);
		}
	}
})
//End

// ***************************
// * START ContextMenu       *
// ***************************
context_onmouseout_space=25; //spacer which has to close "context" on mouse over
context_mouse_to_closer=10; // space between mouse and onmouseover-space to close the context
context_mouse_to_context=2; // space between mouse and context
context_mouse_space=context_mouse_to_closer+context_mouse_to_context;

function DSContextHide(){
	if ($("context") != null){
		$("context").style.display="none";
		if (ie)
			$("context_ie_help").style.display="none";
	}
}

function DSDoNothing() {
	
}

function dynasite() {}

function DSContextInnerHTML(this_content, onmouseout){
	context_div=$("context");
	context_div.IsMouseOver=0;
	//context_div.innerHTML='<div style="width:320px; height:200px">dasdsad</div>';
	//onmouseout_color='blue';
	//mouse_space_color='red';
	onmouseout_color=mouse_space_color='transparent';
	if (onmouseout==1){
		new_htm_str='<table cellpadding="0" cellspacing="0" border="0" style="background-color: transparent; position:relative; top:0px; left:0px;">';
		new_htm_str+='<tr>';
			new_htm_str+='<td style="background-color: '+onmouseout_color+';" colspan="3" onmouseover="DSContextHide()" height="'+context_onmouseout_space+'"> </td>';
		new_htm_str+='</tr>';
		new_htm_str+='<tr>';
			new_htm_str+='<td style="background-color: '+onmouseout_color+';" onmouseover="DSContextHide()" width="'+context_onmouseout_space+'"></td>';
			new_htm_str+='<td>';
				new_htm_str+='<table cellpadding="0" cellspacing="0" border="0" style="background-color: transparent;">';
				new_htm_str+='<tr>';
					new_htm_str+='<td style="background-color: '+mouse_space_color+';" colspan="3" height="'+context_mouse_space+'"></td>';
				new_htm_str+='</tr>';
				new_htm_str+='<tr>';
					new_htm_str+='<td style="background-color: '+mouse_space_color+';" width="'+context_mouse_space+'"></td>';
					new_htm_str+='<td style="background-color: '+mouse_space_color+';">'+this_content+'</td>';
					new_htm_str+='<td style="background-color: '+mouse_space_color+';" width="'+context_mouse_space+'"></td>';
				new_htm_str+='</tr>';
				new_htm_str+='<tr>';
					new_htm_str+='<td style="background-color: '+mouse_space_color+';" colspan="3" height="'+context_mouse_space+'"></td>';
				new_htm_str+='</tr>';
				new_htm_str+='</table>';
			new_htm_str+='</td>';
			new_htm_str+='<td style="background-color: '+onmouseout_color+';" onmouseover="DSContextHide()" width="'+context_onmouseout_space+'"></td>';
		new_htm_str+='</tr>';
		new_htm_str+='<tr>';
		new_htm_str+='<td colspan="3" style="background-color: '+onmouseout_color+';" onmouseover="DSContextHide()" height="'+context_onmouseout_space+'"> </td>';
		new_htm_str+='</tr>';
		new_htm_str+='</table>';
		//context_div.innerHTML='<textarea cols=30 rows=30>'+new_htm_str+'</textarea>';
		context_div.innerHTML=new_htm_str;
	}
	else{
		new_htm_str='<table cellpadding="0" cellspacing="0"><tr><td style="background-color: '+mouse_space_color+'; padding:'+context_mouse_to_context+'px">';
		new_htm_str+=this_content;
		new_htm_str+='</td></tr></table>';
		context_div.innerHTML=new_htm_str;
	}
}

function DSContextShow(e,this_content,info){
	if (dcbe==null)
		DSInit()
	context_div=$("context");
	x_show="right";//left,middle,right
	y_show="bottom";//top,middle,bottom
	onmouseout=1; // 0: no function, 1: onmouseout context will be closed
	if (typeof info!='undefined' && info!=''){
		this_info=info.split(';');
		for (i=0;i<this_info.length;i++){
			eval(this_info[i])
		}
	}
	if (onmouseout)
		onmouseout_space=context_onmouseout_space;
	else
		onmouseout_space=0;
	if($(this_content)){
		this_content=$(this_content).innerHTML;
	}
	if (typeof this_content != 'undefined' && this_content != ''){
		DSContextInnerHTML(this_content,onmouseout);
	}

	context_div.style.display="block";
	this_left=DSContextPos(e,context_div,'x',x_show,onmouseout);
	this_top=DSContextPos(e,context_div,'y',y_show,onmouseout);
	
	context_div.style.left=this_left+'px';
	context_div.style.top=this_top+'px';
	if (ie){
		context_iframe=$("context_ie_help");
		if (onmouseout){
			this_left= DSInt(this_left+context_mouse_space+context_onmouseout_space);
			this_top= DSInt(this_top+context_mouse_space+context_onmouseout_space);
		}
		else{
			this_left= DSInt(this_left+context_mouse_to_context);
			this_top= DSInt(this_top+context_mouse_to_context);
		}
		context_iframe.style.top = this_top+'px';
	    context_iframe.style.left = this_left+'px';
		context_iframe.style.width = this_width+'px';
		context_iframe.style.height = this_height+'px';
	    context_iframe.style.zIndex = context_div.style.zIndex - 1;
	    context_iframe.style.display = "block";
		//context_iframe.style.border = "1px solid blue";
	}
}

function DSContextPos(e,this_object,xy,show,onmouseout){
	if (onmouseout){
		onmouseout_space=context_onmouseout_space;
		mouse_to_closer=context_mouse_to_closer;
		mouse_to_context=context_mouse_to_context;
		mouse_space=context_mouse_space;
	}
	else{
		onmouseout_space=0;
		mouse_to_closer=0;
		mouse_to_context=context_mouse_to_context;
		mouse_space=context_mouse_to_context;
	}
	if (xy=='x'){
		this_width = DSInt(this_object.offsetWidth-2*onmouseout_space-2*mouse_space);
		xlim = DSInt((dcbe && dcbe.clientWidth)? dcbe.clientWidth : window.innerWidth) + DSInt(window.pageXOffset || (dcbe? dcbe.scrollLeft : 0) || 0) ;
		pos = DSInt(e.pageX || e.clientX || 0) + DSInt(ie? dcbe.scrollLeft : 0);
		this_size=this_width;
		this_lim=xlim;
		//alert(this_size+'...'+this_lim+'...'+pos+'...'+DSInt(e.pageX || e.clientX || 0)+'...'+DSInt(ie? dcbe.scrollLeft : 0)+'...'+ie)
	}
	else{
		this_height = DSInt(this_object.offsetHeight-2*onmouseout_space-2*mouse_space);
		ylim = DSInt((dcbe && dcbe.clientHeight)? dcbe.clientHeight : window.innerHeight) + DSInt(window.pageYOffset || (dcbe? dcbe.scrollTop : 0) || 0) ;
		pos = DSInt(e.pageY || e.clientY || 0) + DSInt(ie? dcbe.scrollTop : 0);
		this_size=this_height;
		this_lim=ylim;
		//alert(this_size+'...'+this_lim+'...'+pos+'...'+DSInt(e.pageY || e.clientY || 0)+'...'+DSInt(ie? dcbe.scrollTop : 0)+'...'+ie)	
	}
	
	if (show=='top' || show=='left'){
		check_pos=pos-this_size-mouse_to_context;
		if (check_pos>=0)
			pos=pos-onmouseout_space-mouse_space-this_size-mouse_to_context;
		else
			pos=pos-onmouseout_space-mouse_to_closer;
	}
	else if (show=='middle'){
		check_pos=DSInt(pos-this_size/2);
		if (check_pos<=0)
			pos=-onmouseout_space-mouse_space;
		else if (check_pos+this_size/2>=this_lim)
			pos=this_lim-this_size-onmouseout_space-mouse_space;
		else
			pos=check_pos-onmouseout_space-mouse_space;
	}
	else if (show=='bottom' || show=='right'){
		check_pos=pos+this_size+mouse_to_context;
		if (check_pos<=this_lim){
			pos=pos-onmouseout_space-mouse_to_closer;
		}
		else{
			pos=pos-onmouseout_space-mouse_space-this_size-mouse_to_context;
		}
	}
	return pos;
}
// ***************************
// * END ContextMenu         *
// ***************************



/* DS Slider used in Assets */
function theslider(element,thewindowobject) {
	thewindowobject[element+'_slider'] = new Control.Slider(element+'_handle',element+'_track',{
		maximum:30,
		minimum:5,
		step:0.5,
		increment:0.5,
		range:$R(5,30),
		disabled:sliderDisabled,
		sliderValue:sliderValue,
		handleImage:'dssliderbutton',
		onSlide:function(v){
			// zoomboxes are set in _asset_view.cfm
			// zoomboxes=$(element).select('[name="'+element+'_zoombox"]');
			zoomboxes.each(function(s) { 
				Element.setContentZoom(s, (v+0.25)*7);
			});
		},
		onChange:function(v){
			// zoomboxes=$(element).select('[name="'+element+'_zoombox"]');
			zoomboxes.each(function(s) { 
				Element.setContentZoom(s, (v+0.25)*7);
			});
		 	$(element+'_dsslidervalue').value=v;
		}
	});
}





if (typeof(dynasite) == "undefined") { dynasite = {}; }
/* DSSliderBox: */
dynasite.DSSliderBox = {
	productSlider: null,
	sliderVal: 0,
	animationId: false,
	// viewportWidth: 980,
	// contentWidth: 980,
	 /* init with offsets, this can be overridden at init */
	categories: [{id: 'pb-cat1', offset: 0}, {id: 'pb-cat2', offset: 0.32}],
	isSliding: false,
	lastX: 0.5,
	isMouseDown: false,
	dif: 0,
	overlap: 0,
	offsetImageWidth: 0,
	sliderOffset: 0,
	// offsetContentWidth: -980,
	clicked: false,
	startIndex: 0,
	name: 'webmart',
	arrowScrollAmount: 0.24,
	init: function(setupArgs) {
		if (typeof(setupArgs.categories) != 'undefined') {this.categories = setupArgs.categories;}
		if (typeof(setupArgs.imageOverlap) != 'undefined') {this.overlap = setupArgs.imageOverlap;}
		if (typeof(setupArgs.sliderCentering) != 'undefined') {this.sliderOffset = setupArgs.sliderCentering;}
		if (typeof(setupArgs.initialCategory) != 'undefined') {this.startIndex = setupArgs.initialCategory;}
		if (typeof(setupArgs.arrowScrollAmount) != 'undefined') {this.arrowScrollAmount = setupArgs.arrowScrollAmount;}

		$('dssliderbox_content').style.display = "block";

		$('dssliderbox_track').style.visibility = "visible";
		$('dssliderbox_container').style.overflow = "hidden";
		
		this.viewportWidth = $('dssliderbox_container').getWidth();
		this.offsetImageWidth = $$('#dssliderbox_content .dssliderbox_image')[0].getWidth()-this.overlap;
		this.contentWidth = this.offsetImageWidth * $$('#dssliderbox_content .dssliderbox_image').length;
		this.offsetContentWidth = -1 * (this.contentWidth - this.viewportWidth);
		
		this.productSlider = new Control.Slider('dssliderbox_handle', 'dssliderbox_track', {axis:'horizontal'});
		/* initial slide */
		dynasite.DSSliderBox.animateSlide(this.categories[this.startIndex].offset); 
		/* Slider callbacks */
		this.productSlider.options.onChange = function(value) {
			$('dssliderbox_handleimage').style.left = $('dssliderbox_handle').style.left;
			
			if (dynasite.DSSliderBox.isThrow && ! dynasite.DSSliderBox.isSliding) {
				dynasite.DSSliderBox.isSliding = true;
				dynasite.DSSliderBox.isThrow = false;
				
				var mod = value + dynasite.DSSliderBox.throwMod;
				if (mod < 0) {mod = 0;}
				if (mod > 1) {mod = 1;}
				dynasite.DSSliderBox.animateSlide(mod);
			}
			else if (! dynasite.DSSliderBox.isSliding && value){
				dynasite.DSSliderBox.isSliding = true;
				dynasite.DSSliderBox.animateSlide(value);
			}	
		};
		this.productSlider.options.onSlide = function(value) {		 
			$('dssliderbox_handleimage').style.left = $('dssliderbox_handle').style.left;
			if (value && ! dynasite.DSSliderBox.isSliding) {
					dynasite.DSSliderBox.isSliding = true;
				 	dynasite.DSSliderBox.isThrow = false;
					if (dynasite.DSSliderBox.isMouseDown) {
						dynasite.DSSliderBox.dif = value - dynasite.DSSliderBox.lastX;
						dynasite.DSSliderBox.lastX = value;	
						
						/* check for throw, the dif thresholds will affect how easily the throw happens */
						if(dynasite.DSSliderBox.dif > 0.05) {
							dynasite.DSSliderBox.isThrow = true;
							dynasite.DSSliderBox.throwMod = 0.2;
						}
						else if (dynasite.DSSliderBox.dif < -0.04) {
							dynasite.DSSliderBox.isThrow = true;
							dynasite.DSSliderBox.throwMod = -0.2;
						}
					}
			
					var w = dynasite.DSSliderBox.offsetContentWidth;
					$('dssliderbox_content').style.left = w * value + "px";
					
					this.sliderVal = value;
					dynasite.DSSliderBox.lastX = value;
					dynasite.DSSliderBox.colorCats();		
					dynasite.DSSliderBox.isSliding = false; /* reset */
			}
			
			Element.setStyle($('dssliderbox_container'), { overflow: "hidden"} );
		};
		
		Event.observe('dssliderbox_track', 'mousedown', function(e) {
			var o = e.offsetX || e.layerX;
			if (Event.element(e).id =='dssliderbox_track' && o < 100) {dynasite.DSSliderBox.animateSlide(0);}
		});
		Event.observe('dssliderbox_leftarrow', 'mousedown', function() {
			dynasite.DSSliderBox.left();
		});
		Event.observe('dssliderbox_rightarrow', 'mousedown', function() {
			dynasite.DSSliderBox.right();
		});
		
		Event.observe('dssliderbox_handle', 'mousedown', function() {
			dynasite.DSSliderBox.isMouseDown = true;
			$('dssliderbox_handle').style.zIndex = "5";
		});
		
		Event.observe('dssliderbox_handle', 'mouseup', function() {
			dynasite.DSSliderBox.isMouseDown = false;
		});
		
		dynasite.DSSliderBox.categories.each(function(c) {
			Event.observe($(c.id), 'mouseup', function(e) {
				dynasite.DSSliderBox.animateSlide(c.offset);
			});
		});			
	},
	
	animateSlide: function(toX) {
		/* make sure toX is sane: */
		if (toX > 1) {toX = 1;}
		if (toX < 0) {toX = 0;}
		dynasite.DSSliderBox.sliderVal = toX;
		window.clearInterval(dynasite.DSSliderBox.animationId); /* kill any running animation */
		var w = dynasite.DSSliderBox.offsetContentWidth;
		var stopPoint = w * toX;
		/* stopPoint = Math.round(stopPoint / dynasite.DSSliderBox.offsetImageWidth) * dynasite.DSSliderBox.offsetImageWidth; */
		var sliderStopPoint = (Math.round(dynasite.DSSliderBox.viewportWidth - dynasite.DSSliderBox.sliderOffset) * toX);
		
		dynasite.DSSliderBox.isSliding = true;
		

		dynasite.DSSliderBox.animationId = window.setInterval(function() {
			var sliderPos = parseInt($('dssliderbox_content').getStyle('left')) || 0;
			var handlePos = parseInt($('dssliderbox_handle').getStyle('left')) || 0;
			var x = dynasite.DSSliderBox.calculateDecel(sliderPos, stopPoint);
			var sx = dynasite.DSSliderBox.calculateDecel(handlePos, sliderStopPoint); 
			$('dssliderbox_content').style.left = x + "px";
			$('dssliderbox_handle').style.left = sx + "px";
			$('dssliderbox_handleimage').style.left = sx + "px";		
			dynasite.DSSliderBox.colorCats();
		
			if (x == stopPoint) {
				window.clearInterval(dynasite.DSSliderBox.animationId);
				dynasite.DSSliderBox.isSliding = false;			
			}
		}, 60);
	},
	
	colorCats: function() {
		var sliderX = parseInt($('dssliderbox_handle').getStyle('left')) + (($('dssliderbox_handle').getWidth()-20)/2);
		dynasite.DSSliderBox.categories.each(function(c) {
			var left = parseInt($(c.id).getStyle('left')) 
		 	var clr = Math.ceil((Math.min(sliderX,left) / Math.max(sliderX,left))*10);
		 	$(c.id).className = 'pb-catclass'+clr;
		});
	},
	
	left: function() {
		dynasite.DSSliderBox.animateSlide(dynasite.DSSliderBox.sliderVal - dynasite.DSSliderBox.arrowScrollAmount);
	},
	
	right: function() {
		dynasite.DSSliderBox.animateSlide(dynasite.DSSliderBox.sliderVal + dynasite.DSSliderBox.arrowScrollAmount);
	},
	
	calculateDecel: function(from, to) {
		var n = from - Math.floor( (from - to) * .4);
		if (Math.abs(from - to) < 4) {return to;}
		else {return n;}
	}
};

/* END DS Slider used in Assets */

/* DS roundedCorner */
// DSRoundedCorner('[class="dsarticle_3 dsarticle"], [class="dsarticle_2 dsarticle"]','top,bottom,both','##F0F0E7','size:medium');
function DSRoundedCorner(selector,corner,color,optionlist){
	var i;
	var v=$('dssubbody').getElementsBySelector('['+selector+']');
	size='medium';
	backgroundColor='#FFF';		
	DSOptionList(optionlist);
	for(i=0;i<v.length;i++){
		if(corner=='top' || corner=='both' || corner=='top,bottom')
			DSRoundedCorner_Add(v[i],backgroundColor,color,size,'top');
		if(corner=='bottom' || corner=='both'|| corner=='top,bottom')
			DSRoundedCorner_Add(v[i],backgroundColor,color,size,'bottom');
	}
}

function DSRoundedCorner_Add(el,bk,color,size,addtype) {
	var i;
	var d=document.createElement("b");
	var cn="dsrounded";
	var lim=4;
	if(size && size=="small"){ cn="dsroundedsmall"; lim=2}
	if(size && size=="wide"){ cn="dsroundedwide"; lim=12}
	d.style.backgroundColor=bk;
	if(addtype=='top') {
		d.className="dsroundedtop";
		for(i=1;i<=lim;i++) {
				var x=document.createElement("b");
				x.className=cn + i;
				x.style.backgroundColor=color;
				d.appendChild(x);
		}
		el.insertBefore(d,el.firstChild);
	}
	else {
		d.className="dsroundedbottom";
		for(i=lim;i>0;i--) {
			var x=document.createElement("b");
			x.className=cn + i;
			x.style.backgroundColor=color;
			d.appendChild(x);
		}
		el.appendChild(d,el.firstChild);
	}
}

/* END DS roundedCorner */

/* DS Tree */
// DispatchEvent=moz FireEvent=ie
function DSDispatchEvent(theobject) {
	//	alert(theobject);

	// alert(theobject);
	obj=$(theobject);
	if(obj!=null) {
		if(ie)
			obj.fireEvent('onclick');							
		else {
			if(document.createEvent && obj.dispatchEvent) {
				var evt=document.createEvent("MouseEvents");
				if(evt && evt.initMouseEvent){
					evt.initMouseEvent("click",true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);
					obj.dispatchEvent(evt);
				}
			}
		}
	}
}

function DSGetParentNodes(thetree,objID){
	var parent_nodes=[];
	var i;
	if ($(objID)){
		this_node=$(objID);
		for (i=0;i<50;i++){
			this_node=this_node.parentNode;
			if (this_node.id==thetree)
				break;
			else
				parent_nodes[parent_nodes.length]=this_node
		}
	}
	return parent_nodes;
}

function DSGetChildNodes(objID){
	var child_nodes=[];
	var i;
	if ($(objID)){
		this_node=$(objID);
		for (i=0; i<this_node.childNodes.length; i++){
			child_nodes[child_nodes.length]=this_node.childNodes[i];
		}
	}
	return child_nodes;
}

function DSTree_Opener(optionlist){
	var i=0;
	treename='';
	treeid='';
	objID='';
	dispatchevent=0;
	treeitemid='';
	DSOptionList(optionlist);
	if(treeid=='')
		treeid='DSTree_'+treename;
	objID=treeid+'_'+treeitemid+'_link';
	// alert('Obj:'+objID+'TreID:'+treeid);
	if($(objID)) {
		theul=$(objID).up('ul',0);
		if($(theul)) {
			while($(theul).id!=treeid) {
				$(theul).style.display='block';
				theul=$(theul).up('ul',0);
			}
		}
		if($(objID) && dispatchevent==1) {
			// alert(4);
			DSDispatchEvent(objID);
		}
	}
}


/* END DS Tree  */

/* DSSelectRow */
var DSSelectRow_ID='';
var DSSelectRow_lastrow='';
var DSSelectRow_lastrow_color='';
var DSSelectRow_lastrow_class='';

function DSSelectRow(thisrow,thisid) {
	if(DSSelectRow_lastrow!='') {
		DSSelectRow_lastrow.className=DSSelectRow_lastrow_class;
	}
	DSSelectRow_ID=thisid;
	DSSelectRow_lastrow=thisrow;
	DSSelectRow_lastrow_class=thisrow.className;	
	thisrow.className='dslist_selected';
}

/* END DSSelectRow */

// ******************************
// * START GUI Tree/TabBar/Accordion 
// ******************************

function DSTree(e,name,element,optionlist) {
	onclickevent='display';
	reloadtype='display';
	showcontent=1;
	dstreeitemdepth=0;
	expand=1;
	IsLoaded=0;
	dispatchTabBar=1;
	cmd='';
	xhr=0;
	var QueryString='';
	var ActiveCommandBarElement='';
	DSOptionList(optionlist);
		
	// Start ALL
	if(cmd!='')
		IsLoaded=top.DSFindLoader_Loaded(element,this.window);
	if($(element) && $(element).innerHTML.length==0)
		IsLoaded=-1;
	if(cmd!='' && $(element) && $(element).innerHTML.length==0 && IsLoaded<=0)
		onclickevent='load';
	// alert('Name:'+name+' Element:'+element+' IsLoaded:'+IsLoaded+' onclickevent:'+onclickevent);
	if((IsLoaded<=0 && onclickevent=='load') || (IsLoaded>=0 && reloadtype=='reload') || (cmd!= '' && e.ctrlKey && $(element)) || (cmd!= '' && e.metaKey && $(element))) {
		e.cancelBubble = true;
		if (e.stopPropagation) {
			e.preventDefault();			
			e.stopPropagation();
		}
		// 2008-06-30 [AP]
		if (element!=cmd)
			QueryString='&DSElement='+element;
		// 2008-06-16 [AP]
		if ($(name).readAttribute('commandbarelement')!='')
			QueryString+='&DSCommandBarElement='+$(name).readAttribute('commandbarelement');
		
		
		if ($(name).readAttribute('commandbarelement')!='') {
			ActiveCommandBarElement=$($(name).readAttribute('commandbarelement')).readAttribute('active');
			if (ActiveCommandBarElement!='' && ActiveCommandBarElement!=null && $(ActiveCommandBarElement))		
				$(ActiveCommandBarElement).style.display='none';
		}
		
		dsloader(dsxpath+'dynasite.cfm?'+cmd+'&DSRefresh=1'+QueryString,'dsloader',element,'xhr:'+xhr);
	}
	else if ($(name).readAttribute('commandbarelement')!='' && expand==0){
		// 2008-06-19 [AP] GUI Element	
		DSDistributor('element:'+element+',guielement:'+$(name).readAttribute('commandbarelement')+',display:1,type:DisplayGuiPlace');
	}

	// End All
	/*	// if(Event.element(e).readAttribute('expander')==1)
	if(Event.element(e).tagName=='IMG' || $(id).up(0).tagName=='A') {
		var expanderem=Event.element(e).up(0);
		innercode=$(expanderem).innerHTML;
		if(innercode.indexOf("maxi") != -1 ) {
			$(expanderem).innerHTML=top.DSTree_Expander_Opened;
		}
		else if (expand==1) {
			$(expanderem).innerHTML=top.DSTree_Expander_Closed;
		}		
		
	}*/
	if($(name+'_'+id+'_arrow')) {
		innercode=$(name+'_'+id+'_arrow').innerHTML;
		if(innercode.indexOf("maxi") != -1 ) {
			$(name+'_'+id+'_arrow').innerHTML=top.DSTree_Expander_Opened;
		}
		else if (expand==1 && innercode.indexOf("mini") != -1 ) {
			$(name+'_'+id+'_arrow').innerHTML=top.DSTree_Expander_Closed;
		}	
	}
	// expand function
	if(expand==1 && $(name+'_'+id+'_list')) {
		if(innercode.indexOf("<img") != -1) {
			DSStyle(name+'_'+id+'_list','effect:1,displayshowhide:1,dsnavname:'+name+element+',writingmode:'+name+'_'+element+'_arrow');
		}
		else {
			DSStyle(name+'_'+id+'_list','effect:1,displayshowhide:1,dsnavname:'+name+element);
		}
	}
	if(showcontent==1) {
		DSStyle(element,'display:1,dsnavname:'+name+'_Content');
		DSStyle(element+'_context','display:1,dsnavname:'+name+'_context');
		
		if($(name+'_'+id+'_list')) {
			$(name+'_'+id+'_list').style.display='block';
		}
		if($(name+'_'+id+'_arrow') && innercode.indexOf("<img") != -1)
			$(name+'_'+id+'_arrow').style.writingMode='tb-rl';
		// alert(name+'_'+id,'classname:'+style+',dsnavname:'+name);
		if($(name).readAttribute('active')!='')
			var activeobject=name+'_'+$(name).readAttribute('active');
		else
			var activeobject=name+'_'+element;
		$(activeobject+'_link').removeClassName('dstree_explorer_active');
		$(name+'_'+id+'_link').addClassName('dstree_explorer_active');
	$(name).writeAttribute('active',id);

	}
	// TabBar
	var tabbaroption=$(name).readAttribute('tabbar');
	if(DSJS.Len(tabbaroption)) {
		var tabBar=DSJS.ListGetAt(tabbaroption,1,',');
		var tabBar_Element=DSJS.ListGetAt(tabbaroption,2,',');
		var tabBar_Style=DSJS.ListGetAt(tabbaroption,3,',');
		if(dispatchTabBar==1) {
			if($(tabBar_Element)) {
				$('aDSTabBar_'+tabBar_Element+'_'+tabBar_Element).setAttribute('tree',element);
				if($(tabBar_Element).style.display=='none'){
					DSTabBar(e,tabBar_Element,tabBar_Element,'style:'+tabBar_Style+',position:1,dispatchTabBar:1');
				}
			}
		}
	}
	// if(this.window.name=='dsmanager') {
	//	if(this.window.name=='dsmanager' && element=='calendar_calendar_calendar_view_'+DSUID)
	//		$('ds_calendar_month_small_'+DSUID).style.display='block';
	//	else
	//		$('ds_calendar_month_small_'+DSUID).style.display='none';
	// }
	DSTree_Opener('treeid:'+name+',treeitemid:'+element);
	DSPopUpResize();
}

function DSBrowserTabBar() {
	
	
}

function DSTabBar(e,name,element,optionlist) {
	// 2006-10-25 [AP] New, Option Position & Recordcount, wird für die DSTabBar aquacenter benötigt
	onclickevent='display'; // 2008-11-13 [AP] Variable von onlick in onclickevent geändert. der variablen name onclick funktioniert nicht unter Safari
	reloadtype='display';
	cmd='';
	IsLoaded=0;
	position='';
	commandbar='';
	recordcount='';
	dispatchTabBar=0; // 2008-01-30 [AP] Wird von der DSTree Funktion ausgelöst
	xhr=0;
	var QueryString='';
	var ActiveElement='';
	var GuiElement=element;
	var CommandBarElement='';
	var AssignedCommandbar='';
	DSOptionList(optionlist);
	
	ParentNavigator=$('DSTabBar_'+name).readAttribute('parentnavigator');
	CommandBarElement=$('DSTabBar_'+name).readAttribute('commandbarelement');	
	
	// Start ALL
	if($('ankerDSTabBar_'+name+'_'+element)) {
		if($('ankerDSTabBar_'+name+'_'+element).readAttribute('display')) {
			if($('ankerDSTabBar_'+name+'_'+element).readAttribute('display')=='autodisplay')
				$('aDSTabBar_'+name+'_'+element).style.display='block';
				
		}
	}
	if(cmd!='')
		IsLoaded=top.DSFindLoader_Loaded(element,this.window);
	if($(element).innerHTML.length==0)
		IsLoaded=-1;
	if(cmd!='' && $(element) && $(element).innerHTML.length==0 && IsLoaded<=0)
		onclickevent='load';
	 // alert('Name:'+name+' Element:'+element+' IsLoaded:'+IsLoaded+' onclickevent:'+onclickevent);
	
	if((IsLoaded<=0 && onclickevent=='load') || (IsLoaded>=0 && reloadtype=='reload') || (cmd!= '' && e.ctrlKey && $(element))){
		e.cancelBubble=true;
		if (e.stopPropagation) e.stopPropagation();
		
		//2008-06-18 [AP]
		if (CommandBarElement!='') {
			if ($(CommandBarElement) && $($(CommandBarElement).readAttribute('active')))
				$($(CommandBarElement).readAttribute('active')).style.display='none';
			
			QueryString='&DSCommandBarElement='+CommandBarElement;
			
			ActiveElement=top.DSGUIObject_Active['DSTabBar_'+name];
			$('a'+ActiveElement).setAttribute('assignedcommandbar',$(CommandBarElement).readAttribute('active'));
			
			if(ParentNavigator!='')			
				$('aDSTabBar_'+ParentNavigator).setAttribute('assignedcommandbar',element+'_commandbar');		
		}
		dsloader(dsxpath+'dynasite.cfm?'+cmd+QueryString,'dsloader',element,'xhr:'+xhr);
	}
	// 2008-01-30 [AP] Wenn die commandbar ausserhalb vom command div sitzt muss diese ein und ausgeblendet werden
	else if (dispatchTabBar==0 && $(element).style.display=='none') {	
		
		AssignedCommandbar=$('aDSTabBar_'+name+'_'+element).readAttribute('assignedcommandbar');
		//if (DSCAID==2260)
		//	alert('AssignedCommandbar:'+AssignedCommandbar+'\nelement:'+element+'\name:'+name)
		
		if (typeof DSExplorer.GUIPlace.CommandBar=='object') {
			DSExplorer.GUIPlace.CommandBar.Element.each(function(s) { 
				if (s==element){
					AssignedCommandbar=null;
					$break;
				}
			}); 
		}					

		if (AssignedCommandbar!=null) {
			if (AssignedCommandbar!='none_commandbar' && $(AssignedCommandbar)){
				GuiElement=$(AssignedCommandbar).readAttribute('classelement');
				AssignedCommandbar='';
			}
			else
				AssignedCommandbar=',assignedcommandbar:'+DSJS.ReplaceNoCase(AssignedCommandbar,'_commandbar','','All');
		}
		else
			AssignedCommandbar='';
		if($('aDSTabBar_'+name+'_'+element).readAttribute('tree'))
			GuiElement=$('aDSTabBar_'+name+'_'+element).readAttribute('tree');		
		
		if ($('DSTabBar_'+name).readAttribute('commandbarelement') && $('DSTabBar_'+name).readAttribute('commandbarelement')!=null) {		
			dontdoit=0;
			if (typeof DSExplorer.GUIPlace.CommandBar=='object') {
				DSExplorer.GUIPlace.CommandBar.Element.each(function(s) { 
					if (s==GuiElement){
						dontdoit=1;
						$break;
					}
				}); 
			}					
			if (dontdoit==0) {
				activeelement=top.DSGUIObject_Active['DSTabBar_'+name];
				$('a'+activeelement).setAttribute('assignedcommandbar',$($('DSTabBar_'+name).readAttribute('commandbarelement')).readAttribute('active'));	
			}
			
		}
		// alert('element:'+GuiElement+',guielement:'+CommandBarElement+AssignedCommandbar+',display:1,type:DisplayGuiPlace');
		DSDistributor('element:'+GuiElement+',guielement:'+CommandBarElement+AssignedCommandbar+',display:1,type:DisplayGuiPlace');
		
		if(ParentNavigator!='')
			$('aDSTabBar_'+ParentNavigator).setAttribute('assignedcommandbar',$(CommandBarElement).readAttribute('active'));		
		
	}
	// End All
	
	// Display the Content Element of the Tab
	DSStyle(element,'display:1,dsnavname:'+name);
	// Display the Content Context Element of the Tab
	DSStyle(element+'_context','display:1,dsnavname:'+name+'_context');	
	// Change the Classes of Active tab to Inactive and Clicked Tab to Active
	if(style!='browsertab')
		DSStyle('DSTabBar_'+name+'_'+element,'classname:dstabbar_'+style+',recordcount:'+recordcount+',position:'+position+',dsnavname:DSTabBar_'+name);
	else {
		DSStyle('DSTabBar_'+name+'_'+element,'classname:dstabbar_'+style+',recordcount:'+recordcount+',position:'+position+',dsnavname:DSTabBar_'+name);
		
	}
	DSPopUpResize();
}






function DSAccordion(e,thiselement,element,cmd,optionlist) {
	onclickevent='display';
	reloadtype='display';
	boxelement='';
	effect=1;	
	palette=0;
	xhr=0;
	air=0;
	// style='classic';
	DSOptionList(optionlist,'=');
	// Start ALL
	if(cmd!='')
		IsLoaded=top.DSFindLoader_Loaded(element,this.window);
	if($(element).innerHTML.length==0)
		IsLoaded=-1;
	if(cmd!='' && $(element) && $(element).innerHTML.length==0 && IsLoaded<=0)
		onclickevent='load';
	// alert('CMD:'+cmd+' Name:'+name+' Element:'+element+' IsLoaded:'+IsLoaded+' onclickevent:'+onclickevent);
	if((IsLoaded<0 && onclickevent=='load') || (IsLoaded>=0 && reloadtype=='reload' && $(element).style.display=='none') || (cmd!= '' && e.ctrlKey && $(element))){
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		dsloader(dsxpath+'dynasite.cfm?'+cmd,'dsloader',element,'xhr:'+xhr);
	}
	// End ALL
	statusindicatorcode_element='writingmode:dsacc_'+element+'_arrow';
	if(style=='plusminus' || style =='plusminusaqua')
		statusindicatorcode_element='displayswitch:'+element+'_plusminus_';
	// 2007-02-01 [AP] New
	if(boxelement!='') {
		parentelement=DSFindParnetNodeByName(thiselement,boxelement);
		if(parentelement.style.borderRightWidth=='0px') 
        	borderwidth=2;
		else
			borderwidth=0;
		parentelement.style.borderRightWidth=borderwidth+'px';
		parentelement.style.borderBottomWidth=borderwidth+'px';
		parentelement.style.borderLeftWidth=borderwidth+'px';
	}
	if(group!='') {
		if(top['DSGUIObject_Active']['DSAccordion_'+group]==null)
			top['DSGUIObject_Active']['DSAccordion_'+group]=element;
		lastelement=top['DSGUIObject_Active']['DSAccordion_'+group];
		statusindicatorcode_lastelement='writingmode:dsacc_'+lastelement+'_arrow';
		if(style=='plusminus' || style =='plusminusaqua')
			statusindicatorcode_lastelement='displayswitch:'+lastelement+'_plusminus_';
		top['DSGUIObject_Active']['DSAccordion_'+group]=element;
		// alert('element: '+element+' lastelement: '+lastelement+' lastdisplay: '+$(lastelement).getStyle('display'));
		if(lastelement!=element && $(lastelement).getStyle('display')=='block')
			DSStyle(lastelement,'guitype:DSAccordion,style:'+style+',effect:'+effect+',palette:'+palette+',dsnavname:DSAccordion_'+group+',displayshowhide,'+statusindicatorcode_lastelement);
		DSStyle(element,'guitype:DSAccordion,style:'+style+',effect:'+effect+',palette:'+palette+',dsnavname:DSAccordion_'+group+',displayshowhide,'+statusindicatorcode_element);
	}
	else if(IsLoaded<=0 || reloadtype!='reload') {
		DSStyle(element,'guitype:DSAccordion,style:'+style+',air:'+air+',effect:'+effect+',palette:'+palette+',dsnavname:DSAccordion_'+element+',displayshowhide,resize:0,'+statusindicatorcode_element);
		// DSStyle(element,'guitype:DSAccordion,style:'+style+',dsnavname:DSAccordion_'+element+',resize:0,'+statusindicatorcode_element);
		// new Effect.Appear(element);
	}
}


function DSSortNavigation(thiscmd,sortorderelement,label,optionlist) {
	sort_window=DSLoader_getWindowObject(thiscmd);
	
	if (top['DSSortingNavigator_'+thiscmd]==null)
		top['DSSortingNavigator_'+thiscmd]=new Array();
	
	DSSortingNavigator=top['DSSortingNavigator_'+thiscmd];
	
	//if (DSCAID==2260)
	//	alert('nav: DSSortingNavigator_'+sortorderelement)
	
	if (sort_window.$(sortorderelement)!=null) {
		seperater='>';
		sortorder=0;
		lastelement='';
		DSOptionList(optionlist);
		DSSortingNavigator[sortorder]=label;
		seperater='<span class="dshead_sortorder_seperater">'+seperater+'</span>';
		if (sort_window.$(sortorderelement).innerHTML!=null) {
			sort_window.$(sortorderelement).innerHTML='';
			for(i=0;i<DSJS.ArrayLen(DSSortingNavigator);i++) {
				//alert(DSSortingNavigator[i]);
				if (i==0)
					lastelement=DSSortingNavigator[i];
				else
					sort_window.$(sortorderelement).innerHTML+=DSSortingNavigator[i]+seperater;
			}
			sort_window.$(sortorderelement).innerHTML+=lastelement;
		}
	}
}

// 2007-08-10 [AP]
function DSMultipleSort(e,theElement,element) {	
	if(e.ctrlKey || e.metaKey){
		DSSorting=new Array();
		LastElement='';
		ElementArray1=$(theElement).previousSiblings();
		ElementArray2=$(theElement).nextSiblings();
		// Join both Arrays
		ElementArray=ElementArray1.concat(ElementArray2); 	
		for(i=0;i<DSJS.ArrayLen(ElementArray);i++) {			
			if (DSJS.ListFindNoCase(ElementArray[i].className,'dshead_active',' ')) {
				if (ElementArray[i].readAttribute('sortorder')==0)
					LastElement=ElementArray[i].readAttribute('sortby')+'|'+ElementArray[i].readAttribute('sortdirection');
				else
					DSSorting[ElementArray[i].readAttribute('sortorder')]=ElementArray[i].readAttribute('sortby')+'|'+ElementArray[i].readAttribute('sortdirection');
			}
		}		
		if (LastElement!='')
			 DSSorting.unshift(LastElement);

		//DSJS.ArrayAppend(DSSorting,LastElement);
		// Deletes empty Array entries		
		DSSorting=DSSorting.compact();
		DSSorting=DSJS.ArrayToList(DSSorting,'@')+'@';	
		//alert(LastElement+'\n '+DSSorting);
		if ($(element)){
			$(element).setAttribute('multiplesorting',DSSorting);	
			//alert(element);
		}
		
		//if (DSSorting!='')
		//	top.DSLoader_URLAdd='&dssorting='+DSSorting;
	}
	else if ($(element)){
		$(element).setAttribute('multiplesorting','');		
		//alert('ms: DSSortingNavigator_'+element)
		if (top['DSSortingNavigator_'+element]!=null)
			delete top['DSSortingNavigator_'+element];
	}
	//top.DSLoader_URLAdd='';
}




function DSStyle(element,optionlist) {
	//Needed for Scriptaculous [TR] 07.08.07	
	dsnavname='';
	dsresize=1;
	palette=0;
	effect=0;
	air=0;	
	DSOptionList(optionlist);

	if(dsnavname!='')
		activeelement=top['DSGUIObject_Active'][dsnavname];
	//  alert('GUIName:'+dsnavname+' ElementIN:'+element+' Activeelement:'+activeelement);
	for (i=0; i<function_list.length; i++) {
		this_function=function_list[i].split(":")
		if (this_function[0]=='height')
			$(element).style.height=this_function[1];
		else if (this_function[0]=='classname'){
			if(this_function[1]=='dssystemmenu') {
				$(activeelement).className=this_function[1]+'_inactive';			
				$('a'+activeelement).className=this_function[1]+'_inactive';
				$(element).className=this_function[1]+'_active';			
				$('a'+element).className=this_function[1]+'_active';
			}
			else if(this_function[1]=='dstree_explorerXXXNOTMOREINUSE' || this_function[1]=='dstree_explorer_subXXXNOTMOREINUSE') {
				if(activeelement!=null && $(activeelement+'_link')!=null) {
					$(activeelement+'_listitem').className=this_function[1]+'_inactive';			
					$(activeelement+'_link').className=this_function[1]+'_inactive';
				}
				$(element+'_link').className=this_function[1]+'_active';
			}
			else if(this_function[1]=='dstabbar_narrow' || this_function[1]=='dstabbar_custom') {
				if($('anker'+activeelement)) {
					$('anker'+activeelement).className='';			
				}
				$('anker'+element).className='active';
				if (this_function[1]=='dstabbar_custom')
					$('anker'+element).className+=' DSTabBarCustomClass';
			}
			else if(this_function[1]=='dstabbar_straight') {
				if($(activeelement)) {
					$(activeelement).removeClassName('dstabbar_straighta');
				}
				$(element).addClassName('dstabbar_straighta');
			}
			else if(this_function[1]=='dstabbar_browsertab') {
				if($('a'+activeelement)) {
					$('a'+activeelement).removeClassName('tabTable-active');
				}
				$('a'+element).addClassName('tabTable-active');
			}			
			else {
				if($('a'+activeelement))
					$('a'+activeelement).className=this_function[1];
				if($('a'+element))					
					$('a'+element).className=this_function[1]+'a';
				if(this_function[1]=='dstabbar_aquacenter') {
					if (position==1) {
				 		$(element).previousSibling.className='dstabbar_aquacenter_spacer_left_active';
						$(dsnavname+'_spacer_right').className='dstabbar_aquacenter_spacer_right';
					}
					else if (position==recordcount) {
						$('a'+element).style.border='0px';
						$(element).nextSibling.className='dstabbar_aquacenter_spacer_right_active';
						$(dsnavname+'_spacer_left').className='dstabbar_aquacenter_spacer_left';
					}
					else {
						$(dsnavname+'_spacer_left').className='dstabbar_aquacenter_spacer_left';
						$(dsnavname+'_spacer_right').className='dstabbar_aquacenter_spacer_right';						
					}
				}
			}
		}
	
		else if (this_function[0]=='visibility'){
			$(activeelement).style.visibility="hidden";
			$(element).style.visibility="visible";
		}
		else if (this_function[0]=='writingmode' && $(this_function[1])) {
				innercode=$(this_function[1]).innerHTML;
				if(innercode.indexOf("foldeXXXXr") != -1 ) {
					if(innercode.indexOf("maxi") != -1 )
						$(this_function[1]).innerHTML=top.DSTree_Expander_Opened;
					else
						$(this_function[1]).innerHTML=top.DSTree_Expander_Closed;
				}
				else {
					if ($(this_function[1]).style.writingMode == "lr-tb")
						$(this_function[1]).style.writingMode = "tb-rl";
					else 
						$(this_function[1]).style.writingMode = "lr-tb";
				}
		}
		else if (this_function[0]=='display' ){
			if($(activeelement)) {
				// new Effect.Fade(activeelement);
				$(activeelement).style.display="none";
			}
			if($(element)) {
				//new Effect.Appear(element);
				$(element).style.display="block";
			}
		}
		else if (this_function[0]=='displayswitch') {
			if($(this_function[1]+'0').style.display=='inline') {
				$(this_function[1]+'0').style.display='none';
				$(this_function[1]+'1').style.display='inline';
			}
			else {
				$(this_function[1]+'1').style.display='none';
				$(this_function[1]+'0').style.display='inline';
			}
		}
		else if (this_function[0]=='hide')
			$(this_function[1]).style.visibility="hidden";
		else if (this_function[0]=='show')
			$(this_function[1]).style.visibility="visible";
		else if (this_function[0]=='displayhide')
			$(activeelement).style.display='none';
		else if (this_function[0]=='displayshow')
			$(element).style.display='block';
		else if (this_function[0]=='displayshowhide' && $(element)) {
			if($(element).getStyle('display')=="block") {
				//new Effect.Fade(element);
				if(effect==1){
					if(palette==1)
						new Effect.BlindUp(element,{duration:0.5,afterUpdate:DSPopupHelper,afterFinish:DSPaletteStyle});
					else if(palette==2)
						new Effect.BlindUp(element,{duration:0.5,afterUpdate:DSPopupHelper,afterFinish:paletteupdate});
					else{
						if(air==1)
							new Effect.BlindUp(element,{duration:0.5});
						else
							new Effect.BlindUp(element,{duration:0.5,afterUpdate:DSPopupHelper,afterFinish:DSPopupHelper});
					}
				}
				else{
					$(element).style.display="none";
					if(palette==1)
						DSPaletteStyle();
					else if(palette==2)
						paletteupdate();
				}
			}
			else {
				//new Effect.Appear(element);	
				if(effect==1){
					if(palette==1)
						new Effect.BlindDown(element,{duration:0.5,afterUpdate:DSPopupHelper,afterFinish:DSPaletteStyle});
					else if(palette==2)
						new Effect.BlindDown(element,{duration:0.5,afterUpdate:DSPopupHelper,afterFinish:paletteupdate});
					else{
						if(air==1)
							new Effect.BlindDown(element,{duration:0.5});
						else
							new Effect.BlindDown(element,{duration:0.5,afterUpdate:DSPopupHelper,afterFinish:DSPopupHelper});
					}
				}
				else{
					$(element).style.display="block";
					if(palette==1)
						DSPaletteStyle();
					else if(palette==2)
						paletteupdate();
				}
			}
		}
	}
	//alert('top.DSGUIObject_Active.'+dsnavname+'=element');
	if(dsnavname!='')
		top['DSGUIObject_Active'][dsnavname]=element;
	if(dsresize==1)
		DSPopUpResize();
}
function DSPopupHelper(){
	DSPopUpResize();
}

// ***************************
// * END TabBar/Accordion    *
// ***************************

// Sortable

var DSSortable = Class.create();

DSSortable.prototype = {
	initialize: function (options) {
		// Set Options
		this.setOptions(options);
		// Get sortable elements by classname
		if(this.options.portal=='dssubbody')
			var sortables = $(this.options.portal).select('.'+this.options.column);
		else
			var sortables = $(this.options.portal).select('.'+this.options.column).concat($(this.options.portal+'_context').select('.'+this.options.column));
		// Bind sortable function to each element in sotables variable
		sortables.each(function (sortable) {
			var that=this;
			Sortable.create(sortable, {
				containment: sortables,
				constraint: false,
				tag: this.options.tag,
				//only: this.options.block,
				elements:sortable.childElements().findAll(function(s) { return s.hasClassName(that.options.block)==true && s.hasClassName(that.options.block+'_nodrag')==false;}),
				dropOnEmpty: true,
				ghosting: this.options.ghosting,
				handle: this.options.handle,
				hoverclass: this.options.hoverclass,
				/* onChange: function (block) {	}.bind(this),*/
				onUpdate: function (container) {
					// poststring = Sortable.serialize(container);
					// alert(poststring);
					if (!this.options.saveurl)
						return;
					if (container.id == this.options.blocklist)
						return;
					var url = this.options.saveurl;
					var postBodyContent='';
					var blocks = $(container.id).select('.'+this.options.block);
					if(this.options.accordion==true){
						for(blockitem=0; blockitem<blocks.length;v++)						{
							commacode='';
							if(blockitem!=blocks.length-1)
								commacode=',';
							if(blocks[blockitem].getElementsByClassName('nix')[0].getStyle('display')=='block')
								styledisplay='block';
							else
								styledisplay='none';							
							postBodyContent+=blocks[blockitem].id+':'+styledisplay+commacode;
						}
					}
					else{
						if(this.options.portal=='dssubbody')
							postBodyContent += container.id+'='+blocks.pluck('id').join(',');
						else{
							var counter=1;
							sortables.each(function (sortable) {
								if(counter==1)		
									postBodyContent+='columnvalue='+sortable.id+'='+$(sortable.id).select('.'+that.options.block).pluck('id').join(',');
								else
									postBodyContent+='|'+sortable.id+'='+$(sortable.id).select('.'+that.options.block).pluck('id').join(',');
								counter+=1;
							});
						}
					}
					postBodyContent = '' + postBodyContent;					
					//alert(postBodyContent);
					new Ajax.Updater(this.options.portal+'_widgetsets',url, {method: 'post', postBody: postBodyContent});
				}.bind(this)
			});
		}.bind(this));
		// Get draggable elements by classname
		var blocks = $(this.options.portal).select('.'+this.options.block);
		// Bind block function to each element in blocks variable
		blocks.each(
			function (block) {
				if($(block).hasClassName(this.options.block+'_nodrag')==false){
					var content = Element.childrenWithClassName(block, this.options.content, true);
					var toggle = Element.childrenWithClassName(block, this.options.toggle, true);
					for (i=0;i<toggle.length;i++){
						Event.observe(toggle[i], 'click',function (e) { Effect.toggle(content[i], 'Slide'); },false);
					}
				}
			}.bind(this)
		);
		// Click-Event for displaying widget-list box -> onclickevent call displayBlockList Function
		if(this.options.blocklistlink!='')
			Event.observe(this.options.blocklistlink,'click',this.displayBlockList.bindAsEventListener(this),false);

		// Dragging for widget-list box
		if(this.options.blocklist!='' && this.options.blocklistdragging==1)
			new Draggable(this.options.blocklist, {handle: this.options.blocklisthandle});
	},
	
	displayBlockList: function (e) {
		Effect.toggle(this.options.blocklist,'blind');
		Event.stop(e);
	},

 	setOptions: function (options) {
		this.options = options;
		Object.extend(this.options, options || {});
	},
	// Append blocks to assigned containers
	applySettings: function (settings) {
		that=this;
		for (var container in settings) {
			$(container).select('.'+this.options.block).each(function (block) {
				$(that.options.blocklist).appendChild($(block));
			});
			settings[container].each(function (block) {
				$(container).appendChild($(block));
			});
		}
	}
}
// End Sortable



function dsformwait(wait,form,delay_msec){
	if(isNaN(delay_msec)==false) {
		window.setTimeout("DSStyle(\'"+form+"\','dsnavname:DSFormWait,displayshowhide:1');DSStyle(\'"+wait+"\','dsnavname:DSFormWait,displayshowhide:1');DSPopUpResize()",delay_msec);
	}
	else {
		DSStyle(wait,'dsnavname:DSFormWait,displayshowhide:1');
		DSStyle(form,'dsnavname:DSFormWait,displayshowhide:1')
		DSPopUpResize();
	}
}

// 2005-04-12 [AP]
function ds_dom_table_cellcontent(table){
	counter=counter+1;
	cellcontent_1 = '<input type="text" class="ds_text" name="dsipfilter_'+counter+'" id="dsipfilter_'+counter+'" value="" maxlength="15" />';
	cellcontent_2 = '<div style="width:180px" id="dsipfilterdelete_'+counter+'" onclick="ds_dom_table_deleterow(event);">['+DSLang('delete')+']</div>';
	ds_dom_table_insertrow(table,2);
	DSPopUpResize();
}

function ds_dom_table_insertrow(table,cells) {
	tbl = $(table);
	row = tbl.insertRow(-1);
	listclass='dslist2';
	if ($(table).rows.length/2==parseInt($(table).rows.length/2))
		listclass='dslist1';
	row.className=listclass;				
	for (repeater=1;repeater<cells+1;repeater++) {	
		td = row.insertCell(-1);
		if (typeof eval('cellcontent_'+repeater)=='object') {
			td.appendChild(eval('cellcontent_'+repeater));
		}
		else {
			td.innerHTML=eval('cellcontent_'+repeater);
		}
	}
}

function ds_dom_table_deleterow(e) {
	var searchfortable=ns6? e.target : event.srcElement;
	while(searchfortable.tagName!="TABLE") {
		if(searchfortable.tagName=="TR")
			rowindex=searchfortable.rowIndex;
		searchfortable=ns6? searchfortable.parentNode : searchfortable.parentElement;
	}
	searchfortable.deleteRow(rowindex);
}

function dsresizetextarea(element,smallheight,largeheight) {
	if($('resize_'+element).innerHTML=='[++]') {
		$(element).style.height=largeheight+'px';
		$('resize_'+element).innerHTML='[--]';
		$('dsacc_dseditor_'+element+'_option').innerHTML=$('DSEditorCall_'+element).innerHTML;
		if(tinyMCE.get(element)!=null)
			$(element+"_ifr").style.height=largeheight+'px';
	}
	else {
		$(element).style.height=smallheight+'px';
		$('resize_'+element).innerHTML='[++]';
		$('dsacc_dseditor_'+element+'_option').innerHTML=$('DSEditorCall_'+element).innerHTML;
		if(tinyMCE.get(element)!=null)
			$(element+"_ifr").style.height=smallheight+'px';
	}
	DSPopUpResize();
}

// ***************************
// * START DsPopUP           *
// ***************************
function dspopup_zindex(callerem) {
	if(callerem=='dspopup1'){
		if($('dspopup3').style.zIndex>$('dspopup2').style.zIndex*1)
			current=eval($('dspopup3').style.zIndex*1);
		else
			current=eval($('dspopup2').style.zIndex*1);		
	}
	else if(callerem=='dspopup2'){
		if($('dspopup1').style.zIndex>$('dspopup3').style.zIndex*1)
			current=eval($('dspopup1').style.zIndex*1);
		else
			current=eval($('dspopup3').style.zIndex*1);		
	}
	else if(callerem=='dspopup3'){
		if($('dspopup1').style.zIndex>$('dspopup2').style.zIndex*1)
			current=eval($('dspopup1').style.zIndex*1);
		else
			current=eval($('dspopup2').style.zIndex*1);		
	}
	else
		return;
	$(callerem).style.zIndex=eval(current+'*1+1');
}

// Popup Actions
function dspopup(command,callerem,receiver,receiverem,displayfirstem,actionurl) {
	this_function=command.split("|");
	if (this_function[0]=='display') {
		if(this_function[1]=='dspopup1_body' || this_function[1]=='dspopup2_body' || this_function[1]=='dspopup3_body') {
			display="none";
			if ($('popupcontent').style.display=="none")
				display="block";
			$('popupcontent').style.display=display;
			if($('dspopupresize'))
				$('dspopupresize').style.display=display;
			DSPopUpResize();
		}
	}
	if (this_function[0]=='close' || this_function[0]=='saveclose') {
		$(this_function[1]).style.display="none";
		// loadiframe('dscmd=document_document_document_unlock');
	}
}



function DSButton_Cancel(urlstring,optionlist) {
	cancelalert=0;
	DSOptionList(optionlist);
	if(cancelalert==1){
		cancelquestion=confirm(DSLang('alertclosewindow'));
		if(cancelquestion==false)
			return;
	}
	if(urlstring!=''){
		if(window.name=='MAIN_loader') {
			dsloader(urlstring,'dsloader');
			top.dsexplorer_action_height=0;
			top.DSSetFrames() ;
		}
		if(window.name=='dsmanager_loader') {
			dsloader(urlstring,'dsloader');
			top.dsmanager_action_height=0;
			top.DSSetFrames() ;
		}
	
		else {		
			target=DSLeft(window.name,8);
			dsloader(urlstring,'dsloader');
			parent.dspopup('close|'+target);
		
		}
	}
	else{
		target=DSLeft(window.name,8);		
		parent.dspopup('close|'+target);
	}
}


// DSPopUpResize('dspopup1','height:*,width:)
function DSPopUpResize(target,optionlist) {
	if($('dsformwaitcode')) {
		if($('dsformwaitcode').style.display=='block')
			return false;
	}
	if(target==null)
		target=window.name;

	if(target!='ds') {
// Wird nicht mehr benötig da es in dscommand gesetzt wird [TR] 02.08.07
//		if($('dspopupbody')!=null)
//			$('dspopupbody').className=window.name.split("_")[0];
		resize=0;
		width=0;
		height='*';
		DSOptionList(optionlist);
		if(resize!=0 && parent.dsloader1!=null)
			parent.dsloader1.resizeTo(this_function[1].split("|")[0],this_function[1].split("|")[1]);
		if(height!=0 && $("dspopupbody")) {
			if(target=='dspopup0')
				heightadd=0;
			if((window.name=='dspopup1_loader' || window.name=='dspopup2_loader' || window.name=='dspopup3_loader') && parent.$(target)!=null && eval('parent.'+window.name+'.document').getElementById("dspopupbody")!=null ) {
				parent.$(window.name).style.height=eval($("dspopupbody").offsetHeight+'*1')+'px';
				parent.$(window.name).height = eval($("dspopupbody").offsetHeight+'*1')+'px';
				temptarget=target.slice(0,8);
				parent.$(temptarget).style.height = eval($("dspopupbody").offsetHeight+'*1')+'px';
				//$('popupcontent').style.height = eval($("dspopupbody").offsetHeight+'*1')+'px';
			}
		}
		if(width!=0 && parent.$(target)!=null) {
			if (isNaN(width))
				width=width;
			else 
				width=width+'px';
			parent.$(target).style.width=width;
			parent.$(target+'_body').style.width=width;
			// parent.$(target+'_footer').style.width=width;
			// parent.$(target+'_title').style.width=this_function[1]-2;
			// parent.$(target+'_body').style.width=this_function[1];
			// parent.$(target+'_footer').style.width=this_function[1];
		}
	}
	if(Dialog!=null && Dialog.container && Dialog.visible()){
		Dialog.shadowUnder(Dialog.container);
		if(parent.$(window.name) && parent.$(window.name).getHeight()<Dialog.container.cumulativeOffset()[1]+Dialog.container.getHeight()+5){
			parent.$(window.name).style.height=Dialog.container.cumulativeOffset()[1]+Dialog.container.getHeight()+5+"px"
			parent.$(window.name).height=Dialog.container.cumulativeOffset()[1]+Dialog.container.getHeight()+5+"px"
			temptarget=target.slice(0,8);
			parent.$(temptarget).style.height=Dialog.container.cumulativeOffset()[1]+Dialog.container.getHeight()+5+"px"
		}
	}
}

// ***************************
// * End DSPopUp             *
// ***************************

// ***************************
// * Start DragDrop          *
// ***************************


var dsdragapproved=false;
var dsdrag_z,dsdrag_x,dsdrag_y;
document.onmouseup=new Function("dsdragapproved=false");

function dsdrag(e,dragelement) {
	thedragelement=dragelement;
	dspopup_zindex(dragelement);
	dsdrag_z=$(dragelement);
	dsdrag_body=$(dragelement+'_body');
	dsdragapproved=true;
	if(dragelement=='dspopup2')
		startoffset=65;
	else if(dragelement=='dspopup3')
		startoffset=75;		
	else
		startoffset=50;
	if(dragelement=='dspopup1' || dragelement=='dspopup2' || dragelement=='dspopup3')
		dsdrag_body.style.display='none';
	temp1=parseInt(dsdrag_z.style.left+startoffset);
	temp2=parseInt(dsdrag_z.style.top+startoffset);
	dsdrag_x=ns6? e.clientX : event.clientX;
	dsdrag_y=ns6? e.clientY : event.clientY;
	document.onmousemove=dsdrag_move;
	return false;
}

function dsdrag_move(e) {
	if (dsdragapproved) {
		dsdrag_z.style.left=ns6? temp1+e.clientX-dsdrag_x+'px' : temp1+event.clientX-dsdrag_x+'px';
		// if(ie && parseInt(eventtop) > 20)
			dsdrag_z.style.top=ns6? temp2+e.clientY-dsdrag_y+'px' :  temp2+event.clientY-dsdrag_y+'px';
		eventtop=ns6? e.clientY :  event.clientY;
		if(ie && parseInt(eventtop) < 20 && (thedragelement=='dsm' || thedragelement=='dspopup1' || thedragelement=='dspopup2' || thedragelement=='dspopup3')) {
			document.onselectstart=new Function ("return false");
			dsdrag_z.style.top=ns6? e.clientY-dsdrag_y+15+'px' :  temp2+event.clientY-dsdrag_y+15+'px';
			dsdrag_body.style.display='block';
			// if(ie)
			// 	dsdrag_z.fireEvent('onmouseup');
			dsdragapproved=false;
			// document.onselectstart=new Function ("return true");
		}
		else
			return false;	
	}
}



//*****************
//* NewDSDragging *
//*****************
// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;


function dsdragstart(event,id,popup,el,option) {
  var el;
  var x, y;
  palette=0;
	if(option!=null) {
		DSOptionList(option);
	}
  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if(id){
	if(popup){
		dragObj.elNode = parent.$(id);
		parent.dspopup_zindex(id);
		//DSsetDocumentLock(true,dragObj.elNode);
	}
	else
		dragObj.elNode = $(id);
  }
  else {
    if (ie)
      dragObj.elNode = window.event.srcElement;
    else
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }
  // Get cursor position with respect to the page.
    x = event.screenX;
    y = event.screenY;
  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);
  dragObj.mouseDownWidth = parseInt(dragObj.elNode.style.width);
  dragObj.mouseDownHeight = parseInt(dragObj.elNode.style.height);  

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

//  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

	functionstopcode=dsdragstop;
	if(palette==1)
		functionstopcode=function (e) { dsdragstop(event,1);}
		
  if (ie) {
    parent.document.attachEvent("onmousemove", dsdraggo);
    parent.document.attachEvent("onmouseup",   functionstopcode);
    document.attachEvent("onmousemove", dsdraggo);
    document.attachEvent("onmouseup",   functionstopcode);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  else{
    parent.document.addEventListener("mousemove", dsdraggo,   true);
    parent.document.addEventListener("mouseup",   functionstopcode, true);
    document.addEventListener("mousemove", dsdraggo,   true);
    document.addEventListener("mouseup",   functionstopcode, true);
    event.preventDefault();
  }
}

function dsdraggo(event) {

  var x, y, top, left;

  // Get cursor position with respect to the page.

   x = event.screenX;
   y = event.screenY;

  // Move drag element by the same amount the cursor has moved.
  top=dragObj.elStartTop+y-dragObj.cursorStartY;
  top=top < 0 ? 0 : top;
  
  left=dragObj.elStartLeft+x-dragObj.cursorStartX;
  left=left < 0 ? 0 : left;

  dragObj.elNode.style.left = left + "px";
  dragObj.elNode.style.top  = top + "px";

  if (ie) {
	if(window.event==null){
		parent.window.event.cancelBubble = true;
		parent.window.event.returnValue = false;
	}
	else{
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
  }
  else
    event.preventDefault();
}

function dsdragstop(event,palette) {
	if(palette!=null && palette==1)
		paletteupdate();
	
  // Stop capturing mousemove and mouseup events.
  if (ie) {
    parent.document.detachEvent("onmousemove", dsdraggo);
    parent.document.detachEvent("onmouseup",   functionstopcode);
    document.detachEvent("onmousemove", dsdraggo);
    document.detachEvent("onmouseup",   functionstopcode);
  }
  else {
    parent.document.removeEventListener("mousemove",dsdraggo,true);
    parent.document.removeEventListener("mouseup",functionstopcode,true);
    document.removeEventListener("mousemove",dsdraggo,true);
    document.removeEventListener("mouseup",functionstopcode,true);
  }
  //DSsetDocumentLock(false,dragObj.elNode);
}

function paletteupdate(){
	new Ajax.Request(DSAdminURL+'/dynasite.cfm?dscmd=system_palette_palette_position&left='+$('dspalette').getStyle('left')+'&top='+$('dspalette').getStyle('top')+'&open='+$('dspalette').getStyle('display')+'&minimize='+$('dspalette_content').getStyle('display'), {method: 'get'});	
}

function dsresizestart(event, id, ownobject) {

  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id){
    dragObj.elNode = parent.$(id);
	parent.dspopup_zindex(id);
	dragObj.ownobject=ownobject;
  }
  else {
    if (ie)
      dragObj.elNode = window.event.srcElement;
    else (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

    x = event.clientX;

    y = event.clientY;


  // Save starting positions of cursor and element.
  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left,10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,10);
  dragObj.mouseDownWidth = parseInt(dragObj.elNode.style.width);
  dragObj.mouseDownHeight = parseInt(dragObj.elNode.style.height);   
  dragObj.Iframe=parent.$(id+'_loader');  

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

//  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (ie) {
    document.attachEvent("onmousemove", dsresizego);
    document.attachEvent("onmouseup", dsresizestop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  else {
    parent.document.addEventListener("mousemove",dsresizego2,true);
    parent.document.addEventListener("mouseup",dsresizestop,true);
    document.addEventListener("mousemove",dsresizego,true);
    document.addEventListener("mouseup",dsresizestop,true);

    event.preventDefault();
  }
}

function dsresizego(event) {
	width = dragObj.mouseDownWidth + (event.clientX - dragObj.cursorStartX);
	height = dragObj.mouseDownHeight + (event.clientY - dragObj.cursorStartY);

	width = width < 606 ? 606 : width;
	height = height < 100 ? 100 : height;


	dragObj.Iframe.style.width = (width) + 'px';
	dragObj.Iframe.style.height = (height) + 'px';
	dragObj.Iframe.width = width;
	dragObj.Iframe.height = height;
	dragObj.elNode.style.width = width + 'px';
	dragObj.elNode.style.height = height + 'px';
	//$('dspopupbody').style.width = (width-2) + 'px';
	//$('dspopupbody').style.height = height + 'px';
	$('popupcontent').style.width = (width-6) + 'px';
	$('popupcontent').style.height = (height-46) + 'px';
	DSsetDocumentLock(true,dragObj.ownobject);
//	this.headElement.style.width = width + 'px';
//	this.statusElement.style.width = width + 'px';

  if (ie) {
	window.event.cancelBubble = true;
	window.event.returnValue = false;
  }
  else
    event.preventDefault();
}

function dsresizego2(event) {
	width = dragObj.mouseDownWidth + (event.clientX - dragObj.cursorStartX - dragObj.elStartLeft);
	height = dragObj.mouseDownHeight + (event.clientY - dragObj.cursorStartY - dragObj.elStartTop );

	width = width < 606 ? 606 : width;
	height = height < 100 ? 100 : height;


	dragObj.Iframe.style.width = (width) + 'px';
	dragObj.Iframe.style.height = (height) + 'px';
	dragObj.Iframe.width = width;
	dragObj.Iframe.height = height;
	dragObj.elNode.style.width = width + 'px';
	dragObj.elNode.style.height = height + 'px';
//	$('dspopupbody').style.width = (width-2) + 'px';
//	$('dspopupbody').style.height = height + 'px';
	$('popupcontent').style.width = (width-2) + 'px';
	$('popupcontent').style.height = (height-46) + 'px';
	DSsetDocumentLock(true,dragObj.ownobject);	
//	this.headElement.style.width = width + 'px';
//	this.statusElement.style.width = width + 'px';

  if (ie) {
	window.event.cancelBubble = true;
	window.event.returnValue = false;
  }
  else
    event.preventDefault();
}

function dsresizestop(event) {

  // Stop capturing mousemove and mouseup events.

  if (ie) {
    document.detachEvent("onmousemove",dsresizego);
    document.detachEvent("onmouseup",dsresizestop);
  }
  else {
    parent.document.removeEventListener("mousemove",dsresizego2,true);
    parent.document.removeEventListener("mouseup",dsresizestop,true);	  
    document.removeEventListener("mousemove",dsresizego,true);
    document.removeEventListener("mouseup",dsresizestop,true);
  }
  	DSsetDocumentLock(false,dragObj.ownobject);
}


function DSsetDocumentLock (state,object) {
	var elm = $('mcWindowEventBlocker');

	if (state) {
		if (elm == null) {
			elm = document.createElement("div");

			elm.id = "mcWindowEventBlocker";
			elm.style.position = "absolute";
			elm.style.left = "0";
			elm.style.top = "0";

			document.body.appendChild(elm);
		}
		elm.style.display = "none";

		var width = document.body.clientWidth;
		var height = document.body.clientHeight-20;

		elm.style.width = width;
		elm.style.height = height;
		elm.innerHTML = '<img src="' + DSAdminURL + '/dot.gif" width="' + width + '" height="' + height + '" />';
		elm.style.zIndex = object.style.zIndex-1;
		elm.style.display = "block";
	} else if (elm != null) {
		elm.parentNode.removeChild(elm);
	}
};



// ***************************
// * END DragDrop            *
// ***************************

// ***************************
// * START dsfx_object       *
// ***************************
// 2005-04-21 [AP] In der project/_overview.cfm werden bis zu 7 Instances bengigt.
var dsfxlastobject_1='';
var dsfxlastobject_2='';
var dsfxlastobject_3='';
var dsfxlastobject_4='';
var dsfxlastobject_5=''; 

function dsfx_object(newobject,lastobject,functions,instance){
	if(newobject!='' && lastobject!='') {	
		if(instance==null)
			dsfxlastobject=dsfxlastobject_1;
		else	
			dsfxlastobject=this['dsfxlastobject_'+instance];
		if (dsfxlastobject=='')
			dsfxlastobject=lastobject;
	}
	function_list= functions.split(",");
	for (i=0; i<function_list.length; i++){
		this_function=function_list[i].split("=")
		if (this_function[0]=='height'){
			$(newobject).style.height=this_function[1];
		}
		else if (this_function[0]=='class'){
			$('a'+dsfxlastobject).className=this_function[1];			
			$('a'+newobject).className=this_function[1]+'a';
		}
		else if (this_function[0]=='visibility'){
			$(dsfxlastobject).style.visibility="hidden";
			$(newobject).style.visibility="visible";
		}
		else if (this_function[0]=='display'){
			$(dsfxlastobject).style.display="none";
			$(newobject).style.display="block";
		}
		else if (this_function[0]=='resize'){
			parent.dsloader1.resizeTo(this_function[1].split("|")[0],this_function[1].split("|")[1]);
		}
		else if (this_function[0]=='hide'){
			$(this_function[1]).style.visibility="hidden";
		}
		else if (this_function[0]=='show'){
			$(this_function[1]).style.visibility="visible";
		}
		else if (this_function[0]=='displayshowhide'){
			if($(newobject).style.display=="block"){
				$(newobject).style.display="none";
			}
			else{
				$(newobject).style.display="block";
				if(newobject!=lastobject)
					$(lastobject).style.display="none";
			}
		}
	}
	if(newobject!='' && lastobject!='') {	
		if(instance==null)		
			dsfxlastobject_1=newobject;
		else if (instance==2)
			dsfxlastobject_2=newobject;
		else if (instance==3)			
			dsfxlastobject_3=newobject;
		else if (instance==4)			
			dsfxlastobject_4=newobject;
		else if (instance==5)			
			dsfxlastobject_5=newobject;
	}
}
// ***************************
// * END dsfx_object         *
// ***************************

