
wopen = function ( url, width, height, option ) {
	if ( url ) {
		var innerWidth = ",width=600";
		if ( width ) innerWidth = ",width=" + width;

		var innerHeight = ",height=400px";
		if ( width ) innerHeight = ",height=" + height;

		var innerOption = "status=no,toolbar=no,scrollbars=yes,location=yes,menu=yes";
		if ( option && option != "" ) innerOption = option;

		innerOption += innerWidth + innerHeight;

		var now = new Date();
		var wname = "w" + now.getTime();	
		window.open ( url, wname, innerOption );
	}
}


setCookie = function ( name, value, expires, path, domain, secure ) {

	var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");

	document.cookie = curCookie;
}


setExtCookie = function ( src ) {

	var iframes	= document.getElementsByName ('extCookieFrame');
	var ifrm	= null;
	
	if ( iframes.length == 0 ) {
		ifrm = document.createElement('iframe');
		ifrm.src		= src;
		ifrm.style.left		= '0px';
		ifrm.style.top		= '-200px';
		ifrm.style.width	= '10px';
		ifrm.style.height	= '10px';
		ifrm.name		= 'extCookieFrame';
		document.body.appendChild (ifrm);
	}
	else {
		ifrm			= iframes[0];
		ifrm.src		= src;
	}
	
}


getCookie = function ( name ) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);

	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) {
			return 0;
		}
	}
	else {
		begin += 2;
	}

	var end = document.cookie.indexOf(";", begin);
	if (end == -1) {
		end = dc.length;
	}

	return unescape(dc.substring(begin + prefix.length, end));
}


getEPOQCookie = function ( CookieName ) {
	var SessionID   = "";

	if ( !CookieName || CookieName == "undefined" ) CookieName = "DePauli_SID";

	SessionID = getCookie ( CookieName );
	if ( SessionID == 0 || SessionID == "" ) {
		var dat = new Date ();

		SessionID = dat.getTime().toString(16) + (Math.random ()*1000000000000000000).toString(16);
		setCookie ( CookieName, SessionID, null, "/" );
	}
	return ( SessionID );
}



getXCoordinates = function ( e ) {
	var xcoord = 0;
	if( !e ) {
		if( window.event ) {
			//Internet Explorer
			e = window.event;
		} else {
			//total failure, we have no way of referencing the event
			return 0;
		}
	}
	
	if( typeof( e.pageX ) == 'number' ) {
		//most browsers
		xcoord = e.pageX;
	} else if( typeof( e.clientX ) == 'number' ) {
		//Internet Explorer and older browsers
		//other browsers provide this, but follow the pageX/Y branch
		xcoord = e.clientX;
		var badOldBrowser =	( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) ||
					( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) ||
					( navigator.vendor == 'KDE' );
		if( !badOldBrowser ) {
			if( document.body && document.body.scrollLeft ) {
				//IE 4, 5 & 6 (in non-standards compliant mode)
				xcoord += document.body.scrollLeft;
			} else if( document.documentElement && document.documentElement.scrollLeft ) {
				//IE 6 (in standards compliant mode)
				xcoord += document.documentElement.scrollLeft;
			}
		}
	} else {
		//total failure, we have no way of obtaining the mouse coordinates
		return 0;
	}

	return xcoord;
}


getYCoordinates = function ( e ) {
	var ycoord = 0;

	if( !e ) {
		if( window.event ) {
			//Internet Explorer
			e = window.event;
		} else {
			//total failure, we have no way of referencing the event
			return 0;
		}
	}
	
	if( typeof( e.pageX ) == 'number' ) {
		//most browsers
		ycoord = e.pageX;
	} else if( typeof( e.clientX ) == 'number' ) {
		//Internet Explorer and older browsers
		//other browsers provide this, but follow the pageX/Y branch
		ycoord = e.clientY;
		var badOldBrowser =	( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) ||
					( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) ||
					( navigator.vendor == 'KDE' );
		if( !badOldBrowser ) {
			if( document.body && document.body.scrollTop ) {
				//IE 4, 5 & 6 (in non-standards compliant mode)
				ycoord += document.body.scrollTop;
			} else if( document.documentElement && document.documentElement.scrollTop ) {
				//IE 6 (in standards compliant mode)
				ycoord += document.documentElement.scrollTop;
			}
		}
	} else {
		//total failure, we have no way of obtaining the mouse coordinates
		return 0;
	}

	return ycoord;
}


getOffsetLeft = function ( element ) {
	
	var left = element.offsetLeft;
	if ( element.offsetParent != null ) left += getOffsetLeft ( element.offsetParent );

	return ( left );
}


getOffsetTop = function ( element ) {
	
	var top = element.offsetTop;
	if ( element.offsetParent != null ) top += getOffsetTop ( element.offsetParent );

	return ( top );
}

addNewEventListener = function ( el, event, fkt, phase ) {
	// Lösche einen eventuell vorhandenen Eventlistener, damit nicht zwei gleiche Events hintereinander auftreten.
	removeNewEventListener ( el, event, fkt, phase );
	
	if (el.addEventListener) { // DOM-konform
		el.addEventListener ( event, fkt, phase );	// DOM: installiere den neuen Eventlistener
	}
	else {
		if ( el.attachEvent ) { // IE
			el.attachEvent ( "on"+event, fkt );	// IE: installiere den neuen Eventlistener
		}
	}
}

removeNewEventListener = function ( el, event, fkt, phase ) {
	if (el.removeEventListener) { // DOM-konform
		el.removeEventListener ( event, fkt, phase );	// DOM: Lösche einen eventuell vorhandenen Eventlistener
	}
	else {
		if ( el.detachEvent ) { // IE
			el.detachEvent ( "on"+event, fkt );	// IE: Lösche einen eventuell vorhandenen Eventlistener
		}
	}
}

hasItem = function ( arr, wert ) {
	for ( i=0; i<arr.length; i++ ) {
		if ( arr[i] == wert ) return ( i );
	}
	return ( -1 );
}

removeItem = function ( arr, pos ) {
	for ( i=pos; i<(arr.length-1); i++ ) arr[i] = arr[i+1];
	arr.pop();
	return ( arr );
}

getQueryStringValue = function ( name ) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null ) {
		return "";
	}
	else {
		return results[1];
	}
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
