It can be moved around, resized, minimized and maximized.
What for? Eh, I was bored.
Here is some more text so that<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>slayeroffice | fake window</title> <style type="text/css"> #windowContainer { position:absolute; top:10px; left:10px; background-color:#C0C0C0; border-style:solid; border-width:1px; border-top-color:#E0E0E0; border-left-color:#E0E0E0; width:300px; height:300px; } #windowContainerBorder1 { position:absolute; top:0px; left:0px; width:298px; height:298px; border-style:solid; border-width:1px; border-top-color:#FFFFFF; border-left-color:#FFFFFF; border-bottom-color:#808080; border-right-color:#808080; } #windowTitle { position:absolute; top:3px; left:3px; width:292px; height:18px; background-color:#000080; font-family:ms sans serif; font-size:8pt; padding-left:2px; font-weight:bold; color:#FFFFFF; cursor:default; vertical-align:middle; filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#000080', EndColorStr='#96C8FF'); } #controlBox { position:absolute; top:5px; left:243px; } body { background-color:#FFFFFF; } #contentArea { position:absolute; padding:5px; top:23px; left:3px; width:282px; height:250px; background-color:#FFFFFF; border-style:inset; border-width:2px; overflow:auto; } #resizeCapture { position:absolute; top:283px; left:285px; width:12px; height:16px; cursor:nw-resize; background-image:url("resizeArea.gif"); } </style> <script language="javascript" type="text/javascript"> var WIN_HEIGHT = 300; var WIN_WIDTH = 300; var WIN_TITLE = "slayeroffice | fake window"; var WIN_TOP = 10; var WIN_LEFT = 10; var y,x; var mDown = false; var mResize = false; var originalWidth = WIN_WIDTH; var originalHeight = WIN_HEIGHT; var originalTop = WIN_TOP; var originalLeft = WIN_LEFT; var isMaximized = false, isMinimized = false; function init() { if(document.all)document.body.style.height = "100%"; document.getElementById("windowContainer").style.height = WIN_HEIGHT; document.getElementById("windowContainer").style.width = WIN_WIDTH; document.getElementById("windowContainer").style.top = WIN_TOP; document.getElementById("windowContainer").style.left = WIN_LEFT; document.getElementById("windowTitle").innerHTML ="<img align=middle src=\"icon.gif\"> " + WIN_TITLE; // event handlers if(!document.all)document.captureEvents(Event.MOUSEMOVE | Event.MOUSEDOWN | Event.MOUSEUP); document.onmousedown=handleMouseDownEvents; document.onmousemove=handleMouseMoveEvents document.onmouseup=handleMouseUpEvents; document.getElementById("windowTitle").onmouseup = windowTitleMouseUp document.getElementById("windowTitle").onmousedown = windowTitleMouseDown; document.getElementById("resizeCapture").onmousedown = resizeCaptureOnMouseDown; } function resizeCaptureOnMouseDown(e) { mResize=true; captureClientXY(e); } function windowTitleMouseUp() { mDown = false; } function windowTitleMouseDown(e) { mDown=true; captureOffsetXY(e); } function initDrag(e) { if(!mDown)return; if(document.all) { x2 = window.event.clientX-(x+5); y2 = window.event.clientY-(y+5); } else { x2 = e.clientX - (x+5); y2 = e.clientY - (y+5); } document.getElementById("windowContainer").style.top = y2 + "px"; document.getElementById("windowContainer").style.left = x2 + "px"; originalLeft = x2; originalTop = y2; } function doResize(nX,nY) { nWidth = nX - x; nHeight = nY- y; cWidth = originalWidth; cHeight = originalHeight; cWidth+=nWidth; cHeight+=nHeight; if(cWidth<=75 || cHeight <= 75) return; document.getElementById("windowContainer").style.width = cWidth + "px"; document.getElementById("windowContainer").style.height = cHeight + "px"; //resize/move children document.getElementById("windowTitle").style.width = (cWidth -8) + "px"; document.getElementById("windowContainerBorder1").style.width = (cWidth - 2) + "px"; document.getElementById("windowContainerBorder1").style.height = (cHeight-2) + "px"; document.getElementById("contentArea").style.width = (cWidth-18) + "px"; document.getElementById("contentArea").style.height = (cHeight-50) + "px"; document.getElementById("resizeCapture").style.top = (cHeight-17) + "px"; document.getElementById("resizeCapture").style.left = (cWidth-13) + "px"; document.getElementById("controlBox").style.left = (cWidth - 57) + "px"; } function handleMouseUpEvents() { if(mDown) { mDown=false; return; } if(mResize) { mResize=false; document.body.style.cursor = "default"; originalWidth = parseInt(document.getElementById("windowContainer").style.width); originalHeight = parseInt(document.getElementById("windowContainer").style.height); } } function doClose() { document.getElementById("windowContainer").style.display = "none"; } function doMinimize() { if(!isMinimized) { markCoordinates(); document.getElementById("windowContainer").style.height = 24 + "px"; minTop = document.all?document.body.clientHeight:window.innerHeight; document.getElementById("windowContainer").style.top = (minTop-25) + "px"; document.getElementById("contentArea").style.display = "none"; document.getElementById("windowContainerBorder1").style.display = "none"; document.getElementById("resizeCapture").style.display = "none"; isMinimized = true; } else { document.getElementById("windowContainer").style.top = originalTop + "px"; document.getElementById("windowContainer").style.left = originalLeft + "px"; document.getElementById("windowContainer").style.height = originalHeight + "px"; document.getElementById("contentArea").style.display = "block"; document.getElementById("windowContainerBorder1").style.display = "block"; document.getElementById("resizeCapture").style.display = "block"; isMinimized = false; } } function doMaximize() { x=0;y=0; if(!isMaximized) { markCoordinates(); document.getElementById("windowContainer").style.top = 0; document.getElementById("windowContainer").style.left = 0; doResize(screen.width - originalWidth,screen.height - originalHeight); document.getElementById("contentArea").style.display = "block"; document.getElementById("windowContainerBorder1").style.display = "block"; document.getElementById("resizeCapture").style.display = "block"; isMaximized = true; } else { doResize(0,0); isMaximized = false; document.getElementById("windowContainer").style.top = originalTop + "px"; document.getElementById("windowContainer").style.left = originalLeft + "px"; } } function handleMouseDownEvents(e) { if(mResize) { document.body.style.cursor = "nw-resize"; } } function markCoordinates() { originalLeft = parseInt(document.getElementById("windowContainer").style.left); originalTop = parseInt(document.getElementById("windowContainer").style.top); } function handleMouseMoveEvents(e) { if(mDown) { initDrag(e); return; } if(mResize) { if(document.all) { doResize(window.event.clientX,window.event.clientY); } else { doResize(e.clientX,e.clientY); } } } function captureOffsetXY(e) { if(document.all) { x=window.event.offsetX; y=window.event.offsetY } else { x = e.pageX - e.clientX; y = e.pageY - e.clientY; } } function captureClientXY(e) { if(document.all) { x = window.event.clientX; y = window.event.clientY; } else { x = e.clientX; y = e.clientY; } } </script> <map name="ctrlBox"> <area alt="Minimize" title="Minimize" coords="1,0,16,15" href="javascript:doMinimize();"> <area alt="Maximize" title="Maximize" coords="16,0,34,16" href="javascript:doMaximize();"> <area alt="Close" title="Close" coords="33,0,53,16" href="javascript:doClose();""> </map> </head> <body onload="init();"> <div id="windowContainer" unselectable=on> <div id="windowContainerBorder1"></div> <div onSelect="return false" id="windowTitle"></div> <div id="controlBox"><img src="control_box.gif" width="52" height="15" border="0" usemap="#ctrlBox" /></div> <div id="contentArea"> <h1>Fake Window</h1> This window is done completely with CSS/Javascript and it behaves more or less like a normal window. <p> It can be moved around, resized, minimized and maximized. </p> <p> What for? Eh, I was bored. </p> Here is some more text so that<br /> the scroll bar for the content div will appear...blah blah blah. </div> <div id="resizeCapture"></div> </div> </body> </html>