<style type="text/css">
.olMap {
	border: 1px solid #ccc;
}
</style>

<script src="/wiki/js/OpenLayers.js"></script>
<script type="text/javascript">
var tests = [];
/*
var test = {
	id:"s1",
	width:100,
	height:100,
	a:"POINT(0 0)",
	b:"POINT(100 100)",
	result:"LINESTRING(0 0, 100 100)",
	extent: [0, 0, 500, 500]
};
appendTest(test);
*/

function appendTest(test) {
	tests.push(test);
};

window.onload = function() {
	for (var i = 0; i < tests.length; i++) {
		var options = {
			units: 'm',
			maxExtent: new OpenLayers.Bounds.fromArray(tests[i].extent),
			restrictedExtent: new OpenLayers.Bounds.fromArray(tests[i].extent),
			controls: []
		};

		var map = new OpenLayers.Map(tests[i].id, options);
		options = {numZoomLevels: 1};
		var graphic = new OpenLayers.Layer.Image( "OpenLayers Image",
			"/wiki/image/white.png",
			new OpenLayers.Bounds.fromArray(tests[i].extent),
			new OpenLayers.Size(tests[i].width, tests[i].height),
			options
			);
		
		var vectors = new OpenLayers.Layer.Vector("Vector Layer");
		map.addLayers([graphic, vectors]);
		map.zoomToMaxExtent();

/*
		options = {
			hover: true
		};
		var select = new OpenLayers.Control.SelectFeature(vectors, options);
		map.addControl(select);
		select.activate();
*/
		if (typeof(tests[i].a) == 'string' && tests[i].a.length > 0) {
			deserialize(vectors, tests[i].a, "a");
		}
		if (typeof(tests[i].b) == 'string' && tests[i].b.length > 0) {
			deserialize(vectors, tests[i].b, "b");
		}
		if (typeof(tests[i].result) == 'string' && tests[i].result.length > 0) {
			deserialize(vectors, tests[i].result, "result");
		}
	}
};

function deserialize(layer, strwkt, strtype) {
	var wkt = new OpenLayers.Format.WKT();
	var features = wkt.read(strwkt);
	var bounds;
	if(features) {
		if(features.constructor != Array) {
			features = [features];
		}
		for(var i=0; i<features.length; ++i) {
/*
			if (!bounds) {
				bounds = features[i].geometry.getBounds();
			} else {
				bounds.extend(features[i].geometry.getBounds());
			}
*/
			features[i].style = {
				fillColor: "#ee9900",
				fillOpacity: 0.4, 
				hoverFillColor: "white",
				hoverFillOpacity: 0.8,
				strokeColor: "#ee9900",
				strokeOpacity: 1,
				strokeWidth: 1,
				strokeLinecap: "round",
				strokeDashstyle: "solid",
				hoverStrokeColor: "red",
				hoverStrokeOpacity: 1,
				hoverStrokeWidth: 0.2,
				pointRadius: 2,
				hoverPointRadius: 1,
				hoverPointUnit: "%",
				pointerEvents: "visiblePainted",
				cursor: "inherit"
			};
			if (strtype == "a") {
				features[i].style.strokeColor = "#2929fd";
				features[i].style.fillColor = "#dfdfff";
			} else if (strtype == "b") {
				features[i].style.strokeColor = "#a52929";
				features[i].style.fillColor = "#ffdfdf";
			} else if (strtype == "result") {
				features[i].style.strokeColor = "#acd62b";
				features[i].style.fillColor = "#ffffc2";
			}
		}
		layer.addFeatures(features);
	} else {
		alert("Bad input wkt:" + strwkt);
	}
};
</script>