Есть кое-какие наработки:
<html>
<body>
<script type="text/javascript">
var T, L, A = [], C = false;
document.onmousedown = function (event) {
T = event.pageY;
L = event.pageX;
document.onmousemove = function (evt) {
var rect = document.createElement("DIV"),
X = evt.pageX, Y = evt.pageY;
A[A.length] = rect;
rect.style.position = "absolute";
rect.style.top = Y > T ? T : Y;
rect.style.left = X > L ? L : X;
if (C)
rect.style.border = "1px solid #555555";
else
rect.style.backgroundColor = "#555555";
rect.style.height = Math.abs(Y - T);
rect.style.width = Math.abs(X - L);
if (A[A.length - 2]) document.body.removeChild(A[A.length - 2]);
document.body.appendChild(rect);
};
return false;
};
document.onmouseup = function () {
A = [];
document.onmousemove = new Function;
};
</script>
</body>
</html>
Дальше сами или за доплату.