CheckBoxer = function ( checksContainer, controlContainer, checkName ) {
    this.controlContainer = YAHOO.util.Dom.get( controlContainer );
    this.controlElem      = document.createElement( 'A' );
    this.controlContainer.appendChild( this.controlElem );
    YAHOO.util.Event.addListener( this.controlElem, 'click', this.controlHandler, this, true );

    var filterInputs = function ( el ) {
        if (el.type === 'checkbox') {
            return true;
        }

        return false;
    }

    this.checks = YAHOO.util.Dom.getElementsBy( filterInputs, 'INPUT', checksContainer );
    for (var i = 0; i < this.checks.length; i++) {
        YAHOO.util.Event.addListener( this.checks[i], 'click', this.checkHandler, this, true );
    }

    
    this.updateControl();
}

CheckBoxer.prototype.updateControl = function ( ) {
    for ( var i = 0; i < this.checks.length; i++ ) {
        if (!this.checks[i].checked) {
            // Not all checked
            this.controlElem.innerHTML  = 'Selecteer alle';
            this.controlChecks          = true;
            return;
        }
    }       

    this.controlElem.innerHTML  = 'Deselecteer alle';
    this.controlChecks          = false;
}


CheckBoxer.prototype.checkHandler = function ( e ) {
    this.updateControl();
}

CheckBoxer.prototype.controlHandler = function ( e ) {
    for ( var i = 0; i < this.checks.length; i++ ) {
        this.checks[i].checked = this.controlChecks;
    }
    
    this.updateControl();
}