function bubbleplot(paper, SCATTERPLOT_OFFSET_X, SCATTERPLOT_OFFSET_Y, SIZE_X, SIZE_Y) {

	var minx = getMin(dataX) - MARGIN;
	var miny = getMin(dataY) - MARGIN;
	var maxx = getMax(dataX) + MARGIN;
	var maxy = getMax(dataY) + MARGIN;
	
	// Override the x and y values here for the border...	
	//	minx = -4;
	//	maxx = 4;
	//	miny = -4;
	//	maxy = 4;
		
	var ax = convertToPoint(AXIS_X, AXIS_Y, minx, maxx, miny, maxy, SCATTERPLOT_OFFSET_X, SCATTERPLOT_OFFSET_Y, SIZE_X, SIZE_Y);
	var yaxis = paper.path("M" + ax[0] + " " + SCATTERPLOT_OFFSET_Y + "L" + ax[0] + " " + (SIZE_Y + SCATTERPLOT_OFFSET_Y));
	yaxis.attr({"stroke-dasharray": "- "});
	var xaxis = paper.path("M" + SCATTERPLOT_OFFSET_X + " " + ax[1] + "L" + (SIZE_X + SCATTERPLOT_OFFSET_X) + " " + ax[1]);
	xaxis.attr({"stroke-dasharray": "- "});
		
	var i = 0;
	var points = []
	
	for (i = 0; i < dataX.length; i++) {
		var p = convertToPoint(dataX[i], dataY[i], minx, maxx, miny, maxy, SCATTERPLOT_OFFSET_X, SCATTERPLOT_OFFSET_Y, SIZE_X, SIZE_Y);
		points[i] = paper.circle(p[0], p[1], POINT_RADIUS * dataZ[i]);
		points[i].attr("fill", "white");
		points[i].mouseover(function (event) {this.attr({fill: "red"});});
		points[i].mouseout(function (event) {this.attr({fill: "white"});});
	}
	
	this.points = points;	
	
}
