//bestimme Browser global
var isIE=false;
function getIsIE() {
	if(navigator.userAgent.indexOf("MSIE")>=0) {
		isIE=true;
	}
}
getIsIE();

//Zeitanzeige
function showDate(dayNames) {
	dayArray=dayNames.split('|');
	now = new Date();
	var h = now.getHours();
	var m = now.getMinutes();
	var s = now.getSeconds();
	var d = now.getDate();
	var mm= now.getMonth()+1; //Januar=0 Dezember=11 deshalb +1
	var y = now.getFullYear();
	var day=now.getDay();
	if(h<10)h="0"+h;
	if(m<10)m="0"+m;
	if(s<10)s="0"+s;
	if(d<10)d='0'+d;
	if(mm<10)mm='0'+mm;
	datetime=dayArray[day]+' '+d+'.'+mm+'.'+y+'&nbsp;&nbsp;' +h+ ':' +m+ ':'+s;
	document.getElementById('TimeDiv').innerHTML=datetime;
	window.setTimeout("showDate('"+dayNames+"')",1000);
}
//Navigationsframe ausblenden
function changeNavFrame() {
	if(top.mainFrame.document.body.cols=='250px,16px,*,115px') {
		top.mainFrame.document.body.cols='0px,16px,*,115px';
	}
	else {
		top.mainFrame.document.body.cols='250px,16px,*,115px';
	}
}


// X/Y Koordinaten eines Elements ermitteln
function getElementCoords(eo) {
	if(eo){
		var coords = {x: 0, y: 0};
		do {
			coords.x += eo.offsetLeft;
			coords.y += eo.offsetTop;
			eo = eo.offsetParent;
		} while(eo);
		return coords;
	} else {
		return null;
	}
}

//Frame Content an Framegröße anpassen
function adjustFrameContent(frameContentDivId, contentTableElementId, contentElementId, offset) {
	var frameContentDiv = document.getElementById(frameContentDivId);
	var contentTableElement = document.getElementById(contentTableElementId);
	var contentElement = document.getElementById(contentElementId);
	
	var height = 0;
	if(document.documentElement) {
		height = document.documentElement.clientHeight;
		width = document.documentElement.clientWidth;
	} else if(document.body && document.body.clientHeight) {
		height = document.body.clientHeight;
		width = document.body.clientWidth;
	} else if(document.body && document.body.offsetHeight) {
		height = document.body.offsetHeight;
		width = document.body.offsetWidth;
	} else {
		height = window.innerHeight;
		width = window.innerWidth;
	}
	
	frameContentDivWidth = width - 15;
	frameContentDivHeight = height - 15;
	frameContentDiv.style.height = frameContentDivHeight + 'px';
	frameContentDiv.style.width = frameContentDivWidth + 'px';
	
	var contentTableElementCoords = getElementCoords(contentTableElement);
	//document.getElementById('search_text').value = contentTableElementCoords.y;
	
	contentTableElementHeight = frameContentDivHeight - contentTableElementCoords.y;
	contentTableElement.style.height = contentTableElementHeight + 'px';
	contentTableElementWidth = frameContentDivWidth - contentTableElementCoords.x -5;
	contentTableElement.style.width = contentTableElementWidth + 'px';
}

//BodyDiv auf Bildschirmh?he skalieren
function resizeContent(element,offsetHeight) {
	if(isIE) {	
		if (document.documentElement&&document.documentElement.clientHeight) {
				maxheight=document.documentElement.clientHeight;

			} 
		else {
			if (document.body&&document.body.clientHeight) {
				maxheight=document.body.clientHeight;

			}
			else {
				maxheight=window.document.body.offsetHeight;

			}
		}
		maxheight=maxheight-offsetHeight;

	}
	else {
		maxheight=window.innerHeight-offsetHeight;

	}
	if(maxheight>0) {
		document.getElementById(element).style.height=maxheight+'px';
	}
	//alert(maxwidth+'='+document.getElementById(element).style.width);
}

function resizeContentComplete(element,offsetHeight,offsetWidth) {
	if(isIE) {	
		if (document.documentElement&&document.documentElement.clientHeight) {
				maxheight=document.documentElement.clientHeight;
				maxwidth=document.documentElement.clientWidth;
			} 
		else {
			if (document.body&&document.body.clientHeight) {
				maxheight=document.body.clientHeight;
				maxwidth=document.body.clientWidth;
			}
			else {
				maxheight=window.document.body.offsetHeight;
				maxwidth=window.document.body.offsetWidth;
			}
		}
		maxheight=maxheight-offsetHeight;
		maxwidth=maxwidth-offsetWidth;
	}
	else {
		maxheight=window.innerHeight-offsetHeight;
		maxwidth=window.innerWidth-offsetWidth;
	}
	if(maxheight>0) {
		document.getElementById(element).style.height=maxheight+'px';
	}
	if(maxwidth>0) {
		document.getElementById(element).style.width=maxwidth+'px';
	}
	//alert(maxwidth+'='+document.getElementById(element).style.width);
}
//Sprachfelder umschalten
//changeVisibleField('edit_form','textarea','text_context','1','text_context_img_1');
function changeVisibleField(formname,type,fieldname,lang_id,img) {	
	activeField=fieldname+'_irlang_'+lang_id;
	form=document.forms[formname];
	for(i=0;i<form.elements.length;i++) {
		if(form.elements[i].type==type && form.elements[i].name.indexOf(fieldname+'_irlang_')>=0 ) {
			if(type=='textarea') {
				tableObj=document.getElementById(form.elements[i].name+'_table');
				if(tableObj)
					tableObj.style.display='none'
			}
			else form.elements[i].style.display='none';
		}
	}
	if(type=='textarea') displayElement(activeField+'_table');
	else displayElement(activeField);
	images=document.images;
	imgelement=document.getElementById(img);
	if(imgelement) {
		index=imgelement.id.lastIndexOf('_');
		if(index>=0) {
			mainstring=imgelement.id.substring(0,index);
			for(i=0;i<images.length;i++) {
				if(images[i].id.indexOf(mainstring)>=0) {
					images[i].className='FormImg';
				}
			}
		}
		imgelement.className='FormImgActive';
	}
}
//Sprachfelder global umschalten
function changeVisibleFieldGlobal(formname,lang_id,img) {
	doneFields="";
	form=document.forms[formname];
	ele=form.elements.length;
	for(j=0;j<ele;j++) {
		if(form.elements[j].id.indexOf('_irlang_')>=0) {
			elementname=form.elements[j].id.substring(0,form.elements[j].id.indexOf('_irlang_'));
			if(doneFields.indexOf(elementname)<0) {
				doneFields=doneFields+'|'+elementname;
				type=form.elements[j].type;
				changeVisibleField(formname,type,elementname,lang_id,elementname+'_img_'+lang_id);
			}
			//form.elements[i].style.display='none';	
		}
	}	
	images=document.images;
	imgelement=document.getElementById(img);
	if(imgelement) {
		index=imgelement.id.lastIndexOf('_');
		if(index>=0) {
			mainstring=imgelement.id.substring(0,index);
			for(j=0;j<images.length;j++) {
				if(images[j].id.indexOf(mainstring)>=0) {
					images[j].className='FormImg';
				}
			}
		}
		imgelement.className='FormImgActive';
	}
}
//alle Buttons eines Formulars disablen
function onDisableButtons(form_name) {
	form=document.forms[form_name];
	for(i=0;i<form.elements.length;i++) {
		if(form.elements[i].type=='button') {
			form.elements[i].disabled=true;
		}
	}
}
//Element sichtbar/unsichtbar schalten
function displayElement(id) {
	obj=document.getElementById(id);
	//alert(obj.id+'('+obj.className+')='+obj.style.display);
	if(obj) {
		if(obj.style.display=='none') {
			obj.style.display='block';
			return true;
		}	
		else {
			obj.style.display='none';
			return false;
		}
	}
}
//Styleklasse eines Objectes ?ndern
function onChangeStyle(style_a,style_b,element) {
	if(element) {
		if(element.className==style_a) {
			element.className=style_b;
		}
		else if (element.className==style_b) {
			element.className=style_a;
		}
	}
}
//CheckboxButton aktivieren,deaktivieren
function onChangeCheckbox(fieldname) {
	element=document.getElementById(fieldname);
	button=document.getElementById(fieldname+'_check');
	if(element.value==0) {
		element.value=1;
		button.checked=true;
	}
	else {
		element.value=0;
		button.checked=false;
	}
}
//Zeilen in Listenansicht hervorheben
function onChangeRow(objid,style) {
	element=document.getElementById('tr_'+objid);
	if(element) {
		for(i=0;i<element.cells.length;i++) {
			tdelement=element.cells[i];
			onChangeStyle(style,'ListTdhover',tdelement);
		}
	}
}
//Steuerfunktion f?r contentFrame
function doAction(targetframe,formname,action,message,showmessage) {
	if(showmessage) {
		if(confirm(message)) {
			doit=true;
		}
		else {
			doit=false;
			reactivateButtons(document);
		}
	}
	else {
		doit=true;
	} 
	if(doit) {
		if(eval(targetframe)){
			frame=eval(targetframe);
			if(frame.document.forms[formname]) {
				form=frame.document.forms[formname];
				if(form.elements['action']) {
					ele=form.elements['action'];
					ele.value=action;
					form.submit();
				}
				else {
					alert("finde action nicht");
				}
			}
			else {
				alert("finde form nicht");
			}
		}
		else {
			alert("finde frame nicht");
		}
	}
}
//zum Aufruf von Actions ohne das Formular zu senden
function remoteAction(targetframe,formname,action,params,root,message,showmessage) {
if(showmessage) {
		if(confirm(message)) {
			doit=true;
		}
		else {
			doit=false;
		}
	}
	else {
		doit=true;
	} 
	if(doit) {
		error=false;
		if(eval(targetframe)){
			frame=eval(targetframe);
			if(frame.document.forms[formname]) {
				form=frame.document.forms[formname];
				url=root+'/admin/?action='+action;
				paramArray=params.split(',');
				for(i=0;i<paramArray.length;i++) {
					ele=form.elements[paramArray[i]];
					if(ele) {
						url=url+'&'+paramArray[i]+'='+ele.value;
					}
					else {
						error=true;
					}
				}					
				if(!error)simpleGetRequest(url);
			}
			else {
				alert("finde form nicht");
			}
		}
		else {
			alert("finde frame nicht");
		}
	}
}

function onNewPropertyEditMask(obj_type,formname,targetframe){
		//if(parent.frames[targetframe]) {
		//alert(targetframe);
		if(eval(targetframe)){
			//frame=parent.frames[targetframe];
			frame=eval(targetframe);
			if(frame.document.forms[formname]) {
				form=frame.document.forms[formname];
				if(form.elements['action']) {
					ele=form.elements['action'];
					ele.value='PropertyEditMask';
				}
				else {
					alert("finde action nicht");
				}
				if(form.elements['attr_id']) {
					ele=form.elements['attr_id'];
					ele.disabled=true;
					form.submit();
				}
				else {
					alert("finde attr_id nicht");
				}
			}
			else {
				alert("finde form nicht");
			}
		}
		else {
			alert("finde frame nicht");
		}
}
//Steuerfunktion f?r controlFrame
function doControlAction(obj_type,obj_id,newObj) {
	doControlAction(obj_type,obj_id,newObj,'','','');
}
function doControlAction(obj_type,obj_id,newObj) {
	//normales Editfenster
	mainFrame=top.frames.mainFrame;
	if(mainFrame) {
		cframe=mainFrame.frames.frameControl;
	}
	//popup ohne Menueframe
	else if (top.frames.frameControl) {
		cframe=top.frames.frameControl;
	}
	//editor popup
	else if (parent.frames.frameControl){
		cframe=parent.frames.frameControl;
	}
	else {
		cframe=null;
	}
	if(cframe) {
		if(cframe.location.href) {
			orghref=cframe.location.href;
			newhref=orghref.indexOf('?');
			newhref=orghref.substring(0,newhref);
			newhref=newhref+'?action=ButtonControl&obj_type='+obj_type+'&obj_id='+obj_id;
			if(newObj){newhref+='&new_obj_form=true';}
			framePath=onGetFramesPath();
			newhref=newhref+'&targetFrame='+framePath;
			//newhref=newhref+'&backhref='+escape(window.location.href);
			cframe.location.href=newhref;
		}
	}
}
//Funktionen fuer "Zurueck"
//step muss negativ sein
function goBack(step) {
	sframe=top.statusFrame;
	if(sframe) {
		//target.history.go(-2);
		//target.location.href=unescape(escapeurl);
		lastFunction=sframe.document.status_form.lastFunction.value;
		//alert(lastFunction);
		lastFrame=sframe.document.status_form.lastFrame.value;
		lastTitle=sframe.document.status_form.lastTitle.value;
		rootPath=sframe.document.status_form.rootPath.value;
		fArray=lastFunction.split('|');
		tArray=lastFrame.split('|');
		iArray=lastTitle.split('|');
		lastFunction='';
		lastFrame='';
		lastTitle='';
		lFrame='top.mainFrame.frameContent';
		lFunc=rootPath+'/admin/?action=Desktop';
		lTitle='Desktop';
		if(fArray.length>(-1*step-1)) {
			lFunc=fArray[fArray.length+step];
			lFrame='top.mainFrame.'+tArray[tArray.length+step];
			lTitle=iArray[iArray.length+step];
			for(i=0;i<fArray.length+(step+1);i++) {
				if(i>0) {
					lastFunction=lastFunction+'|';
					lastFrame=lastFrame+'|';
					lastTitle=lastTitle+'|';
				}
				lastFunction=lastFunction+fArray[i];
				lastFrame=lastFrame+tArray[i];
				lastTitle=lastTitle+'|';
			}
			sframe.document.status_form.lastFunction.value=lastFunction;
			sframe.document.status_form.lastFrame.value=lastFrame;
			sframe.document.status_form.lastTitle.value=lastTitle;
		}
		else {
			sframe.document.status_form.lastFunction.value='';
			sframe.document.status_form.lastFrame.value='';
			sframe.document.status_form.lastTitle.value='';
		}
		if(lFrame.lastIndexOf('.')==lFrame.length-1){
			lFrame='top.mainFrame.frameContent';
			lFunc=rootPath+'/admin/?action=Desktop';
			lTitle='Desktop';
		}
		tFrame=eval(lFrame);
		if(tFrame!=null) {
			tFrame.location.href=lFunc;
			top.document.title=lTitle;
			sframe=top.statusFrame;
			if(sframe) {
				sframe.document.getElementById('title_func').innerHTML='- '+lTitle+' -';
			}
		}
	}
}

function addToHistory(url,target,showlabel) {
	sframe=top.statusFrame;
	//alert(sframe);
	if(sframe) {
		lastFunction=sframe.document.status_form.lastFunction.value;
		//alert(lastFunction);
		lastFrame=sframe.document.status_form.lastFrame.value;
		lastTitle=sframe.document.status_form.lastTitle.value;
		if(lastFunction.length>0) {
			lastFunction=lastFunction+'|';
			lastFrame=lastFrame+'|';
			lastTitle=lastTitle+'|';
		}
		sframe.document.status_form.lastFunction.value=lastFunction+url;
		sframe.document.status_form.lastFrame.value=lastFrame+target;
		sframe.document.status_form.lastTitle.value=lastTitle+showlabel;
		//aktuelle Funktion im Statusframe anzeigen
		sframe.document.getElementById('title_func').innerHTML='- '+showlabel+' -';
		top.document.title=showlabel;
	}
}


//ermittelt ob es sich um ein Popup handelt
function checkPopup() {
	if(top.opener) {
		return true;
	}
	else {
		return false;
	}
}

//ermittelt ob es ein Auswahldialog ist (im Feld view_template muss 'select' stehen und es muss ein Editdialog sein)
function checkSelectPopup() {
	var retBool=false;
	if(top) {
		if(top.frmDetail 
			&& top.frmDetail.document.edit_form 
			&& top.frmDetail.document.edit_form.view_template
			&& top.frmDetail.document.edit_form.view_template.value=='select'
			&& top.frmDetail.document.edit_form.readOnly) {
			retBool=true;
		}
	}
	return retBool;
}

//Zurueck oder Schliessenbutton ein-bzw. ausblenden
function showClose() {
	var element;
	if(checkSelectPopup()) {
		element=document.getElementById('close_tr');
		if(element) element.style.display='none';
		//disabled den ZurueckButton wenn History leer
		if(document.getElementById('back_tr')&&document.getElementById('back_tr_dis'))
			disableButton(document.getElementById('back_tr'),document.getElementById('back_tr_dis'));	
	}
	else if(checkPopup()) {
		element=document.getElementById('back_tr');
		if(element) element.style.display='none';
		element=document.getElementById('back_tr_dis')
		if(element) element.style.display='none';
	}
	else {
		element=document.getElementById('close_tr');
		if(element) element.style.display='none';
		//disabled den ZurueckButton wenn History leer
		if(document.getElementById('back_tr')&&document.getElementById('back_tr_dis'))
			disableButton(document.getElementById('back_tr'),document.getElementById('back_tr_dis'));
	}
}

function disableButton(button_act,button_dis) {
	sframe=top.statusFrame;
	if(sframe) {
		lastFunction=sframe.document.status_form.lastFunction.value;
		//alert(lastFunction);
		if(lastFunction.length==0) {
			button_act.style.display='none';
		}
		else {
			button_dis.style.display='none';
		}
	}else {
		button_act.style.display='none';
		button_dis.style.display='none';
		//notfall backbutton der einfach history.back(-2) ausfuehrt
		document.getElementById('back_tr_simple').style.display='';
	}
}

//ermittelt den FramePfad
function onGetFramesPath() {
	framePath='.frames.'+window.name;
	parentPath='parent';				
	go=true;
	//zur Sicherheit gegen Endlosschleifen
	secureflag=0;
	while(eval(parentPath) && go && secureflag<10) {
		secureflag++;
		//wenn im obersten frame angekommen, dann aufhoeren
		if(eval(parentPath)==eval('top')) {
			go=false;
		}
		else if(eval(parentPath+'.name.length')>0) {
			framePath='.frames.'+eval(parentPath+'.name')+framePath;
			parentPath=parentPath+'.parent';
			//alert(eval('framePath'));
			go=true;
		}
		else {
			go=false;
		}
	}
	framePath='top'+framePath;
	return framePath;
}

//Linkfunktion f?r Funktionsbaum
function goMenuHref(href,target) {
	h=href;
	if(target=='_self') {
		selfdoc=window.location.href.indexOf('?');
		selfdoc=window.location.href.substring(0,selfdoc);
		newOptions=href.indexOf('?');
		newOptions=href.substring(newOptions,href.length)
		h=selfdoc+newOptions;
		window.location.href=h;
	}
	else {
		parent.frames[target].location.href=href;
	}
}
//Linkfunktion f?r Subtree
function goSubTree(opened,curr_id,formname) {
	dform=document.forms[formname];
	dform.opened.value=opened;
	dform.curr_id.value=curr_id;
	dform.submit();
}
//Für die linke Metanavigation
var menuGroupStatus = new Array();
function goSubTree_menu(curr_id) {
	if(menuGroupStatus[curr_id] == 1) {
		menuGroupStatus[curr_id] = 0;
		Effect.BlindUp('menu_group_td_' + curr_id,{duration: 0.5});
		Effect.Fade('menu_group_td_' + curr_id,{duration: 0.5, queue:'parallel'});
		if(document.getElementById('menu_group_tree_status_icon_' + curr_id)) {
			var eo = document.getElementById('menu_group_tree_status_icon_' + curr_id);
			eo.src = ROOTPATH + "/adm_img/etc/tree_close.gif";
		}
	} else {
		menuGroupStatus[curr_id] = 1;
		Effect.BlindDown('menu_group_td_' + curr_id,{duration: 0.5});
		Effect.Appear('menu_group_td_' + curr_id,{duration: 0.5, queue:'parallel'});
		if(document.getElementById('menu_group_tree_status_icon_' + curr_id)) {
			var eo = document.getElementById('menu_group_tree_status_icon_' + curr_id);
			eo.src = ROOTPATH + "/adm_img/etc/tree_open.gif";
		}
	}
}
//welche Url soll im Controlframe geoeffnet werden
function openControlFrame(querystring) {
	//_and_=& um querystring auch als urlParameter uebertragen zu koennen
	querystring=querystring.replace(/_and_/gi,'&');
	//normales Editfenster
	mainFrame=top.frames.mainFrame;
	if(mainFrame) {
		cframe=mainFrame.frames.frameControl;
	}
	//popup ohne Menueframe
	else if (top.frames.frameControl) {
		cframe=top.frames.frameControl;
	}	
	//editor popup
	else if (parent.frames.frameControl) {
		cframe=parent.frames.frameControl;
	}
	else {
		cframe=null;
	}
	if(cframe) {
		if(cframe.location.href) {
			orghref=cframe.location.href;
			newhref=orghref.indexOf('?');
			newhref=orghref.substring(0,newhref);
			newhref=newhref+'?'+querystring;
			framePath=onGetFramesPath();
			newhref=newhref+'&targetFrame='+framePath;
			cframe.location.href=newhref;
		}		
	}
}

//Popupframe mit Frame zur Bearbeitung
function openEditPopup(root,obj_type,obj_id,parent_type,parent_id,field_name,targetFrame,editaction,windowname) {
	if(editaction==null||editaction=='') {
		editaction='BackendEditMask';
	}
	if(obj_id=='' || isNaN(obj_id)) {
		url=root+'/admin/?action=EditPopup&editaction='+editaction+'&obj_type='+obj_type+'&obj_id='+obj_id+'&parent_type='+parent_type+'&parent_id='+parent_id+'&field_name='+field_name;
	}
	else {
		url=root+'/admin/?action=EditPopup&editaction='+editaction+'&obj_type='+obj_type+'&obj_id='+obj_id+'&parent_type='+parent_type+'&parent_id='+parent_id;
	}
	if(windowname!=null && windowname!='') {
		win=createEditWindow(url, windowname);
	}
	else{
		win=createEditWindow(url, obj_type+obj_id);
	}
}
function closeEditPopup() {
	//wenn close in einem Auswahlpopup, dann den Opener nicht neu laden
	if(top.opener && top.frmListSelect) {
		setTimeout("hideWaitPopup();top.close();",10);
	}
	else if(top.opener && top.opener.name=='frameNavigation') {
		//für den Aufruf aus 'Kommandoaufruf'	
		setTimeout("hideWaitPopup();top.close();",10);
	}
	else if(top.opener){
		setTimeout("if(top.opener.refreshContentFrame()){hideWaitPopup();}",800);
		setTimeout("top.close();",820);
	}
}
//Popup fuer Anzeige der Versionen
function openVersionPopup(root,obj_type,obj_id) {
	url=root+'/admin/?action=FrameVersions&obj_type='+obj_type+'&obj_id='+obj_id+'&close=true';
	win=createEditWindow(url);
}
function changeTargetFrame(addActFrame) {
	if(addActFrame.length>0) {
		tf=document.getElementById('targetFrame');
		if(tf) {
			tArray=tf.value.split('|');
			tf.value=tArray[0]+"|"+addActFrame;
		}
	}
}
function refreshContentFrame() {
	//wenn false, dann wurde kein refresh durchgefuehrt
	var retBool=false;
	tf=document.getElementById('targetFrame');
	if(!tf && top.mainFrame && top.mainFrame.frameControl) {
	 	tf=top.mainFrame.frameControl.document.getElementById('targetFrame');
	}
	if(tf) {
		frameArray=tf.value.split('|');
		for(i=0;i<frameArray.length;i++) {
			tframe=eval(frameArray[i]);
			if(tframe) {
				//tframe.document.edit_form.submit();
				retBool=true;
				tframe.document.forms[0].submit();
			}
		}
	}
	else if (document.edit_form) {
		retBool=true;
		document.edit_form.submit();
	}
	return retBool;
}
//Benutzer,Gruppenauswahl
function onOpenSelectMandant(root,mand_type,obj_type,obj_id,targetFrame) {
	var doc=eval(targetFrame);
	var typeName='groups'
	if(doc) {
		if(mand_type==12) {
			typeName='users';
		}
		clist=doc.document.getElementById('type_'+mand_type+'_clist');
		if(obj_type=='groups' && mand_type==12){
			url=root+'/admin/?action=SelectFrame&isRM=true&sel_type='+typeName+'&obj_type='+obj_type+'&obj_id='+obj_id+'&sel_id=';
			win=createEditWindow(url,'select_mand',950,600);
		}
		else if(clist) {
			list=clist.value;
			url=root+'/admin/?action=SelectFrame&isRM=true&sel_type='+typeName+'&obj_type='+obj_type+'&obj_id='+obj_id+'&sel_id='+list;
			win=createEditWindow(url,'select_mand',950,600);
		}
		else {
			alert('Formularfeld nicht gefunden');
		}
	}
	else {
		alert('aufrufendes Frame nicht gefunden');
	}
}
//Selectboxen
function putitem(o1, o2){
	sel1 = document.forms['edit_form'].elements[o1];
	sel2 = document.forms['edit_form'].elements[o2];
	if (sel1&&sel2){
		i = sel1.selectedIndex;
		if (i>=0){
			o = new Option(sel1.options[i].text, sel1.options[i].value, false, true);
			o.id = sel1.options[i].id;
			o.style.color='red';
			sel2.options[sel2.length] = o;
			sel1.options[i] = null;
		}
	}
}
function putitemall(o1, o2){
	sel1 = document.forms['edit_form'].elements[o1];
	sel2 = document.forms['edit_form'].elements[o2];
	if (sel1&&sel2){
		i = sel1.selectedIndex;
		for (i=0;i<sel1.length;i++){
			o = new Option(sel1.options[i].text, sel1.options[i].value, false, true);
			o.id = sel1.options[i].id;
			o.style.color='red';
			sel2.options[sel2.length] = o;
		}
		while (sel1.length>0){
			sel1.options[0] = null;
		}
	}
}
function putItemReplace(o1,o2) {
	sel1 = document.forms['edit_form'].elements[o1];
	sel2 = document.forms['edit_form'].elements[o2];
	if (sel1&&sel2){
		i = sel1.selectedIndex;
		if (i>=0){
			textString=encodeURIComponent(sel1.options[i].text);
			sp=textString.lastIndexOf('%C2%A0');
			textString=decodeURIComponent(textString.substring(sp+6,textString.length));
			o = new Option(textString, sel1.options[i].value, false, true);
			o.id = sel1.options[i].id;
			o.style.color='red';
			sel2.options[sel2.length] = o;
			sel1.options[i] = null;
		}
	}
}

//alle Elemente einer Selectbox zu einer Liste zusammenbauen
function onAdoptList(field,takeValue) {
	selList='';
	if(field) {
		sel=field;
		for(i=0;i<sel.length;i++){
			if(takeValue==true) {
				if(selList.length==0) selList=sel.options[i].value;
				else selList=selList+','+sel.options[i].value;			
			}
			else {
				if(selList.length==0) selList=sel.options[i].text;
				else selList=selList+','+sel.options[i].text;			
			}
		}
	}
	return selList;
}
//Speichern der pers. Funktionen
function onSavePersFunctions(form,field,targetFrame) {
	contentFrame=eval(targetFrame);
	selForm=eval(targetFrame+'.'+form);
	selField=selForm.elements[field];
	if(contentFrame && selField) {
		selList=onAdoptList(selField,true);
		selForm.pers_functions.value=selList;
		selList=onAdoptList(selField,false);
		selForm.pers_functions_title.value=selList;
		selForm.action.value='SavePersFunction';
		selForm.submit();
	}
}
//Reload vom Topframe
function onReloadFrame(frame) {
	frameObj=eval(frame);
	if(frameObj) {
		frameObj.location.reload();
	}
}
function onCancel() {
	window.close();
}
function onAdoptMandants(typeName,rightsSelect,rootpath) {
	var mandType=7;
	if(typeName=='users') {
		mandType=12;
	}
	if(top.opener) {
		targetFrame=top.opener.document.getElementById('targetFrame').value;
		vs = '';
		vl = '';
		contentFrame=eval('top.opener.'+targetFrame);
		if(contentFrame) {
			tt=contentFrame.document.getElementById('table_'+mandType);
			ttrowcount=tt.rows.length;
			
			sel=document.forms['edit_form'].sel_id.value.split(',');
			seltitle=document.forms['edit_form'].sel_title.value.split(',');
			csel=contentFrame.document.forms['edit_form'].elements['type_'+mandType+'_clist'];
			cselv=csel.value;
			lastrow=tt.rows[ttrowcount-1].cells[0];
			lastStyle=lastrow.className;
			for(i=0;i<sel.length;i++){
				//Objekt nur hinzufügen, wenn noch nicht gewählt
				if(listFind(cselv,sel[i])==-1) {
					if(lastStyle=='ListTd') {
						lastStyle='ListTda';
					}
					else {
						lastStyle='ListTd';
					}
					vs=sel[i];
					vl=seltitle[i];
					
					trow=tt.insertRow(ttrowcount);
					tcell=trow.insertCell(0);
					tcell.className=lastStyle;
					contentFrame.onAddEvent(lastStyle,'ListTdhover',tcell);
					ihtml='<table>'+
								'<tr>'+
									'<td id=\"td_'+mandType+'_'+vs+'\">'+vl+':&nbsp;</td>'+
									'<td>'+
							    		'<select class=\"FormSelect\" name=\"mand_type_'+mandType+'_id_'+vs+'\">'+
										rightsSelect+
										'</select>'+
									'</td>'+
									'<td>'+
										'<img class=\"linkimg\" onClick=\"onChangeSingleStyle(\'textDecoration\',\'line-through\',\'none\',\'td_'+mandType+'_'+vs+'\');onDeleteMandant('+mandType+','+vs+');\" src=\"'+rootpath+'/adm_img/icons/16x16/garbage.png\"/>'+
									'</td>'+
								'</tr>'+
							'</table>';
					tcell.innerHTML=ihtml;
					if(cselv.length>0) {
						cselv=cselv+','+vs;
					}
					else {
						cselv=vs;
					}
				}
			}
			csel.value=cselv;
			reactivateOpenerButtons();
			top.close();
		}
		else {
			alert('Frame nicht gefunden');
		}
	}
}
function listFind(list,element) {
	var listArray=list.split(',');
	for(var i=0;i<listArray.length;i++) {
		if(listArray[i]==element) {
			return i;
		}
	}
	return -1;
}

function onAddEvent(styleA,styleB,obj) {
	obj.onmouseover=function(){onChangeStyle(styleA,styleB,eval('this'));};
	obj.onmouseout=function(){onChangeStyle(styleB,styleA,obj)};
}
function onChangeSingleStyle(prop,value,orgvalue,objname) {
	obj=document.getElementById(objname);
	if(obj) {
		if(obj.style[prop]==value) obj.style[prop]=orgvalue;
		else obj.style[prop]=value;
	}
}
function onDeleteMandant(mandType,mandId) {
	dellist=document.getElementById('type_'+mandType+'_dellist');
	remove=false;
	newdellist='';
	if(dellist) {
		delarray=dellist.value.split(',');
		for(i=0;i<delarray.length;i++) {
			if(delarray[i]!=mandId) {
				if(newdellist.length==0) {
					newdellist=delarray[i];
				}
				else {
					newdellist=newdellist+','+delarray[i];
				}
			}
			else {
				remove=true;
			}
		}
		if(remove==false) {
			if(newdellist.length==0) {
				newdellist=mandId;
			}
			else {
				newdellist=newdellist+','+mandId;
			}
		}
		dellist.value=newdellist;
	}
}

//function onChangeActive(style,el,paramVal) {
function onChangeActive(el) {
	field=document.getElementById('activeNode');
	
	if(field && field.value!=el.id) {
		obj=null;
		if(field.value.length>0) {
			obj=document.getElementById(field.value);
			if(obj) {
				index=obj.className.indexOf('bold');
				obj.className=obj.className.substring(0,index);
			}
		}
		el.className=el.className+'bold';
		field.value=el.id;
	}
}
var lastActiveElementId = "";
function onChangeActive_menu(id) {
	//field=document.getElementById('activeNode');
	
	//vorhergehend optisch hervorgehobenes Element zurücksetzen
	if(lastActiveElementId.length > 0) {
		eo = document.getElementById('menu_row_' + lastActiveElementId);
		if(eo) {
			var index = eo.className.indexOf('_active');
			eo.className = eo.className.substring(0,index);
		}
		
		eo = document.getElementById(lastActiveElementId);
		if(eo) {
			var index = eo.className.indexOf('_active');
			eo.className = eo.className.substring(0,index);
		}
	}
	
	//ausgewähltes Element optisch hervorheben
	eo = document.getElementById(id);
	eo.className = eo.className+'_active';
		
	eo = document.getElementById('menu_row_' + id);
	eo.className = eo.className + '_active';

	lastActiveElementId = id;
	
	return true;
}
function onChangeTab(el,vel,root) {
	activeTab=document.getElementById('activeTab').value;
	elems=activeTab.split(';');
	if(document.getElementById(elems[0])) {
		document.getElementById(elems[0]).className='TabNormal';
		document.getElementById(elems[1]).className='dummyTableHidden';
	}
	el.className='TabActivated';
	document.getElementById('activeTab').value=el.id+';'+vel;
	document.getElementById(vel).className='dummyTableVisible';
	//letztes aktives Tab merken
	url=root+'/admin/?action=SaveLastTab&activeTab='+el.id+';'+vel;
	simpleGetRequest(url);
}

//Sortierrichtung bestimmen
var sortAscending = false;

function sortTable(td_element,ignoreLastLines,dformat) {	
	//Datumsformat setzen
	var regformat=getDateFormat(dformat);
	
	//Zeilen die nicht sortiert werden sollen (am Ende der Tabelle)
	ignoreLastLines = (typeof(ignoreLastLines)=='undefined') ? 0 : ignoreLastLines;

  	//um welche Zeilenspalte handelt es sich?
  	var indexCol = td_element.cellIndex;

  	//ermittle die Tabelle, zu der die geklickte Spalte gehoert
  	var table_element = td_element.parentNode;
 
  	while (table_element.nodeName != "TABLE") {
    	table_element = table_element.parentNode;
  	}
 
  	//alle Zeilen der Tabelle bestimmen
  	//var tr_elements = table_element.getElementsByTagName('tr');
	//alert(table_element.rows);
	var tr_elements = table_element.rows;

  	//wenn EditButtons vorhanden, dann gibt es ein Zeile mehr zu ignorieren
  	if(tr_elements[0].className=='ListEditButtons') {
  		startrow=2;
  		titlerow=1;
  	}
  	else {
  		startrow=1;
  		titlerow=0;
  	}

	//welche Zeilenspalte ist aktuell sortiert? td mit Style 'ListThhover' in erster Zeile der Tabelle
	var lastSortCol = "";
	for(var i=0;i<tr_elements[titlerow].cells.length;i++) {
		if(tr_elements[titlerow].cells[i].className=='ListThhover') {
			lastSortCol=tr_elements[titlerow].cells[i].cellIndex;
		}
		tr_elements[titlerow].cells[i].className='ListTh';
	}
	onChangeStyle('ListTh','ListThhover',td_element);
	if(lastSortCol==indexCol && sortAscending==false) {
		sortAscending=true;
	}
	else {
		sortAscending=false;
	}
	
  	//Array nit Kopien der Zeilen
  	var clonedRows = new Array();

  	// Werte der Spalte, nach der sortiert werden soll
  	var originalCol = new Array();

  	// Now loop through all the data row elements
  	for (var i=startrow; i<tr_elements.length - ignoreLastLines; i++) {
   		//Kopie der aktuellen Zeile erstellen
   		clonedRows[i]=tr_elements[i].cloneNode(true);
		//Wert der Spalte ohne doppelte und fuehrende Leerzeichen
   		var valueCol = normalizeString(tr_elements[i].cells[indexCol].innerHTML);
   		//Formatierung der Spalte nach Datentyp
   		valueCol = FormatForType(valueCol);
   		// Verknuepfung der orignal Zeile mit der Spalte, nach der anschliessend sortiert wird
   		originalCol[i]=[valueCol,tr_elements[i].rowIndex];
  	}
  	//Element 0 in das Array einfuegen, da ja Zeilen erst mit 1 oder 2 beginnen (0 ist Buttonzeile,1 ist Titelzeile)
  	for(var i=0;i<startrow;i++) {
  		originalCol.shift();
	}

  	//eigentliche Sortierung der Spalte
  	sortCol = originalCol.sort(sortCompare);

  	//wenn Absteigend sortiert, dann Sortierung umdrehen
  	if (sortAscending) { sortCol.reverse(); }

	//Tabelle neu schreiben anhand der Reichenfolge des sortierten Arrays
  	for (var i=startrow; i < tr_elements.length - ignoreLastLines; i++) {
    	var old_row = sortCol[i-startrow][1];
    	var new_row = i;
		//zum Tausch der Hintergrundfarbe beim Sortieren der Tabelle,Perfomance?
		clonedRows[old_row].id=tr_elements[new_row].id;
		for(j=0;j<tr_elements[new_row].cells.length;j++) {
    		if(isIE) {
    			clonedRows[old_row].childNodes[j].className=tr_elements[new_row].cells[j].className;
	  			clonedRows[old_row].childNodes[j].id=tr_elements[new_row].cells[j].id;
	  			clonedRows[old_row].childNodes[j].onmouseover=tr_elements[new_row].cells[j].onmouseover;
	  			clonedRows[old_row].childNodes[j].onmouseout=tr_elements[new_row].cells[j].onmouseout;
			}
			else {
    			clonedRows[old_row].cells[j].className=tr_elements[new_row].cells[j].className;
	  			clonedRows[old_row].cells[j].id=tr_elements[new_row].cells[j].id;
	  			clonedRows[old_row].cells[j].onmouseover=tr_elements[new_row].cells[j].onmouseover;
	  			clonedRows[old_row].cells[j].onmouseout=tr_elements[new_row].cells[j].onmouseout;
			}
  		}
		tr_elements[i].parentNode.replaceChild(clonedRows[old_row],tr_elements[new_row]);
  	}
}

// Sortierfunktion fuer die Funktion sort (js Standard)
function sortCompare (currValue, nextValue) {
  //da die Elemente des Arrays Selbst Array sind (0=Wert,1=Zeile in der Tabelle) nur den ersten Werr sortieren
  if ( currValue[0] == nextValue[0] ) return 0;
  if ( currValue[0] < nextValue[0] ) return -1;
  if ( currValue[0] > nextValue[0] ) return 1;
}


// Regular expressions for normalizing white space.
var whtSpEnds = new RegExp("^\\s*|\\s*$", "g");
var whtSpMult = new RegExp("\\s\\s+", "g");

function normalizeString(s) {
  s = s.replace(whtSpMult, " ");  // Collapse any multiple whites space.
  s = s.replace(whtSpEnds, "");   // Remove leading or trailing white space.
  return s;
}

// Formatierung der Daten
function getNextPosition(c,dformat,start,max) {
	end=start;
	for(i=start+1;i<dformat.length;i++) {
		if(dformat.charAt(i).indexOf(c) || end-start>max) {
			break;
		}
		else {
			end=end+1;
		}
	}
	return end;
}
//regex fuer Datum erstellen
function getRegEx(count) {
	regex='';
	for(i=0;i<count;i++) {
		regex=regex+'\\d';
	}
	return regex;
}

function getDateFormat(dformat) {
  	//var dformat='dd.MM.yyyy HH:mm:ss';
  	regformat=dformat;
  	sday=-1;
  	eday=-1;
  	smonth=-1;
  	emonth=-1;
  	syear=-1;
  	eyear=-1;
  	shour=-1;
  	ehour=-1;
  	sminute=-1;
  	eminute=-1;
  	ssecond=-1;
  	esecond=-1;
  	for(i=0;i<dformat.length;i++) {
  		actChar=dformat.charAt(i);
  		//Tag
  		if(actChar=='d' && sday==-1) {
  			sday=i;
  			eday=getNextPosition('d',dformat,sday,2)+1;
  		}
		else if(actChar=='M' && smonth==-1) {
			smonth=i;
			emonth=getNextPosition('M',dformat,smonth,2)+1;
		}
		else if(actChar=='y' && syear==-1) {
			syear=i;
			eyear=getNextPosition('y',dformat,syear,4)+1;
		}
		else if(actChar=='H' && shour==-1) {
			shour=i;
			ehour=getNextPosition('H',dformat,shour,2)+1;
		}
		else if(actChar=='m' && sminute==-1) {
			sminute=i;
			eminute=getNextPosition('m',dformat,sminute,2)+1;
		}
		else if(actChar=='s' && ssecond==-1) {
			ssecond=i;
			esecond=getNextPosition('s',dformat,ssecond,2)+1;
		}
  	}
  	fday=dformat.substring(sday,eday);
  	regformat=regformat.replace(fday,getRegEx(eday-sday));
	fmonth=dformat.substring(smonth,emonth);
  	regformat=regformat.replace(fmonth,getRegEx(emonth-smonth));
	fyear=dformat.substring(syear,eyear);
  	regformat=regformat.replace(fyear,getRegEx(eyear-syear));
	fhour=dformat.substring(shour,ehour);
  	regformat=regformat.replace(fhour,getRegEx(ehour-shour));
	fminute=dformat.substring(sminute,eminute);
  	regformat=regformat.replace(fminute,getRegEx(eminute-sminute));
	fsecond=dformat.substring(ssecond,esecond);
  	regformat=regformat.replace(fsecond,getRegEx(esecond-ssecond));
	return regformat;
}


function FormatForType(itm) {
  	var sortValue = itm.toLowerCase();  	
	//regformat wird vorher gesetzt
	if(itm.match(regformat)) {
  		//Jahr-Monat-Tag-Stunde-Minute-Sekunde
  		sortValue='';
  		sortValue=itm.substr(syear,eyear-syear);
  		sortValue=sortValue+itm.substr(smonth,emonth-smonth);
  		sortValue=sortValue+itm.substr(sday,eday-sday);
  		sortValue=sortValue+itm.substr(shour,ehour-shour);
  		sortValue=sortValue+itm.substr(sminute,eminute-sminute);
  		sortValue=sortValue+itm.substr(ssecond,esecond-ssecond)
 	}
  	//percent?
  	if (itm.match(/%/)) {
		// Replace anything that is not part of a number (decimal pt, neg sign, or 0 through 9) with an empty string.
   		sortValue = itm.replace(/[^0-9.-]/g,'');
   		sortValue = parseFloat(sortValue);
  	}
  	// If the item matches a numeric pattern
  	if (itm.match(/(\d*,\d*$)|(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/)) {
   		// Replace anything that is not part of a number (decimal pt, neg sign, or 0 through 9) with an empty string.
   		sortValue = itm.replace(/[^0-9.-]/g,'');
   		if (isNaN(sortValue)) {
     		sortValue = 0;
   		} 
   		else {
     		sortValue = parseFloat(sortValue);
   		}
  	}
  	return sortValue;
}


//KontextMenu
// register events
function initMouseMove() {
	if (!document.all){document.captureEvents(Event.MOUSEMOVE);}
    if (!document.all){document.captureEvents(Event.MOUSEDOWN);}
    document.onmousemove=getMouseMove;
	document.onmousedown=getMouseClick;
}
initMouseMove();
var xPos=-1;
var yPos=-1;
var clickButton=-1;
var openContextMenu='dummy';
function getMouseMove(e) {
	xPos = e? e.pageX : window.event.x;
    yPos = e? e.pageY : window.event.y;
	//if(document.getElementById('contextMenu')) document.getElementById('contextMenu').innerHTML='x='+xPos+'<br>y='+yPos+'<br>letzte Taste='+clickButton;
}
function getMouseClick(e) {
	clickButton = e? e.button : window.event.button;
	if(clickButton==0 && document.getElementById(openContextMenu))  onCloseContextMenu(openContextMenu);
}
function getContextMenu(e) {
	element= e? e.target : window.event.srcElement;
	params=element.id.split('|');
	if(params.length==2 && element) {
		onOpenContextMenu(params[0],params[1],element,false);
		return false;
	}
	else if(params.length==3 && element) {
		onOpenContextMenu(params[0],params[1],element,(params[2]==1));
		return false;
	}
	else {
		return true;
	}
}
function getParamsFromString(varString) {
	paramArray=varString.split('&');
	retArray=new Array(paramArray.length);
	for(i=0;i<paramArray.length;i++) {
		singleParam=paramArray[i].split('=');
		retArray[i]=new Array(2);
		retArray[i][0]=singleParam[0];
		retArray[i][1]=singleParam[1];
	}
	return retArray;
}
function onOpenContextMenu(contextDiv,urlParams,eventElement,readonly) {
	/*
		parameter muessen mit _variablenname_ gekennzeichnet werden
	*/
	if(readonly){
	tt=document.getElementById(contextDiv+"_read");
	}
	else{
	tt=document.getElementById(contextDiv);
	}
	ttnew=document.getElementById(contextDiv+'_show');
	if(tt && clickButton==2) {
		var cm=tt.innerHTML;
		//cm=contextMenu.replace(/_params_/gi,urlParams);
		// id des Elementes, das den Event erkennt
		cm=cm.replace(/_element_/gi,eventElement.id);
		paramArray=getParamsFromString(urlParams);
		for(i=0;i<paramArray.length;i++) {
			param=paramArray[i][1];
			regvar = new RegExp('_'+paramArray[i][0]+'_', "gi");
			cm=cm.replace(regvar,param);
		}
		//IE MUELL WIEDER RAUSSCHMEISSEN
		cm=cm.replace(/&amp;/gi,'&')
		//alert(cm);
		ttnew.innerHTML=cm;
	if(isIE) {
		maxheight=document.body.offsetHeight;
		
	}
	else {
		maxheight=window.innerHeight-2;
		
	}
	
	var divheight=ttnew.clientHeight;
	if(divheight==0){
	ttnew.style.display='block';
	divheight=ttnew.clientHeight;
	}
	if(yPos+divheight>maxheight){yPos=yPos-divheight-5;}
		setPosition(xPos+'px',yPos+'px',ttnew);
	}
}
function onOpenSimpleContext(mainid,id) {
	tt=document.getElementById('contextMenu_'+id);
	ttnew=document.getElementById('contextMenu_show_'+mainid);
	ttnew.innerHTML=tt.innerHTML;
	setPosition(xPos+'px',yPos+'px',ttnew);
	//welches Kontextmenu ist gerade offen?
	openContextMenu='contextMenu_show_'+mainid;
}

function setPosition(x,y,ele) {
	if(ele) {
		ele.style.left=x;
		ele.style.top=y;
		ele.style.display='block';
	}
}

function onCloseContextMenu(contextDiv) {
	tt=document.getElementById(contextDiv);
	if(tt) setTimeout('tt.style.display = \'none\'',500);
	//alle divs einer Seite ausblenden, die miz contextMenu_ als ID beginnen
	if(tt.id.substring(0,12)=='contextMenu_') {
		divs=document.getElementsByTagName('div');
		//alert(divs.length);
		for(i=0;i<divs.length;i++) {
			//alert(ele.id.substring(0,12));
			if(divs[i].nodeName=='DIV' && divs[i].id.substring(0,12)=='contextMenu_') {
				setTimeout('divs['+i+'].style.display = \'none\'',500);
			}
		}
	}
}

function goContextMenu(url) {
	win=createEditWindow(url);
	onCloseContextMenu('contextMenu_show');
}

//generiert ein standard Popopfenster
function createEditWindow(url,name,width,height) {
	if(name==null) name='tecracerpopup';
	if(width==null) width=820;
	if(height==null) height=620;
	
	win=window.open(url,name,'width='+width+',height='+height+',resizable=yes');
	//wieder auf das lade Popup fokusieren
	focusWaitPopup()
	x=(screen.width-width)/2;
	y=(screen.height-height)/2
	if(x>0 && y>0) {
		win.moveTo(Math.round(x),Math.round(y));
	}
	//win.focus();
	return win;
}

//Funktion zum Umbenennen von Pers. Funktionen
function renamePersFunction(option) {
	val=document.getElementById(option);
	if(val) {
		val=val.text;
		newhref=orghref.indexOf('?');
		orghref=document.location.href;
		newhref=orghref.substring(0,newhref);
		newoption=option.replace(/&/gi,'_U_');
		newoption=newoption.replace(/=/gi,'_G_');
		win=window.open(newhref+'?action=RenamePersFunction&val='+val+'&option='+newoption,'edit','width=450,height=150,resizable=yes');
		x=(screen.width-400)/2;
		y=(screen.height-100)/2
		if(x>0 && y>0) {
			win.moveTo(Math.round(x),Math.round(y));
		}
		win.focus();
	}
}
//Umbenannte Funktion zurueckschreiben
function writeBack(newvalue,oldvalue) {
	if(opener) {
		oldvalue=oldvalue.replace(/_U_/gi,'&');
		oldvalue=oldvalue.replace(/_G_/gi,'=');
		oldVal=opener.document.getElementById(oldvalue);
		newVal=document.getElementById(newvalue);
		if(oldVal && newVal) {
			oldVal.text=newVal.value;
		}
	}
	self.close();
}
//neue Option/Tab
function addInputField(refElement,indexElement,replaceString,addToElement) {
	ni = document.getElementById(refElement);
	newIndex = document.getElementById(indexElement);
	if(newIndex.value.length==0) num=0;
	else num=newIndex.value*1+1;
	newIndex.value = num;
  	newtbody = document.createElement('div');
  	newtbody.id='addfield_'+num;
  	newtbody.innerHTML = ni.innerHTML.replace(new RegExp(replaceString,"g"),num);
  	document.getElementById(addToElement).appendChild(newtbody);
}

//tabs im Editdialog umschalten
function onChangeEditTab(el,vel,objType,root) {
	var tabId=vel;
	vel='tab_'+vel;
	var activeTab=document.getElementById('activeTab').value;
	var elems=activeTab.split('|');
	if(document.getElementById(elems[0])) {
		document.getElementById(elems[0]).className='editTabTableTd';
		if(document.getElementById(elems[1])) {
			document.getElementById(elems[1]).className='hiddenElement';
		}
	}
	el.className='editTabTableTdEnabled';
	document.getElementById('activeTab').value=el.id+'|'+vel;
	if(document.getElementById(vel)) {
		document.getElementById(vel).className='visibleElement';
	}
	//letztes aktives Tab merken
	if(objType!=null && root !=null) {
		var url=root+'/admin/?action=SaveLastTab&activeTab='+tabId+'&sessionParam=activeEditTab_'+objType;
		simpleGetRequest(url);
	}
}
//Tabspalte in der Breite anpassen
function resizeContentTab() {
	if(isIE) {
		maxheight=document.body.offsetHeight;
		maxwidth=document.body.offsetWidth;
	}
	else {
		maxheight=window.innerHeight-2;
		maxwidth=window.innerWidth-2;
	}
	if(Math.round(maxwidth/2)-150 > 0) {
		if(document.getElementById('col_1')) document.getElementById('col_1').style.width=Math.round(maxwidth/2)-50+'px';
		if(document.getElementById('col_2')) document.getElementById('col_2').style.width=Math.round(maxwidth/2)-50+'px';
	}
}
//Buttonstyle aendern
function changeButtonStyle(id) {
	button=document.getElementById('button_'+id);
	if(button && button.disabled==false) {
		bs=document.getElementById('button_start_'+id);
		bm=document.getElementById('button_middle_'+id);
		be=document.getElementById('button_end_'+id);
		if(bs.className.indexOf('_h')>=0) {
			onChangeStyle(bs.className,bs.className.substring(0,bs.className.length-2),bs);
			onChangeStyle(bm.className,bm.className.substring(0,bm.className.length-2),bm);
			onChangeStyle(be.className,be.className.substring(0,be.className.length-2),be);
		}
		else {
			onChangeStyle(bs.className,bs.className+'_h',bs);
			onChangeStyle(bm.className,bm.className+'_h',bm);
			onChangeStyle(be.className,be.className+'_h',be);
		}
	}
}

//Sortierfunktionen
function onMoveDown( form_name, listname ) {
	ctl = eval( 'document.' + form_name + '.' + listname );
	if( ! ctl )  return;
	n = ctl.length;
	if( ctl.options[n-1].selected ) return;
	for( i=n-2; i>=0; i-- ) {
		if( ctl.options[i].selected ) {
			tmp1 = new Option( ctl.options[i+1].text );
			tmp1.value = ctl.options[i+1].value;
			tmp = new Option( ctl.options[i].text );
			tmp.value = ctl.options[i].value;
			ctl.options[i] = tmp1;
			ctl.options[i+1] = tmp;
			ctl.options[i+1].selected = true;
		}
	}
}

function onMoveUp( form_name, listname ) {
	ctl = eval( 'document.' + form_name + '.' + listname );
	if( ! ctl )  return;
	if( ctl.options[0].selected ) return;
	for( i=1; i<ctl.length; i++ ) {
		if( ctl.options[i].selected ) {
			tmp1 = new Option( ctl.options[i-1].text );
			tmp1.value = ctl.options[i-1].value;
			tmp = new Option( ctl.options[i].text );
			tmp.value = ctl.options[i].value;
			ctl.options[i-1] = tmp;
			ctl.options[i-1].selected = true;
			ctl.options[i] = tmp1;
		}
	}
}

function onSaveSort( form_name,  sctl, slist ) {
	ctl = eval( 'document.' + form_name + '.' + sctl );
	list = eval( 'document.' + form_name + '.' + slist );
	if( (!ctl)  ||  (!list) )  return;
	slist = '';
	for( i=0; i<ctl.length; i++ ) {
		if( slist != '' )  slist = slist + ',';
		slist = slist + ctl.options[i].value;
	}
	list.value = slist;
}
//Auswahlfunktionen
//Auswahl aus Liste an SelectFrame uebertragen
function onAdoptElement(id) {
	parent.frmListSelect.addId(id);
}
//Auswahl aus Liste an SelectFrame mit Top übertragen, wenn aus Dokumenttenliste 
function onAdoptTopElement(id) {
	top.frmListSelect.addId(id);
}

function onAdoptDocElement(id) {
	parent.parent.frmList.addId(id);
}

function addId(obj_id){
	if(document.forms[0].sel_method.value=='pair' && document.forms[0].sel_id.value.length!=0) {
		document.forms[0].sel_id.value=document.forms[0].sel_id.value+','+obj_id;
	}
	else {
		document.forms[0].sel_id.value=obj_id;
	}
	document.forms[0].submit();
}

function setFieldInOpener(sel_id,sel_show,form_element,elementTitle){
	if(document.forms[0].sel_method.value=='pair') {
		r=getActiveFields();
		sel_id=r[0]
		sel_show=r[2]+' '+elementTitle;
		top.opener.document.getElementById(form_element+'_bigshow_td').innerHTML=r[1];
	}
	top.opener.document.edit_form[form_element].value=sel_id;
	top.opener.document.edit_form[form_element+'_show'].value=sel_show;
	top.window.close();
}

function getActiveFields() {
	count=0;
	retValue="";
	retText="";
	retArray=new Array();
	form=document.forms[0];
	for(i=0;i<form.elements.length;i++) {
		ele=form.elements[i];
		if(ele.type=='checkbox' && ele.checked==true) {
			if(retValue.length>0) {
				retValue=retValue+',';
				retText=retText+'<br>';
			}
			count++;
			retValue=retValue+ele.value;
			retText=retText+getActiveText(ele.value);
		}
	}
	retArray[0]=retValue;
	retArray[1]=retText;
	retArray[2]=count;
	return retArray;
}
 function getActiveText(id) {
 	ele=document.getElementById('td_'+id);
 	if(ele) {
 		return ele.innerHTML;
 	}
 }
 
 function onDeleteLink(id) {
 	ele=document.getElementById(id);
 	if(ele) {
 		ele.value='';
 	}
 	ele=document.getElementById(id+'_show');
 	if(ele) {
 		ele.value='';
 	}
 	ele=document.getElementById(id+'_bigshow');
 	if(ele) {
 		ele.innerHTML='';
 	}
 }
 //Kalender
 function adddate(thedate,form_element) {
	opener.document.edit_form[form_element].value = unescape(thedate);
	self.close();
}


//AJAX
function simplePostRequest(url) {
	initXMLHTTPRequest('POST',url,'requestComplete',true);
}
function simpleGetRequest(url) {
	initXMLHTTPRequest('GET',url,'requestComplete',true);
}
//globale variablen, die anzeigen ob ein Request laeuft
var xmlHttp = null;
function initXMLHTTPRequest(method,url,func,async) {
	if(!xmlHttp) {
		// Mozilla, Opera, Safari,Internet Explorer 7
		if (typeof XMLHttpRequest != 'undefined') {
		    xmlHttp = new XMLHttpRequest();
		}
		if (!xmlHttp) {
		    // Internet Explorer 6 und aelter
		    try {
		        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
		    } catch(e) {
		        try {
		            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
		        } catch(e) {
		            xmlHttp  = null;
		        }
		    }
		}
	}
	//nur, wenn noch kein anderer Request gerade laeuft
	//waitForRequest(20);
	if (xmlHttp) {
	    requestText='No Data available';
	    xmlHttp.open(method, url, async);
   		requestStarted=true;
   		xmlHttp.onreadystatechange = eval(func);
	    xmlHttp.send(null);
	}
}
var customFunction=null;
function requestComplete() {
	 if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
        	//alert(xmlHttp.responseText);
			if(customFunction!=null)
			eval(customFunction);
		}
		else {
	        alert(xmlHttp.status+' Request failed');
		}
	}
}

function onExtractData(xmlData) {
	resultSet = new Array();
	if(xmlData!=null && xmlData.childNodes.length>0) {
		if(isIE)
			responseData=xmlData.childNodes[1];
		else
			responseData=xmlData.childNodes[0];
		for(i=0;i<responseData.childNodes.length;i++) {
			row=responseData.childNodes[i];
			resultSet[i]=new Object();
			for(j=0;j<row.childNodes.length;j++) {
				cell=row.childNodes[j];
				celldata=cell.firstChild.nodeValue;
				resultSet[i][cell.nodeName]=celldata;
			}
		}
	}
	return resultSet;
}

//Zahleneingabe ueberpruefen
function checkNumber(element,msg) {
	if(element) {
		element.value=element.value.replace(',','.');
		var numberStr=element.value;
		if(numberStr.length>0 && isNaN(numberStr)) {
			alert(msg);
			element.value='';
			window.setTimeout(function(){element.focus();},50);
		}
	}
}

//Datumseingabe ueberpruefen
function checkDate(root,dateString,element) {
	if(dateString){
		//Zeitangabe automatisch anfuegen, wenn nicht eingegeben
		if(dateString.length<=10) {
			dateString=dateString+' 00:00:00';
		}
		url=root+'/admin/?action=CheckDate&date_string='+dateString;
		customFunction='onCheckDate(\''+element+'\')';
		simpleGetRequest(url);
	}
}

function onCheckDate(element) {
	retText=xmlHttp.responseText;
	retArray=retText.split('_');
	if(retArray[0]=='false') {
		alert(retArray[1]);
		ele=document.getElementById(element);
		ele.value='';
		ele.focus();
	}
}
//Textvorlage einlesen
function onAdoptTemplate(obj_id,field_name,root) {
	//Sprache rausfinden
	temp=field_name.split('_');
	lang_id=temp[temp.length-1];
	//hole Text der Vorlage
	url=root+'/admin/?action=GetSimpleQuery';
	url=url+'&lang_id='+lang_id+'&sqlString=select tt_text from text_templates where obj_id='+obj_id;
	//schreibe Vorlage in das Feld, die Funktion kann nicht direkt zugewiesen werden da Parameter erwartet werden. customFunction wird dann innerhalb von simpleGetRequest verwendet
	customFunction='onWriteTemplateBack(\''+field_name+'\')';
	simpleGetRequest(url);
}

function onPutTemplate(obj_id,lang_id,root) {
	//Sprache rausfinden
	//hole Text der Vorlage
	url=root+'/admin/?action=GetSimpleQuery';
	url=url+'&lang_id='+lang_id+'&sqlString=select tt_text from text_templates where obj_id='+obj_id;
	//schreibe Vorlage in das Feld, die Funktion kann nicht direkt zugewiesen werden da Parameter erwartet werden. customFunction wird dann innerhalb von simpleGetRequest verwendet
	customFunction='onWriteTemplateBackEditor()';
	simpleGetRequest(url);
}
function onWriteTemplateBackEditor() {

			xmlResponse=xmlHttp.responseXML;
			resultSet=onExtractData(xmlResponse);
			if(resultSet.length>0) {
				if(top.opener) {
		//alert(top.opener.parent.location.href);
		top.opener.parent.insertLink(resultSet[0]['tt_text']);
	}
	else if(window.dialogArguments.opener){
		window.dialogArguments.opener.parent.insertLink(resultSet[0]['tt_text']);
	}
	else {
		alert('Editorwindow not found');
	}
			}
			self.close();
		
	
}


function onWriteTemplateBack(field_name) {
	if(top.opener) {
		ele=top.opener.document.getElementById(field_name);
		if(ele) {
			xmlResponse=xmlHttp.responseXML;
			resultSet=onExtractData(xmlResponse);
			if(resultSet.length>0) {
				ele.value=ele.value+'\n'+resultSet[0]['tt_text'];
				divele=top.opener.document.getElementById(field_name+'_div');
				copyValue(ele,divele);
			}
			self.close();
		}
	}
}


 //aktualisieren des Baumes bei Sortierung von Unterebenen
 function onReloadTree(opened,obj_id) {
 	if(top.opener) {
 		//tf=opener.top.mainFrame.frameContent.frameSubTree;
 		tf=top.opener;
 		if(tf) {
 			if(opened.length==0)
 				opened=obj_id;
 			else
 				opened=opened+','+obj_id;
 			tf.goSubTree(opened,obj_id,'TreeForm');
 		}
 	}
 }
 
 //allgemeine Editorfunktionen
function onGetFieldValue(fieldName) {
	if(top.opener) {
		formele=top.opener.document.getElementById(fieldName);
		if(formele) {
			return formele.value;
		}
	}
}
function onPostFieldValue(fieldName,source) {
	if(top.opener) {
		formele=top.opener.document.getElementById(fieldName);
		if(formele) {
			svalue=document.getElementById(source);
			if(svalue) {
				formele.value=svalue.value;
			}
		}
	}
}
function onTakeEditorValue(fieldName,targetFrame) {
	if(top.opener) {
		ele=top.opener.document.getElementById(fieldName);
		if(ele) {
			tf=eval(targetFrame);
			ele.value=tf.PrepareSave();
			divele=top.opener.document.getElementById(fieldName+'_div');	
			copyValue(ele,divele);
			top.close();
		}
	}
}
function onPutDocLink(type,url,title) {

	if(type=='image') {
		linkstr='<img border="0" src="'+url+'&mode=inline" alt="'+title+'" title="'+title+'"/>';	
		if(top.opener) {
		//alert(top.opener.parent.location.href);
		top.opener.parent.insertLink(linkstr);
	}
	else if(window.dialogArguments.opener){
		window.dialogArguments.opener.parent.insertLink(linkstr);
	}
	else {
		alert('Editorwindow not found');
	}
	}
	else {
		
		
		var selText;
	if(top.opener) {
		 selText=top.opener.parent.getSelectedText(url);
	}
	else if(window.dialogArguments.opener){
		selText=window.dialogArguments.opener.parent.getSelectedText(url);
	}
	
 
	if(!selText){
			
		linkstr='<a href="'+url+'">'+title+'</a>';

	
	
	if(top.opener) {
		//alert(top.opener.parent.location.href);
		top.opener.parent.insertLink(linkstr);
	}
	else if(window.dialogArguments.opener){
		window.dialogArguments.opener.parent.insertLink(linkstr);
	}
	else {
		alert('Editorwindow not found');
	}
	}
	}
}


//PersonalDesktop
function onChangePDView(obj,root) {
	activeTab=document.getElementById('lastselected').value;
	if(activeTab.length>0 && document.getElementById(activeTab)) {
		document.getElementById('func_'+activeTab).className='TabNormal';
		document.getElementById('div_'+activeTab).style.display='none';
	}
	obj.className='TabActivated';
	divele=obj.id.substring(5,obj.id.length);
	document.getElementById('lastselected').value=divele;
	document.getElementById('div_'+divele).style.display='block';
	//letztes aktives Tab merken
	url=root+'/admin/?action=SaveLastTab&activeTab='+divele;
	simpleGetRequest(url);
}

//Pausefunktion
function wait(ms) {
	date = new Date();
	curDate = null;
	do {
		curDate = new Date();
	}
	while(curDate-date < ms);
}
//Umschaltung der Anzeige von Clobfeld
function onChangeView(id) {
	textObj=document.getElementById(id);
	divObj=document.getElementById(id+'_div');
	if(textObj && divObj) {
		copyValue(textObj,divObj);
		showDiv=displayElement(id+'_div');
		showText=displayElement(id);
		if(showText) {
			onChangeStyle('FormTextarea','FormTextareaA',textObj);
			textObj.focus();
		}
		else {
			onChangeStyle('FormTextarea','FormTextareaA',textObj);
		}
	}
}
function copyValue(srcObj,targetObj) {
	if(srcObj && targetObj) {
		targetObj.innerHTML=srcObj.value;
	}
}

//Version wiederherstellen
function onRestoreVersion(root,message,targetFrame,obj_type,obj_id,version_id) {
	if(confirm(message)) {
		tframe=eval(targetFrame);
		if(tframe) {
			url=root+'/admin/?action=RestoreVersion&obj_type='+obj_type+'&obj_id='+obj_id+'&version_id='+version_id;
			tframe.location.href=url;
		}
	}
}
function showVersion(root,targetFrame,obj_type,obj_id) {
	tframe=eval(targetFrame);
	if(tframe) {
		url=root+'/admin/?action=ShowVersions&obj_type='+obj_type+'&obj_id='+obj_id;
		tframe.location.href=url;
	}
}
function submitForm(objForm) {
	objForm.submit();
}
function submitActionForm(objForm,do_action) {
	objForm.action.value=do_action;
	objForm.submit();
}
//Thumbnailansicht eines Verzeichnisses
function openGallery(root,obj_type,obj_id) {
	url=root+'/admin/?action=GalleryFrame&obj_type='+obj_type+'&obj_id='+obj_id;
	win=createEditWindow(url);
}
function changeCheckBox(id) {
	box=document.getElementById(id);
	if(box && (box.type=='radio'|| box.type=='checkbox')) {
		box.checked=true;
	}
}
function aOnClick(link,assigned_td) {
	func=link.href.substring(11,link.href.length);
	eval(func);
	onChangeActive(document.getElementById(assigned_td));
}
function saveFunction(id,title,confirmmessage,root) {
	if(confirm(confirmmessage)) {
		url=root+'/admin/?action=SavePersFunction&addonly=1&pers_functions='+id+'&pers_functions_title='+title;
		customFunction='top.topFrame.document.location.reload()';
		simpleGetRequest(url);
		//alert('ich speichere...vielleicht');
	}
}
//globale Variable, die zur Steuerung benutzt wird
var focusObj=null;
function focusActObj() {
	if(focusObj && focusObj.length>0) {
		window.location.hash=focusObj;
	}
}

//Zusammenfassen von checkboxen in Listen
function getCheckedListElements(formname,key) {
	idList='';
	form=document.forms[formname];
	if(form) {
		for(i=0;i<form.elements.length;i++) {
			ele=form.elements[i];
			substr=10+key.length;
			if(ele.type=='checkbox' && ele.id.substring(0,substr)=='listcheck_'+key && ele.checked==true) {
				if(idList.length>0) idList=idList+',';
				idList=idList+ele.value;
			}
		}
	}
	return idList;
}
 function selectAll(formname,key) {
	form=document.forms[formname];
	if(form) {
		for(i=0;i<form.elements.length;i++) {
			ele=form.elements[i];
			substr=10+key.length;
			if(ele.type=='checkbox' && ele.id.substring(0,substr)=='listcheck_'+key ) {
				if(ele.checked==true) ele.checked=false;
				else ele.checked=true;
			}
		}
	}
 }

function multipleAction(confirmmessage,abortmessage,root,action,key,backurl) {
	idList=getCheckedListElements('edit_form',key);
//	backurl=document.location.href;
//	if(backurl.indexOf('&errors=')>-1) {
//		backurl=backurl.substring(0,backurl.indexOf('&errors='));
//	}

	if(idList.length>0) {
		if(confirm(confirmmessage)) {
			url=root+'/admin/?action=MultipleAction&doaction='+action+'&idList='+idList+'&backurl='+escape(backurl);
			//alert(url);
			document.location.href=url;
		}
	}
	else {
		alert(abortmessage);
	}
}

function centerObject(id,width,height) {
	obj=document.getElementById(id);
	if(id) {
		if(isIE) {	
			if (document.documentElement&&document.documentElement.clientHeight) {
					maxheight=document.documentElement.clientHeight;
					maxwidth=document.documentElement.clientWidth;
				} 
			else {
				if (document.body&&document.body.clientHeight) {
					maxheight=document.body.clientHeight;
					maxwidth=document.body.clientWidth;
				}
				else {
					maxheight=window.document.body.offsetHeight;
					maxwidth=window.document.body.offsetWidth;
				}
			}
			maxheight=maxheight;
			maxwidth=maxwidth;
		}
		else {
			maxheight=window.innerHeight;
			maxwidth=window.innerWidth;
		}
		x=(maxwidth-width)/2;
		y=(maxheight-height)/2;
		if(x>0 && y>0) {
			setPosition(Math.round(x)+'px',Math.round(y)+'px',obj);
		}
	}
}


function submitenter(myfield,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
   {
   myfield.form.submit();
   return false;
   }
else
   return true;
}

function submitDocSearch(myfield,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
   {
   myfield.form.action.value='DocSearch';
   myfield.form.obj_type.value='documents';
   myfield.form.submit();
   return false;
   }
else
   return true;
}

function doGlobalSearch(root,e) {
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	if (keycode == 13) {
		submitGlobalSearch(root);
   		return false;
   	}
	else
   		return true;
}

function submitGlobalSearch(root) {
	frame=top.mainFrame.frameContent;
	if(frame) {
		value=document.getElementById("globalsearch");
		//alert(value.value);
		if(value.value.length>0) {
			url=root+'/admin/?action=GlobalSearch&searchString='+value.value;
			frame.location.href=url;
		}
	}
}	
function setFockusFirst(form_name) {
	var f=document.forms[form_name];
	if(f){
		var el=f.elements;
		var i=0;
		for(i=0;i<el.length;i++){
			if(el[i].type!='hidden' && el[i].style.display!='none' &&el[i].type!='button'){
				try {
					el[i].focus();
					break;
				}
				catch(e) {
				}
			}
		}
	}
}
function onShowHelpText(fieldName,root) {
	var helpwin=window.open(root+'?action=HelpPopup&field_name='+fieldName,'help','width=350,height=350,resizable=yes');
}

function onShowCommentText(fieldName,root,readonly) {
	var url=root+'?action=CommentPopUp&field_name='+fieldName+'&readonly='+readonly;
	var commentWin=createEditWindow(url,'commentWin');
}

function readComment(fieldName) {
	if(opener) {
		source=top.opener.document.getElementById(fieldName+'_comment');
		target=document.getElementById('comment');
		if(source && target) {
			target.value=source.value;
		}
	}
}

function writeComment(fieldName) {
	if(opener) {
		source=top.opener.document.getElementById(fieldName+'_comment');
		target=document.getElementById('comment');
		if(source && target) {
			source.value=target.value;
		}
	}
}

function getHelpText(fieldName) {
	divEle=document.getElementById('helptext_div');
	if(divEle) {
		textEle=opener.document.getElementById(fieldName+'_helptext');
		if(textEle) {
			divEle.innerHTML=textEle.value;
		}
	}
}

//checkIsSend
function checkIsSend() {
	isSend=document.getElementById("is_send").value;
	//wenn das Feld auf 1 gesetzt ist, dann wurde schon eine Funktion angeklickt
	if(isSend==1) {
		//alert("already send");
		return false;
	}
	else {
		document.getElementById("is_send").value=1;
		//die Tabelle und alle Elemente auf den disabled Style aendern
		tables=document.getElementsByTagName('table');
		for(i=0;i<tables.length;i++) {
			if(tables[i].className=='ControlButtonTable') {
				tables[i].className='ControlButtonTableDisabled';
			}
		}
		tds=document.getElementsByTagName('td');
		for(i=0;i<tds.length;i++) {
			if(tds[i].className=='ControlButtonText') {
				tds[i].className='ControlButtonTextDisabled';
			}
		}
		//alert("send");
		return true;
	}
}

//oeffnet ein Popup mit der Baumansicht eines Objektes
function showTreePosition(objId,typeName,root) {
	url=root+'/admin/?action=ShowTreePosition&obj_id='+objId+'&type_name='+typeName;
	createEditWindow(url,'treePosition');
}

//bitte warten popup aus dem topframe des Hauptfensers oeffnen
function showWaitPopup(root,message) {
	//wenn der edit dialog selbst ein popup ist, dann den letzten opener suchen
	topframe=findLastOpener(top).topFrame;
	if(topframe) 
		topframe.openWaitPopup(root,message);
}
function findLastOpener(start) {
	lastOpener=start;
	while(lastOpener.opener){
		lastOpener=lastOpener.opener.top;
	}
	return lastOpener.top;
}
function openWaitPopup(root,message) {
	if(!existsWaitPopup()) {
		waitwin=window.open(root+'/adm_show/wait.jsp?message='+message+'&root_path='+root,'tr_wait_popup','width=300,height=120,resizable=yes,hidestatusbar=yes');
		var x=(screen.width-300)/2;
		var y=(screen.height-100)/2
		if(x>0 && y>0) {
			waitwin.moveTo(Math.round(x),Math.round(y));
		}
	}
	waitwin.focus();
}
//bitte warten popup schliessen
function hideWaitPopup() {
	//wenn der edit dialog selbst ein popup ist, dann den letzten opener suchen
	topframe=findLastOpener(top).topFrame;
	if(topframe)
		topframe.closeWaitPopup();
}
function closeWaitPopup() {
	if(existsWaitPopup()) {
		//window.setTimeout(function(){waitwin.close();},500);
		waitwin.close();
	}
}
function focusWaitPopup() {
	topframe=findLastOpener(top).topFrame;
	topframe.refocusWaitPopup();
}
function refocusWaitPopup() {
	if(existsWaitPopup()) {
		waitwin.focus();
	}
}
//existiert das PopupWindow überhaupt?
function existsWaitPopup() {
	if(typeof waitwin != 'undefined') {
		if (!waitwin.closed) {
			//alert(true);
			return true;
	   	}
	   	else {
	   		//alert(false);
	   		return false;
	   	}
   	}
   	else {
   		//alert(false);
   		return false;
   	}
}

/* reaktiviere die Buttons in der Originalseite*/
function reactivateOpenerButtons() {
	//alert(window.opener);
	if(top) {
		o=top.window.opener.document;
	}
	else {
		o=window.opener.document;
	}
	reactivateButtons(o);
}

/* reaktiviere die Buttons in der Originalseite*/
function reactivateButtons(doc_ele) {
	//alert(window.opener);
	var o=doc_ele;
	//gibt es überhaupt Buttons zu reaktivieren?
	if(o && o.getElementById("is_send")!=null) {
		o.getElementById("is_send").value=0;
		//die Tabelle und alle Elemente auf den disabled Style aendern
		tables=o.getElementsByTagName('table');
		for(i=0;i<tables.length;i++) {
			if(tables[i].className=='ControlButtonTableDisabled') {
				tables[i].className='ControlButtonTable';
			}
		}
		tds=o.getElementsByTagName('td');
		for(i=0;i<tds.length;i++) {
			if(tds[i].className=='ControlButtonTextDisabled') {
				tds[i].className='ControlButtonText';
			}
		}
	}
}

/*oeffnet das Popup mit der Kommandozeile*/
function openCommandLine(root) {
		var commandLine=window.open(root+'/admin/?action=CommandLine','tr_command_popup','width=500,height=150,resizable=yes,hidestatusbar=yes');
		var x=(screen.width-500)/2;
		var y=(screen.height-150)/2
		if(x>0 && y>0) {
			commandLine.moveTo(Math.round(x),Math.round(y));
		}
}

/*Styleumschaltung Eingabefelder*/
function getO(oName) {
	return document.getElementById(oName);
}

/*styleumschaltung der Eingabefelder*/
function changeInputStyle(object,orgStyle,newStyle) {
	if(object && object.readOnly!=true) {
		if(object.className==orgStyle) object.className=newStyle;
		else object.className=orgStyle
	}
}

/*umschaltung sichtbar/unsichtbar im Filter*/
function changeVisibility(inputfield,visLink,visIcon,changeLink,changeIcon) {
	obj=document.getElementById(inputfield+"_notvisible");
	img=document.getElementById(inputfield+"_img");
	if(obj && img) {
		val=obj.value;
		if(val=='1') {
			obj.value=0;
		}
		else {
			obj.value=1;
		}
		if(img.title==visLink) {
			img.src=changeIcon;
			img.title=changeLink;
			img.alt=changeLink;
		}
		else {
			img.src=visIcon;
			img.title=visLink;
			img.alt=visLink;
		}
	}
}

function openFilterDialog(root,filter_id_string,objType) {
	url=root+'/admin/?action=FilterDialog&filter_id_string='+filter_id_string+'&obj_type='+objType;
	var filterwin=createFilterWindow(url);
	filterwin.focus();
}

function createFilterWindow(url) {
	return createWindow(url,800,700);
}
function doFilterAction(action) {
	document.edit_form.filter_action.value=action;
	document.edit_form.submit();
}
function createWindow(url,width,height) {
	win=window.open(url,'filterpopup','width='+width+',height='+height+',resizable=yes');
	x=(screen.width-width)/2;
	y=(screen.height-height)/2
	if(x>0 && y>0) {
		win.moveTo(Math.round(x),Math.round(y));
	}
	win.focus();
	return win;
}
function saveFilterDB(msg) {
	if(document.edit_form.filter_id_string.value.length>1){
		doFilterAction('save_permanent');
	}
	else {
		document.edit_form.filter_id_string.focus();
		alert(msg);
		reactivateButtons(document);
	}
}
function deleteFilterDB(msg) {
	if(confirm(msg)) {
		if(document.edit_form.filter_id_string.value.length>1){
			doFilterAction('delete');
		}
		else {
			doFilterAction('clear');
		}
	}
	else {
		reactivateButtons(document);
	}
}

function loadExtendedFilter() {
	document.edit_form.starts.value='';
	document.edit_form.search_text.value='';
	var eo=document.edit_form.filter_id_string;
	if(eo.options[eo.selectedIndex].value=='') {
		document.edit_form.drop_act_filter.value='1';
	}
	document.edit_form.submit();
	
}

function resetAllFilter() {
	document.edit_form.starts.value='';
	document.edit_form.search_text.value='';
    var eo=document.edit_form.filter_id_string;
	eo.options[eo.selectedIndex].value='';
	document.edit_form.drop_act_filter.value='1';
	document.edit_form.submit();
}

