// JavaScript Document

/* Fonction JQuery "Alertes" */

function pop_txt(txt) {
    if (txt != '') {
        jNotify(txt,
            {
                autoHide : true,
                HorizontalPosition : 'center',
                VertitalPosition : 'center',
                TimeShown : 2000
            }
        );
    }
}

function ok_txt(txt,twait) {
    if (twait == undefined)
    {
        twait = 0;
    }
    if (txt != '') {
        jSuccess(txt,
            {
                autoHide : true,
                HorizontalPosition : 'center',
                VertitalPosition : 'center',
                TimeShown : 2000
            }
        );
        if (twait>0)
        {
            sleep(twait);
        }
    }
}

function warn_txt(txt,twait) {
    if (twait == undefined)
    {
        twait = 0;
    }
    if (txt != '') {
        jError(txt,
            {
                autoHide : true,
                HorizontalPosition : 'center',
                VertitalPosition : 'center',
                TimeShown : 2000
            }
        );
        if (twait>0)
        {
            sleep(twait);
        }
    }
}

function warn_del(typ) {
    var msg = "Merci de confirmer que vous souhaitez supprimer cette fiche en cliquant sur le bouton 'Confirmer'<br />Sinon, cliquez sur 'Annuler'";

    switch (typ) {
        case "age" :
            msg = "Vous ne pouvez supprimer qu'une agence non référencée dans une intervention, un contrat, etc...<br />" + msg;
            break;
        case "cli" :
            msg = "Vous ne pouvez supprimer qu'un client non référencé dans une intervention<br />" + msg;
            break;
        case "co" :
            msg = "Vous ne pouvez supprimer qu'un contrat type non déjà référencé dans un contrat client<br />" + msg;
            break;
        case "ddec" :
            msg = "Vous ne pouvez supprimer qu'une catégorie non encore utilisée dans une demande<br />" + msg;
            break;
        case "ddet" :
            msg = "Vous ne pouvez supprimer qu'un type non encore utilisé dans une demande<br />" + msg;
            break;
        case "ope" :
            msg = "Vous ne pouvez supprimer qu'un opérateur non référencé dans une intervention<br />" + msg;
            break;
        case "perloc" :
            msg = "Vous ne pouvez supprimer qu'une période de location non référencée dans une location ou un barême<br />" + msg;
            break;
        case "scli" :
            msg = "Vous ne pouvez supprimer qu'un site client non référencé dans une intervention ou un contrat<br />" + msg;
            break;
        case "tec" :
            msg = "Vous ne pouvez supprimer qu'un technicien non référencé dans une intervention<br />" + msg;
            break;
        default :
            break;
    }

    new Messi(msg,
        {title: 'Suppression',
            buttons: [{id: 0, label: 'Confirmer', val: 'Y'},
            {id: 1, label: 'Annuler', val: 'N'}],
            titleClass : 'info',
            modal : true,
            width : '700px',
            callback: function(val) {
                if (val == 'N') {
                    if (window.opener && window.opener.open && !window.opener.closed) {
                        self.close();
                    }
                    else {
                        history.back();
                    }
                }
            }
        });
}

// 1 : mode paysage
// 2 : Mode portrait
function warn_print(typ) {
    var msg = "Merci de confirmer l'impression.<br />";

    switch (parseInt(typ)) {
        case 1 :
            msg = msg + "Mettez l'imprimante en mode paysage<br />";
            break;
        default :
            msg = msg + "Mettez l'imprimante en mode portrait<br />" + msg;
            break;
    }

    msg = msg + "Fermez cette fenêtre d'état une fois l'impression terminée";

    new Messi(msg,
        {title: 'Confirmer',
            buttons: [{id: 0, label: 'Confirmer', val: 'Y'},
                {id: 1, label: 'Annuler', val: 'N'}],
            callback: function(val) {
                if (val == 'Y') {
                    window.print();
                }
                else {
                    window.close();
                }
            }
        });
}

// Message d'alerte
// Si "IDFOCUS" : focus sur "ID FOCUS"
// Si "lnkok" : on ouvre nouveau lien si clic "ok"
// "IDVAL" : champ dans lequel on mettra la valeur "newval"
function init_warn(typ, idfocus, lnkok, idval, newval) {
    var msg = '';
    switch (typ) {
        case "lieu" :
            msg = "Pensez à vérifier la date de rendez-vous (si nécessaire)";
            break;
        case "coclren" :
            msg = "Avant d'envoyer ce nouveau contrat au client, pensez à contrôler :<br /><br />.Les nouvelles dates de validité<br />.Le nouveau matériel concerné<br />.Le nouveau prix de vente<br /><br />...Et en général le détail du nouveau contrat";
            break;
        case "sclichg" :
            msg = "Vous ne pouvez pas affecter un nouveau site si des problèmes non résolus ont été déclarés";
            break;
        case "cpta1" :
            msg = "Compte client à surveiller";
            break;
        case "cpta2" :
            msg = "Client ayant reçu une relance comptable";
            break;
        case "cpta3" :
            msg = "Le compte de ce client est bloqué<br />Impossible de saisir<br />Merci de prendre contact avec le service comptable";
            break;
        case "cpta3int" :
            msg = "Le compte de ce client est bloqué<br />Impossible de saisir une fiche d'intervention<br />Prendre contact avec le service comptable";
            break;
        case "cpta3cocl" :
            msg = "Le compte de ce client est bloqué<br />Impossible de saisir un contrat de maintenance<br />Prendre contact avec le service comptable";
            break;
        case "cpta3coloc" :
            msg = "Le compte de ce client est bloqué<br />Impossible de saisir un contrat de location<br />Prendre contact avec le service comptable";
            break;
        case "cpta3dos" :
            msg = "Le compte de ce client est bloqué<br />Impossible de saisir un dossier de suivi<br />Prendre contact avec le service comptable";
            break;
        case "cpta3ot" :
            msg = "Le compte de ce client est bloqué<br />Impossible de saisir un bon de travail<br />Prendre contact avec le service comptable";
            break;
        case "cpta3rel" :
            msg = "Le compte de ce client est bloqué<br />Impossible de saisir un relevé<br />Prendre contact avec le service comptable";
            break;
        case "cpta3cli" :
            msg = "Le compte de ce client est bloqué";
            break;
        case "0cli" :
            msg = "Il n'y a aucun client créé pour pouvoir saisir";
            break;
        case "0tec" :
            msg = "Il n'y a aucun technicien actif pour pouvoir saisir";
            break;
        case "0mque" :
            msg = "Il n'y a aucune marque créée pour pouvoir saisir";
            break;
        case "0type" :
            msg = "Il n'y a aucun type de licence créé pour pouvoir saisir";
            break;
        case "0media" :
            msg = "Il n'y a aucun type de média créé pour pouvoir saisir";
            break;
        case "0etatpdt" :
            msg = "Il n'y a aucun état de matériel créé pour pouvoir saisir";
            break;
        case "0catpdt" :
            msg = "Il n'y a aucune catégorie de matériel créée pour pouvoir saisir";
            break;
        case "0age" :
            msg = "Il n'y a aucune agence créée ou active pour pouvoir saisir";
            break;
        case "0tecpr" :
            msg = "Il n'y a aucun prix de revient saisi pour ce technicien<br />Merci de penser à entrer au moins une valeur";
            break;
        case "1tecspr" :
            msg = "Il n'y a aucun prix de revient saisi pour au moins un des techniciens<br />Merci de penser à entrer au moins une valeur";
            break;
        case "0agepr" :
            msg = "Il n'y a aucun prix de revient saisi pour le responsable agence<br />Merci de penser à entrer au moins une valeur";
            break;
        case "1agespr" :
            msg = "Il n'y a aucun prix de revient saisi pour au moins un des responsables agence<br />Merci de penser à entrer au moins une valeur";
            break;
        case "1cagespr" :
            msg = "Il n'y a aucun prix de revient saisi pour au moins un des contacts agence<br />Merci de penser à entrer au moins une valeur";
            break;
        case "tac" :
            msg = "Il y a des tâches à terminer<br />Merci de penser à les traiter";
            break;
        case "rpbm" :
            msg = "Il y a des problèmes non affectés sur ce relevé de parc" + '<br />' + "Voir la liste des licences et matériels";
            break;
        default :
            break;
    }

    if (msg != '') {
        new Messi(msg,
            {title: 'Information',
                titleClass: 'anim error',
                buttons: [{id: 0, label: 'Ok', val: 'Y'}],
                callback: function(val) {
                    if (val == 'Y') {
                        if (idfocus != '') {
                            $("#" + idfocus).focus();
                        }
                        if (idval != '') {
                            $("#" + idval).val(newval);
                        }
                        if (lnkok != '') {
                            if (lnkok == 'back') {
                                history.back();
                            }
                            else {
                                $(location).attr('href', lnkok);
                            }
                        }
                    }
                    else {
                        return false;
                    }
                }
            });
    }
}

/**
 *
 * Message d'alerte sur changement sur "IDCHANGE"
 *
 * @param idchange
 * @param typ
 * @param idfocus
 */
function init_warn_focus(idchange, typ, idfocus) {
    $("#" + idchange).change(function () {
        init_warn(typ, idfocus, '', '', '');
    });
}

/**
 *
 * Contrôle et alerte éventuelle sur changement de site client en relevé
 *
 * @param idchange
 * @param pbm
 * @param idval
 * @param oldval
 */
function init_warn_scli_change_rel(idchange, pbm, idval, oldval) {
    $("#" + idchange).change(function () {
        if (parseInt(pbm) == 1) {
            init_warn('sclichg', '', '', idval, oldval);
        }
    });
}

// COntrôle et alerte éventuelle sur problème comptable client
function warn_cpta(nivcli, typ) {
    switch (parseInt(nivcli)) {
        case 1 :
            init_warn('cpta1', '', '', '', '');
            break;
        case 2 :
            init_warn('cpta2', '', '', '', '');
            break;
        case 3 :
            if (typ != "cli") {
                init_warn('cpta3', '', 'back', '', '');
            }
            else {
                init_warn('cpta3', '', '', '', '');
            }
            break;
        default :
            break;
    }
}

function warn_taches(nb) {
    if (parseInt(nb) > 0) {
        init_warn('tac', '', '', '', '');
    }
}