/*----------------------------------------------------------
	AMAN_RedSYS(R) - Fileinfo:
	$Author: juergen $
	$Source: /home/cvs/redsys/kernel/system/javascripts/richedit/editor_functions.js,v $
	$Revision: 1.7 $
	
	Copyright (C) AMAN Media GmbH 2000 - 2003
	http://www.aman.de | http://www.redsys.de

---------------------------------------------------------*/

// interne globale Variable; nicht veraendern
var colorpicker;
var csspicker;
var logopicker;
var mediadb;
var linkman;
var elCurrent;
var edsCurrent;
var media_interval;
var linkman_interval;

function doFormat(eds, what, value) {
	var ed = get_Editor(eds);
	ed.focus();
	var sel = eds.get_selection(eds);
	var type = sel.type;
	var ot = (type == "None" ? ed.document : sel);
	var block = (sel.parentElement != null ? get_block(sel.parentElement()) : sel.item(0));

	if (eds.Mode == false)
		return true;
	if (what == "justify" ) {
		if (block) {
			block.style.textAlign = "";
			if ((block.tagname == "TABLE" || block.tagname == "IMG") && block.align == "left" && value == "left")
				block.align = "";
			else
				block.align = value;
			if ((block.tagname != "HR" && block.tagname != "IMG") || value == "center") {
				what = what + value;
				ot.execCommand(what);
			}
		}
		else {
			what = what + value;
			ot.execCommand(what);
		}
		eds.restore_selection();
		ed.focus();
	}
	else if (what == "forecolor" && value == null) {
		if (block)
			colorpicker_popup(eds,what,block.style.color);
		else
			colorpicker_popup(eds,what,"");
	}
	else if (what == "backcolor") {
		var el = null;
		if (sel.parentElement() != null) {
			el = get_element(sel.parentElement(),"TD");
			if (!el) el = get_element(sel.parentElement(),"TH");
			if (!el) el = get_element(sel.parentElement(),"TR");
			if (!el) el = get_element(sel.parentElement(),"TABLE");
		}
		else
			el = get_element(sel.item(0),"TABLE");
		if (value == null) {
			if (el)
				colorpicker_popup(eds,what,el.bgColor);
			else
				colorpicker_popup(eds,what,eds.bgcolor);
		}
		else {
			if (el)
				el.bgColor = value;
			else
				setbgColor(eds,value);
		}
	}
	else if (what == "createlink") {
		linkman_popup(eds);
/*		ot.execCommand(what,true);
		eds.restore_selection();
		ed.focus();*/
	}
	else if (what == "style") {
		css_popup(eds);
	}
	else if (what == "table") {
		table_popup(eds);
	}
	else if (what == "image") {
		media_popup(eds,what)
	}
	else if (what == "logo") {
		logo_popup(eds,what)
	}
	else if (value == null || value == "") {
		ot.execCommand(what);
		eds.restore_selection();
		ed.focus();
	}
	else {
		ot.execCommand(what,false,value);
		eds.restore_selection();
		ed.focus();
	}
	return true;
}

function changeMode(eds) {
	var but = eval("document.all.EM" + eds.Editor.substring(2,eds.Editor.length));
	if (but.style.pixelTop == 0)
		newMode = false;
	else
		newMode = true;
		
	if (eds.Mode != newMode) {
		eds.Mode = newMode;

		var ed = get_Editor(eds);
		var oBody = ed.document.body;
		var tb = eval("document.all.tb" + eds.Editor.substring(2,eds.Editor.length));

		if (!newMode) {
			oBody.style.backgroundColor = "";
			oBody.innerText = oBody.innerHTML;
			but.style.pixelTop=-16;
			disable_all(eds);
		}
		else {
			oBody.style.backgroundColor = eds.bgcolor;
			oBody.innerHTML = oBody.innerText;
			but.style.pixelTop=0;
			enable_all(eds);
		}
	}
	return eds.Mode;
}

function disable_all(eds) {
	var tb_len = eds.toolbar.length-eds.toolbar.lastIndexOf("/")-1;
	var basename = eds.toolbar.substr(eds.toolbar.lastIndexOf("/")+1,tb_len);
	
	with (document.all) {
		for (i = 0; i< tags("img").length; i++) {
			if (tags("img")[i].src.substr(tags("img")[i].src.length-tb_len,tb_len) == basename && tags("img")[i].onclick != null) {
				var tb_height = tags("img")[i].height/4;
				tags("img")[i].style.pixelTop= -(tb_height*3);
			}
		}
	}
}

function enable_all(eds) {
	var tb_len = eds.toolbar.length-eds.toolbar.lastIndexOf("/")-1;
	var basename = eds.toolbar.substr(eds.toolbar.lastIndexOf("/")+1,tb_len);
	
	with (document.all) {
		for (i = 0; i< tags("img").length; i++) {
			if (tags("img")[i].src.substr(tags("img")[i].src.length-tb_len,tb_len) == basename && tags("img")[i].onclick != null) {
				var tb_height = tags("img")[i].height/4;
				tags("img")[i].style.pixelTop= 0;
			}
		}
	}
}

function insertHTML(eds,value) {
	var sel = eds.get_selection(eds);
	if(typeof(sel) != 'object')
		return false;
	var type = sel.type;
	if (eds.Mode) {
		if (type=="Control")
			sel.item(0).outerHTML = value;
		else
			sel.pasteHTML(value);
	} else {
		sel.text = value;
	}
}

function setbgColor(eds,value) {
	var ed = get_Editor(eds);
	eds.bgcolor = value;
	
	if (eds.Mode) 
		ed.document.body.style.backgroundColor = eds.bgcolor;
}
	
function get_block(el) {
	var blocks = "|H1|H2|H3|H4|H5|H6|P|PRE|LI|TD|DIV|BLOCKQUOTE|DT|DD|TABLE|HR|IMG|SPAN|";
	
	while (el != null && blocks.indexOf("|"+el.tagName+"|")==-1)
		el = el.parentElement;
	return el;
}

function get_element(el,tag) {
	while (el != null && el.tagName != tag && el.tagName != "BODY") {
		el = el.parentElement;
	}

	if (el != null && el.tagName != tag)
		return null;
	else
		return el;
}

function get_Editor(eds) {
	return eval("EB" + eds.Editor.substring(2,eds.Editor.length));
}

function set_HTML(eds,text) {
	var ed = get_Editor(eds);
	if (eds.Mode)
		ed.document.body.innerHTML = text;
	else
		ed.document.body.innerText = text;
}

//  _EditorStatus 

function _EditorStatus()
{
	this.selection		= null;
	this.Mode			= true;
	this.aLinks			= new Array();
	this.bgcolor		= "";
	this.szSearch		= location.search.substring(1);
	this.aBindings		= new Array();
	this.aListPopups	= new Object();
	this.aCache			= new Object();
	this.Editor			= null;
	
	this.colorpickerurl = "";
	this.tableeditorurl = "";
	this.mediadburl = "";
	this.logopickerurl = "";
	this.stylespickerurl = "";
	this.cssfile = "";
	this.logopath = "";
	this.toolbar = "";

	this.restore_selection	= _EditorStatus_RestoreSelection;
	this.get_selection		= _EditorStatus_get_selection;
	this.save_selection		= _EditorStatus_save_selection;
	this.save_content		= _EditorStatus_save_content;
	this.MoveSelection		= _EditorStatus_MoveSelection;
}

function _EditorStatus_RestoreSelection() {
	if (this.selection && typeof(this.selection) == 'object' && typeof(this.selection.select) != 'undefined') {
		try {
			this.selection.select();
		} catch(e) {}
	}		
}

function _EditorStatus_get_selection(eds) {
	var oSel = eds.selection;
	var ed = get_Editor(eds);
	
	if (!oSel) {
		oSel = ed.document.selection.createRange();
		oSel.type = ed.document.selection.type;
	}
	return oSel;
}

function _EditorStatus_save_selection(eds) {
	var ed = get_Editor(eds);
	
	eds.selection  = ed.document.selection.createRange();
	eds.selection.type = ed.document.selection.type;
}

function _EditorStatus_save_content() {
	// Vorsicht: this ist direkt der Editor (JavaSkript ist keine vollstaendige OO-Sprache)
	var tf = eval("document.all.FormText" + this.name.substring(2,this.name.length));
	var eds = eval("state" + this.name.substring(2,this.name.length));

	eds.save_selection(eds);
	if (eds.Mode)
		tf.value = this.document.body.innerHTML;
	else
		tf.value = this.document.body.innerText;
}

function _EditorStatus_SaveSelection() {
	var st = eval("state_" + this.name.substring(3,this.name.length));
	st.selection = this.document.selection.createRange();
	st.selection.type = this.document.selection.type;;
}

function _EditorStatus_MoveSelection(bDir) {
	var ed = get_Editor(this);
	var tr = ed.document.body.createTextRange()
	tr.collapse(bDir)
	tr.select()
}

function _Editor_ClickHandler() {
	var title = this.parentWindow.name.substring(2,this.parentWindow.name.length);
	eval("state" + title + ".selection = null;");
}

function _Editor_KeyDownHandler() {
	var title = this.parentWindow.name.substring(2,this.parentWindow.name.length);
	var eds = eval("state" + title);
	var ev = this.parentWindow.event
	if (ev.keyCode==9)
		eds.save_selection(eds); 
	else 
		eval("state" + title + ".selection = null;");
}

function _Editor_DblClickHandler() {
	// Shortcuts
	var el = this.parentWindow.event.srcElement
	if (el.tagName=="IMG")  {
		el.removeAttribute("width")
		el.removeAttribute("height")
		el.style.removeAttribute("width")
		el.style.removeAttribute("height")
		el.width = el.width
		el.height = el.height
	}
}

function _Editor_HandleDragEnter() {
	var oData = this.document.parentWindow.event;

	oData.returnValue = false;
	oData.dataTransfer.effectAllowed = "none";
}

function drawToolbar(edit_name, tb_img, tb_size, tb_pos, tb_tip, tb_com, tb_height) {
	var out = "<DIV ID=Toolbar ondragstart='return false;'><NOBR>"
	
	for (var i= 0; i < tb_size.length; i++) {
		out += "<SPAN STYLE=\"width:" + tb_size[i] + ";height:" + tb_height +";\">"
			+  "<SPAN STYLE=\"position:absolute;width:" + tb_size[i] + ";height:" + tb_height +";clip: rect(0 " + tb_size[i] + " " + tb_height + " 0)\">"
			+  "<IMG";
		if (tb_tip[i] != "")
			out += " title=\"" + tb_tip[i] + "\"";
		if (tb_com[i] != "") {
			out += " onClick=\"doFormat(" + edit_name + " , " + tb_com[i] + ");event.cancelBubble=true;\" "
				+  "onMouseDown=\"mousedown(this," + tb_height + ");\" "
				+  "onMouseOver=\"mouseover(this," + tb_height + ");\" onMouseOut=\"mouseout(this," + tb_height + ");\" "
				+  "onMouseUp=\"mouseup(this," + tb_height + ");\" src=\"" + tb_img + "\" "
				+  "STYLE=\"position:absolute;top:0;left:-" + tb_pos[i] + "\"></SPAN></span>";
		}
		else {
			out += " src=\"" + tb_img + "\" STYLE=\"position:absolute;top:-" + (tb_height*3) + ";left:-" + tb_pos[i] + "\"></SPAN></span></NOBR><NOBR>";
		}
	}
	out += "</NOBR></DIV>";
	document.write(out);
}

function mousedown(el,h) {
	if (event.button == 1 && el.style.pixelTop != -h*3) {
		el.style.pixelTop=-h*2;
	}
}

function mouseup(el,h) {
	if (el.style.pixelTop != -h*3) {
		el.style.pixelTop=-h;
	}
}

function mouseover(el,h) {
	if (el.style.pixelTop != -h*3) {
		el.style.pixelTop=-h;
	}
}

function mouseout(el,h) {
	if (el.style.pixelTop != -h*3) {
		el.style.pixelTop=0;
	}
}

function colorpicker_popup(eds,what,value) {
	var ed = get_Editor(eds);
	var tf = eval("document.all.FormExchange" + ed.name.substring(2,ed.name.length));

	tf.value = value;
	colorpicker = window.open(eds.colorpickerurl + "input_form=" + tf.form.name + "&input_name=" + tf.name,"colorpicker","width=260,height=325,dependent=yes");

	while (colorpicker.document.all.ok == null); // warten bis der Colorpicker aufgebaut ist
	
	colorpicker.document.all.ok.onclick = new Function("close_colorpicker('" + ed.name.substring(2,ed.name.length) + "','"+ what + "');");	
}

function close_colorpicker(eds_name,what) {
	var eds = eval("state" + eds_name);
	colorpicker.close_picker();
	var value = eval("document.all.FormExchange" + eds_name + ".value");
	doFormat(eds,what,value);
}

function table_popup(eds) {
	var ed = get_Editor(eds);
	var sel = eds.get_selection(eds);
	var type = sel.type;
	var ot = (type == "None" ? ed.document : sel);
	elCurrent = (sel.parentElement != null) ? get_element(sel.parentElement(),"TABLE") : get_element(sel.item(0),"TABLE");
	edsCurrent = eds;

	if (elCurrent != null) {
		tablewi = window.open(eds.tableeditorurl + "new=false","Table_Popup","width=10,height=10,dependent=yes");

		while (tablewi.document.all.ok == null); // warten bis der Table Editor aufgebaut ist
		
		tablewi.document.all.tbl_edit_cellpadding.value = elCurrent.cellPadding;
		tablewi.document.all.tbl_edit_cellspacing.value = elCurrent.cellSpacing;
		tablewi.document.all.tbl_edit_border.value = elCurrent.border;
		tablewi.document.all.tbl_edit_bordercolor.value = elCurrent.borderColor;
		tablewi.document.all.tbl_edit_bgimage.value = elCurrent.bgColor;
		tablewi.document.all.tbl_edit_bgcolor.value = elCurrent.background;
	}
	else
		tablewi = window.open(eds.tableeditorurl + "new=true","Table_Popup","width=10,height=10,dependent=yes");

}

function process_table(tablewi,newflag) {
	var ed = get_Editor(edsCurrent);
	if (newflag == true) {
//				  + ((tablewi.document.all.tbl_edit_border.value == "" || tablewi.document.all.tbl_edit_border.value == "0") ? " class=\"NOBORDER\"" : "")
		var tab = "<TABLE"
				  + (tablewi.document.all.tbl_edit_cellpadding.value != "" ? " cellpadding=\"" + tablewi.document.all.tbl_edit_cellpadding.value + "\"" : "")
				  + (tablewi.document.all.tbl_edit_cellspacing.value != "" ? " cellspacing=\"" + tablewi.document.all.tbl_edit_cellspacing.value + "\"" : "")
				  + (tablewi.document.all.tbl_edit_bordercolor.value != "" ? " borderColor=\"" + tablewi.document.all.tbl_edit_bordercolor.value + "\"" : "")
				  + (tablewi.document.all.tbl_edit_border.value != "" ? " border=\"" + tablewi.document.all.tbl_edit_border.value + "\"" : "")
				  + (tablewi.document.all.tbl_edit_bgimage.value != "" ? " background=\"" + tablewi.document.all.tbl_edit_bgimage.value + "\"" : "")
				  + (tablewi.document.all.tbl_edit_bgcolor.value != "" ? " bgcolor=\"" + tablewi.document.all.tbl_edit_bgcolor.value + "\"" : "")
				  + ">";
		for (var i = 0; i < tablewi.document.all.tbl_edit_row.value; i++) {
			tab += "<tr>";
			
			for (var j = 0; j < tablewi.document.all.tbl_edit_column.value; j++) {
				tab += "<td>&nbsp;</td>";
			}
			tab += "</tr>"
		}
		tab += "</table>";
		
		insertHTML(edsCurrent,tab);
	}
	else {
		elCurrent.cellPadding = tablewi.document.all.tbl_edit_cellpadding.value;
		elCurrent.cellSpacing = tablewi.document.all.tbl_edit_cellspacing.value;
		elCurrent.border = tablewi.document.all.tbl_edit_border.value;
//		if (elCurrent.border == "" || elCurrent.border==0) elCurrent.className = "NOBORDER";
		elCurrent.borderColor = tablewi.document.all.tbl_edit_bordercolor.value;
		elCurrent.bgColor = tablewi.document.all.tbl_edit_bgimage.value;
		elCurrent.background = tablewi.document.all.tbl_edit_bgcolor.value;
	}
	edsCurrent.restore_selection();
}

function media_popup(eds,what) {
	var ed = get_Editor(eds);
	var sel = eds.get_selection(eds);
	var type = sel.type;
	var ot;
	var lm_url;
	var elCurrent;
	if (type == "Text") {
		ot = escape(sel.htmlText);
		elCurrent = (sel.parentElement != null ? get_element(sel.parentElement,"A") : null);

	} else if (type == "Control") {
		ot = escape(sel.item(0).outerHTML);
		elCurrent = (sel.item(0).parentElement != null ? get_element(sel.item(0).parentElement,"A") : null);

	} else {
		ot = "";
		elCurrent = null;
	}	

	var tf = eval("document.all.FormExchange" + ed.name.substring(2,ed.name.length));
	if (elCurrent != null) {
		lm_url  = "lm[c_prot]=" + elCurrent.protocol 
				+ "&lm[c_target]=" + elCurrent.target 
				+ "&lm[c_text]=" + escape(elCurrent.innerHTML) 
				+ "&lm[c_href]=" + escape(elCurrent.href);
	} else {
		lm_url = "lm[newlink]="+ot;
	}

	// Öffne Popup
	mediadb = false;
	mediadb = window.open(eds.mediadburl + "input_form=" + tf.form.name + "&input_name=" + tf.name + "&" + lm_url,"mediadb","dependent=yes,resizable=yes,width=800,height=500");

	media_interval = setInterval("setmediaclick('"+ed.name+"','"+what+"')",500);
}

function setmediaclick(ed_name,what) {
	// Die Wiederholungen sind Absicht, da das Fenster waehrend des Funktionslauf geschlossen werden kann.
	if (mediadb.closed) {clearInterval(media_interval);return;}
	if(typeof(mediadb) == 'undefined') return;
	if(typeof(mediadb.nav) == 'undefined') return;
	if(typeof(mediadb.nav.document) == 'undefined') return;
	if(mediadb.nav.document.all["btn[send]"] == null) return; // warten bis die Mediadatenbank aufgebaut ist
	/*
	while(typeof(mediadb) == 'undefined');
	while(typeof(mediadb.nav) == 'undefined');
	while(typeof(mediadb.nav.document) == 'undefined');
	while(mediadb.nav.document.all["btn[send]"] == null); // warten bis die Mediadatenbank aufgebaut ist
	*/
	if (mediadb.closed) {clearInterval(media_interval);return;}
	mediadb.nav.document.all["btn[send]"].onclick = new Function("close_mediadb('" + ed_name.substring(2,ed_name.length) + "','"+ what + "');");
	if (mediadb.closed) {clearInterval(media_interval);return;}
	mediadb.nav.document.all["btn[abort]"].onclick = new Function("close_mediadb('" + ed_name.substring(2,ed_name.length) + "',null);");
	if (mediadb.closed) {clearInterval(media_interval);return;}
}

function close_mediadb(eds_name,what) {
	clearInterval(media_interval);
	var eds = eval("state" + eds_name);
	if (what != null) {
		with (mediadb) {
			if(urlview.document.forms['lm'].elements['type'].value == "image") {
				var out = "<img border='0' id='MediaID_" + nav.document.all["data[id]"].value + "' src='" + urlview.document.forms['lm'].elements['href'].value + "'>";
			} else {
				var linktext = urlview.document.forms['lm'].elements['linktext'].value;
				var out = "<a id='MediaID_" + nav.document.all["data[id]"].value + "' href='" + urlview.document.forms['lm'].elements['href'].value + "'>"+(linktext ? linktext : "MediaLink")+"</a>";
			}
			insertHTML(eds,out);
		}
	}
	mediadb.close();
	eds.restore_selection();
}

function css_popup(eds) {
	var ed = get_Editor(eds);
	var tf = eval("document.all.FormExchange" + ed.name.substring(2,ed.name.length));

	if (eds.cssfile != "") {
		csspicker = window.open(eds.stylespickerurl + "input_form=" + tf.form.name + "&input_name=" + tf.name + "&cssfile=" + eds.cssfile,"csspicker","width=10,height=10,dependent=yes");
	
		while (csspicker.document.all.ok == null); // warten bis der CSSpicker aufgebaut ist
		
		csspicker.document.all.ok.onclick = new Function("close_csspicker('" + ed.name.substring(2,ed.name.length) + "');");	
	}
}

function close_csspicker(eds_name) {
	csspicker.close_picker();
	var eds = eval("state" + eds_name);
	var ed = get_Editor(eds);
	ed.focus();
	var sel = eds.get_selection(eds);
	var type = sel.type;
	var ot = (type == "None" ? ed.document : sel);
	var block = (sel.parentElement != null ? get_block(sel.parentElement()) : sel.item(0));

	var value = eval("document.all.FormExchange" + eds_name + ".value");
	if (block) {
		block.className = value;
	}
	else {
		insertHTML(eds,"<span class='" + value + "'>" + sel.text + "</span>");
	}
	eds.restore_selection();
}

function logo_popup(eds) {
	var ed = get_Editor(eds);
	var tf = eval("document.all.FormExchange" + ed.name.substring(2,ed.name.length));

	if (eds.logopath != "") {
		logopicker = window.open(eds.logopickerurl + "input_form=" + tf.form.name + "&input_name=" + tf.name + "&logopath=" + eds.logopath,"logopicker","width=10,height=10,scrollbars=yes,dependent=yes");
	
		while (logopicker.document.all.ok == null); // warten bis der CSSpicker aufgebaut ist
		
		logopicker.document.all.ok.onclick = new Function("close_logopicker('" + ed.name.substring(2,ed.name.length) + "');");	
	}
}

function close_logopicker(eds_name) {
	logopicker.close_picker();
	var eds = eval("state" + eds_name);
	var value = eval("document.all.FormExchange" + eds_name + ".value");

	if (value != "") {
		var out = "<img border='0' src='" + value + "'>";
		insertHTML(eds,out);
	}
	eds.restore_selection();
}

function linkman_popup(eds) {
	var ed = get_Editor(eds);
	var sel = eds.get_selection(eds);
	var type = sel.type;
	var ot;
	if (type == "Text") {
		ot = escape(sel.htmlText);
		elCurrent = (sel.parentElement != null ? get_element(sel.parentElement,"A") : null);
	}
	else if (type == "Control") {
		ot = escape(sel.item(0).outerHTML);
		elCurrent = (sel.item(0).parentElement != null ? get_element(sel.item(0).parentElement,"A") : null);
	}
	else {
		ot = "";
		elCurrent = null;
	}
	var tf = eval("document.all.FormExchange" + ed.name.substring(2,ed.name.length));

	edsCurrent = eds;
	var newflag = true;
	var lm_url = eds.linkmanagerurl + "input_form=" + tf.form.name + "&input_name=" + tf.name;
	if (elCurrent != null) {
		var lm_id = "redsys://redsys.de/linkman.php?";
		var lm = elCurrent.href.indexOf(lm_id);
		newflag = false;
		if (lm == -1)
			lm_url += "&tab=UrlLinks&lm[newflag]=false&lm[prot]=" + elCurrent.protocol + "&lm[target]=" + elCurrent.target + "&lm[text]=" +
									escape(elCurrent.innerHTML) + "&lm[href]=" + escape(elCurrent.href);
		else {
			lm_parm = elCurrent.href.substr(lm+lm_id.length);
			lm = lm_parm.indexOf("&");
			if (lm == -1)
				lm_gruppe = lm_parm.substr(7);
			else
				lm_gruppe = lm_parm.substr(7,lm-7);
			lm_url += "&tab=DBLinks&lm[newflag]=false&lm[text]=" + escape(elCurrent.innerHTML) + "&lm[gruppe]=" + lm_gruppe;
			if (lm != -1)
				lm_url += "&lm[query]=" + escape(lm_parm.substr(lm));
		}
	}
	else
		lm_url += "&lm[newflag]=true&lm[text]=" + escape(ot);
	linkman = window.open(lm_url, "LinkManager_Popup", "width=10,height=10,dependent=yes,scrollbars=yes");

	// warten bis der LinkManager aufgebaut ist
	setTimeout("check_linkman('"+ed.name+"',"+newflag+")",500);
}

function check_linkman(ed_name,newflag) {
	if (linkman.buttons == null || linkman.buttons.document.all.ok == null)
		setTimeout("check_linkman('"+ed_name+"',"+newflag+")",500);
	else
		linkman_interval = setInterval("setlinkmanclick('"+ed_name+"',"+newflag+")",500);
}

function setlinkmanclick(ed_name,newflag) {
	// Die Wiederholungen sind Absicht, da das Fenster waehrend des Funktionslauf geschlossen werden kann.
	if (linkman.closed) {clearInterval(linkman_interval);return;}
	while (linkman.buttons.document.all["ok"] == null); // warten bis der Linkmanager aufgebaut ist
	if (linkman.closed) {clearInterval(linkman_interval);return;}
	linkman.buttons.document.all["ok"].onclick = new Function("process_linkman('" + ed_name.substring(2,ed_name.length) + "','"+ newflag + "');");
	if (linkman.closed) {clearInterval(linkman_interval);return;}
	linkman.buttons.document.all["cancel"].onclick = new Function("process_linkman('" + ed_name.substring(2,ed_name.length) + "',null);");
	if (linkman.closed) {clearInterval(linkman_interval);return;}
}

/*		if (lm == -1) {
			for (var i = 0; i < linkman.document.all.linkman_url_type.options.length; i++) {
				if (linkman.document.all.linkman_url_type.options[i].value == elCurrent.protocol) {
					linkman.document.all.linkman_url_type.selectedIndex = i;
					break;
				}
			}
			linkman.document.all.linkman_url_url.value = elCurrent.href;
			for (var i = 0; i < linkman.document.all.linkman_url_target.options.length; i++) {
				if (linkman.document.all.linkman_url_target.options[i].value == elCurrent.target) {
					linkman.document.all.linkman_url_target.selectedIndex = i;
					break;
				}
			}
			linkman.document.all.linkman_url_text.value = elCurrent.innerHTML;
		}
		else {
			for (var i = 0; i < linkman.document.all.linkman_db_entry.options.length; i++) {
				if (linkman.document.all.linkman_db_entry.options[i].value == elCurrent.href.substr(lm+12)) {
					linkman.document.all.linkman_db_entry.selectedIndex = i;
					break;
				}
			}
			for (var i = 0; i < linkman.document.all.linkman_db_target.options.length; i++) {
				if (linkman.document.all.linkman_db_target.options[i].value == elCurrent.target) {
					linkman.document.all.linkman_db_target.selectedIndex = i;
					break;
				}
			}
			linkman.document.all.linkman_db_text.value = elCurrent.innerHTML;
			linkman.document.all.URLLinks.style.display = "none";
			linkman.document.all.DBLinks.style.display = "";
		}
	}
	else {
		linkman = window.open(eds.linkmanagerurl + "data[new]=true&data[text]=" + escape(ot),"LinkManager_Popup","width=10,height=10,dependent=yes");

		while (linkman.document.all.ok == null); // warten bis der LinkManager aufgebaut ist
		
		linkman.document.all.linkman_url_text.value = ot;
		linkman.document.all.linkman_db_text.value = ot;

		linkman.document.all.ok.onclick = new Function("process_linkman(linkman,true);");	
	}*/

function process_linkman(eds_name,newflag) {
	clearInterval(linkman_interval);
	if (newflag != null) {
		var eds = eval("state" + eds_name);
		linkman.buttons.close_popup();
		var value = eval("document.all.FormExchange" + eds_name + ".value");
		if (newflag == "true")
			insertHTML(edsCurrent,value);
		else
			elCurrent.outerHTML = value;
	}
	else
		linkman.close();
//	edsCurrent.restore_selection();
}
/*		if (linkman.document.all.URLLinks.style.display = "") {
			var target = linkman.document.all.linkman_url_target[linkman.document.all.linkman_url_target.selectedIndex].value;
			var lt = "<A href=\"" + linkman.document.all.linkman_url_url.value + "\" "
					+ (target != "" ? "target=\"" + target + "\" " : "") + "> "
					+ (linkman.document.all.linkman_url_text.value != "" ? linkman.document.all.linkman_url_text.value : linkman.document.all.linkman_url_url.value)
					+ "</a>"
		}
		else {
			var target = linkman.document.all.linkman_db_target[linkman.document.all.linkman_db_target.selectedIndex].value;
			var href = "linkman.php?" + linkman.document.all.linkman_db_entry[linkman.document.all.linkman_db_entry.selectedIndex].value;
			var lt = "<A href=\"" + href + "\" "
					+ (target != "" ? "target=\"" + target + "\" " : "") + "> "
					+ (linkman.document.all.linkman_db_text.value != "" ? linkman.document.all.linkman_db_text.value : href)
					+ "</a>"
		}
		
		insertHTML(edsCurrent,lt);*/
/*		if (linkman.document.all.URLLinks.style.display = "") {
			elCurrent.href = linkman.document.all.linkman_url_url.value;
			elCurrent.target = linkman.document.all.linkman_url_target[linkman.document.all.linkman_url_target.selectedIndex].value;
			elCurrent.innerHTML = (linkman.document.all.linkman_url_text.value != "" ? linkman.document.all.linkman_url_text.value : linkman.document.all.linkman_url_url.value);
		}
		else {
			elCurrent.href = "linkman.php?" + linkman.document.all.linkman_db_entry[linkman.document.all.linkman_db_entry.selectedIndex].value;
			elCurrent.target = linkman.document.all.linkman_db_target[linkman.document.all.linkman_db_target.selectedIndex].value;
			elCurrent.innerHTML = (linkman.document.all.linkman_db_text.value != "" ? linkman.document.all.linkman_db_text.value : elCurrent.href);
		}*/
