
//****************************************
//* Initalize Variables                  *
//****************************************


// Commandbar
// var DSExplorer=new Object();
// top.DSExplorer='test';
// if (top.DSExplorer.GUIPlaces==undefined)
//	top.stylebase=new Array();
DSExplorer = new Object()
DSExplorer.GUIPlace=new Object();
DSExplorer.Workflow=new Object();
//DSExplorer.GUIPlace.CommandBar='';
//DSExplorer.GUIPlace.ContextMenu='';
//DSExplorer.GUIPlace.Paging='';
// alert(Object.keys(DSExplorer.GUIPlace));
//alert(top.DSExplorer.GUIPlaces.CommandBar);

// Set GUI Object
var dsnavname='undefined';
DSGUIObject_Active=new Object();

// 2008-09-27 [Ap]
var DS= {};

// Set Language Variables
function DSLang(variable) {
	var thisvariable=DSJS.LCase(variable);
	var returnvariable=DSLangArray['lang_'+thisvariable];
	if (returnvariable==undefined)
		returnvariable='undefined: '+thisvariable;

	return returnvariable;
}

//****************************************
//* END Initalize Variables              *
//****************************************

var dcbe = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body? document.body : null;
var naviuser = navigator.userAgent.toLowerCase();
var opera = !!(window.opera && document.getElementById);
var opera6 = opera && !document.defaultView;
var opera7 = opera && !opera6;
var ie = (navigator.appName == "Microsoft Internet Explorer");
var ns6 = !opera && !document.all && document.documentElement;
//ns6 = (!opera && document.defaultView && typeof document.defaultView.getComputedStyle != 'undefined');
var w3c = !ie && !ns6 && !opera && document.getElementById;


function DSInit(){
	dcbe = (document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body? document.body : null;
	naviuser = navigator.userAgent.toLowerCase();
	opera = !!(window.opera && document.getElementById);
	opera6 = opera && !document.defaultView;
	opera7 = opera && !opera6;
	ie = naviuser.indexOf("msie") != -1 && document.all && dcbe && !opera;
	ns6 = !opera && !document.all && document.documentElement;
	//ns6 = (!opera && document.defaultView && typeof document.defaultView.getComputedStyle != 'undefined');
	w3c = !ie && !ns6 && !opera && document.getElementById;	
}


if(window.name==null || window.name=='')
	window.name='ds';

var Engine = {
  detect: function() {
    var UA = navigator.userAgent;
    this.isKHTML = /Konqueror|Safari|KHTML/.test(UA);
    this.isGecko = (/Gecko/.test(UA) && !this.isKHTML);
    this.isOpera = /Opera/.test(UA);
    this.isMSIE  = (/MSIE/.test(UA) && !this.isOpera);
		this.isMSIE7 = this.isMSIE && (UA.indexOf('MSIE 7') != -1);
  }
}

Engine.detect();



Position.getPageSize = function() {
  var xScroll, yScroll;

  if (window.innerHeight && window.scrollMaxY) {  
    xScroll = document.body.scrollWidth;
    yScroll = window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
  }

  var windowWidth, windowHeight;
  if (self.innerHeight) { // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  } 

  // for small pages with total height less then height of the viewport
  pageHeight = Math.max(windowHeight, yScroll);

  // for small pages with total width less then width of the viewport
  pageWidth = Math.max(windowWidth, xScroll);

  return { page: { width: pageWidth, height: pageHeight }, window: { width: windowWidth, height: windowHeight } };
}


function NiftyCheck(){
	if(!document.getElementById || !document.createElement)
		return(false);
	var b=navigator.userAgent.toLowerCase();
	if(b.indexOf("msie 5")>0 && b.indexOf("opera")==-1)
		return(false);
	return(true);
}



/* DSJS - ColdFusion Functions for JavaScript
	Methods: 	
		Abs(number)
		ArrayAppend(array, value)
		ArrayLen(array)
		ArraySort(array, sort_type [, sort_order ])
		ArrayToList(array [, delimiter ])
		Ceiling(number)
		Compare(string1, string2)
		CompareNoCase(string1, string2)		
		DateDiff(datepart, date1, date2)
		DecimalFormat(number)
		DollarFormat(number)
		Find(substring, string)
		FindNoCase(substring, string)
		Insert(substring, string, position)
		IsDate(date)
		IsNumeric(string)
		LCase(string)
		Left(string, count)
		Len(sting)
		ListAppend(list, value, [, delimiters])
		ListDeleteAt(list, position [, delimiters ])
		ListFind(list, value [, delimiters ]))
		ListFindNoCase(list, value [, delimiters ]))
		ListGetAt(list, position [, delimiters ]))
		ListLen(list [, delimiters])
		ListSetAt
		ListToArray(list [, delimiters])
		LTrim(string)
		Mid(string, start, count)
		Replace(string, substring1, substring2 [, scope ])
		ReplaceNoCase(string, substring1, substring2 [, scope ])
		Reverse(string)
		Right(string, count)
		Round(number [, number of decimal places])
		RTrim(string)
		Trim(string)
		UCase(string)
		URLDecode(string)
		URLEncodedFormat(string)		
		
	Usage:
		
		DSJS.Len("returns the length of a sting");
		DSJS.ListGetAt('andy,tim,katrin',3);
		
	Code Variable Abbreviations:
		a 		= array
		c 		= count
		d 		= delimiters
		d1,d2 	= date one, date two
		dp 		= date part
		i 		= index
		l 		= list
		n 		= number
		p 		= position
		r 		= return value/string/etc 
		s 		= string
		s1,s2 	= string one, string two
		sb 		= substring
		sb1,sb2	= substring one, substring two
		so 		= sort order
		st 		= sort type
		sc 		= scope
		v 		= value
*/
var DSJS = {
	_CommaForThousands: function(n){
			var r = n.slice(0, n.indexOf('.'));
			for (var i = 0; i < Math.floor((r.length-(1+i))/3); i++){
				r = n.substring(0,n.length-(4*i+3)) + ',' + n.substring(n.length-(4*i+3));
			}
			return r;
	},
	Abs: function(n){
		return Math.abs(n);
	},	
	ArrayAppend: function(a, v){
		a[a.length] = v;
		return a;
	},
	ArraySort: function(a,st,so){
		var _so;
		if (st.toUpperCase() == 'TEXTNOCASE'){ 
			if(!so || so.toUpperCase() != "DESC"){
				_so = function(a, b) {a = a.toUpperCase(); b = b.toUpperCase(); if (a < b){return -1;} else if(a > b){return 1;} else {return 0;}};
			} else {
				_so = function(a, b) {a = a.toUpperCase(); b = b.toUpperCase(); if (a > b){return -1;} else if(a < b){return 1;} else {return 0;}};
			}		
		} else if (st.toUpperCase() == 'TEXT'){ 
			if(!so || so.toUpperCase() != "DESC"){
				_so = function(a, b) {if (a < b){return -1;} else if(a > b){return 1;} else {return 0;}};
			} else {
				_so = function(a, b) {if (a > b){return -1;} else if(a < b){return 1;} else {return 0;}};
			}		
		} else if (st.toUpperCase() == 'NUMERIC'){
			if(!so || so.toUpperCase() != "DESC"){
				_so = function(a,b) {return a - b;};
			} else {
				_so = function(a,b) {return b - a;};
			}			
		}
		return a.sort(_so);
	},
	ArrayToList: function(a,d){
		if(!d){d = ",";}
		var re = /[,]/gi;
		return a.toString().replace(re, d);
	},
	ArrayLen: function(a){		
		return a.length;		
	},	
	Ceiling: function(n){
		return Math.ceil(n);
	},
	Compare: function(s1,s2){
		if (s1 == s2) {return 0;}
		if (s1 > s2) {return 1;}	
		else {return -1;}
	},
	CompareNoCase: function(s1,s2){
		return this.Compare(s1.toUpperCase(),s2.toUpperCase());
	},
	DateDiff: function(dp,d1,d2){
		var dt1 = new Date(d1);
		var dt2 = new Date(d2);
		var iDiffMS = dt2.valueOf() - dt1.valueOf();
		var dtDiff = new Date(iDiffMS);
		var nYears  = dt2.getUTCFullYear() - dt1.getUTCFullYear();
		var nMonths = dt2.getUTCMonth() - dt1.getUTCMonth() + (nYears!==0 ? nYears*12 : 0);
		var nQuarters = nMonths / 3;		
		var nMilliseconds = iDiffMS;
		var nSeconds = iDiffMS / 1000;
		var nMinutes = nSeconds / 60;
		var nHours = nMinutes / 60;
		var nDays  = nHours / 24;
		var nWeeks = nDays / 7;
		var iDiff = 0;		
		switch(dp.toLowerCase()){
			case "yyyy": return nYears;
			case "q": return nQuarters;
			case "m": return nMonths;
			case "y": return nDays;
			case "d": return nDays;
			case "w": return nDays;
			case "ww":return nWeeks;		
			case "h": return nHours;
			case "n": return nMinutes;
			case "s": return nSeconds;
			case "ms":return nMilliseconds;
			default: return "invalid interval: '" + dp + "'";
		}
	},
	DecimalFormat: function(n){ 
		var r = n.toFixed(2);
		var bp = this._CommaForThousands(r.slice(0, r.indexOf('.') + 1));
		var ap = this.Right(r,2);
		r = bp + '.' + ap;
		return r;
	},
	DollarFormat: function(n) {
		var _n = n.toString().replace(/\$|\,/g,'');
		_n = _n.toString().replace('(','-');
		_n = _n.toString().replace(')','');
		if(isNaN(_n)){
			_n = 0;
		}
		var	sign = (_n == (_n = Math.abs(n)));
			_n = Math.floor(_n*100+0.50000000001);
		var	cents = _n%100;
			_n = Math.floor(_n/100).toString();		
		if(cents < 10){
			cents = "0" + cents;
		}
		_n = this._CommaForThousands(_n);
		return (((sign)?'':'(') + '$' + _n + '.' + cents + ((sign)?'':')'));
	},
	Find: function(sb,s){
		 return s.toString().indexOf(sb) + 1;
	},
	FindNoCase: function(sb,s){		
		return this.Find(sb.toUpperCase(),s.toUpperCase());
	},
	Insert: function(sb,s,p){
		return s.slice(0, p) + sb + s.slice(p, s.length);
	},
	IsDate: function(d){
		var datePat 	= /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray 	= d.toString().match(datePat);	
		if (matchArray === null) {
			return false;
		}	
		var month 	= matchArray[1];
		var day 	= matchArray[3];
		var year 	= matchArray[5];	
		if (month < 1 || month > 12) { 
			return false;
		}	
		if (day < 1 || day > 31) {
			return false;
		}	
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			return false;
		}	
		if (month == 2) { 
			var isleap = (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0));
				if (day > 29 || (day==29 && !isleap)) {
					return false;
				}
		}
		return true; 
	},
	IsNumeric: function(s){
		if (isNaN(s)){
			return false;
		} else {
			return true;
		}
	},
	LCase: function(s){		
		return s.toLowerCase();			
	},
	Left: function(s,c){
		return s.slice(0, c);
	},	
	Len: function(s){		
		return s.length;
	},
	ListAppend: function(l, v, d){
		if(!d){d = ",";}
		var r = ""; 
		if (this.ListLen(l)){
			r = l + d + v;
		} else {
			r = v;
		}
		return r;
	},
	ListDeleteAt: function(l, p, d){
		if(!d){d = ",";}
		var i,posInList;
		var posInArray = p - 1;
		var thisD 	= "";
		var r = ""; 
		for(i = 0; i < l.split(d).length; i++){
			if (i != posInArray){
				posInList = i + 1;
				if (r.length){
					thisD 	= d;
				}
				r += thisD + this.ListGetAt(l, posInList, d);
			}
		}
		return r;
	},
	ListFind: function (l,v,d){
		if(!d){d = ",";}
		var r = 0;
		var listToArray = l.split(d);
		for (var i=0; i < listToArray.length; i++){		
			if (listToArray[i] == v){
				r = i + 1;
				break;
			}
		}
		return r;
	},
	ListFindNoCase: function(l,v,d){
		if(!d){d = ",";}
		return this.ListFind(l.toUpperCase(), v.toUpperCase(), d);
	},
	ListFirst: function(l,d) {
		if(!d){var d=','}
		_TempListFirstSplitArray = l.split(d)
		return _TempListFirstSplitArray[0]
	},
	ListGetAt: function (l, p, d){
		if(!d){d = ",";}
		return l.split(d)[p - 1];
	},	


	ListLast: function(l,d) {
		if(!d){var d=','}
		_TempListFirstSplitArray = l.split(d)
		return _TempListFirstSplitArray[_TempListFirstSplitArray.length-1]
	},
	ListLen: function(l,d){	
		if(!d){d = ",";}		
		return l.split(d).length;
	},	
	ListSetAt: function(l,p,v,d) {
		if(!d){d = ",";}
		_TempListFirstSplitArray = l.split(d);
		_TempListFirstSplitArray[p-1]=v;
		_TempStringToReturn = _TempListFirstSplitArray.join(d);
		return _TempStringToReturn;
	},
	ListToArray: function(l,d){		
		var r,a,i;			
		if(!d){d = ",";}		
		r = [];

		a = l.split(d);			
		for(i=1; i <= a.length; i++){
			r[i] = a[i - 1];
		}			
		return r;	
	},
	LTrim: function(s){
		return s.toString().replace(/^\s*/, '');
	},	
	Mid: function(s, start, c){
		start -= 1;
		return s.slice(start,start + c);
	},
	Replace: function(s,sb1,sb2,sc){
		if(!sc || sc.toUpperCase() != "ALL"){
			sc = "";
		} else {
			sc ="g";
		} 	
		var re = new RegExp(sb1,sc);
		return s.replace(re,sb2);
	},

	ReplaceNoCase: function(s,sb1,sb2,sc){
		if(!sc || sc.toUpperCase() != "ALL"){
			sc = "i";
		} else {
			sc ="gi";
		} 	
		var re = new RegExp(sb1,sc);
		return s.replace(re,sb2);
	},
	Reverse: function(s){
		var i = s.length;
		var r = "";	
		for (i; 0 <= i; i--){	
			r += s.charAt(i);	
		}	
		return r;
	},
	Right: function(s,c){
		return s.slice(s.length - c, s.length);
	},
	Round: function(n,p) {
		if (!isNaN(n.toFixed(p))){
			return n.toFixed(p);
		} else {
			return n;
		}
	},
	RTrim: function(s){
		return s.toString().replace(/\s*$/, '');
	},
	Trim: function(s){
		return s.replace(/^\s*|\s*$/g,'');
	},
	UCase: function(s){		
		return s.toUpperCase();			
	},
	URLDecode: function(s){
		return unescape(s);
	},	
	URLEncodedFormat: function(s){
		return encodeURI(s);
	},
	Year: function (mydate) {
		_newDate = new Date(mydate)
		return _newDate.getYear();
	},
	// 2008-07-16 [AP] Added LSCurrencyFormat	
	LSCurrencyFormat: function (num) {
		currency=''; // € oder $
		num = num.toString().replace(/\$|\,/g,'');		
		if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
		if(cents<10)
		cents = "0" + cents;
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+'.'+
		num.substring(num.length-(4*i+3));
		return (((sign)?'':'-') + currency + num + ',' + cents);
	}		
	

};


/* END DSJS - ColdFusion Functions for JavaScript */


function DSIsDefined( variable){
    return (typeof(window[variable]) == "undefined")?  false: true;
}
function isdefined( variable){
    return (typeof(window[variable]) == "undefined")?  false: true;
}



function DSGetVarFromURL(url,variable) {
	variable = variable.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+variable+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec(url);
	if(results==null)
		return "";
	else
		return results[1];
}

// Start
function DSSnippetSelect (e,type,field,optionlist) {
	this.contentdiv='fff';	
	DSOptionList(optionlist);	
	
	top.DSSnippetSelect_type=type;
	top.DSSnippetSelect_field=field;
	DSContextShow(e,contentdiv);
}


function DSSnippetInsert(theSelect) {
	if(theSelect.selectedIndex>=0) {
		theContentObject=theSelect.options[theSelect.selectedIndex].value;
		content=$(theContentObject).innerHTML;
		if($(theSelect.options[theSelect.selectedIndex].value+'_replacelist')) {
			thelist=$(theSelect.options[theSelect.selectedIndex].value+'_replacelist').value;
			for(replacevar=0;replacevar < DSJS.ListLen(thelist,',');replacevar++) {
				Item=DSJS.ListGetAt(thelist,replacevar+1,',');
				if(DSJS.ListLen(Item,':')==2) {
					content=DSJS.ReplaceNoCase(content,DSJS.ListGetAt(Item,1,':'),DSJS.ListGetAt(Item,2,':'));
				}
			}
		}
	}
	if(top.DSSnippetSelect_type=='field')
		$(top.DSSnippetSelect_field).value=$(top.DSSnippetSelect_field).value+content;
	else if(top.DSSnippetSelect_type=='dseditor'){
		tinyMCE.get(top.DSSnippetSelect_field).selection.setContent(content);
		if(top.DSSnippetSelect_field=='messagebody')
			tinyMCE.get(top.DSSnippetSelect_field).dom.setHTML('dssenderemail', $('email_from').options[$('email_from').selectedIndex].value);		
	}
	//tinyMCE.setContent(tinyMCE.getContent(top.DSSnippetSelect_field)+content);

	theSelect.selectedIndex=0;
}

ds_selected_obj_to_insert='';
function ds_selected_obj_insert(tvs,tve){
	if (ds_selected_obj_to_insert=='')
		return;
	ds_selected_obj_to_insert.focus();
	if(typeof document.selection != 'undefined'){
		thisSelection=document.selection.createRange();
		range_text_length = thisSelection.text.length;
		thisSelection.text = tvs+thisSelection.text+tve;
		if (range_text_length==0)
			thisSelection.move('character', -tve.length);
		thisSelection.select();
	}
	else if(typeof ds_selected_obj_to_insert.selectionStart != 'undefined'){
		sec_start = ds_selected_obj_to_insert.selectionStart;
		sec_end = ds_selected_obj_to_insert.selectionEnd;
		sec_insText = ds_selected_obj_to_insert.value.substring(sec_start,sec_end);
		ds_selected_obj_to_insert.value = ds_selected_obj_to_insert.value.substr(0, sec_start) + tvs + sec_insText + tve + ds_selected_obj_to_insert.value.substr(sec_end);
		new_pos=0;
		if (sec_insText.length==0)
			new_pos = sec_start + tvs.length;
		else
			new_pos = sec_start+tvs.length+sec_insText.length+tve.length;
		ds_selected_obj_to_insert.selectionStart=new_pos;
		ds_selected_obj_to_insert.selectionEnd=new_pos;
	}
	else{
		ds_selected_obj_to_insert.value+=tvs + tve;
	}
}
// End


// readAttribute('active'));
// ***************************
// * START DSLoader          *
// ***************************

var dsloaderid=0;
function dsgetloaderid() {
	dsloaderid++;
	if (dsloaderid>5)
		dsloaderid=1;
}

function DSLoader_getWindowObject(theCommand) {
	pos=top.DSFindLoader_Loaded(theCommand);
	if (pos>-1)
		return top.DSLoader_Loaded[pos][0];
	else
		return this.window
} 

xhrcounter=0;

function dsloader(url,target,element,optionlist) {
	//alert('window.name:'+window.name+'url:'+url+' target:'+target);
		
	type='load';
	popupwarning=1;
	postform='';
	theelement=url;
	cancelalert=0;
	xhr=0;
	dspopup1_loader_width=20;
	dspopup2_loader_width=30;
	dspopup3_loader_width=40;	
	dspopup1_width=20;
	dspopup2_width=30;
	dspopup3_width=40;	
	DSOptionList(optionlist);
	if(target==null)
		target='dspopup1';
	url=url+'&dscaller='+window.name+'&dsreceiver='+target;
	if(typeof top.DSLoader_URLAdd != 'undefined' && top.DSLoader_URLAdd!='')
		url=url+top.DSLoader_URLAdd;

	// 2009-02-07 [AP] Multiple Sorting
	// Das Attributre mulitplesorting wird in der DSMultipleSort() Funktion gesetzt
	if ($(element) && $(element).readAttribute('multiplesorting')) {
		url+='&dssorting='+$(element).readAttribute('multiplesorting');	
	}
	if(cancelalert==1)
		url=url+'&cancelalert=1';
	//if (DSCAID==2260) {
	//	alert('url:'+url+'\ndselement:'+DSJS.FindNoCase('&dselement=',url)+'\nelement:'+DSJS.FindNoCase('='+element,url));
	//}
	if (DSJS.FindNoCase('&dselement=',url)==0 && DSJS.FindNoCase('='+element,url)==0 && element)
		url+='&dselement='+element;
	//2008-07-01 [AP]
	//if (DSCAID=2260)
	//	alert('each:'+s+'\nurl:'+url+'\ncommand:'+DSJS.FindNoCase('cmd='+s,url)+'\nCommandbarElement:'+DSJS.FindNoCase('DSCommandBarElement',url))
	if (typeof DSExplorer.GUIPlace.CommandBar=='object' && DSJS.FindNoCase('DSCommandBarElement',url)==0) {
		DSExplorer.GUIPlace.CommandBar.Element.each(function(s) { 
			//if (DSJS.FindNoCase('cmd='+s,url)){
			if (s==element) {	
				url=url+'&dscommandbarelement='+DSExplorer.GUIPlace.CommandBar.Name;
				$break;
			}
		}); 
	}		
	if (element!=null)
		theelement=element;
	//if (DSCAID==2260)
	//	alert(url);
	if(DSLeft(target,7)=='dspopup') {
		if(DSIsBackEnd==1) {
			MAINWIndow='top.MAIN.';
			if(dsviewcheck()=='dsmanager')
				MAINWIndow='top.dsmanager.';
		}
		else
			MAINWIndow='top.';
		
		TargetWindowObject=eval(MAINWIndow+target+'_loader');
		if(type=='load') {
			if(eval(MAINWIndow+'$(\''+target+'\').style.display')=='block' && TargetWindowObject.DSPopUp_RefreshAlert && TargetWindowObject.DSPopUp_RefreshAlert==1) {
				editor_warning=confirm(DSLang('alertdicardpopupcontent'));
				if(editor_warning==false)
					return
			}
			if(xhr==0)
				TargetWindowObject.location.href=url;
			else
				new Ajax.Updater(theelement, url+'&dsxhr=1',{parameters: { text: $(theelement) }}); 
				
		}
		if (dcbe==null)
			DSInit();
		if((parent.document.getElementById(target) || $(target)) && type=='load'){
			if($(target)){
				$(target).style.left = 20+eval(target+'_width') + "px";
				$(target).style.top = DSInt(dcbe.scrollTop+20+eval(target+'_width')) + "px";
			}
			else{
				parent.$(target).style.left = 20+eval(target+'_width') + "px";
				parent.$(target).style.top = DSInt(parent.dcbe.scrollTop+20+eval(target+'_width')) + "px";
			}
		}
	}
	else if(target=='dsmanager') {
		TargetWindowObject=eval(top.dsmanager);
	}
	else if(target=='dssidebar') {
		TargetWindowObject=eval(top.dssidebar);
	}	
	else if(target=='MAIN' || target=='ds' || target=='dsfront') {
		if(DSIsBackEnd==1)
			TargetWindowObject=eval(top.MAIN);
		else
			TargetWindowObject=eval(top);
	}
	else if(target=='dsloader') {
		if($('dsformwaitcode') && url.indexOf('unlock') == -1)
			$('dsformwaitcode').style.display='block';
		dsgetloaderid();
		// 2006-07-27 [AP] Postform
		if(postform!='' && $(postform)) {	
			$(postform).action=url;
			$(postform).target='dsloader'+dsloaderid;		
			$(postform).submit();
		}
		else {			
			if(DSIsBackEnd==1)
				TargetWindowObject=eval('top.dsloader_action.'+target+dsloaderid);
			else
				TargetWindowObject=eval('top.'+target+dsloaderid);
			if(xhr==0){
				TargetWindowObject.location.href=url;
			}
			else{
				/*this.transport=new Ajax.Request(url+'&dsxhr=1', {method:'post',onComplete:function(transport) {
						$(theelement).innerHTML = transport.responseText.stripScripts();
					    setTimeout(function() {transport.responseText.evalScripts()}, 10);
					}
				});*/
				new Ajax.Updater(theelement, url+'&dsxhr=1',{evalScripts:true}); 
			}
		}
	}
	else if(target=='_self')
		self.location.href=url;
	else if(target=='this.window'){
		TargetWindowObject=this.window;
	}
	else {
		// 2007-03-24 [AP]
		if (type!='add')
			dsnav_open_win(url,target);
	}

	// LoaderArray Settings
	if(target=='dsloader')
		thetarget='dsloader'+dsloaderid;
	else
		thetarget=target;
	help_array=[];
	if(type=='load')
		help_array[0]=this.window;
	else if (type=='add') {
		if(DSLeft(target,7)=='dspopup')
			TargetWindowObject=eval(MAINWIndow+target);
		help_array[0]=TargetWindowObject;
	}
	help_array[1]=theelement;
	if(typeof TargetWindowObject!='undefined')
		help_array[2]=TargetWindowObject;
	else
		help_array[2]=this.window;
	help_array[3]=type;
	help_array[4]=url;
	top.DSLoader_Loaded[top.DSLoader_Loaded.length]=help_array;
}

// Clear top.DSLoader_Loaded Commands for this.window
DSLoader_Loaded=new Array();
if(top.DSLoader_Loaded!=null) {
	for(i=0;i<top.DSLoader_Loaded.length;i++)
		if(top.DSLoader_Loaded[i][0]==this.window) {
			top.DSLoader_Loaded[i][0]=-1;
			top.DSLoader_Loaded[i][1]=-1;
			top.DSLoader_Loaded[i][2]=-1;
			top.DSLoader_Loaded[i][3]=-1;
			top.DSLoader_Loaded[i][4]=-1;
			top.DSLoader_Loaded[i]=-1;
		}
}


function DSLoader_ShowLoaded() {
	msg='';
	theloaderaction='';
		for (i=top.DSLoader_Loaded.length-1;i>=0;i--) {
			if(top.DSLoader_Loaded[i][0]!=null) {
				if(top.DSLoader_Loaded[i][3]=='load')
					theloaderaction='<a href="javascript:dynasite();" onclick="window.open(\''+top.DSLoader_Loaded[i][4]+'\',\'dsloadertop\');">'+top.DSLoader_Loaded[i][1]+'</a>';
				else
					theloaderaction=top.DSLoader_Loaded[i][1];
				msg+='<tr style="background-color:#eeeeee"><td>'+i+'</td><td>'+top.DSLoader_Loaded[i][3]+'</td><td>'+theloaderaction+'</td><td>'+top.DSLoader_Loaded[i][0].name+'</td><td>'+top.DSLoader_Loaded[i][2].name+'</td><td nowrap="nowrap">'+top.DSLoader_Loaded[i][4]+'</td></tr>';
			}
		}
		if(msg.length==0)
			msg='<table><tr><td>Nothing loaded</td></tr></table>';
		else
			msg='<table cellspacing="1" style="padding:2px;width:100%"><tr><td class="dshead">ID</td><td class="dshead">Type</td><td class="dshead">Command/Element</td><td class="dshead">Caller</td><td class="dshead">Receiver</td><td class="dshead">URL</td></tr>'+msg+'<tr><td colspan="6">&nbsp;</td></tr></table>';
		if(top.DSManagerLoaded==1) 
			top.dsmanager.$('loaderloadeddiv').innerHTML=msg+'&nbsp;';
		else
			$('loaderloadeddiv').innerHTML=msg+'&nbsp;';
// alert(msg);

}

function DSFindLoader_Loaded(cmd,thewindow){
	//top.DSLoader_Loaded[i][0]=window (frame oder iframe)
	//top.DSLoader_Loaded[i][1]=command
	var i=0;
	var cmdcode='';
	if (top.DSLoader_Loaded.length > 0){
		for (i=top.DSLoader_Loaded.length-1;i>=0;i--){
			if(cmd=='lastcmd' && top.DSLoader_Loaded[i][3]=='load' && DSJS.Find('unlock',top.DSLoader_Loaded[i][1])==0 && DSJS.Find('command_edit',top.DSLoader_Loaded[i][1])==0) {
				return i;
				break;					
			}
			cmdcode=top.DSLoader_Loaded[i][1];
			if(typeof cmdcode != 'undefined') {
				// alert('Index:'+i+'CMDCode:'+cmdcode+' CMD:'+cmd);
				if(thewindow!=null) {
					// if(cmd.indexOf(cmdcode) != -1 &&  top.DSLoader_Loaded[i][0]==thewindow) {
					if(cmd==cmdcode &&  top.DSLoader_Loaded[i][0]==thewindow) {
						return i;
						break;
					}
				}
				else if(cmd==cmdcode) {
					 //alert('i:'+i+' len:'+top.DSLoader_Loaded.length+'code'+cmdcode+'cmd:'+cmd);
					return i;
					break;					
				}
			}
		}
	}
	return -1;
}

function dsdisable(thisvalue,disablevalue,operator,fieldlist,additional) {
	// 2006-10-24 [AP] new option, Operator != 
	var i=0;
	thisdisabled=0;
	additionaldisable='';
	if (additional!=null) {
		additional =additional.split(",");	
		for (i=0; i < additional.length; ++i) {
			//Element[0] = Formfield, Element[1] = Disable Value 
			element=additional[i].split(":");				
			selecttype=$(element[0]).type;							
			if (selecttype=="select-one" && $(element[0]).options[$(element[0]).selectedIndex].value==element[1]) 		
				additionaldisable=1;
			else if (selecttype=='radio' && $(element[0]).checked==true && $(element[0]).value==element[1])
				additionaldisable=1;
			else
				additionaldisable=0;		
		}
		if (thisvalue==disablevalue && additionaldisable==1)
			thisdisabled=1;	
	}
	else {
		if (operator=="!=") {
			if (thisvalue!=disablevalue)
				thisdisabled=1;
		}
		else {
			if (thisvalue==disablevalue || thisvalue=='')
				thisdisabled=1;
		}
	}	
	fieldlist=fieldlist.split(",");	
	for(i=0; i<fieldlist.length; i++){		
		if ($(fieldlist[i])) {
			if ($(fieldlist[i]).type!=undefined)// Ungleich Form-Felder
				$(fieldlist[i]).disabled=thisdisabled;
			else {
				if (thisdisabled==1) {
					$(fieldlist[i]).style.display='none';
					if ($(fieldlist[i]).nodeName=="TD")
						$(fieldlist[i]).setAttribute("style","display:none")
				}
				else {
					$(fieldlist[i]).style.display='block';	
					if ($(fieldlist[i]).nodeName=="TD")
						$(fieldlist[i]).setAttribute("style","display:table-cell !important;display:block")				
				}
			}
		}
	}
	DSPopUpResize();
}

function dsnav_open_win(url, target, scroll){
	if (url.length==0)
		return false;
	Ausdruck=/&target=(\w.+)&.+&/;
	if (Ausdruck.test(url)){
		Ausdruck.exec(url);
		target=RegExp.$1;
		Ausdruck=/&width=(\d.+)&/;
		Ausdruck.exec(url);
		width=RegExp.$1;
		Ausdruck=/&height=(\d.+)/;
		Ausdruck.exec(url);
		height=RegExp.$1;
		Ausdruck=/(\w.+)&target=/;
		Ausdruck.exec(url);
		url=RegExp.$1;

eval(target+"=window.open('"+url+"','"+target+"','width="+width+",height="+height+",left="+Math.ceil(screen.width/2-width/2)+", top="+Math.ceil((screen.height-height)/2)+",screenx=0,scrollbars="+scroll+",screeny=0,dependent=yes,resizable=yes')");
		eval(target+".focus()");
	}
	else
		window.open(url, target);
}

// ***************************
// * END DSLoader            *
// ***************************


function dsnonselect(event,thisElement){
	if(event.altKey){
		thisElement.onselectstart='return false';
		thisElement.unselectable='on';
		thisElement.style.cssText=thisElement.style.cssText+';-moz-user-select:none !important';
	}
	else{
		thisElement.onselectstart='';
		thisElement.unselectable='off';
		thisElement.style.cssText=thisElement.style.cssText.replace(';-moz-user-select:none !important','');
	}
}

function DSFindParnetNodeByName(element,nodename){
	parentnode=element.parentNode;
	returnnode='';
	nodename=nodename.toLowerCase();
	while (returnnode=='') {
		parnetnodename=parentnode.nodeName.toLowerCase();
		if (parnetnodename==nodename || parnetnodename=='html')
			returnnode=parentnode;
		parentnode=parentnode.parentNode;
	}
	return returnnode;
}


// ***************************
// * START Global functions  *
// ***************************

function DSAddBodyOnLoad(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
		window.onload = func;
	else {
		window.onload = function() {
			oldonload();
			isfullfunction=func.search(/\(/gi);0
			if (isfullfunction!=-1)
				eval(func);
			else
				func();
		}
	}
}

function DSBlank(){
	return;
}

function DSSetFocus(element) {
	$(element).activate();
}

function DSArrayFind(array,value) {
	found=false;
	for(afi=0;afi<array.length;afi++) {
		if(array[afi]==value) {
			found=true;
			break
		}
	}
	return found;
}
function DSArrayFindPos(array,value) {
	found=-1;
	for(afi=0;afi<array.length;afi++) {
		if(array[afi]==value) {
			found=afi;
			break
		}
	}
	return found;
}

function DSArrayDeleteElement(this_array,this_pos){
	var help_array=new Array();
	var i=0;
	for(i=0;i<this_array.length;i++){

		if (this_pos!=i){
			help_array[help_array.length]=this_array[i];
		}
	}
	return help_array;
}

function DSArrayToList(array,delimitter){
	var i=0;
	var list='';
	for (i=0;i<array.length;i++){
		if (list=='')
			list+=array[i];
		else
			list+=delimitter+array[i];
	}
	return list;
}

function DSTrim(this_value){
	return this_value.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

function DSLeft(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function DSRight(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function DSInt(to_integer){
	to_integer=parseInt(to_integer);
	if (isNaN(to_integer))
		to_integer=0;
	return to_integer;
}

function DSNumChk(this_number){
	this_number=DSTrim(this_number)
	punkt=this_number.indexOf(".");
	komma=this_number.indexOf(",");
	if (komma > -1){
		if (punkt==-1)
			this_number=this_number.replace(',','.');
		else if(komma<punkt)
			this_number=this_number.replace(',','');
		else if(punkt<komma){
			this_number=this_number.replace('.','');
			this_number=this_number.replace(',','.');
		}
	}
	return this_number;
}

function DSIsNum(this_number){
	this_number=DSNumChk(this_number);
	if (this_number=='' || isNaN(this_number))
		return false;
	else
		return true;
}

function dswinopen(url,width,height,rzb,sb,target){
	eval(target+"=window.open('"+url+"','"+target+"','width="+width+", height="+height+", left="+Math.ceil(screen.width/2-width/2)+", top="+Math.ceil((screen.height-height)/2)+", dependent=1, resizable="+rzb+", scrollbars="+sb+"')");
	eval(target+".focus()");
}

function DSOptionList(OptionList,Delimiter) {
	var i=0;
	if(OptionList!=null) {	
		theDelimiter=':';
		if(Delimiter!=null)
			theDelimiter=Delimiter;
		function_list= OptionList.split(",");
		for (i=0; i<function_list.length; i++) {
			//alert(function_list[i]);
			this_function=function_list[i].split(theDelimiter);
			this[this_function[0]]=this_function[1];
			//eval(this_function[0]+"='"+this_function[1]+"'");
		}
	}
}


var listclass='';
function DSonMouseOverOut(OverOut,thiselement,optionlist) {
	classname='dslist1';
	hoverclass='dslist_hover';
	if (optionlist!=null)
		DSOptionList(optionlist);
	if(OverOut=='over' && thiselement.className!='dslist_selected' && thiselement.className!='trprintno') {
		listclass=thiselement.className;
		thiselement.className=hoverclass;
	}
	if(OverOut=='out' && thiselement.className!='dslist_selected' && thiselement.className!='trprintno') {
		thiselement.className=classname;
	}
}




// ***************************
// * END Global functions    *
// ***************************


// ***************************
// * START Layout - Colors   *
// ***************************
function DSColorSchemeBar(height,type) {
	colorschemebar='<table cellpadding="0" cellspacing="0" width="100%"><tr><td style="height:'+height+'px;width:20%;background:#d70026;"></td><td style="width:20%;background:#3399cc;"></td><td style="width:20%;background:#99cc33;"></td><td style="width:20%;background:#ff6600;"></td><td style="width:20%;background:#FFCC33;"></td></tr></table>'
	if(type=='document.write')
		document.write(colorschemebar);
	else
		return colorschemebar;
}

var colors=new Array('#D70026','#3399CC','#99CC33','#FF6600','#FFCC33');
var trcolors=new Array('#FFFFFF','#f1f5fa');

function DSChildLoop(theElement,theTagName,theAction) {
	var i=0;
	var index=0;
	var theElement = $(theElement);
	for (var i = 0; i < theElement.childNodes.length; ++i) {
		if (theElement.childNodes.item(i).nodeName == theTagName) {
			if(theAction=='dscoloring') {
				theElement.childNodes.item(i).style.color=colors[index];
				index=index+1;
				if(index==colors.length)
					index=0;
			}
			else if(theAction=='trcoloring') {
				theElement.childNodes.item(i).style.backgroundColor=trcolors[index];
				index=index+1;
				if(index==trcolors.length)
					index=0;					
			}
		}
	}
}


function DSSetTRColor (table) { 
    $$('table#'+table+' tbody > tr:nth-child(odd)').each(function(s) {
        s.setStyle('background-color:#ffffff');
    });
    $$('table#'+table+' tbody > tr:nth-child(even)').each(function(s) {
        s.setStyle('background-color:#f1f5fa');
   });
}
function dsulloop(theElement) {
	var index=0; 
	var ul = $(theElement);
	for (var i = 0; i < ul.childNodes.length; ++i) {

		if (ul.childNodes.item(i).nodeName == "LI") {
			ul.childNodes.item(i).style.color=colors[index];
			index=index+1;
			if(index==colors.length)
				index=0;
		}
	}
}

function dswrite_bgcolor(formular,feld) {
	$(feld+'color').style.backgroundColor=$(feld).value;
}

// ***************************
// * END Layout - Colors     *
// ***************************

// Start
function DSPageRowSelect(theElement,theCMD,option) {
	//2008-07-01 [AP] URL.Variable DSPageRowAction hinzugefügt
	var page=theElement.options[theElement.selectedIndex].value;
	postform='';
	element='';
	if(option!=null){
		DSOptionList(option);
	}
	if(postform!='' && $(postform)!=null)
		dsloader(dsxpath+'dynasite.cfm?'+theCMD+'&dspagerows='+page+'&dspagerowsaction='+page,'dsloader',element,'postform:'+postform);
	else
		dsloader(dsxpath+'dynasite.cfm?'+theCMD+'&dspagerows='+page+'&dspagerowsaction='+page,'dsloader',element);
}
// End

//Start
function dscheckticketmessage(dsctid){
	checkmessageconfirm=true;
	if($('messagebody_'+dsctid) && $('messagebody_'+dsctid).value.length>0 && $('messagebody_'+dsctid).value.length<20){
		checkmessageconfirm=false;
		alert('Es wird keine Email verschickt weil die Nachricht zu kurz ist!\nSie benötigt mindestens 20 Zeichen.');
	}
	else if($('messagebody_'+dsctid) && $('messagebody_'+dsctid).value.length>20)
		checkmessageconfirm=confirm('Achtung es wird eine eMail an den Kunden verschickt!');
	if(checkmessageconfirm==true)
		dsform_submit('form:form_'+dsctid)
	else
		$('dsbutton_submit').disabled=false;
}

//End

//Start
function dsWidgetSetAction(action,widgetset,defaultset,dselement){
	if(action=='new' || action=='edit')
		$(dselement+'_widgetsetform').setStyle({display:'block'});
	else
		$(dselement+'_widgetsetform').setStyle({display:'none'});
		
	if(action=='new'){
		dswsid=0;		
		dsaction='insert';
		$(dselement+'_widgetsetname').value='';
		$(dselement+'_widgetsetdefault').checked=false;
	}
	else if(action=='edit'){
		dswsid=widgetset;
		dsaction='update';
		$(dselement+'_widgetsetname').value=$('widgset_'+widgetset).innerHTML;
		if(defaultset){
			$(dselement+'_widgetsetdefault').disabled=true;			
			$(dselement+'_widgetsetdefault').checked=true;
		}
		else
			$(dselement+'_widgetsetdefault').checked=false;
	}
	else if(action=='delete'){
		widgetdelete=confirm('Sind Sie sich sicher?');
		if(widgetdelete==false)
			return;
		dswsid=widgetset;
		action='submit';
		dsaction='delete';
	}
	else if(action=='cancel'){
		dswsid=0;
		$(dselement+'_widgetsetname').value='';
		$(dselement+'_widgetsetdefault').disabled=false;
		$(dselement+'_widgetsetdefault').checked=false;
	}
	else if(action=='set'){
		dswsid=widgetset;		
		action='submit';
		dsaction='set';
	}
	else if(action=='reset'){
		dswsid=0;		
		action='submit';
		dsaction='reset';
	}
	if(action=='submit'){
		var postbodycontent='';
		var sortables = $(dselement).select('.dswidget_column');
		var counter=1;
		var isdef=$(dselement+'_widgetsetdefault').checked ? 1: 0;		
		sortables.each(function (sortable) {
			if(counter==1)		
				postbodycontent+='columnvalue='+sortable.id+'='+$(sortable.id).select('.dswidget').pluck('id').join(',');
			else
				postbodycontent+='|'+sortable.id+'='+$(sortable.id).select('.dswidget').pluck('id').join(',');
			counter+=1;
		});
		
		postbodycontent+='&name='+encodeURIComponent($(dselement+'_widgetsetname').value)+'&isDefault='+isdef;
		
		new Ajax.Updater(dselement+'_widgetsets',dsxpath+'dynasite.cfm?dscmd=widget_widget_sort_'+dsaction+'&dselement='+dselement+'&dswsid='+dswsid+'&dsxhr=1',{
			method: 'post', 
			postBody: postbodycontent,
			onSuccess:function(request){
				request.responseText.evalScripts();
			}
		});
		
		$(dselement+'_widgetsetname').value='';
		$(dselement+'_widgetsetdefault').disabled=false;
		$(dselement+'_widgetsetdefault').checked=false;
	}
}
function BuildCommandSelect(thiselement,thisid) {
	$(thisid).disabled=true;
	if ($(thiselement).readAttribute('element')=='dscid' && $(thisid+'_application'))
		$(thisid+'_application').disabled=true;
			
	var url=dsxpath+'dynasite.cfm?dsmid='+DSMID+'&dscmd=command_command_command_select';
	var dscid=DSCID;
	var multiple=0;
	var name=$(thisid).name;
	var firstoption=$(thisid).readAttribute('firstoption');
	var type=$(thisid).readAttribute('type');
	var preselect=$(thisid).readAttribute('preselect');
	var application=$(thisid).readAttribute('application');
	var global=$(thisid).readAttribute('global');
	
	if ($(thisid+'_dscid'))
		dscid=$(thisid+'_dscid').value;
	if ($(thisid+'_application'))
		application=$(thisid+'_application').value;
	
	//alert(application+' dscid:'+dscid)
	if ($(thisid).multiple==true)
		multiple=1;
	new Ajax.Updater(thisid+'_container', url+'&dsxhr=1',{
		postBody:'command_dscid='+dscid+'&command_multiple='+multiple+'&command_name='+name+'&command_id='+thisid+'&command_firstoption='+firstoption+'&command_type='+type+'&command_preselect='+preselect+'&command_application='+application+'&command_global='+global,
		evalScripts:true
	}); 

}
//2009-01-15 [AP] Die Funktion wird im DS Framework app/_layout.cfm verwendet 
function DSLoadContextMenu() {
	new Proto.Menu({selector: '#DSTree_dsmenutree_'+DSSID+' a',className: 'menu desktop',menuItems: 'treeMenuItems'})
}
var treeMenuItems = [
	{check:'menu==1',name: DSLang('Edit'),className: 'edit',callback: function(e,element) {tempdsmid=element.id.split('_');dsloader(dsxpath+'dynasite.cfm?dscmd=content_menu_menu_edit&dsmid='+tempdsmid[4]+'&dssid='+tempdsmid[2],'dspopup1','content_menu_menu_edit');}},
	{check:'menu==1',name: DSLang('Delete'),className: 'delete',callback: function(e,element) {tempdsmid=element.id.split('_');dsloader(dsxpath+'dynasite.cfm?dscmd=content_delete_menu_delconf&dsmid='+tempdsmid[4]+'&dssid='+tempdsmid[2],'dspopup1','content_delete_menu_delconf');}},
	{check:'menu==1',separator: true},	
	{check:'menu==1',name: DSLang('New'),className: 'new',callback: function(e,element) {tempdsmid=element.id.split('_');dsloader(dsxpath+'dynasite.cfm?dscmd=content_menu_menu_new&dsmid=0&dssid='+tempdsmid[2],'dspopup1','content_menu_menu_new');}},	
	{check:'menu==1',name: 'Menu []',disabled:'1'},
	{check:'menu==0',className: 'delete',name: 'System Menu',disabled:'1'}	
];

//End
/* 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 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
	DSStyle(element,'display:1,dsnavname:'+name);
	DSStyle(element+'_context','display:1,dsnavname:'+name+'_context');	
	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($('a'+activeelement)) {
					$('a'+activeelement).removeClassName('dstabbar_straighta');
				}
				$('a'+element).addClassName('dstabbar_straighta');
			}
			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();
		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         *
// ***************************


