	/**
	 * open a new window with given options
	 * 
	 * @author R.J.T. de Vries <rdevries@thirdwave.nl>
	 * @param		string		url 			url to load in new window
	 * @param		integer		w 				width of new window
	 * @param		integer		h 				height of new window
	 * @param		string		winname 	name of new window
	 * @return	void
	 */
	function newwin(url, w, h, winname) {
		
		if ( !winname ) {	var d = new Date; winname = 'newwin_' + d.getTime(); }
		
		xpos = (screen.availWidth - w) / 2;
		
		ypos = (screen.availHeight - h) / 2;
		
		winprops = "toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width="+w+",height="+h+",left="+xpos+",top="+ypos;
		
		var win = window.open(url, winname, winprops);
		
		if ( !is_object(win) ) {
		
			var str = "Het nieuwe venster kon niet worden geopend.\n\n";
			
			str += "Waarschijnlijk is het nieuwe venster geblokkeerd door een\n";
			
			str += "'pop-up blocker'.\n\n";
			
			str += "Stel uw 'pop-up blocker' zo in, dat deze het openen van\n";
			
			str += "nieuwe vensters voor deze pagina toestaat.";
		
			alert(str);
		
		} else {
		
			win.focus();
		
		}
		
	} // newwin()
	
 	/**
	 * A PHP-style method to see if given object is actually an object, and not
	 * an undefined variable.
	 * 
	 * @author R.J.T. de Vries <rdevries@thirdwave.nl>
	 * @param 	mixed		o		potential object to check
	 * @return 	boolean			true if object, false if not
	 */
	function is_object(o) {

		if ( typeof(o) != 'undefined' && o != 'null' && o != null ) return true;
		
		return false;

	} // is_object()

	/**
	 * Ask confirmation to delete.
	 * 
	 * @author R.J.T. de Vries <rdevries@thirdwave.nl>
	 * @param 	string		url 	???
	 * @return 	boolean					true on confirmation, false otherwise
	 */
	function confirmIt(url) {

		if ( confirm("Weet u zeker dat u wilt verwijderen?") ) return true;

		return false;
		
	} // confirmIt()