function Applet() {
    this.attr  = new Object(); // applet tag attributes
    this.param = new Object(); // applet parameters
}

Applet.prototype.write = function() {

    document.write('<applet ');

    // write attributes of the applet tag
    for (name in this.attr) {
        var value = this.attr[name];
	document.write(name+'="'+value+'" ');
    }
    document.write('>');

    // write applet parameters
    for (name in this.param) {
        var value = this.param[name];
	document.write('<param name="'+name+'" value="'+value+'">');
    }
    document.write(' Your browser doesn\'t support Java ');
    document.write('</applet>');
}

function Painter(codebase) {
    this.attr  = new Object();
    this.param = new Object();

    // set common attributes
    this.attr.codebase = codebase;
    this.attr.archive  = 'painter.jar';
    
    // set common parameters
    this.param.instance = '';
}

Painter.prototype.getApplet = function() {
    
    // create new applet instance
    var applet = new Applet();

    // copy common attributes
    for (name in this.attr) {
        applet.attr[name] = this.attr[name];
    }

    // copy common parameters
    for (name in this.param) {
        applet.param[name] = this.param[name];
    }

    return applet;
}

function Canvas(painter) {
    var applet = painter.getApplet();
    applet.attr.code = 'DrawCanvas.class';
    return applet;
}

function ControlPanel(painter) {
    var applet = painter.getApplet();
    applet.attr.code = 'ControlPanel.class';
    return applet;
}

function FontPanel(painter) {
    var applet = painter.getApplet();
    applet.attr.code = 'FontPanel.class';
    return applet;
}

