// checkboxclamp.js
//
// version 1.00
//
// This file is Copyright (C) David Landgren 2008

function CheckboxClamp (formname, fieldname, limit) {
    this.tstamp = new Array;
    this.seq    = 1;
    this.limit  = limit;
    this.fname  = formname;
    this.field  = fieldname;

    this.check = function (n) {
        var f = document.forms[this.fname];
        this.tstamp[n] = (f.elements[this.field][n].checked == true)
                ? this.seq++
                : 0;

        var nr     =  0; // how many have been clicked
        var oldest = -1; // offset of oldest checked
        var i;
        for (i=0; i < this.tstamp.length; ++i) {
            if (this.tstamp[i] > 0) {
                ++nr;
                if (oldest < 0 || this.tstamp[oldest] > this.tstamp[i]) {
                    oldest = i;
                }
            }    
        }

        // more than combo limit, uncheck oldest
        if (nr > this.limit) {
            this.tstamp[oldest] = 0;
            f.elements[this.field][oldest].checked = false;
        }
        return true;
    }
}
