function DebugWindow(_ref) {
	this.ref = _ref;

	this.url = '';
	this.obj = $('<div>');
	this.obj.addClass('window');

	var left = ($(window).width() - 960) / 2;
	var top = ($(window).height() - 600) / 2;

	this.obj.css({'left': (left > 0 ? left : 0) + 'px', 'top': (top > 0 ? top : 0) + 'px'});

	var content = $('<div>').appendTo(this.obj);
	content.addClass('content');

	var lista = $('<div>').appendTo(this.obj);
	lista.text(' ');
	lista.addClass('toolbar');

	var closebutton = $('<div>').appendTo(lista);
	closebutton.css({'float': 'right', 'width': '10px', 'height': '10px'});
	closebutton.text('X');
	closebutton.bind('click', {ref: this}, function(event) {
		event.data.ref.close();
	});

	var statusbar = $('<div>').appendTo(this.obj);
	statusbar.addClass('statusbar');

	var resizebar = $('<div>').appendTo(statusbar);

	content.html($(_ref).html());
	$(_ref).remove();

	$(document.body).append(this.obj);



	this.setFocus = function () {
		this.obj.unbind('mousedown');
		lista.css({'background-color': '#00f'});

		lista.bind('mousedown', {ref: this}, function(event) {
			event.data.ref.obj.css({opacity: 0.8});
			lista.css({'cursor': 'move'});

			$(document).bind('mousemove', {ref: event.data.ref, x: (event.pageX - event.data.ref.obj.position().left), y: (event.pageY - event.data.ref.obj.position().top)}, function(event) {
				var x = event.pageX - event.data.x;
				var y = event.pageY - event.data.y;

				if (x < 0)
					x = 0;

				if (y < 0)
					y = 0;

				event.data.ref.obj.css({'left': x + 'px', 'top': y + 'px'});

			});

			$(document).bind('mouseup', {ref: event.data.ref}, function() {
				event.data.ref.obj.css({opacity: 1});
				lista.css({'cursor': 'pointer'});
				$(document).unbind('mousemove');
			});

			event.preventDefault();
		});

		resizebar.bind('mousedown', {ref: this}, function(event) {
			var pwidth = event.data.ref.obj.width();
			var pheight = event.data.ref.obj.height();

			event.data.ref.obj.css({opacity: 0.8});

			$(document).bind('mousemove', {ref: event.data.ref, x: event.pageX, y: event.pageY}, function(event) {
				var cwidth = pwidth + event.pageX - event.data.x;
				var cheight = pheight + event.pageY - event.data.y;

				if (cwidth < 200)
					cwidth = 200;

				if (cheight < 60)
					cheight = 60;

				event.data.ref.obj.css({'width': cwidth + 'px', 'height': cheight + 'px'});

			});

			$(document).bind('mouseup', {ref: event.data.ref}, function() {
				event.data.ref.obj.css({opacity: 1});
				$(document).unbind('mousemove');
			});

			event.preventDefault();
		});
	}

	this.unsetFocus = function () {
		lista.css({'background-color': '#dedede'});

		this.obj.bind('mousedown', {ref: this.ref, name: this.name}, function(event) {
			event.data.ref.setFocus(event.data.name);
		});
	}

	this.close = function () {
		this.obj.remove();
	}

	this.setFocus();
}
