
text = {
	"draw" : function(text, context) {
		if (text.magnets && text.data.complete) {
			var p0 = text.magnets[0];
			var p1 = text.magnets[1];
			var p2 = text.magnets[2];
			var p3 = text.magnets[3];
			var p4 = text.magnets[4];
			var x = p1.x;
			var y = p1.y;
			var width = p4.x - p1.x;
			var height = p4.y - p1.y;
			context.drawImage(text.data, x, y);
		}
	},

	"containsPoint" : image.containsPoint,
	"moveMagnet" : image.moveMagnet,
	"drawSelected" : rectangle.drawSelected,

	"showEditorPanel" : function(text, panel) {
		var update = function() {
			text.text = textInput.value;
			text.font = fontInput.value;
			text.size = sizeInput.value;
			text.color = colorInput.value;
			updateText(text);
		};

		var textLabel = document.createElement("span");
		textLabel.appendChild(document.createTextNode("text: "));
		var textInput = document.createElement("input");
		textInput.value = text.text;
		textInput.onchange = update;
		panel.appendChild(textLabel);
		panel.appendChild(textInput);
		panel.appendChild(document.createElement("p"));

		var fontLabel = document.createElement("span");
		fontLabel.appendChild(document.createTextNode("font: "));
		var fontInput = document.createElement("input");
		fontInput.value = text.font;
		fontInput.onchange = update;
		panel.appendChild(fontLabel);
		panel.appendChild(fontInput);
		panel.appendChild(document.createElement("p"));

		var sizeLabel = document.createElement("span");
		sizeLabel.appendChild(document.createTextNode("size: "));
		var sizeInput = document.createElement("input");
		sizeInput.value = text.size;
		sizeInput.onchange = update;
		panel.appendChild(sizeLabel);
		panel.appendChild(sizeInput);
		panel.appendChild(document.createElement("p"));

		var colorLabel = document.createElement("span");
		colorLabel.appendChild(document.createTextNode("color: "));
		var colorInput = document.createElement("input");
		colorInput.value = text.color;
		colorInput.onchange = update;
		panel.appendChild(colorLabel);
		panel.appendChild(colorInput);
	},

	"toSource" : function(text) {
		var s = "  updateText({\n";
		s += "    type:\"text\",\n";
		s += "    text:\""+text.text+"\",\n";
		s += "    font:\""+text.font+"\",\n";
		s += "    size:\""+text.size+"\",\n";
		s += "    color:\""+text.color+"\",\n";
		s += "    magnets:"+magnetListToSource(text.magnets)+"\n";
		s += "  })";
		return s;
	}
}

function updateText(text) {
	p1 = text.magnets[1];
	return loadText(text, p1.x, p1.y);
}

function loadText(text, x, y) {
	text.source = "http://www.bklimt.com/cgi-bin/text2png.pl?font="+text.font+"&size="+text.size+"&color="+text.color+"&text="+text.text;
	loadImage(text, x, y);
	return text;
}

