function ED_openWindow(url, name, desiredWidth, desiredHeight, features, placement) // version 2.0
{
	//new window can't be larger than available dimensions
	if (desiredWidth >= screen.availWidth)
		desiredWidth = screen.availWidth;

	if (desiredHeight >= screen.availHeight)
		desiredHeight = screen.availHeight;
		
	if (features == '')
		features += "status=0";
		
	if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
		msie = true;
	else
		msie = false;
		
	var msieFudgeFactor = 29;
		
	// TOP LEFT CORNER
	if (placement == 'tl')	// put in upper left corner
	{
		if (msie)
			features += ",width=" + desiredWidth + ",height=" + (desiredHeight - msieFudgeFactor);		
		else
			features += ",width=" + desiredWidth + ",height=" + desiredHeight;
		
		features += ",screenX=0,screenY=0,left=0,top=0";
	}
	
	//VERTICAL AND HORIZONTAL CENTER
	if (placement == 'c' && desiredWidth >= 1 && desiredHeight >= 1)
	{
		if (msie)
		{			
			var windowCenterX = Math.floor(screen.width / 2);
			var windowCenterY = Math.floor((screen.height - msieFudgeFactor) / 2);
			
			var xCoord = windowCenterX - Math.floor(desiredWidth/2);
			var yCoord = windowCenterY - Math.floor((desiredHeight / 2));
			
			//if (desiredWidth + msieFudgeFactor >= screen.availWidth)
				//desiredWidth -= msieFudgeFactor;			
			
			if (desiredHeight + msieFudgeFactor >= screen.availHeight)
				desiredHeight -= msieFudgeFactor;
		}
		else
		{
			var windowCenterX = Math.floor(screen.availWidth/2);
			var windowCenterY = Math.floor(screen.availHeight/2);
			
			var xCoord = windowCenterX - Math.floor(desiredWidth/2);
			var yCoord = windowCenterY - Math.floor(desiredHeight/2);
		}

		
		if (desiredWidth == screen.availWidth)
			xCoord = 0;
			
		if (desiredHeight == screen.availHeight)
			yCoord = 0;
		
		features += ",width=" + desiredWidth + ",height=" + desiredHeight + ",screenX=" + xCoord + ",screenY=" + yCoord
					+ ",left=" + xCoord + ",top=" + yCoord;//nn=screenX, screenY: IE=left,top Browser will ignore unknown attributes
	}
		
	if (features.substring(0,1) == ",")
		features = features.substring(1, features.length);
		
	// new window will read these value and adjust itself accordingly
	// used when window is used for multiple pages of various widths/heights: many popup behaviors targetting same window
	newWindowWidth = desiredWidth; 
	newWindowHeight = desiredHeight;
	newWindowX = xCoord;
	newWindowY = yCoord;

	window.open(url,name,features);
}	
