Resize = {
	addEvent: function(t,ev,fn)
	{
		if (typeof document.addEventListener != 'undefined')
		{
			t.addEventListener(ev,fn,false);
		}
		else
		{
			t.attachEvent('on' + ev, fn);
		}
	},
	removeEvent: function(t,ev,fn)
	{
		if (typeof document.removeEventListener != 'undefined')
		{
			t.removeEventListener(ev,fn,false);
		}
		else
		{
			t.detachEvent('on' + ev, fn);
		}
	},
	init: function(nid, worker)
	{
		Resize.worker = document.getElementById(worker);
		Resize.worker.style.cursor = 's-resize';
	
		Resize.targetElement = document.getElementById(nid);
		Resize.addEvent(document, 'mousedown', Resize.initResize);
	},
	initResize: function(event)
	{
		if (typeof event == 'undefined')
		{
			event = window.event;
		}

			Resize.targetElement.startHeight = Resize.targetElement.clientHeight;
			Resize.targetElement.startY = event.clientY;
			Resize.addEvent(document, 'mousemove', Resize.resize);
			Resize.addEvent(document, 'mouseup', Resize.stopResize);
		
			try
			{
				event.preventDefault();
			}
			catch(e)
			{
			}
	},
	resize: function(event)
	{
		if (typeof event == 'undefined')
		{
			event = window.event;
		}

		Resize.targetElement.style.height = event.clientY - Resize.targetElement.startY + Resize.targetElement.startHeight + 'px';
	},
	stopResize: function(event)
	{
		Resize.removeEvent(document, 'mousedown', Resize.initResize);
		Resize.removeEvent(document, 'mousemove', Resize.resize);
	
		Resize.worker.style.cursor = 'text';
	}
};