
	function openCenteredWindow(url, name, width, height, status, scrollbars, moreProperties, openerName) {
		var x, y = 0;
		if (screen) {
		  x = (screen.availWidth - width) / 2;
		   y = (screen.availHeight - height) / 2;
	   }
	   
		if (!status) status = '';
		if (!openerName) openerName = '';
		var reference = openPositionedWindow(url, name, width, height, x, y, status, scrollbars, moreProperties, openerName);

		return reference;
	}	

	// Open a window at a given position on the screen
	function openPositionedWindow(url, name, width, height, x, y, status, scrollbars, moreProperties, openerName) {
		
		// ie 4.5 and 5.0 mac - windows are 2 pixels too short; if a statusbar is used, the window will be an additional 15 pixels short
		var agent = navigator.userAgent.toLowerCase();
		if (agent.indexOf("mac") != -1 && agent.indexOf("msie") != -1 && (agent.indexOf("msie 4") != -1 || agent.indexOf("msie 5.0") != -1) ) {
			height += (status) ? 17 : 2;
		}
	
		// Adjust width if scrollbars are used (pc places scrollbars inside the content area; mac outside) 
		width += (scrollbars != '' && scrollbars != null && agent.indexOf("mac") == -1) ? 16 : 0;
	
		var properties = 'width=' + width + ',height=' + height + ',screenX=' + x + ',screenY=' + y + ',left=' + x + ',top=' + y + ((status) ? ',status' : '') + ',scrollbars' + ((scrollbars) ? '' : '=no') + ((moreProperties) ? ',' + moreProperties : '');
		var reference = openWindow(url, name, properties, openerName);
		
		// resize window in ie if we can resize in ns; very messy
		// commented out because openPositionedWindow() doesn't set the resizable attribute
		// left in for reference
		/*if (resizable && agent.indexOf("msie") != -1) {
			if (agent.indexOf("mac") != -1) {
				height += (status) ? 15 : 2;
				if (parseFloat(navigator.appVersion) > 5) width -= 11;
			}
			else {
				height += (status) ? 49 : 31;
				width += 13;
			}
			setTimeout('if (reference != null && !reference.closed) ????????
?A?º?reference.resizeTo(' + width + ',' + height + ');', 150);
		}*/
	
		return reference;
	}
	
	// Core utility function that actually creates the window and gives focus to it
	function openWindow(url, name, properties, openerName) {

		if ( openerName == "" ){
			openerName = window.document.title;
		}
		// ie4.x pc can't give focus to windows containing documents from a different domain
		// in this case, initially load a local interstisial page to allow focussing before loading final url
		/*
		
		funktioniert im ie7 nicht. also: deaktiviert und immer standartmässig oeffnen
		var agent = navigator.userAgent.toLowerCase();
		
		if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) == 4 && agent.indexOf("msie 5") == -1 && agent.indexOf("msie5") == -1 && agent.indexOf("win") != -1 && url.indexOf('http://') == 0) {
			var winReference = window.open('about:blank', name, properties);
			if (winReference){
				alert(winReference);
				setTimeout('if (winReference && !winReference.closed) winReference.location.url = "' + url + '"', 300);
			}else{
				winReference = window.open(url, name, properties);
			}			 
			
		}else{
			// wenn hier ein fehler angezeigt wird, dann liegt es am Aufruf und nicht direkt am Browser
			// sondern am Aufurf
			// Fehler1: Keine Abstände in den Namen (2. Argument)	
			var winReference = window.open(url, name, properties);
		}
		*/
	 	var winReference = window.open(url, name, properties);
	 	
		// ie doesn't like giving focus immediately (to new window in 4.5 on mac; to existing ones in 5 on pc)
		//setTimeout('if (winReference && !winReference.closed) winReference.focus()', 200);

		if (openerName){
			self.name = openerName;
		}
		// wenn winReference nicht zuruekgegeben wird dann funktioniert 'send_link' im Downloadbereich nicht mehr!		
		return winReference;
	}	

	// Open a window at a given position on the screen
	function openAlignedWindow(url, name, width, height, align, y, status, scrollbars,resizable, moreProperties, openerName) {
		
		// ie 4.5 and 5.0 mac - windows are 2 pixels too short; if a statusbar is used, the window will be an additional 15 pixels short
		var agent = navigator.userAgent.toLowerCase();
		if (agent.indexOf("mac") != -1 && agent.indexOf("msie") != -1 && (agent.indexOf("msie 4") != -1 || agent.indexOf("msie 5.0") != -1) ) {
			height += (status) ? 17 : 2;
		}
	
		// Adjust width if scrollbars are used (pc places scrollbars inside the content area; mac outside) 
		width += (scrollbars != '' && scrollbars != null && agent.indexOf("mac") == -1) ? 16 : 0;
		
		if ( align == 'left' ){
			var x	=	0;
		}
		if ( align == 'right' ){
			var x	=	window.screen.width - width;
		}
	
		var properties = 'width=' + width + ',height=' + height + ',screenX=' + x + ',screenY=' + y + ',left=' + x + ',top=' + y + ((status) ? ',status' : '') + ',scrollbars' + ((scrollbars) ? '' : '=no') + ',resizable' + ((resizable) ? '' : '=no') +((moreProperties) ? ',' + moreProperties : '');

		var reference = openWindow(url, name, properties, openerName);
	
		return reference;
	}	
	
	// Check if a window is a popup
	function isWindowPopup(win) {
		return ((win.opener) ? true : false);
	}