function popupOpen() {		// parameter.reihenfolge: URL, WIDTH, HEIGHT
	var w,h,url,aw,ah;
	var a=popupOpen.arguments;
	if (a.length==0) return;
	url=a[0];
	if (a.length>1) {
		w=a[1]; h=a[2];
	}
	else {
		w=500; h=400
	}
	win=window.open(url,'win_front','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width='+w+',height='+h);
	if (screen) {
		aw=screen.availWidth;
		ah=screen.availHeight;
		win.moveTo(((aw/2)-(w/2)),((ah/2)-(h/2)));
	}
	win.focus();
}

function openPicture() {		// parameter.reihenfolge: URL, WIDTH, HEIGHT
	var w,h,url,aw,ah;
	var a=openPicture.arguments;
	if (a.length==0) return;
	url=a[0];
	if (a.length>1) {
		w=a[1]; h=a[2];
	}
	else {
		w=500; h=400
	}
	win_pic=window.open(url,'win_pic','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width='+w+',height='+h);
	if (screen) {
		aw=screen.availWidth;
		ah=screen.availHeight;
		win_pic.moveTo(((aw/2)-(w/2)),((ah/2)-(h/2)));
	}
	win_pic.focus();
}

/// AJAX
var http_request = false;
var anker='';
// public

function fillShowFrame(node_id, lang_id) {
	if (!BrowserIsCompatible()) {
		return;
	}
	
	var url=location.href;
	new_url= url.indexOf(".php") == -1 ? url+"index.php" : url.substr(0, Math.max(url.indexOf(".php")+4, url.indexOf(".php5")+5));
	new_url += "?node_id=show_ajax;"+node_id+"&lang_id="+lang_id+"&show=show_frame";
	http_request = requestObject();
	http_request.onreadystatechange = displayShowFrame;
	http_request.open('GET', new_url, true);
	http_request.send(null);
}

// protected
function displayShowFrame() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById('show_frame').innerHTML = http_request.responseText;
		}
		else if (http_request.status == 0) {
			// IE: abfangen
		}
		else {
			alert('Anforderung konnte nicht verarbeitet werden, Ajax-HTTP-Fehler '+http_request.status);
		}
	}
}

function fillContentFrame(node_id, lang_id) {
	if (!BrowserIsCompatible()) {
		return;
	}
	
	var url=location.href;
	
	new_url= url.indexOf(".php") == -1 ? url+"index.php" : url.substr(0, Math.max(url.indexOf(".php")+4, url.indexOf(".php5")+5));
	new_url += "?node_id=show_ajax;"+node_id+"&lang_id="+lang_id+"&show=show_content";
	http_request = requestObject();
	http_request.onreadystatechange = displayContentFrame;
	http_request.open('GET', new_url, true);
	http_request.send(null);
}

function displayContentFrame() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById('content_frame').innerHTML = http_request.responseText;
		}
		else if (http_request.status == 0) {
			// IE: abfangen 
		}
		else {
			alert('Anforderung konnte nicht verarbeitet werden, Ajax-HTTP-Fehler '+http_request.status);
		}
	}
}

function sendContentPostVars(obj_id) {
	try {
		var obj=document.getElementById(obj_id);
	}
	catch (e) {
		alert("Fehler beim Finden des Objekts: "+obj_id);
		return;
	}
	var data_string=parseNode(obj.elements);
	data_string= data_string.substr(1);
	var url=obj.action+"?show=show_frame";

	http_request = requestObject();
	http_request.onreadystatechange = displayShowFrame;
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(data_string);
}

function ajaxSubmit(form_id) {
	if (BrowserIsCompatible()) {
		sendContentPostVars(form_id);
		document.getElementById(form_id).action='javascript:void(this)';
		return false;
	}
	else {
		document.getElementById(form_id).submit();
	}
}


function getURLParameter(url) {
	var paras=new Array();
	var value;
	url=unescape(url);
	if (url.indexOf('?')==-1) {
		var para_string=url.substr(Math.max(Math.max(url.indexOf(".php")+5, url.indexOf(".php5")+6), url.indexOf(".php5")+6));
		var var_names= para_string.indexOf('node_id') != -1;
		var para_array=para_string.split("/");
		var arr_var_names=new Array('node_id','lang_id','scope','element_id','cmd','subcmd');
		for (var z=0; z<para_array.length; z++) {
			if (var_names) {
				var zz= Number(z)+1;
				paras[ para_array[z] ] = para_array[zz].indexOf(';') ? unescape(para_array[zz].substr(para_array[zz].indexOf(';')+1)) : unescape(para_array[zz]);
				z++;
			}
			else {
				paras[ arr_var_names[z] ] = para_array[z].indexOf(';') ? unescape(para_array[z].substr(para_array[z].indexOf(';')+1)) : unescape(para_array[z]);
			}
		}
	}
	else {
		var para_string=url.substr(url.indexOf("?")+1);
		var para_array=para_string.split("&");
		for (z in para_array) {
			value=unescape(para_array[z].substr(para_array[z].indexOf("=")+1));
			paras[para_array[z].substr(0,para_array[z].indexOf("="))] = value.indexOf(';') != -1 ? value.substr(value.indexOf(';')+1) : value;
		}
	}
	return paras;
}

// protected
function parseNode(node) {
	var out='';
	if (typeof node.name != 'undefined' && typeof node.value != 'undefined') {
		out = "&" + node.name + "=" + escape(node.value);
	}
	else {
		for (var z=0; z<node.length; z++) {
			if (typeof node[z].name != 'undefined' && typeof node[z].value != 'undefined') {
				out += "&" + node[z].name + "=" + escape(node[z].value);
			}
		}
	}
	return out;
}

// protected
function requestObject(){
	try{
		if(typeof ActiveXObject!="undefined"){
			return new ActiveXObject("Microsoft.XMLHTTP")
		}
		else if (window.XMLHttpRequest){
			var out=new XMLHttpRequest();
			out.overrideMimeType('text/xml');
			return out;
		}
	}
	catch(a){ }return null
}
// public
function BrowserIsCompatible() {
	if (!window.RegExp) return false;
	var AGENTS = ["opera","msie","safari","firefox","netscape","mozilla"];
	var agent = navigator.userAgent.toLowerCase();
	for (var i = 0; i < AGENTS.length; i++) {
		var agentStr = AGENTS[i];
		if (agent.indexOf(agentStr) != -1) {
			var versionExpr = new RegExp(agentStr + "[ \/]?([0-9]+(\.[0-9]+)?)");
			var version = 0;
			if (versionExpr.exec(agent) != null) {
				version = parseFloat(RegExp.$1);
			}
			if (agentStr == "opera") return version >= 9;

			if (agentStr == "safari") return version >= 125;
			if (agentStr == "msie") return (version >= 5.5 &&agent.indexOf("powerpc") == -1);
			if (agentStr == "netscape") return version > 7;
		}
	}
	return document.getElementById;
}
//////////////////// interne Links ///////////////////////

function linkTo( link_obj) {
	if (!link_obj && linkTo.arguments.length>1) {
		var link_url=linkTo.arguments[1];
	}
	else {
		var link_url=link_obj.href;
	}
	var IE = navigator.appName.indexOf("Microsoft") != -1;
	var mc = IE ? flash_menu : document.flash_menu;
	var paras=getURLParameter(link_url);
	if (typeof paras['ds_target_id'] != 'undefined') {
		paras['lang_id']+="&ds_target_id="+paras['ds_target_id'];
	}
	try {
		mc.SetVariable("remoteJump", paras['node_id']);
	}
	catch(e) { }
	
	link_obj.href='javascript:void(this);';
	if (IE) {
		_link_url=link_url;
		_link_obj=link_obj;
		var _tid=setTimeout( function(){_link_obj.href=_link_url;clearTimeout(_tid)}, 500);
	}
	else {
		var _tid=setTimeout( function(obj, url){obj.href=url;clearTimeout(_tid);}, 500, link_obj, link_url);
	}
	fillShowFrame(paras['node_id'], paras['lang_id']);
}


//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
function getURLParameter(url) {
	var paras=new Array();
	paras['lang_id'] = 1;
	var value;
	url=unescape(url);
	if (url.indexOf('?')==-1) {
		var para_string=url.substr(Math.max(Math.max(url.indexOf(".php")+5, url.indexOf(".php5")+6), url.indexOf(".php5")+6));
		var var_names= para_string.indexOf('node_id') != -1;
		var para_array=para_string.split("/");
		var arr_var_names=new Array('node_id','lang_id','scope','element_id','cmd','subcmd','ds_target_id');
		for (var z=0; z<para_array.length; z++) {
			if (var_names) {
				var zz= Number(z)+1;
				paras[ para_array[z] ] = para_array[zz].indexOf(';') ? unescape(para_array[zz].substr(para_array[zz].indexOf(';')+1)) : unescape(para_array[zz]);
				z++;
			}
			else {
				paras[ arr_var_names[z] ] = para_array[z].indexOf(';') ? unescape(para_array[z].substr(para_array[z].indexOf(';')+1)) : unescape(para_array[z]);
			}
		}
	}
	else {
		var para_string=url.substr(url.indexOf("?")+1);
		var para_array=para_string.split("&");
		for (z in para_array) {
			value=unescape(para_array[z].substr(para_array[z].indexOf("=")+1));
			paras[para_array[z].substr(0,para_array[z].indexOf("="))] = value.indexOf(';') != -1 ? value.substr(value.indexOf(';')+1) : value;
		}
	}
	return paras;
}

function delDS(base_url, ds_id, node_id, lang_id) {
	if (confirm("Soll dieser Eintrag wirklich gelöscht werden?")) {
		if (BrowserIsCompatible()) {
			var new_url=base_url+"?node_id="+node_id+"&lang_id="+lang_id+"&scope=front&cmd=del_ds&ds_target_id="+ds_id+"&show=show_content";
			http_request = requestObject();
			http_request.onreadystatechange = displayShowFrame;
			http_request.open('GET', new_url, true);
			http_request.send(null);
		}
		else {
			location.href=base_url+"?node_id="+node_id+"&lang_id="+lang_id+"&scope=front&cmd=del_ds&subcmd=no_xml_object&ds_target_id="+ds_id+"&show=false";
		}
	}
}

function checkBrowserAbillity() {
	if (!BrowserIsCompatible()) {
		var my_cookies, pair;
		var cookies = document.cookie.split(';');
		var len = cookies.length;
		for(var i=0;i < len;i++) {
			var cookie = cookies[i];
			while (cookie.charAt(0)==' ') cookie = cookie.substring(1,cookie.length);
			pair = cookie.split('=');
			my_cookies[pair[0]] = pair[1];
		}
		if (typeof my_cookies['ajax_warning'] == 'undefined') {
			alert("Dieser Browser hat nicht die notwendige JavaScript-Unterstütung, die für das Datensatzlisten-Element benötigt wird.\n Wir empfehlen den Einsatz des Mozilla-Firefox-Browsers (www.mozilla.com)");
			var date=new Date();
			date.setTime(date.getTime()+(600*1000));
			var domain = (document.domain.search(/[a-zA-Z]/) == -1)?document.domain:document.domain.substring(document.domain.indexOf('.') + 1,document.domain.length);
			document.cookie = 'ajax_warning=true; expires=' + date.toGMTString() + '; path=/; domain='+domain;
		}
	}
}

//window.onload=checkBrowserAbillity;

function debug(msg) {
	try {
		if (typeof w == "undefined") {
			w=window.open('','w','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=640,height=400');
		}
		w.document.write(msg+"<br>");
	}
	catch (e) {
		try{ document.getElementById('debug_container').innerHTML += msg+"<br>"; }
		catch(e) {
			var div=document.createElement('div');
			div.id='debug_container';
			div.innerHTML=msg+'<br />';
			document.body.appendChild(div);
		}
	}
}
function trace(o) {
	var out="";
	try {
		for (z in o) {
			try {
				if (o[z]!="" && o[z]!=null)
					if (z=="innerHTML" || z=="outerHTML") out+=z+" = [..HTML-Code..]; <br>\n";
					else out+=z+" = "+o[z]+"; <br>";
			}
			catch(e) {
				out+="<i>Fehler in "+z+": "+e+"</i><br />\n";
			}
		}
	}
	catch(ee) {
		out+="<b>Fatal Error in tracing: "+e+"</b>";
	}
	debug(out)
}


