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 abort_page_load = false;
var anker='';
// public

function fillShowFrame(node_id, lang_id) {
	if (!BrowserIsCompatible()) {
		return;
	}
	abort_page_load=true;
	/*
	var data=getURLParameter(url);
	var z;
	var new_url= url.substr(0, Math.max(url.indexOf(".php")+5, url.indexOf(".php5")+6));
	for (z in data) {
		new_url+="&"+z+"="+data[z];
	}
	new_url+="&show=show_frame";
	*/
	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;
	}
	abort_page_load=true;
	
	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 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 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) {
	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);
	mc.SetVariable("remoteJump", paras['node_id']);
	abort_page_load=true;
	link_obj.href='javascript:void(this);';
	fillShowFrame(paras['node_id'], paras['lang_id']);
}


//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
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;
}
// Event
function abortUnload(e) {
	var url=location.href;
	//alert("abort, state="+abort_page_load);
	if (abort_page_load) {
		location.href = url;// + anker;
		abort_page_load = 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.onunload=abortUnload;
//window.onload=checkBrowserAbillity;

function debug(msg) {
	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>");
}
function trace(o) {
	var out="";
	for (z in o) {
		if (o[z]!="" && o[z]!=null)
			if (z=="innerHTML" || z=="outerHTML") out+=z+" = [..HTML-Code..]; <br>\n";
			else out+=z+" = "+o[z]+"; <br>";
	}
	debug(out)
}
