GeometricFigure.prototype.GetArea = GeometricFigure_GetArea;
GeometricFigure.prototype.Draw = GeometricFigure_Draw;

// costruttore
function GeometricFigure (){};

// restituisci l'area
function GeometricFigure_GetArea(){
    return this.area;
};

// Disegna la figura
function GeometricFigure_Draw() {
    alert( "Metodo Disegna della classe FiguraGeometrica" );
};

Circle.prototype = new GeometricFigure();
//Circle.prototype.constructor = Circle;
//Circle.prototype.baseClass = GeometricFigure.prototype.constructor;
Circle.prototype.Draw = Circle_Draw;

function Circle(r) {
	this.r = r;
    this.area = Math.PI * r * r;
};

function Circle_Draw() {
    alert("Metodo Disegna della classe Cerchio");
    
    var canvas = document.getElementById("canvas");
    canvas.style.position = 'absolute';
   
    //document.body.appendChild(canvas);
	var ctx = canvas.getContext("2d");
	ctx.beginPath();
	ctx.lineWidth = 10;
	// x,y, raggi, start,stop
	ctx.arc(200,200,this.r,0,2*Math.PI);
	ctx.stroke();
}




// Vengono quindi costruiti due oggetti, rispettivamente
// di classe Cerchio
// Disegna oltre al metodo GetArea, definito nella classe padre
document.addEventListener(
	"DOMContentLoaded",
	function() {
		var circle = new Circle(100);
		//alert( "Classe padre della classe Cerchio = " + circle.baseClass);
		alert("Area del Cerchio = " + circle.GetArea());
		circle.Draw();
	}
);


