<!--
        
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function openWin(sPage) {
  var RndZahl = Math.random();
  RndZahl = parseInt(100000 * RndZahl);
  winRef = window.open(sPage,"Details_" + RndZahl,'toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=600');
  winRef.focus();
}
function openWinNamed(sPage, sWindowName) {
  var RndZahl = Math.random();
  RndZahl = parseInt(100000 * RndZahl);
  winRef = window.open(sPage,sWindowName + "_" + RndZahl,'toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=600');
  winRef.focus();
}
function openWinNamedSized(sPage, sWindowName, nWidth, nHeight) {
  var RndZahl = Math.random();
  RndZahl = parseInt(100000 * RndZahl);
  var sURL = "'toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=" + nWidth + ",height=" + nHeight + "'";
  winRef = window.open(sPage,sWindowName + "_" + RndZahl,sURL);
  winRef.focus();
}
function openWinShared(sPage, sWindowName, nWidth, nHeight) {
// Fenster für openings im gleichen Fenster, da Name gleich
  var sURL = "'toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=" + nWidth + ",height=" + nHeight + "'";
  winRef = window.open(sPage,sWindowName,sURL);
  winRef.focus();
}
function openWin460(sPage) {
  var RndZahl = Math.random();
  RndZahl = parseInt(100000 * RndZahl);
  winRef = window.open(sPage,"Details_" + RndZahl,'toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=460,height=600');
  winRef.focus();
}
function openWinHelp(sPage) {
  winRef = window.open(sPage,'Help','toolbar=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=670,height=560');
  winRef.focus();
}
//---------------------------------------------------
// Generelles Popup-Fenster mit Uebergabe aller Parameter
//---------------------------------------------------
function openWinGeneric(sPage,sWindowName,sFeatures) { //v2.0
  var RndZahl = Math.random();
  RndZahl = parseInt(100000 * RndZahl);
  winRef = window.open(sPage,sWindowName + "_" + RndZahl,sFeatures);  
  winRef.focus();
}

// Div ein/ausblenden "mehr"-Box
var divState = [];
function ToggleMoreBox(nID) {
	var divEle = document.getElementById("morebox_" + nID);
	var linkTop = document.getElementById("morelinktop_" + nID);
	var linkBottom = document.getElementById("morelinkbottom_" + nID);
	var divBottom = document.getElementById("divmorelinkbottom_" + nID);
	if (divState["morestate_" + nID]) {
		linkTop.innerHTML = sMore;
		linkBottom.innerHTML = sMore;
		Effect.BlindUp(divEle, { duration: 0.7 });
		divState["morestate_" + nID] = false;
		// Ausblenden unterer Link
		divBottom.style.display = 'none';
	} else {
		linkTop.innerHTML = sLess;
		linkBottom.innerHTML = sLess;
		Effect.BlindDown(divEle, { duration: 0.7 });
		divState["morestate_" + nID] = true;
		// Einblenden unterer Link
		divBottom.style.display = 'block';
	}
	setTimeout('SetNodeHeight("divMiddle")',800);
}

//---------------------------------------------------
// Hauptfenster aktualisieren
//---------------------------------------------------
function Refresh(sMenuID,sAction) {
  if (sAction == "save") {
	  if (window.opener && !window.opener.closed)
		  window.opener.document.location = "/handler.asp?ID=" + sMenuID;
		  //this.window.close();
		  self.focus()
	}
  }
  
  //wird im admin bereich benötigt um auch im toggle mode korrekt zu funktionieren
  function RefreshAdminParent(sParentAdminUrl,sAction) {
    if (sAction == "save") {
	  if (window.opener && !window.opener.closed)
		  window.opener.document.location = sParentAdminUrl;
		  //this.window.close();
		  self.focus()
	}
  }

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);



//--------------------------------------------------------
// flacker probleme mit background images verhindern (ie6)
//--------------------------------------------------------
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}



//---------------------------------------------------
// Event-Funktionen
//---------------------------------------------------

function addEvent(elm, evType, fn, useCapture) {
  // cross-browser event handling for IE5+, NS6 and Mozilla
  // By Scott Andrew
  if (elm.addEventListener) {
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent) {
    var r = elm.attachEvent('on' + evType, fn);
    EventCache.add(elm, evType, fn);
    return r;
  } else {
	var elmOn = elm['on' + evType];
    if (typeof elm['on' + evType] != 'function') {
      elm['on' + evType] = fn;
    } else {
      elm['on' + evType] = function() {if (elmOn) {elmOn();}fn();}
    }
  }
  
}


/*	EventCache Version 1.0
	Copyright 2005 Mark Wubben

	Provides a way for automagically removing events from nodes and thus preventing memory leakage.
	See <http://novemberborn.net/javascript/event-cache> for more information.
	
	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

/*	Implement array.push for browsers which don't support it natively.
	Please remove this if it's already in other code */
if(Array.prototype.push == null){
	Array.prototype.push = function(){
		for(var i = 0; i < arguments.length; i++){
			this[this.length] = arguments[i];
		};
		return this.length;
	};
};

/*	Event Cache uses an anonymous function to create a hidden scope chain.
	This is to prevent scoping issues. */
var EventCache = function(){
	var listEvents = [];
	
	return {
		listEvents : listEvents,
	
		add : function(node, sEventName, fHandler, bCapture){
			listEvents.push(arguments);
		},
	
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				
				/* From this point on we need the event names to be prefixed with 'on" */
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				
				item[0][item[1]] = null;
			};
		}
	};
}();

addEvent(window, 'unload', EventCache.flush, false);


//---------------------------------------------------
// Korrektur-Funktionen für Node-Grösse
//---------------------------------------------------

// Setzt die richtige Höhe eines Elements aufgrund seiner Inhalte
var sTemp = '';
function SetNodeHeight(nodeId)
{
	var node = document.getElementById(nodeId);
	if (node)
	{
		var bottomY = GetNodeAbsBottomY(node, 0);
		node.style.height = (bottomY - GetNodeAbsTopY(node)) + "px";
	}
}

// Liefert die absolute y-Position der Bottom-Seite eines Elements
function GetNodeAbsBottomY(node, y)
{
	for(var i = 0; i < node.childNodes.length; i++)
	{
		var ele = node.childNodes[i];
		if(ele.nodeType != 1) continue

		var yNew = GetNodeAbsTopY(ele) + ele.offsetHeight;

		if(y < yNew) y = yNew;
		
		y = GetNodeAbsBottomY(ele, y);
	}
	return y;
}

// Liefert die absolute y-Position der Top-Seite eines Elements
function GetNodeAbsTopY(node)
{
	if(!(typeof node != undefined && node.offsetTop != undefined && node.tagName.toLowerCase() != "param" && node.tagName.toLowerCase() != "option")) return 0;
	var posY = 0;
	if(node.offsetParent != undefined) {		
		posY = node.offsetTop;
		while(node = node.offsetParent) {
			posY += node.offsetTop;
		}
	}
	return posY;
}

// Liefert die absolute y-Position der Top-Seite eines Elements
function GetNodeAbsTopX(node)
{
	if(!(typeof node != undefined && node.offsetLeft != undefined && node.tagName.toLowerCase() != "param")) return 0;
	var posX = 0;
	if(node.offsetParent != undefined) {		
		posX = node.offsetLeft;
		while(node = node.offsetParent) {
			posX += node.offsetLeft;
		}
	}
	return posX;
}

// Entkrypet die Email Adresse wieder zu lesbarem Text
function UncryptAddr(s) {
	var n=0;
	var r="";
	var shift = 3;
	for(var i=0;i<s.length;i++) { 
		n=s.charCodeAt(i); 
		if (n>=8364) {n = 128;}
		r += String.fromCharCode(n-(shift)); 
	}
	return r;
}
function link_UncryptAddr(s)	{
	location.href=UncryptAddr(s);
}

//---------------------------------------------------------
// Überprüft, ob eine Dateiendung vorhanden ist
//---------------------------------------------------------
function checkFileExtension(data){
  if (data == "") return true;
  data = data.replace(/^\s|\s$/g, "");
		
  if (/\.\w+$/.test(data)) {
    if (data.match(/([^\/\\]+)\.(\w+)$/)) {
      return true;
    }
  }
  return false;
}

// Objekte für dynamisches RSS nachladen
var OnloadRss = new Object();

function RegisterOnloadRss(sLink,nConID,bShowDate,nFormat,sTarget) {
	OnloadRss[nConID + '_Link'] = sLink;
	OnloadRss[nConID + '_ShowDate'] = bShowDate;
	OnloadRss[nConID + '_Format'] = nFormat;
	OnloadRss[nConID + '_Target'] = sTarget;
	
	// Registrieren des Events
	addEvent(window, "load", function() {AddOnloadRss(nConID);}, false);
}

// Lädt das dynamische RSS nach
function AddOnloadRss(nConID) {
	var link = OnloadRss[nConID + '_Link'];
	// Ajax Request auf den Link abfeuern
	var req = new Ajax.Request(
		link, {
		method: 'get',
		asynchronous: false
	});
	// XML zu Content verarbeiten
	var html = RssXmlToHtml(nConID,req.transport,3);
	$('OnloadRSS_' + nConID).innerHTML = html;
}

// RSS XML zu HTML Content verarbeiten
function RssXmlToHtml(nConID,domxml,entries) {
	var title, date, link, html = '';
	var xml = domxml.responseXML;
	var showDate = OnloadRss[nConID + '_ShowDate'];
	var format = OnloadRss[nConID + '_Format'];
	var target = OnloadRss[nConID + '_Target'];
	var items = xml.getElementsByTagName('item');
	// Prüfen, ob weniger Entries als gewünscht
	if (entries > items.length) entries = items.length;
	// Titel und Datum holen
	for (i = 0;i < entries;i++) {
		title = items[i].getElementsByTagName('title')[0].firstChild.data;
		date = items[i].getElementsByTagName('pubDate')[0].firstChild.data;
		link = items[i].getElementsByTagName('guid')[0].firstChild.data;
		// HTML Generieren
		html += '<p class="tRssInn">' +
		'<span>' + GetRssDate(date,format,showDate) + '</span><br> ' +
		'<a target="'+target+'" href="' + link + '">' + title + '</a></p>';
	}
	return(html);
}

// RSS Datum konvertieren von RFC
function GetRssDate(date,format,show) {
	sDate = ''
	if (show && format == 2) {
		sDate = new Ajax.Request(
			'/page/content/getRssDate.asp?date=' + date, {
			method: 'get',
			asynchronous: false
		}).transport.responseText;
	}
	return(sDate);
}

//-->
