/**
 *  Plugin pour cocher/decocher des checkbox
*/
$.fn.check = function(mode) {
        var mode = mode || 'on'; // si mode non défini, défaut: 'on'
        return this.each(function() {
                switch(mode) {
                case 'on':
                        this.checked = true;
                        break;
                case 'off':
                        this.checked = false;
                        break;
                case 'toggle':
                        this.checked = !this.checked;
                        break;
                }
        });
};

/**
 *  Utilisation du plugin precedent pour cocher les cases en fonctions des valeurs de checkbox
*/
function checkOption(checkbox, id) {
    if (typeof(J('#' + checkbox + ':checked').val()) !== 'undefined') {
        J('#' + checkbox + id).check('on');
    } else {
        J('#' + checkbox + id).check('off');
    }
}

function selectLigne(checkid) {
    J('#' + checkid).parent().parent().toggleClass('selectedligne', 0);
}

function selectAll(classe) {
        J('.' + classe).each(function() {
            J(this).check('on');
            J(this).parent().parent().addClass('selectedligne', 0);
        });
    }

function unselectAll(classe) {
    J('.' + classe).each(function() {
        J(this).check('off');
        J(this).parent().parent().removeClass('selectedligne', 0);
    });
}

/**
 * Ajout d'une boite de dialog avec boutons Fermer/Modifier
*/
function addDialogModif(idDialog, callback, options) {
    J("#" + idDialog).dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        buttons: {
            'Modifier': function() {
                callback(options);
                J(this).dialog('close');
            },
            'Fermer': function() {
                J(this).dialog('close');
            },
            'Effacer': function() {
                J(this).find("input").val("");
                J(this).find("input:checkbox").check("off");
            }
        }
    });

}

/**
 * Ajout d'une grande boite de dialog avec boutons Fermer/Modifier
*/
function addSuperDialogModif(idDialog, callback, options) {
    J("#" + idDialog).dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        width: 700,
        buttons: {
            'Modifier': function() {
                callback(options);
                J(this).dialog('close');
            },
            'Fermer': function() {
                J(this).dialog('close');
            },
            'Effacer': function() {
                J(this).find("input").val("");
                J(this).find("input:checkbox").check("off");
            }
        }
    });

}

/**
 * Ajout d'une boite de dialog avec boutons Fermer/Ajouter
*/
function addDialogAjout(idDialog, callback, options) {
    J("#" + idDialog).dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        buttons: {
            'Ajouter': function() {
                callback(options);
                J(this).dialog('close');
            },
            'Fermer': function() {
                J(this).dialog('close');
            },
            'Effacer': function() {
                J(this).find("input").val("");
                J(this).find("input:checkbox").check("off");
            }
        }
    });
}

/**
 * Ajout d'une boite de dialog avec bouton Fermer
*/
function addDialog(idDialog, w, h) {
    J("#" + idDialog).dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        width: w,
        height: h,
        buttons: {
            'Fermer': function() {
                J(this).dialog('close');
            }
        }
    });
}

/**
 * Options de mise en page des boutons jquery
*/
function addOptionsButton(idButton, idDialog) {
    J("#" + idButton).click(function() {
        J("#" + idDialog).dialog('open');
    })
    .hover(
        function(){
            J(this).addClass("ui-state-hover");
        },
        function(){
            J(this).removeClass("ui-state-hover");
        }
    ).mousedown(function(){
        J(this).addClass("ui-state-active");
    })
    .mouseup(function(){
        J(this).removeClass("ui-state-active");
    });
}

function addOptionsLink(idButton, idDialog) {
    J("#" + idButton).click(function() {
        J("#" + idDialog).dialog('open');
    });
}

function getId(checkid) {
    var tab = checkid.split('check');
    var id = tab[1];
    return id;
}

function updateListe(liste) {
    J('.ligneselect:checked').each(function(i, check) {
        var checkid = J(check).attr('id');
        var id = getId(checkid);
        var champliste = liste + id;
        var value = J('#' + liste).val();
        J('#' + liste + id).val(value);
    });
}

function updateModule() {
    J('.ligneselect:checked').each(function(i, check) {
        var checkid = J(check).attr('id');
        var id = getId(checkid);
        var champModule = 'module' + id;
        var idModule = J('#module').val();
        if (idModule != 0) J('#module' + id).val(idModule);
    });
}
